《程序设计课程设计》设计职工信息管理系统_第1页
《程序设计课程设计》设计职工信息管理系统_第2页
《程序设计课程设计》设计职工信息管理系统_第3页
《程序设计课程设计》设计职工信息管理系统_第4页
《程序设计课程设计》设计职工信息管理系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计课程设计设计说明书 题目: 职工信息管理系统 班级: 1301 专业: 计算机科学与技术 学号: * 姓名: * 上课老师: 张 桂 珠 评定成绩: 日期: 2014.5.31题目: 职工信息管理系统设计要求: 1、要求: 课程设计要求采用面向对象系统分析与设计方法,首先对问题进行需求分析,识别类与对象,设计合理的类结构与程序结构实现程序功能(恰当应用教材所介绍的各种数据结构和算法),用c+语言编写程序;然后设计各种可能的数据(测试对象)对程序进行测试,观察运行结果是否正确,确保在可见范围内的测试对象都能得到正确结果。设计合理的程序完成题目要求的功能,输入输出信息时注意输入输出的格式,

2、应该在输入前提示输入的格式和内容;将程序的各项信息保存到文件并能打开,用c+的输入输出流实现。 2、题目内容: 该系统在磁盘上存储某单位所有职工的基本信息,对于每一个职工存储:职工编号、姓名、性别、出生年月、职称、最后学历、工资和婚否。 系统功能要求如下: (1)创建存储该单位职工信息的存储系统(第一次输入职工基本信息时); (2)增加职工信息,增加新职工时输入新职工的基本信息; (3)删除某职工的基本信息(如,死亡或离职); (4)修改某职工(指定职工编号)的某些信息(如,加工资、获得新学位、晋升职称、结婚或离婚)。 (5)可以输出符合某种特征的职工信息列表: 全体职工信息列表; 某职称的职

3、工信息列表; 某年月以后出生的职工信息列表; 某年月以前出生的职工信息列表;未婚职工信息列表。 3、开发环境: code:blocks 10.05设计思路:1、定义结构体birth存储年月日数据,再定义结构体worker存储职工的数据。2、定义类operate,它包含3个私有数据成员 1、职工数据worker ahuman_number, 2、已存数据长度lengh, 3、a的总体长度siae,3、类中包含19公有函数: 1、void set_first();对所有数据的初始化函数, 2、void cin_all();全体数据输入函数, 3、void cout_all();全体数据输出函数,

4、4、void cout_one(int i);一个职工数据的输出函数, 5、void elete_one();一个职工数据的删除函数, 6、void add_one();一个职工数据的添加函数, 7、void cout_after_time();输出在某个时间后出生的所有职工数据函数, 8、void cout_before_time();输出在某个时间前出生的所有职工数据函数, 9、void cout_position();输出某个职称的所有的职工数据函数, 10、void cout_ifmarry();输出所有未婚的职工数据函数, 11、void change_salary();改变某个职工

5、的工资函数, 12、void change_educate();改变某个职工的最高学历函数, 13、void change_marry();改变某个职工的婚姻状态函数, 14、void change_position();改变某个职工职称函数, 15、void chang_lengh(int i);改变类中的数据长度lengh函数, 16、void amend();修改职工数据的函数,包含了11,12,13,14,这4个函数,通过显示操作类型,选择读取11,12,13,14中某个或多个函数,退出操作室对出该函数, 17、void output();输出职工数据函数,包含了7,8,9,10,这4

6、个函数,通过显示操作类型,选择读取7,8,9,10中某个或多个函数,退出操作室对出该函数, 18、void save();将职工数据存储在已定义文件中函数, 19、int load_data();将已存储在文件中的数据读取进入程序中来函数,4、 在main()函数中,定义类worker的对象man, 1、第一部分操作:显示可以对对象man进行的操作(读取,创建,退出)和对输入的操作进行读取判断,选择调用函数cin_all(),loat_data()或退出(退出创建过程)。 2、第二部分操作:显示可以对对象man进行的操作(添加,删除,修改,输出,退出),对输入的操作的判断进行读取判断,选择调用

7、函数add_one(),delete_one(),amend(),out_put()或退出(退出系统)。程序代码:#include #include #include #include#define true 1#define flase 0#define human_number 50#define add 10using namespace std;/出生日期储存typedef struct int year; int month; int day;birth;/职工数据储存typedef struct long number;/职工编号 string name;/姓名 string se

8、x;/性别 birth birthday;/出生年月 string position;/职称 string educate;/最后学历 float salary;/工资 int marry;/婚否worker;/储存系统class operateprivate: worker ahuman_number; int lengh; int size;public: void set_first(); void cin_all(); void cout_all(); void cout_one(int i); void delete_one(); void add_one(); void cout_

9、after_time(); void cout_before_time(); void cout_position(); void cout_ifmarry(); void change_salary(); void change_educate(); void change_marry(); void change_position(); void chang_lengh(int i); void amend(); void output(); void save(); int load_data();/第一次建立void operate:set_first() for(int j=0;j!

10、=human_number-1;j+) aj.birthday.year=0; aj.birthday.month=0; aj.birthday.day=0; cate=未知; aj.marry=0; =未知; aj.number=0; aj.position=未知; aj.salary=0; aj.sex=未知; a0.number=0; lengh=0; size=human_number;/第一次所有数据输入void operate:cin_all() cout输入(编号为负时结束)endl; int i=lengh; for(;isize;i+) coutai

11、.number; if(ai.number0) cout职工数据输入完成。endl; break; ; coutai.sex; cout 出生日期: endl;coutai.birthday.year;coutai.birthday.month;coutai.birthday.day; coutai.position; cate; coutai.salary; coutai.marry; coutendl; system(cls); cout输入(编号为负时结束)endl; lengh=i; ai.number=-1; save();/输出所有数据vo

12、id operate:cout_all() coutendl输出所有职工数据:endl; for(int i=0;ilengh;i+) if(ai.number=0) break; cout 职工编号:ai.numberendl; cout 姓名:endl; cout 性别:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birthday.month.ai.birthday.dayendl; cout 职称:ai.positionendl; cout 最后学历:cateendl; cout 工资:ai.salaryendl; cou

13、t=0) cout结婚endlendl; else cout未婚endlendl; coutendlendl;/输出一个职工数据void operate:cout_one(int i) cout 职工编号:ai.numberendl; cout 姓名:endl; cout 性别:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birthday.month.ai.birthday.dayendl; cout 职称:ai.positionendl; cout 最后学历:cateendl; cout 工资:ai.salaryendl; c

14、out=0) cout结婚endl; else cout未婚endl; coutendlendl;/输出一个时间出生后的职工数据void operate:cout_after_time() system(cls); birth t; cout输入要求在某个时间出生以后的职工的那个时间:; cout出生日期: endlt.year;coutt.month;coutt.day; int s=0; for(int i=0;it.year) if(s=0) cout输出在时间t.year年t.month月t.day以后出生的职工数据:t.month) if(s=0) cout输出在时间t.year年t

15、.month月t.day以后出生的职工数据:t.day) if(s=0) cout输出在时间t.year年t.month月t.day以后出生的职工数据:endl; cout_one(i); s+; if(ai+1.number=0) break; if(s=0) cout 没有在t.year:t.month:t.day以后出生的职工.endlendl;/输出一个时间出生前的职工数据void operate:cout_before_time() system(cls); birth t; cout输入要求在某个时间出生以前的职工的那个时间:; cout出生日期: endlt.year;coutt

16、.month;coutt.day; int s=0; for(int i=0;ilengh;i+) if(ai.birthday.yeart.year) if(s=0) cout输出在时间t.year年t.month月t.day以前出生的职工数据:endl; cout_one(i); s+; else if(ai.birthday.year=t.year) if(ai.birthday.montht.month) if(s=0) cout输出在时间t.year年t.month月t.day以前出生的职工数据:endl; cout_one(i); s+; else if(ai.birthday.m

17、onth=t.month) if(ai.birthday.dayt.day) if(s=0) cout输出在时间t.year年t.month月t.day以前出生的职工数据:endl; cout_one(i); s+; if(ai+1.number=0) break; if(s=0) cout 没有在t.year:t.month:t.day以前出生的职工.endlendl;/输出某个职称的职工数据void operate:cout_position() system(cls); int s=0;string p; cout输入要求的职称:p; cout输出职称为p的职工数据0;j+) if(aj

18、.position=p) cout_one(j); s+; if(s=0) cout没有职称为p的职工endlendl; else return;/输出没有结婚的职工数据void operate:cout_ifmarry() system(cls); cout输出所有未婚的职工数据:endl; int s=0; for(int i=0;i=lengh;i+)if(ai.number=0)break; if(ai.marry0) cout_one(i); s+; if(s=0) cout没有未婚的职工endl; /删除某个职工数据void operate:delete_one() int i=0

19、,n; system(cls); coutn; for(;ilengh;i+) if(ai.number=n) break; if(i=lengh) cout没有编号为n的职工.0;i+) ai=ai+1; save(); lengh-; coutendl; system(cls); cout编号为n的职工的数据已删除.endl; /增加一个职工数据void operate:add_one() cout输入要添加的职工数据:endl; int i=0; for(;i50;i+) if(ai.number=0) break; coutai.number; ; coutai.

20、sex; cout 出生日期: endl; coutai.birthday.year; coutai.birthday.month; coutai.birthday.day; coutai.position; cate; coutai.salary; coutai.marry; coutendl; save(); system(cls); cout添加的职工数据:endl; cout 职工编号:ai.numberendl; cout 姓名:endl; cout 性别:ai.sexendl; cout 出生年月:ai.birthday.year.ai.birth

21、day.month.alengh.birthday.dayendl; cout 最后学历:cateendl; cout 工资:ai.salaryendl; cout=0) cout结婚endl; else cout未婚endl; coutendlendl; lengh+; coutendl;/修改工资void operate:chang_lengh(int i) lengh=i;void operate:change_salary() system(cls); cout输入要修改工资的职工编号:num; int x=0; for(;xlengh;x+) if(ax.number=n

22、um) break; system(cls); if(x=lengh) cout没有编号为num的职工endlendl; else cout输入职工num修改后的工资:ax.salary; cout职工num的工资被修改为:ax.salaryendlendl; /修改学位void operate:change_educate() system(cls); cout输入要修改学位的职工编号:num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout没有编号为num的职工endl; els

23、e cout输入职工num修改后的学位:cate; cout职工num的学位被修改为:cateendlendl; /修改结婚状态void operate:change_marry() system(cls); cout输入要修改婚姻的职工编号:num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout没有编号为num的职工endl0) cout编号为num的职工婚姻状态改为未婚endlendl; ax.marry=-1; else cout编号为num的

24、职工婚姻状态改为已婚endlendl; ax.marry=1;/修改职称void operate:change_position() system(cls); cout输入要修改职称的职工编号:num; int x=0; for(;xlengh;x+) if(ax.number=num) break; system(cls); if(x=lengh) cout没有编号为num的职工endlendl; else cout输入职工num修改后的职称:ax.position; cout职工num的职称被修改为:ax.positionendlendl; /写入文件void operate:save()

25、ofstream file(f:c+实验data.txt,ios_base:out|ios_base:trunc); for(int i=0;ilengh;i+) if(ai.number=0) break; fileai.number ; ; fileai.sex ; fileai.birthday.year ai.birthday.month ai.birthday.day ; fileai.position ; cate ; fileai.salary ; fileai.marry endl; file.close();/读写文件int ope

26、rate:load_data() int i=0; ifstream file(f:c+实验data.txt);for(;ai-1.number=0|iai.number;;fileai.sex;fileai.birthday.yearai.birthday.monthai.birthday.day;fileai.position;cate;fileai.salary;fileai.marry;lengh=i;file.close();system(cls);cout读取成功。endlendl;return 1;void operate:amend()

27、 int in;int key=1; system(cls); while(key) cout输入要修改的职工项目(输入数字):endl 1,退出(退出修改函数)、endl 2,职称, endl 3,最后学历,endl 4,工资,endl 5,婚姻in; switch(in) case 1: key=0;break; case 2: change_position(); save();break; case 3: change_educate(); save();break; case 4: change_salary(); save();break; case 5: change_marry

28、(); save();break; default: cout输入错误,请重新输入.endl;break; system(cls);void operate:output() int in;int key=1; system(cls); while(key) cout输入要输出的对象(输入数字代号):endl 1、全体职工信息表 endl 2、某职称的职工信息表endl 3、某年月以后出生的职工信息表 endl 4、某年月以前出生的职工信息表endl 5、未婚职工信息表,endl 6、退出(退出输出函数)in; switch(in) case 1: system(cls); cout_all(

29、);break; case 2: cout_position();break; case 3: cout_after_time();break; case 4: cout_before_time();break; case 5: cout_ifmarry();break; case 6: key=0; system(cls);break; default: cout输入错误,请重新输入.endl;break; int main() operate man;int in;int key=1,i=0; man.set_first(); while(key) cout输入操作(输入数字):endl 1、退出(退出创建系统,进入操作系统)endl 2、创建(第一次输入职工基本信息,创建后不再读取。)endl 3、读取(读取文件中的数据,读取后不再创建。)in; switch(in) case 1: key=0;break; case 2: man.cin_all(); man.save();break; case 3:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论