1、职工档案管理系统c+设计中南大学高级程序设计实践(C+)课程设计报告设计题目 职工档案管理系统 指导老师 设计者 专业班级 设计日期 一、本次课题的基本内容和要求二、软件设计整体规划及方案三、程序功能简介四、主体内容:1、设计分析与程序结构2、相关模块源程序功能及程序说明 3、操作方法(流程)4、试验结果5、设计体会6、参考文献一、本次课题的基本内容和要求1、基本要求:为方便管理某单位职工档案信息,编写一个职工档案管理系统软件。系统记录必须包括职工的ID号、姓名以及性别、出生年月、职称、工资、所在单位、在岗情况等。2、基本管理功能:(1) 添加:增加一名职工的档案信息到管理系统中。(2) 查询
2、:可以根据职工姓名或ID号查找某人的相关信息,若找到则显示其信息。(3) 修改:在管理系统中修改一名职工的记录。(4) 保存:将所有职工档案信息保存在一个文件中(数据库文件或普通的文本文件)。(5) 读取:从文件中读取已保存了数据。(6) 删除:从管理系统中删除一条记录。(7) 恢复:能恢复被删除的记录。(8) 统计:(A)计算平均工资及总工资,(B)统计男/女职工各占总职工的人数的百分比、统计职工平均年龄和单位在岗职工人数占总职工人数的百分比、统计副高以上职工人数占总职工人数的百分比。(C)以表格形式打印全部职工档案信息表。二、软件设计整体规划及方案1、自顶向下、逐步细化、逐步求精所谓“自顶
3、向下,逐步细化、逐步求精”就是在对于给定问题进行透彻的了解和详细的分析的基础上,把问题分解成若干个按顺序执行的逻辑部分,称为“模块”。每个子任务如果仍很复杂,还可以再分解为若干个子任务。如此逐层分解,对于每个模块的设计都采用这种“自顶向下、逐步细化”的方法,将它们分解成为基本结构为止,就如同写文章先拟出题目和中心内容,再确定分为几大部分,每一大部分又分哪几节,每一节分为几段,每一段包括哪几个意思,这就是“自顶向下,逐步细化”的方法。2、菜单技术当一个程序的规模比较庞大,层次和模块比较多时,不要每次都将所有模块按顺序执行一遍,最好在每一层,至少在最高几层都设一个“菜单”。为方便用户操作,“菜单”
4、技术已广泛使用在计算机的系统软件中,具体做法是:程序首先把各功能说明及相应代号以菜单形式显示在屏幕上,然后由用户在键盘上输入所选的功能代号,程序自动转去调用相应的功能模块进行处理。3、时间安排1、阅读设计题目、任务内容,规划设计进度,并进行软件的各相关功能模块的规划设计(1天)。2、在C+环境下,用结构化程序设计思想进行C+语言程序设计、功能模块调试(7-9天)。3、进行课程设计报告编写与整理(2天)。4、课程设计结束时,进行设计成果演示;对相关电子文档进行整理上交(包括:程序文件、帮助说明文档);交课程设计报告一份。3、程序功能简介1、数据文件管理功能:创建新文件、打开老文件。2、输入添加/
5、插入记录:能够完成对任意一条记录输入、添加或插入数据表中,并保存到数据文件中。3、显示、查询记录:能够打开已存在的数据表文件,根据用户要求按所给记录关键字显示、查询一个或多个相关联记录的各项信息。4、修改记录:能够打开已存在的数据表文件,并对确定的任意记录进行修改,在修改过程中,应显示记录信息,给出确认提示,并对更新的记录信息进行文件保存。5、删除记录:能够打开已存在的数据表文件,可以删除数据表中的任一记录,要求具备逻辑删除(具有恢复功能),并对新的数据表信息进行文件保存。6、统计功能:能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:总数、平均值、分段信息)。
6、7、恢复记录:恢复已删除的数据并进行保存。四、主体内容:1、设计分析与程序结构2、相关模块源程序功能及程序说明#include#include#includeusing namespace std;class Workerpublic: Worker() /*构造函数初始化*/ num0=0; name0=0;float salary=0;float age=0;sex0=0;address0=0;zhicheng0=0; char num20; char name20; float salary; float age; char sex20; char address20; char zhi
7、cheng20;class functionprivate: Worker wor100; /*Worker类中的对象数组*/public: void add(char num20,char name20,float salary,float age,char sex5,char address20,char zhicheng20);/*添加职工信息*/ void del(char name20); /*删除*/ void search_num(char num10); /*按职工号查找*/ void search_name(char name20); /*按姓名查找*/ void modif
8、y(char name20); /*修改*/ void save(); /*保存*/ void read(); /*读取*/ void recover(); /*恢复*/ void statistics(); /*统计*/ void display(); /*显示*/;float m=0; void function:add(char num20,char name20,float salary,float age,char sex5,char address20,char zhicheng20)/*添加职工信息*/ int x=1; for(int i=0;i100;i+) if(!strc
9、mp(wori.name,0) /第i个对象姓名为空字符 strcpy(wori.num,num); strcpy(wori.name,name); wori.salary=salary; wori.age=age; strcpy(wori.sex,sex); strcpy(wori.address,address); strcpy(wori.zhicheng,zhicheng); x=0; if(x=0) cout添加成功!endl; m+; break; ;void function:display() /*显示*/ cout所有信息如下:(单位:元)endl; for(int i=0;i
10、100;i+) if(!strcmp(wori.name,0); else cout编号:wori.numendl; cout姓名:wori.nameendl; cout工资:wori.salaryendl; cout年龄:wori.ageendl; cout性别:wori.sexendl; cout单位:wori.addressendl; cout职称:wori.zhichengendlendl; void function:search_num(char num20) /*按职工号查找*/ int x,y=1,z=1; for(int i=0;i100;i+) if(!strcmp(wor
11、i.num,num) x=i; z=0; y=1; cout编号:wori.numendl; cout姓名:wori.nameendl; cout工资:wori.salaryendl; cout年龄:wori.ageendl; cout性别:wori.sexendl; cout单位:wori.addressendl; cout职称:wori.zhichengendlendlendl; else y=0; if(z=0) break; if(y=0) cout 输入的编号查找不到!endl;void function:search_name(char name20) /*按姓名查找*/ int
12、x,y=1,z=1; for(int i=0;i100;i+) if(!strcmp(wori.name,name) x=i; z=0; y=1; cout编号:wori.numendl; cout姓名:wori.nameendl; cout工资:wori.salaryendl; cout年龄:wori.ageendl; cout性别:wori.sexendl; cout单位:wori.addressendl; cout职称:wori.zhichengendlendl; else y=0; if(z=0) break; if(y=0) cout 输入的姓名查找不到!endl;void func
13、tion:modify(char name20) /*修改*/ int x; for(int i=0;i100;i+) if(!strcmp(wori.name,name) x=i; char t; cout (1)修改编号:endlendl; cout (2)修改姓名:endlendl; cout (3)修改工资:endlendl; cout (4)修改年龄:endlendl; cout (5)修改性别:endlendl; cout (6)修改单位:endlendl; cout (7)修改职称:endlendl; coutt; switch(t) case 1:coutnum1; strcp
14、y(worx.num,num1); cout 修改成功!endl; break; case 2:coutname1; strcpy(worx.name,name1); cout 修改成功!endl; break; case 3:coutsalary1; worx.salary=salary1; cout 修改成功!endl; break; case 4:coutage1; worx.age=age1; cout 修改成功!endl; break; case 5:coutsex1; strcpy(worx.sex,sex1); case 6:coutaddress1; strcpy(worx.a
15、ddress,address1); cout 修改成功!endl; break; case 7:coutzhicheng1; strcpy(worx.zhicheng,zhicheng1); cout 修改成功!endl; break; void function:save() /*保存*/ char name20; coutname; strcat(name,.txt); ofstream save(name); for(int i=0;i100;i+) if(strcmp(wori.name,0) save编号:wori.numendl; save姓名:wori.nameendl; sav
16、e工资:wori.salaryendl; save年龄:wori.ageendl; save性别;wori.sexendl; save单位:wori.addressendl; save职称:wori.zhichengendlendlendl; void function:read() /*读取*/ char name20; coutname; strcat(name,.txt); ifstream open(name); char ch; coutch; void function:del(char name20) /*删除*/ int x=1,y=1; for(int i=0;i100;i+
17、) if(!strcmp(wori.name,name) recoverwori.num wori.name wori.salary wori.age wori.sex wori.address wori.zhichengendl; strcpy(wori.num,0); strcpy(wori.name,0); wori.salary=0; wori.age=0; strcpy(wori.sex,0); strcpy(wori.address,0); strcpy(wori.zhicheng,0); x=0; y=0; if(x=0) cout删除成功endl; m-; break; if(
18、y=1) cout删除失败;void function:recover() /*恢复*/ for(int i=0;iwori.numwori.namewori.salarywori.agewori.sexwori.addresswori.zhicheng; cout您所删除的记录已恢复; m+; clean0;void function:statistics() /*统计*/ float all=0,allage=0,fnum=0; float w1,w2,w3 ; cout统计信息如下:(单位:元)endl; for(int i=0;i100;i+) if(!strcmp(wori.name
19、,0); else cout编号:wori.numendl; cout姓名:wori.nameendl; cout工资:wori.salaryendl; cout年龄:wori.ageendl; cout性别:wori.sexendl; cout单位:wori.addressendl; cout职称:wori.zhichengendlendl; all=all+wori.salary; w1=all/m; allage=allage+wori.age; w2=allage/m; if(!strcmp(wori.sex,f) fnum=fnum+1; w3=fnum/m; coutendlend
20、l统计表格如下:endl; coutsetiosflags(ios:left); cout _endl; coutsetw(7)编 号setw(7) 姓 名setw(7)工 资setw(7)年 龄setw(7)性 别setw(7)岗 位setw(7)职 称setw(7)endl; cout _endl; for(i=0;i100;i+) if(!strcmp(wori.name,0); else coutsetw(7)wori.numsetw(7)wori.namesetw(7)wori.salarysetw(7)wori.agesetw(7)wori.sex setw(7)wori.addr
21、esssetw(7)wori.zhichengendl; cout_endlendlendl; cout _endl; coutsetw(7)总职工数setw(7)总的工资setw(7)平均工资setw(7)平均年龄setw(7)女职工数setw(7)女职工比例endl; cout _endl; coutsetw(7)m setw(7)all setw(7)w1 setw(7)w2 setw(7)fnum setw(7)w3 endl; cout _endl;int main() coutendlendlendlendlendl*职工档案管理系统*endl; coutendl* 系统开发设计者
22、:甘一帆 *endl; coutendl* 专业班级:电气工程1303班 *endl; coutendl*endl; coutendl请按任意键开始; getchar(); system(cls); function c1; int select; int k=1,e=1,j=1; while(k=1) coutendl*功能列表*endl; coutendl* 1、添加:增加一个新的职工信息 *endl; coutendl* 2、显示:显示所有的职工信息 *endl; coutendl* 3、查询:查找职工的信息 *endl; coutendl* 4、修改:修改职工的信息 *endl; coutendl* 5、保存:保存职工的信息
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1