面向对象程序设计课程设计(1)_第1页
面向对象程序设计课程设计(1)_第2页
面向对象程序设计课程设计(1)_第3页
面向对象程序设计课程设计(1)_第4页
面向对象程序设计课程设计(1)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、 湖南工业大学课 程 设 计资 料 袋 计算机与通信学院 学院(系、部) 2015 2016 学年第 2 学期 课程名称 面向对象程序设计 指导教师 左新娥 职称 讲师 学生姓名 赵成珍 专业班级 网络工程1502 学号题 目 职工档案管理系统 成 绩 起止日期 2016 年 6 月 13 日 2016 年 6 月 17 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书12课程设计说明书13456课程设计任务书20152016学年第 2 学期学院(系、部) 计算机与通信学院 专业 网络工程 班级 1502 课程名称: 面向对象程序设计 学生姓名: 赵成

2、珍 设计题目: 职工档案管理系统 指导教师: 左新娥 完成期限:自 2016 年 6 月 13 日至 2016 年 6 月 17 日 共 1 周内容及任务一、设计内容职工档案管理系统二、设计任务课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。三、设计要求1. 按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。2. 课程设计所使用的编程语言任选,但建议使用C或C+;3.

3、 绿色软件:程序运行不需安装,避免写系统和注册表;进度安排起止日期工作内容本学期11周召开动员大会,学生选题;2016-6-112016-6-12系统分析和设计;2016-6-132016-6-17熟悉软件开发工具、编码系统、系统测试以及中期答辩;2015-6-182015-6-19撰写并提交课程设计说明书 (含电子文档)、源程序等。主要参考资料1谭浩强.C+面向对象程序设计M.北京:清华大学出版社,2006.2张海林,杜忠友,姜玉波. Visual C+简明教程M.北京:电子工业出版社,2007.3丁展,四维科技.Visual C+游戏开发技术与实例M北京:人民邮电出版社,20054姚领田精

4、通MFC程序设计M北京:人民邮电出版社.2000.5清宏计算机工作室Visual C+6.0编程技巧(多媒体与系统篇)M.北京:机械工业出版社,2001.6 王华,叶爱亮,祁立学等.Visual C+6.0编程实例与技巧M.北京:机械工业出版社,1999.7钱新贤,杨猛,程兆炜等.Visual C+编程疑难详解M.北京:人民邮电出版社,2000.指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日2课程设计说明书 课程名称: 面向对象程序设计 设计题目: 职工档案管理系统 专 业: 网络工程 班级: 1502 学生姓名: 赵成珍 学 号:指导教师: 左

5、新娥 2016年 6 月 16 日目录1 课程设计简介(宋体,三号)51.1 课程设计的目的(宋体,小三)51.2 课程设计内容(宋体小三)52课程设计实现过程(宋体,三号)62.1(读取职工数据)62.2(输出职工数据)72.3(添加职工数据)82.4(查询职工数据)92.5 (修改职工数据). 102.6 (删除职工数据).112.7 (恢复职工数据).122.8 (统计职工数据).132.9 (保存职工数据).142.0 (退出职工系统).153 . 设计总结.16 附录(源代码).161 课程设计简介(宋体,三号)1.1 课程设计的目的(宋体,小三)面向对象程序设计是计算机科学与技术专

6、业实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于加深对面向对象理论和基本知识的理解,掌握使用C语言进行面向对象程序设计的基本方法,提高运用面向对象知识解决实际问题的能力。 使学生通过学习掌握C语言的语法规则、面向对象的程序设计方法,对面向对象方法和思想增加感性的认识;学会利用VC语言编写出一些具有一定功能的实用程序,切实提高面向对象的程序设计能力。1.2 课程设计内容(宋体小三)数据库类课程设计。要求:连接实际的数据库系统,具有简单的查询、更新、统计等功能。2课程设计实现过程(宋体,三号)职工档案管理系统退出职工系统保存职工数据统计职工数据恢复职工数据删除职

7、工数据修改职工数据查询职工数据添加职工数据输出职工数据读取职工数据2.1(读取职工数据) 读取附带TXT表格中的职工数据,源代码如下 int load()int i,j;char a;for(j=0;j+)ifstream infile("int.txt",ios:in);if(!infile)cout<<"open error!"<<endl; exit(1);for(i=0;i+) infile>>Pi.num>>Pi.ID>>P>>Pi.sex>>Pi.

8、birth>>Pi.job>>Pi.wage>>Pi.danwei>>Pi.sit;if(Pi.num!=0)m+;else break;infile.close();cout<<"读取成功,按任意键返回主菜单:"<<endl; cin>>a;if(a) break;retune 0; 2.2(输出职工数据) 输出所导入的职工数据或修改后的职工数据,源代码如下void all_show(People p)int i;cout<<"编号t"<<&qu

9、ot;IDt"<<"姓名t"<<"性别t"<<"出生日期t"<<"职称t"<<"工资t"<<"所在单位t"<<"在岗情况t"<<endl;for(i=0;i<m;i+)cout<<pi.num<<"t"<<pi.ID<<"t"<<&l

10、t;<"t"<<pi.sex<<"t"<<pi.birth<<"t"<<pi.job<<"t"<<pi.wage<<"t"<<pi.danwei<<"t"<<pi.sit<<endl; void all_show1(People p)int i;cout<<"编号t"<<"I

11、Dt"<<"姓名t"<<"性别t"<<"出生日期t"<<"职称t"<<"工资t"<<"所在单位t"<<"在岗情况t"<<endl;for(i=0;i<x;i+)cout<<pi.num<<"t"<<pi.ID<<"t"<<<&l

12、t;"t"<<pi.sex<<"t"<<pi.birth<<"t"<<pi.job<<"t"<<pi.wage<<"t"<<pi.danwei<<"t"<<pi.sit<<endl;2.3(添加职工数据)添加新增的职工数据,源代码如下People People:operator=(People &q) num=q.num; s

13、trcpy(ID,q.ID); strcpy(name,);sex=q.sex;strcpy(birth,q.birth);strcpy(job,q.job);wage=q.wage;strcpy(danwei,q.danwei);strcpy(sit,q.sit);return *this;2.4(查询职工数据) 输入要查询的职工ID或名字,查询。源代码如下void find(People p) int i,k,j; char name20,id20,c; cout<<"请选择查找方式:a.ID查找tb.姓名查找"<<endl; cin

14、>>c; if(c='a') cout<<"请输入ID:"<<endl; cin>>id; for(i=0;i<m;i+) j=strcmp(pi.ID,id); if(j=0) pi.show(); else if(c='b') cout<<"请输入姓名:n" cin>>name; for(i=0;i<m;i+) k=strcmp(,name); if(k=0) pi.show(); 2.5(修改职工数据) 输入所要修改的职

15、工编号,修改。源代码如下void modify(People p)int a,b,o,n;char c,q20;cout<<"职工信息如下:"<<endl;all_show(p);cout<<"请输入您要修改的职工编号"<<endl; cin>>a;b=a-1;cout<<"请选择修改的信息:1.IDt2.姓名t3.性别t4.出生年月t5.职称t6.工资t7.所在单位t8.在岗情况"<<endl;cin>>o;switch(o)case 1

16、:cout<<"ID修改为:"<<endl;cin>>q;strcpy(pb.ID,q);break;case 2:cout<<"姓名修改为:"<<endl;cin>>q;strcpy(,q);break;case 3:cout<<"性别修改为:"<<endl;cin>>c;pb.sex=c;break;case 4:cout<<"出生年月修改为:"<<endl;cin&

17、gt;>q;strcpy(pb.birth,q);break;case 5:cout<<"职称修改为:"<<endl;cin>>q;strcpy(pb.job,q);break;case 6:cout<<"工资修改为:"<<endl;cin>>n;pb.wage=n;break;case 7:cout<<"所在单位修改为:"<<endl;cin>>q;strcpy(pb.danwei,q);break;case 8:cou

18、t<<"在岗情况修改为:"<<endl;cin>>q;strcpy(pb.sit,q);break;cout<<"修改后的信息如下:"<<endl; pb.show();2.6(删除职工数据) 输入要删除的职工编号,进行删除。源代码如下void Delete(People p,People p1)int j,k,a100,w;char q,r;for(k=0;k+)system("cls");cout<<"职工信息如下:"<<end

19、l;all_show(p);cout<<"请输入想要删除的职工编号"<<endl;cin>>ak;cout<<"确认删除:Y(y) or N(n) ?"<<endl; cin>>q;if(q='Y'|q='y') w=ak;p1x=pw-1;if(k>0)if(ak>=ak-1)p1x.num+; for(j=w-1;j<m;j+)pj=pj+1;pj.num=j+1;m-;cout<<"删除成功!是否继续删除

20、Y(y) or N(n) ?按任意键继续"<<endl;x+;cin>>r;if(r='N'|r='n')break;else break;2.7(恢复职工数据) 选择已删除的数据,进行恢复。源代码如下void Recover(People p,People p1) int i,a,j;char c;if(x>0)cout<<"被删除数据如下:"<<endl;all_show1(p1);cout<<"确认恢复?Y(y) or N(n) ?"<

21、<endl;cin>>c;if(c='Y'|c='y')for(i=0;i<x;i+)a=p1i.num;m+;for(j=m-1;j>=a;j-)pj=pj-1;pj.num+;pa-1=p1i;x=0;cout<<"恢复成功!"<<endl;all_show(p);else cout<<"无可恢复数据"<<endl;2.8(统计职工数据) 根据所有的职工数据,进行统计。源代码如下void tongji(People p) int i,a,b4

22、;float sum1=0,w=0,age=0,y=0,z=0,average1,percent11,percent12,percent2,percent3;char yes20="no",stu20="student"for(i=0;i<m;i+)sum1=sum1+pi.wage;if(pi.sex='w')w+;ager(pi,b);a=2016-b0*1000-b1*100-b2*10-b3;age=age+a;if(strcmp(pi.sit,yes)y+;if(strcmp(pi.job,stu)z+;average1=

23、sum1/m;/平均工资cout<<"平均工资:"<<average1<<"t总工资:"<<sum1<<endl;percent11=w/m*100;percent12=100-percent11;/男女比例 cout<<"男女百分比:"<<"男:"<<percent12<<"%"<<"t女:"<<percent11<<"%

24、"<<endl;cout<<"平均年龄:"<<age/m<<endl;percent2=y/m*100;/在岗情况cout<<"在岗职工百分比:"<<percent2<<"%"<<endl;percent3=z/m*100;/职位情况cout<<"副高以上职工百分比:"<<percent3<<"%"<<endl;void ager(People

25、 p,int a)int i;for(i=0;i<4;i+)if(p.birthi='0') ai=0;else if(p.birthi='1') ai=1;else if(p.birthi='2') ai=2;else if(p.birthi='3') ai=3;else if(p.birthi='4') ai=4;else if(p.birthi='5') ai=5;else if(p.birthi='6') ai=6;else if(p.birthi='7'

26、;) ai=7;else if(p.birthi='8') ai=8;else if(p.birthi='9') ai=9;2.9(保存职工数据) 保存所存入的所有职工数据。源代码如下 void save(People p)ofstream outfile("int.txt",ios:out);if(!outfile)cerr<<"保存失败!"<<endl;exit(1);for(int i=0;i<m;i+) outfile<<Pi.num<<" "

27、;<<Pi.ID<<" "<<P<<" "<<Pi.sex<<" "<<Pi.birth<<" "<<Pi.job<<" "<<Pi.wage<<" "<<Pi.danwei<<" "<<Pi.sit<<"n" outfile.clos

28、e();2.0(退出职工系统) 退出系统。源代码如下void main() int i, b,j; char c,a; for (;) system("cls"); printf("t*n"); printf("t 职工档案管理系统 n"); printf("t*n"); printf("t Menue tn"); printf("t*n"); printf("t|1.读取职工数据t |n");printf("t|2.输出职工数据t |n&quo

29、t;);printf("t|3.添加职工数据t |n");printf("t|4.查询职工数据t |n"); printf("t|5.修改职工数据t |n"); printf("t|6.删除职工数据t |n"); printf("t|7.恢复职工数据t |n");printf("t|8.统计职工数据t |n");printf("t|9.保存职工数据t |n");printf("t|0.退出系统 t |n"); printf("

30、t*n"); printf("please make a choise:n"); scanf("%d", &b); if (b = 0) break;3.设计总结 通过这学期对VC+的学习,我学到了许多知识,有着跟C语言不同的体验。课程设计真的特别锻炼人,在为期5天的课程设计中,我懂得了如何完善自己的思维,如何运用所学的知识实现一项又一项功能,这在我没学习C和C+之前是不敢想象的。很感谢这门课程,感谢老师。 附录(源代码) #include <iostream>#include <string>#include

31、<fstream>using namespace std;class Peoplepublic:int num;People()ID;name;sex;birth;job;danwei;sit;wage;num;void set()cout<<"ID:"cin>>ID;cout<<"姓名:"cin>>name;cout<<"姓别:"cin>>sex;cout<<"出生年月:"cin>>birth;cout&l

32、t;<"职称:"cin>>job;cout<<"工资:"cin>>wage;cout<<"所在单位:"cin>>danwei;cout<<"在岗情况:yes or not"cin>>sit;void show()cout<<"编号:"<<num<<"n"<<"ID:"<<ID<<"ttt

33、"<<"姓名:"<<name<<"n"<<"性别:"<<sex<<"ttt"<<"出生日期:"<<birth<<"n"<<"职称:"<<job<<"tt"<<"工资:"<<wage<<"n"<<&q

34、uot;所在单位:"<<danwei<<"t"<<"在岗情况:"<<sit<<endl;friend void find(People p);friend void modify(People p);friend void tongji(People p);friend void ager(People p,int a);friend void all_show(People p);friend void all_show1(People p);friend int load(); f

35、riend void save(People p); People operator=(People &q);private:char ID20;char name20;char sex;char birth20;char job20;char danwei20;char sit20;int wage;static int m=0,x=0;People P100,*P1;void Delete(People p,People p1);void Recover(People p,People p1);void main() int i, b,j; char c,a; for (;) sy

36、stem("cls"); printf("t*n"); printf("t 职工档案管理系统 n"); printf("t*n"); printf("t Menue tn"); printf("t*n"); printf("t|1.读取职工数据t |n");printf("t|2.输出职工数据t |n");printf("t|3.添加职工数据t |n");printf("t|4.查询职工数据t |n&quo

37、t;); printf("t|5.修改职工数据t |n"); printf("t|6.删除职工数据t |n"); printf("t|7.恢复职工数据t |n");printf("t|8.统计职工数据t |n");printf("t|9.保存职工数据t |n");printf("t|0.退出系统 t |n"); printf("t*n"); printf("please make a choise:n"); scanf("%d

38、", &b); if (b = 0) break; else if (b = 1) system("cls"); load(); else if (b = 2)system("cls"); for(j=0;j+) all_show(P); cout<<"按任意键返回主菜单:"<<endl; cin>>a; if(a)break;else if (b = 3)system("cls"); cout << "请输入职工信息" <

39、< endl; for (i = m; i+) Pi.set(); Pi.num=i+1; m+; cout << "是否继续输入:Y(y) or N(n) " << "按任意键继续" << endl; getchar(); cin >> c; if (c = 'n' | c = 'N') break;else if (b = 4)system("cls");for(j=0;j+) find(P); cout<<"按任意键返回主

40、菜单:"<<endl; cin>>a; if(a)break;else if(b=5)system("cls");for(j=0;j+)modify(P);cout<<"按任意键返回主菜单:"<<endl; cin>>a; if(a)break;else if(b=6) system("cls"); if(x=0) P1=new People100;Delete(P,P1);else if(b=7)system("cls");for(j=0;j+

41、)if(P1)Recover(P,P1); else cout<<"无可恢复数据"<<endl;delete P1;cout<<"按任意键返回主菜单:"<<endl; cin>>a; if(a)break;else if(b=8)system("cls");for(j=0;j+)tongji(P);cout<<"按任意键返回主菜单:"<<endl; cin>>a; if(a)break;else if(b=9)syste

42、m("cls");for(j=0;j+)save(P);cout<<"保存成功!按任意键返回主菜单:"<<endl; cin>>a; if(a)break;void all_show(People p)int i;cout<<"编号t"<<"IDt"<<"姓名t"<<"性别t"<<"出生日期t"<<"职称t"<<&qu

43、ot;工资t"<<"所在单位t"<<"在岗情况t"<<endl;for(i=0;i<m;i+)cout<<pi.num<<"t"<<pi.ID<<"t"<<<<"t"<<pi.sex<<"t"<<pi.birth<<"t"<<pi.job<<&quo

44、t;t"<<pi.wage<<"t"<<pi.danwei<<"t"<<pi.sit<<endl; void all_show1(People p)int i;cout<<"编号t"<<"IDt"<<"姓名t"<<"性别t"<<"出生日期t"<<"职称t"<<"工

45、资t"<<"所在单位t"<<"在岗情况t"<<endl;for(i=0;i<x;i+)cout<<pi.num<<"t"<<pi.ID<<"t"<<<<"t"<<pi.sex<<"t"<<pi.birth<<"t"<<pi.job<<"t&

46、quot;<<pi.wage<<"t"<<pi.danwei<<"t"<<pi.sit<<endl;People People:operator=(People &q) num=q.num; strcpy(ID,q.ID); strcpy(name,);sex=q.sex;strcpy(birth,q.birth);strcpy(job,q.job);wage=q.wage;strcpy(danwei,q.danwei);strcpy(sit,q.sit);ret

47、urn *this;void find(People p) int i,k,j; char name20,id20,c; cout<<"请选择查找方式:a.ID查找tb.姓名查找"<<endl; cin>>c; if(c='a') cout<<"请输入ID:"<<endl; cin>>id; for(i=0;i<m;i+) j=strcmp(pi.ID,id); if(j=0) pi.show(); else if(c='b') cout<

48、<"请输入姓名:n" cin>>name; for(i=0;i<m;i+) k=strcmp(,name); if(k=0) pi.show(); void modify(People p)int a,b,o,n;char c,q20;cout<<"职工信息如下:"<<endl;all_show(p);cout<<"请输入您要修改的职工编号"<<endl; cin>>a;b=a-1;cout<<"请选择修改的信息:1

49、.IDt2.姓名t3.性别t4.出生年月t5.职称t6.工资t7.所在单位t8.在岗情况"<<endl;cin>>o;switch(o)case 1:cout<<"ID修改为:"<<endl;cin>>q;strcpy(pb.ID,q);break;case 2:cout<<"姓名修改为:"<<endl;cin>>q;strcpy(,q);break;case 3:cout<<"性别修改为:"<&l

50、t;endl;cin>>c;pb.sex=c;break;case 4:cout<<"出生年月修改为:"<<endl;cin>>q;strcpy(pb.birth,q);break;case 5:cout<<"职称修改为:"<<endl;cin>>q;strcpy(pb.job,q);break;case 6:cout<<"工资修改为:"<<endl;cin>>n;pb.wage=n;break;case 7:cou

51、t<<"所在单位修改为:"<<endl;cin>>q;strcpy(pb.danwei,q);break;case 8:cout<<"在岗情况修改为:"<<endl;cin>>q;strcpy(pb.sit,q);break;cout<<"修改后的信息如下:"<<endl; pb.show();void Delete(People p,People p1)int j,k,a100,w;char q,r;for(k=0;k+)system(&

52、quot;cls");cout<<"职工信息如下:"<<endl;all_show(p);cout<<"请输入想要删除的职工编号"<<endl;cin>>ak;cout<<"确认删除:Y(y) or N(n) ?"<<endl; cin>>q;if(q='Y'|q='y') w=ak;p1x=pw-1;if(k>0)if(ak>=ak-1)p1x.num+; for(j=w-1;j<

53、;m;j+)pj=pj+1;pj.num=j+1;m-;cout<<"删除成功!是否继续删除 Y(y) or N(n) ?按任意键继续"<<endl;x+;cin>>r;if(r='N'|r='n')break;else break;void Recover(People p,People p1) int i,a,j;char c;if(x>0)cout<<"被删除数据如下:"<<endl;all_show1(p1);cout<<"确认

54、恢复?Y(y) or N(n) ?"<<endl;cin>>c;if(c='Y'|c='y')for(i=0;i<x;i+)a=p1i.num;m+;for(j=m-1;j>=a;j-)pj=pj-1;pj.num+;pa-1=p1i;x=0;cout<<"恢复成功!"<<endl;all_show(p);else cout<<"无可恢复数据"<<endl;void tongji(People p) int i,a,b4;floa

55、t sum1=0,w=0,age=0,y=0,z=0,average1,percent11,percent12,percent2,percent3;char yes20="no",stu20="student"for(i=0;i<m;i+)sum1=sum1+pi.wage;if(pi.sex='w')w+;ager(pi,b);a=2016-b0*1000-b1*100-b2*10-b3;age=age+a;if(strcmp(pi.sit,yes)y+;if(strcmp(pi.job,stu)z+;average1=sum1/

56、m;/平均工资cout<<"平均工资:"<<average1<<"t总工资:"<<sum1<<endl;percent11=w/m*100;percent12=100-percent11;/男女比例 cout<<"男女百分比:"<<"男:"<<percent12<<"%"<<"t女:"<<percent11<<"%"<<endl;cout&l

温馨提示

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

评论

0/150

提交评论