C程序的设计课程设计报告_第1页
C程序的设计课程设计报告_第2页
C程序的设计课程设计报告_第3页
C程序的设计课程设计报告_第4页
C程序的设计课程设计报告_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

《C++程序设计》课程设计报告高校教职工人事管理系统学生姓名:学号:指导教师:开题时间:2010年09宀兀成时间:2010年09年级/专业/班:月06月28目录、引言1、设计目的与任务11、本课程设计的目的12、本课程设计的任务1三、 设计方案21总体设计22、 详细设计23、 程序清单54、 程序调试与体会235、 运行过程截图23四、 结论26五、 致27六、 参考文献27《C++程序设计语言》课程设计――高校教职工人事管理系统一、 引言随着人们生活水平的提高,计算机发展异常迅速。如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。通过计算机对各类问题求解已经成为一种高效、快捷的方式。本课程设计就是用C++研究两点距离的求解的问题,实现对两点距离的问题求解,和实现类模板的应用以与函数的调用。二、 设计目的与任务1、 本课程设计的目的1) 通过课程设计更进一步理解C++的基础知识和面向对象的思想。2) 训练用系统的观点和软件开发一般规进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。3) 熟练掌握C++中类与类模板在程序中的应用,并熟练了解类中函数的调用。2、 本课程设计的任务使用类实现编写一个高校教职工人事管理系统,能够实现教职工信息增加、删除、修改、查找,能够统计在职人员、中共党员、女教职工、高职称、高学历的人数,信息的输入输出能够重载输入与输出操作符,并且要求有错误提示功能,例如输入日期,输入错误提示重新输入。三、设计方案1、 总体设计(1)定义员工(Person)类,其中包括编号、职工分类("行政人员","教师","一般员工","退休人员","返聘人员","临时工")、性别、年龄,职务("无","科级","处级","地级");、职称("无","初级","中级","高级");、政治面貌("群众","中共党员","党派")、学历("中专","大专","大学","硕士","博士")。(2)实现下面的功能a、 设计菜单实现功能选择;b、 输入功能:输入员工的信息,并保存到文件中;c、 删除资料:能够根据编号删除员工的资料;d、 修改功能:能够根据编号来修改员工的资料;e、 查询功能:能够根据编号来查看员工的资料;f、 统计功能:能够统计在职人员、中共党员、女教职工、高职称、高学历的人数。g、 错误提示功能:如果输入的资料不合法,将会提示错误,并给予指导。2、 详细设计类Personcharno[100]; //编号charduty[30]; // 职工分类charsex[10]; //性别intage;// 年龄charposition[30];// 职务charzhicheng[30];// 职称charpolitical[30]; //政治面貌

charrecord[30];//学历voidadd();//增加信息voiddelet();//删除信息voidchange();//修改信息voidfind(); //查找信息voidpush(Personpp);//给类赋值F面程序流程图中的判断框必须用菱形表示,请修改(1)Person::add()⑵Person::delete()⑷.Person::find()输入编号编号存在?否是1I萨息,3、程序清单/*改程序需要在D盘加入文本名为 “subject.txt”文本档案作为资料的库存文本档案资料容如下:09408201行政人员男35处级高级中共党员大学09408202教师女30处级高级中共党员大学09408203临时工女20无高级群众中专09408204临时工男22处级初级中共党员博士09408205返聘人员男30科级高级中共党员大专09408206教师女40科级初级中共党员硕士09408207退休人员女68处级中级党派大学09408208一般员工男27地级高级群众大学09408209教师男22处级高级中共党员博士09408210退休人员男62地级初级党派硕士09408211返聘人员女40无中级中共党员硕士09408212一般员工男38处级中级群众大学09408213教师男46处级无中共党员博士09408214教师男27无高级党派大学09408215教师男18处级高级中共党员大学*///下面程序开始#include<iostream>#inelude<cstring>usingnamespacestd;constintN=1000;intt=0;inton=0; //统计在职人员人数intdang=0; //统计中共党员人数intnv=0; //统计女性职工人数intgaozhi=0; //统计高职称人数intgaoli=0; //统计高学历人数classPerson{public:charsex[10]; // 性别

charduty[30]; //intage;//charpolitical[30];//charrecord[30];//charposition[30];//charzhicheng[30];//charno[100];voidadd();//voiddelet();//voidchange();//voidfind(); //职工分类年龄政治面貌学历职工分类年龄政治面貌学历职务职称//编号增加信息删除信息修改信息查找信息};Personp[N];voidPerson::push(Personpp){strcpy(no,pp.no);strcpy(sex,pp.sex);strcpy(position,pp.position);strcpy(zhicheng,pp.zhicheng);strcpy(political,pp.political);

strcpy(record,pp.record);strcpy(duty,pp.duty);age=pp.age;退休人员"))on++;退休人员"))on++;女")==0)nv++;if(strcmp(sex,"if(strcmp(zhicheng,"if(strcmp(political,"if(strcmp(record,"if(strcmp(zhicheng,"if(strcmp(political,"if(strcmp(record,"中共党员")==0)dang++;硕士")==0||strcmp(record,"博士")==0)gaoli++;voidtip(){cout«"输入ENTERS回子菜单!"<<endl;getchar();getchar();system("cls");}voidtip1(){cout«"输入ENTERS回主菜单!"<<endl;getchar();getchar();system("cls");voidLoad() // 通过文本输入数据{PersonS;FILE*fp1;boolf=1;fp1=fopen("d:\\subject.txt","r");if(fp1==NULL)f=0;while(f&&!feof(fp1)){fscanf(fp1,"%s%s%s%d%s%s%s%s",S.no,S.duty,S.sex,&S.age,S.position,S.zhicheng,S.political,S.record);p[t++].push(S);}fclose(fp1);}voidPerson::add() // 录入信息{cout«" 现在录入编号为"<<no<<"的档案:"<<endl;A1:coutvv"输入员工的职工分类:";cin>>duty;if(strcmp(duty," 行政人员")&&strcmp(duty,"教师")&&strcmp(duty," —般员工")&&strcmp(duty,"退休人员")&&strcmp(duty," 返聘人员")&&strcmp(duty,"临时工")){cout<<"--( 请输入正确的职工分类,例如:行政人员,教师,一般员工,退休人员,返聘人员,临时工)"<<endl;gotoA1;}if(strcmp(duty," 退休人员"))on++;A2:cout«"输入员工的性别:";cin>>sex;if(strcmp(sex," 男")&&strcmp(sex,"女")){cout<<"--( 请输入正确的性别,例如:男,女)"<<endl;gotoA2;}if(strcmp(sex," 女")==0)nv++;A3:coutvv"输入员工的年龄:";cin>>age;if(age<=0){cout<<"--( 请输入正确的年龄,例如:18等)"<<endl;gotoA3;}A4:coutvv"输入员工的职务:cin>>position;if(strcmp(position," 无")&&strcmp(position," 科级")&&strcmp(position," 处级")&&strcmp(position," 地级")){cout<<"--( 请输入正确的职务,例如:无,科级,处级,地级)"<<endl;gotoA4;}A5:coutvv"输入员工的职称:";cin>>zhicheng;if(strcmp(zhicheng," 无")&&strcmp(zhicheng,"初级")&&strcmp(zhicheng," 中级")&&strcmp(zhicheng,"高级")){cout<<"--(请输入正确的职称,例如:无,初级,中级,高级)"<<endl;gotoA5;}if(strcmp(zhicheng," 高级")==0)gaozhi++;A6:coutvv"输入员工的政治面貌:"cin>'political;if(strcmp(political," 群众")&&strcmp(political," 中共党员")&&strcmp(political," 党派")){cout<<"--( 请输入正确的政治面貌,例如:群众,中共党员,党派)"<<endl;gotoA6;}if(strcmp(political," 中共党员")==0)dang++;

A7:coutvv"输入与员工的学历cin>>record;if(strcmp(record,"中专")&&strcmp(record,"大专")&&strcmp(record,"大学")&&strcmp(record," 硕士")&&strcmp(record,"博士")){cout<<"--( 请输入正确的学历,例如:中专,大专,大学,硕士,博士)"<<endl;gotoA7;}if(strcmp(record,"硕士")==0||strcmp(record,"if(strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli++;cout«""<<endl«endl;cout«""<<endl«endl;t++;tip1();}编号为"<<no<<"的档案录入结束voidPerson::delet()//删除信息voidPerson::delet()//删除信息{退休人员"))on--;退休人员"))on--;if(strcmp(duty,"if(strcmp(zhicheng,"高级")==0)gaozhi--;if(strcmp(political,"中共党员")==0)dang--;if(strcmp(record,"硕士")==O||strcmp(record," 博士")==0)gaoli--;cout«" 删除员工信息成功! "<<endl«endl;tip1();}voidPerson::change()// 修改信息{intn,flag=1;do{A:cout«" *** 子菜单:修改资料***"<<endl<<" 修改哪些信息?"<<endl<<"1(编号)2(职工分类)3(性别)4(年龄)5(职务)6(职称)7(政治面貌)8(学历)9(退回主菜单)"<<endl<<" 输入数字1-9进行修改或退出:";cin>>n;if(n<1||n>9) {cout<<"sorry,您输入的信息有误,请重新输入!"<<endl;gotoA;}switch(n){case1:coutvv"输入正确的员工编号:";tip();break;case2:B1:coutvv"输入正确的员工的职工分类:";if(strcmp(duty,"退休人员"))on--;cin>>duty;if(strcmp(duty,"行政人员")&&strcmp(duty,"教师")&&strcmp(duty,"一般员工")&&strcmp(duty,"退休人员")&&strcmp(duty,"返聘人员")&&strcmp(duty," 临时工")){cout<<"(请输入正确的职工分类,例如:行政人员,教师,般员工,退休人员,返聘人员,临时工)"<<endl;gotoB1;}if(strcmp(duty," 退休人员"))on++;cout«" 员工职工分类修改成功"<<endl«endl;tip();break;case3:B2:coutvv"输入正确的员工的性别:";if(strcmp(sex,"男if(strcmp(sex,"男")&&strcmp(sex,"女")){cout<<"( 请输入正确的性别,例如:男,女)"<<endl;gotoB2;}if(strcmp(sex,"女")==0)nv++;cout«" 员工性别修改成功"<<endl«endl;tip();break;case4:B3:coutvv"输入正确的员工的年龄:";cin>>age;if(age<=0){cout<<"( 请输入正确的年龄,例如:18等)"<<endl;gotoB3;}cout«" 员工年龄修改成功"<<endl«endl;tip();break;case5:B4:coutvv"输入正确的员工的职务:";cin>>position;if(strcmp(position," 无")&&strcmp(position," 科级")&&strcmp(position," 处级")&&strcmp(position," 地级")){cout<<"(请输入正确的职务,例如:无,科级,处级,地cout«" 员工职务修改成功"<<endl«endl;tip();break;case6:B5:coutvv"输入正确的员工的职称:"if(strcmp(zhicheng,"cin>>zhicheng;if(strcmp(zhicheng,"strcmp(zhicheng,"高级")==0)gaozhi--;无if(strcmp(zhicheng,"cin>>zhicheng;if(strcmp(zhicheng,"strcmp(zhicheng,"高级")==0)gaozhi--;无")&&strcmp(zhicheng,"

中级")&&strcmp(zhicheng,"{cout<<"( 请输入正确的职称,例如:无,初级,级)"<<endl;gotoB5;}cout«" 员工职称修改成功"<<endl«endl;初级")&&高级"))中级,高if(strcmp(zhicheng,"高级if(strcmp(zhicheng,"高级")==0)gaozhi++;tip();break;case7:B6:coutvv"输入正确的员工的政治面貌tip();break;case7:B6:coutvv"输入正确的员工的政治面貌:"")&&if(strcmp(political,"群众")")&&if(strcmp(political,"群众")&&strcmp(political,"中共党员strcmp(political," 党派")){cout<<"( 请输入正确的政治面貌,例如:群众,中共党员,党派)"<<endl;gotoB6;}if(strcmp(political," 中共党员")==0)dang++;cout«" 员工政治面貌修改成功"<<endl«endl;tip();break;case8:B7:coutvv"输入正确的员工的学历:";if (strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli--;cin>>record;if(strcmp(record," 中专")&&strcmp(record," 大专")&&strcmp(record," 大学")&&strcmp(record," 硕士")&&strcmp(record,"博士")){cout<<"( 请输入正确的学历,例如:中专,大专,大学,硕士,博士)"<<endl;gotoB7;}if(strcmp(record,"硕士")==0||strcmp(record,"博士")==0)gaoli++;tip();break;case9:tip1();flag=O;break;}}while(flag);}voidPerson::find() // 查找信息(输出信息){coutvv"员工的编号:";cout<<no<<endl;coutvv"员工的职工分类:";coutvvdutyvvendl;coutvv"员工的性别:";coutvvsexvvendl;coutvv"员工的年龄:";coutvvagevvendl;coutvv" 员工的职务:coutvvposition«endl;coutvv" 员工的职称:";cout«zhicheng«endl;coutvv" 员工的政治面貌:"coutvvpoliticalvvendl;coutvv" 员工的学历:";coutvvrecordvvendl<<endl;tip1();}intmain(){Load();intn,i,flag1=1;charnum[100];do{A:coutvv"***************"vvendl<<"主菜单"vvendlvv"***************"vvendl<<" (1)增加资料(2)删除资料(3)修改资料(4)查找资料(5)查看统计"<<"请选择1-6进行操作:";cin>>n;system("cls");if(n<1||n>9) {cout<<"sorry,您输入的信息有误."<<endl;tip1();gotoA;}switch(n){case1:C:cout<<" 输入要增加的员工的编号:";cin>>num;for(i=0;i<t;i++)if(strcmp(p[i].no,num)==0)break;if(i!=t){cout«"Sorry,您要增加的员工编号已存在,请重新输入!"<<endl«endl;gotoC;}strcpy(p[t].no,num);cout«endl;p[t].add();break;case2:coutvv" 输入要删除的员工的编号:";cin>>num;for(i=0;i<t;i++){if(strcmp(p[i].no,num)==0){p[i].delet();break;}}cout«endl;if(i==t) {cout<<"sorry,您输入的员工编号有误"<<endl;tip1();}break;case3:coutvv" 输入要修改的员工的编号:";cin>>num;cout«endl;for(i=0;i<t;i++){if(strcmp(p[i].no,num)==0){p[i].change();break;}}if(i==t) {cout<<"sorry,您输入的员工编号有误"<<endl;tip1();}break;case4:coutvv" 输入要查看的员工的编号:";cin>>num;cout«endl;for(i=0;i<t;i++){if(strcmp(p[i].no,num)==0){P[i].find();break;}}if (i==t){cout<<"sorry,您输入的员工编号有误"<<endl;tip1();}break;case5:cout«"在职人员人数为:"<<on<<endl;cout«"中共党员人数为:"<<dangvvendl;cout«"女教职工人数为:"<<nv<<endl;cout«"咼职称人数为:"vvgaozhivvendl;cout«"搞学历人数为:"vvgaolivvendl;cout<<"(说明:1.在职人员不包括退休人员。"<<endl;coutvv"2. 高学历包括硕士与博士。)"<<endlvvendl;tip1();break;case6:flag仁0;cout«endl«endl«endl«endl«endl«endl«endl«endl<<"感您的使用,! "<<endl«endl<<endl<<endl<<endl;break;}}while(flagl);system("pause");}4、 程序调试与体会通过对程序的调试,发现很多问题只有通过调试以后才能被找到和发现,才能更好的美化和优化,是程序看起来更完美,让使用者更放心。5、 运行过程截图下面是我们程序的一些演示以与部分运行结果:.首先是程序执行的主菜单:—荃弄"聖黠晶删除资料⑶修改资料⑷査帰科®查看统计©退出.执行1-5的指令后都会出现如下界面,要求输入员工的编号,因为该程序是基于从编号入手的:BHFAPtoffaniFies;leri:ent\QQ;U5ers\3(H345285\filERecvxVC6D^§fcfi\Comin[)n\MSDe...z]n]x]输人要增僦员工旳编号」 斗当执行1号命令增加资料,并输入员工编号后要求输入与员工的资料:田"F:\ProgrdmFila5\rehccnt\QQ\Users\304345285\FlleRjeCT\VC6.0SS§fc®\Cominm\M8De._;0949324&编党入师共编党入师共■轟®m-一一在:级级:博分 面历H别龄势^<亍眼性年职职政的的的囱的的的T-二工二二一一工貝口否呂暦酉暦贝与口贝ms:.当输入容不合要求时会提示输入错误,并且提示合法的输入容:''FiXProgramFiles\Tencent\QQ\Users\3043^15285;FileRecv\VI6A)mlE^felfi\Conin)on\MSDe*..-nx|输入要增加的员工的蕭号’09408245现在来人编号为0&408245的档聚输帖工的职工;分券李生T爲淘血牡分谿例如:行政人氐教师‘一般员工.退赧人駅返聘人知临Sabtk职工分类^.当输入的编号已存在是会提示该编号已存在:f:\ProgramFiles\Tauent\QQ\U$ers\304345285\FileRecv\VC6JJ完整绿色Common\MSDe...-□囂鬆聽鬆鹽藕胃需:冷重新输入!输入長増加的员工的编号!.当执行删除资料、查找资料、修改资料后,如果输入的编号后有误,会提示编号不存在:S3't:\ProgramFiles\TencEnt\Qq\Users\3a43452a5\FleRecv^V匚石.□启整導色|K\Ccmnnon\MSDe...-□X

输人要删除的贞工的编号’甘 3'sorrvi您葡入的厨工编号有i吴。 _输人ENTEldig主菜单|.当执行修改资料,并输入正确的编号后,会出现该目录下的子菜单:"F:\ProgramFil»\Tencent\QQ\U$ers\304345285\FileRecv\VC6.0rom&^Connion\MSDe...n|x"F:\ProgramFil»\Tencent\QQ\U$ers\304345285\FileRecv\VC6.0rom&^Connion\MSDe...n|x4F4F菜单:修改资料―"F:\PtogramFiles.Tencent\QQ\User¥\3D4345205\FileRec7\VC6.O完整绿色JK\Common\M5[)e,..-□1输丿1要查看的员工的编号三09408211:的编号:89408211匚的跟工分类;返聘人员匚的性則=女I的年脏40匚的卑务:无匸的星林:中级匚的政拾面貌:中共覚员匚的星历匕硕士\ewte脛回主菜单丨(10).当执行查看统计后会出现如下界面:ST:\ProgramFlles\Terrert\ lfcers\3043452e5\FlteReVC6.0Z整扇色二]gX1翩人国人隸期14A袱党员人数为*10女钱阴工人数划5高技标人数勺丫—J搞学历人数Sh&尿叽直•在职人园不包疽退rk■o爪人贝◎2.高学历总括帧主及博二>输入ENTER返回主菜单!■四、结论通过本次课程设计,让我对C++这门学科对有了进一步的认识,熟练掌握了类与类模板的应用。以前对该课程的恐惧感都以消失,任何事情没有做不到只有愿不愿意去做。刚开始接到该题,心中确实充满困惑。不过在图书馆和网上找了一些资料看了后,便觉得思路就在眼前了,之前不过就是由于对该课程的恐惧而产生了一定的心里影响而已。之后凭借那闪现在眼前的点点思路,慢慢在琢磨,终于想出了大体的程序容。然后一个一个函数的思考,一步一步的编写,调试,做起来也就越来越顺手了。通过我的反复思考,程序中的错误得到顺利解决。

温馨提示

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

评论

0/150

提交评论