1、1C+builder 课程设计( 人事信息管理系统 )目录一、 设计任务与要求31.设计内容32.课程设计的要求3二、 系统分析(需求分析)31.需求分析32.系统性能要求33.系统的功能分析34.系统功能模块35.功能的实现36.模块框架图47.系统数据分析4三、 系统设计521.界面设计52.功能设计6四、 总结7五、 参考资料7附录:源程序7一、 设计任务与要求1、设计内容:制作人事信息管理系统,实现数据录入、数据删除、数据刷新和数据浏览以及数据查询等一些功能。2、课程设计的要求:A 创建人事管理数据表,该表反映职工的基本信息,其中包含职工编号、职工姓名、职工性别、所在部门、职工年龄、工
2、作日期、基本工资、职称、职务和简历等字段。B 根据自己的喜好设计系统封面,系统封面设计成由计时器控制,在设定的时间间隔内,系统封面显示达到或超过设定的显示时间,系统封面会自动释放。C 应用系统主控界面应包括记录编辑和记录查询等功能模块。记录编辑功能完成职工记录编辑的记录增加、记录删除、记录刷新和记录查询等功能。记录查询功能可以对数据集中的记录进行查询,要求按职工编号进行查询二、系统分析(需求分析)1.需求分析: 能够输入职工的综合情况的输入、修改以及删除; 能够实现对职工信息的浏览; 能够实现对职工进行查询; 设计系统封面并由计时器控制;2.系统性能要求:3 系统安全、可靠; 功能齐全; 操作
3、方便、界面友好; 易于维护和扩充。3.系统的功能分析:资料维护:系统维护包括对各种表记录的修改、删除、添加等操作。资料维护:对数据表中的信息进行浏览。系统查询:可以按职工编号、姓名等相关信息进行详细或模糊查询。报表统计:包括统计职工编号、职工姓名、职工性别、所在部门、职工年龄、工作日期、基本工资、职称、职务和简历等字段。其它操作:系统封面、计时器控制与人性化提示信息。4.系统功能模块人事管理系统有:数据查找与浏览、数据修改、报表显示和系统封面构成。5.功能的实现:1 “数据查找与浏览”模块:(1) 数据查找:对职工的编号、职工姓名、职工性别、所在部门、职工年龄、工作日期、基本工资、职称、职务和
4、简历等字段进行精确或模糊查找。(2) 数据浏览:可以对数据表中的数据实现,上一项、下一项、首相、尾项等操作。(3) 其他信息:设置字体、颜色属性和一些提示信息。2 “数据修改”模块:(1)添加数据:增加一个新的记录(2)修改数据:修改原有记录。3 “报表显示”模块:显示当前查找到的数据内容,以报表形式打印。4 “系统封面构成”模块:(1)系统时钟:在在设定的时间间隔内,系统封面显示达到或超过设定的显示时间,系统封面会自动释放(2)功能实现:进入主界面与退出系统。6. 模块框架图查找与浏览 数据修改 报表显示 系统封面构成人事管理系统4图 模块框架图7.系统数据分析所有数据存放到 access
5、数据库文件下,由 ado 连接,通过程序按照要求显示给用户。找到用户需要的数据。数据库Ado组件DataSource组件显示操作数据图三、系统设计1、界面设计数据查找数据浏览其他信息添加数据修改数据以报表形式打印系统时钟功能实现5欢迎界面主界面6数据修改报表打印2、程序设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括记录编辑和记录查询等功能模块。记录编辑功能完成职工记录编辑的记录增加、记录删除、记录刷新和记录查询等功能。记录查询功能可以对数据集中的记录进行查询。四、总结此次 c+builder 课程设计,在指导教师的精心教导下,我们学会了如何工程化地编写一个系
6、统软件。首先要对软件的需求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。软件实现上,设计了人性化的系统封面,将各个功能独立出来采用功能模块的设计思想。我们编写程序的过程是辛苦与快乐的,软件设计思想很重要,7只要我们在编程,就必须学习新的先进设计思想。五、参考资料C+buider 实例入门 陈雪飞 中国青年出版社C+builder 彻底研究 陈灿煌 中国铁路出版社附录:源程序/-主窗体 查询与浏览-#include #pragma hdrstop#include “Unit1.h“#include “Unit2.h“#include “Unit3.h“#include “U
7、nit4.h“#include “Unit5.h“#include “Unit6.h“#pragma package(smart_init)#pragma resource “*.dfm“TFmain *Fmain;bool onshow=false;_fastcall TFmain:TFmain(TComponent* Owner): TForm(Owner)void _fastcall TFmain:N5Click(TObject *Sender)Close();/退出程序void _fastcall TFmain:SpeedButton3Click(TObject *Sender)Dat
8、aModule3-ADOQuery1-First() ;StatusBar1-Panels-Items0-Text=“数据指向第一个“;void _fastcall TFmain:SpeedButton1Click(TObject *Sender)DataModule3-ADOQuery1-Prior() ;StatusBar1-Panels-Items0-Text=“数据指向上一个“;void _fastcall TFmain:SpeedButton2Click(TObject *Sender)DataModule3-ADOQuery1-Next() ;StatusBar1-Panels-I
9、tems0-Text=“数据指向下一个“;8void _fastcall TFmain:SpeedButton4Click(TObject *Sender)DataModule3-ADOQuery1-Last() ;StatusBar1-Panels-Items0-Text=“数据指向最后“;void _fastcall TFmain:Button2Click(TObject *Sender)/添加新的数据Fadd-Caption=“添加数据“;DataModule3-ADOQuery1-Append() ;Fadd-ShowModal() ;void _fastcall TFmain:For
10、mClose(TObject *Sender, TCloseAction void _fastcall TFmain:N10Click(TObject *Sender)AboutBox-ShowModal() ; /显示关于对话框void _fastcall TFmain:Button4Click(TObject *Sender)/以下为查找语句AnsiString sql;if(Edit1-Text=“)return;if( ComboBox1-Text =“精确“)sql=“ =“+Edit1-Text+“;“;else sql=“ like %“+Edit1-Text+“%;“;sql=
11、“select * from renshi where “+ComboBox2-Text+sql;StatusBar1-Panels-Items0-Text=sql;DataModule3-ADOQuery1-Active =false;DataModule3-ADOQuery1-SQL-Clear();DataModule3-ADOQuery1-SQL-Add(sql);DataModule3-ADOQuery1-Active =true;if(DataModule3-ADOQuery1-RecordCount=0)StatusBar1-Panels-Items1-Text=“无符合条件数据
12、“;else StatusBar1-Panels-Items1-Text=“符合条件数据个数为:“+IntToStr(DataModule3-ADOQuery1-RecordCount);void _fastcall TFmain:Button6Click(TObject *Sender)/以下为显示所有数据9AnsiString sql;sql=“select * from renshi;“;StatusBar1-Panels-Items0-Text=“显示全部数据“;DataModule3-ADOQuery1-Active =false;DataModule3-ADOQuery1-SQL-
13、Clear();DataModule3-ADOQuery1-SQL-Add(sql);DataModule3-ADOQuery1-Active =true;if(DataModule3-ADOQuery1-RecordCount=0)StatusBar1-Panels-Items1-Text=“无符合条件数据“;else StatusBar1-Panels-Items1-Text=“数据总量为:“+IntToStr(DataModule3-ADOQuery1-RecordCount);void _fastcall TFmain:Button1Click(TObject *Sender)/刷新显
14、示DataModule3-ADOQuery1-Active =false;DataModule3-ADOQuery1-Active =true;void _fastcall TFmain:N9Click(TObject *Sender)/帮助内容ShowMessage(“大家好,虽然只是一个简单的程序但是也要写帮助。n简单的操作如下:n一、打开程序。n二、可以进行数据的添加、删除、浏览、查找n三、关闭。n谢谢使用!n“);void _fastcall TFmain:Button3Click(TObject *Sender)/数据删除操作AnsiString printstr=“确定删除编号为“
15、+DataModule3-ADOQuery1-FieldByName(“编号“)-AsString+“的数据吗?“;if(MessageDlg(printstr,mtWarning,TMsgDlgButtons() ADOQuery1-Delete() ;StatusBar1-Panels-Items0-Text=“数据已经删除“;void _fastcall TFmain:N3Click(TObject *Sender)10/更改显示字体if(FontDialog1-Execute()Fmain-Font=FontDialog1-Font;void _fastcall TFmain:N12C
16、lick(TObject *Sender)/更改窗体颜色if(ColorDialog1-Execute()Fmain-Color=ColorDialog1-Color;/主窗体Fadd-Color=ColorDialog1-Color; /添加、修改窗体void _fastcall TFmain:N13Click(TObject *Sender)/更改数据域颜色if(ColorDialog1-Execute()DBGrid1-Color=ColorDialog1-Color;void _fastcall TFmain:N11Click(TObject *Sender)Fshow-QuickRe
17、p1-Preview();/打印数据void _fastcall TFmain:Button5Click(TObject *Sender)Fadd-Caption=“修改数据“;Fadd-ShowModal() ; /修改数据void _fastcall TFmain:FormShow(TObject *Sender)if(onshow=false)Fwelcome-ShowModal() ;onshow=true;return;/-/-系统封面-#include #pragma hdrstop#include “Unit2.h“#include “Unit1.h“11#pragma pack
18、age(smart_init)#pragma resource “*.dfm“TFwelcome *Fwelcome;int logintime=15; /进入系统等待时间 X 秒_fastcall TFwelcome:TFwelcome(TComponent* Owner): TForm(Owner)void _fastcall TFwelcome:Timer1Timer(TObject *Sender)if(logintime=0)Timer1-Enabled=false;Close();logintime-;SpeedButton1-Caption =“进入(“+IntToStr(log
19、intime)+“)“;void _fastcall TFwelcome:SpeedButton2Click(TObject *Sender)Application-Terminate() ;void _fastcall TFwelcome:SpeedButton1Click(TObject *Sender)logintime=15;Timer1-Enabled=false;Close();/-/-数据修改窗体-#include #pragma hdrstop#include “Unit4.h“#include “Unit3.h“#pragma package(smart_init)#prag
20、ma resource “*.dfm“TFadd *Fadd;_fastcall TFadd:TFadd(TComponent* Owner): TForm(Owner)void _fastcall TFadd:Button1Click(TObject *Sender)12if(DBEdit1-Text =“)return;DataModule3-ADOQuery1-Refresh() ;Close();void _fastcall TFadd:Button2Click(TObject *Sender)DataModule3-ADOQuery1-Cancel() ;Close();void _fastcall TFadd:FormClose(TObject *Sender, TCloseAction /-