1《C++程序设计》课程设计报告高校教职工人事管理系统年级/专业/班:学生姓名:学号:指导教师:开题时间:2010年09月06日完成时间:2010年09月28日2目录一、引言............................................................1二、设计目的与任务..................................................11、本课程设计的目的.............................................12、本课程设计的任务.............................................1三、设计方案........................................................11、总体设计.....................................................12、详细设计.....................................................23、程序清单.....................................................54、程序调试与体会..............................................145、运行过程截图................................................14四、结论...........................................................17五、致谢...........................................................17六、参考文献.......................................................171《C++程序设计语言》课程设计——高校教职工人事管理系统一、引言随着人们生活水平的提高,计算机发展异常迅速。如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。通过计算机对各类问题求解已经成为一种高效、快捷的方式。本课程设计就是用C++研究两点距离的求解的问题,实现对两点距离的问题求解,和实现类模板的应用以及函数的调用。二、设计目的与任务1、本课程设计的目的1)通过课程设计更进一步理解C++的基础知识和面向对象的思想。2)训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。3)熟练掌握C++中类及类模板在程序中的应用,并熟练了解类中函数的调用。2、本课程设计的任务使用类实现编写一个高校教职工人事管理系统,能够实现教职工信息增加、删除、修改、查找,能够统计在职人员、中共党员、女教职工、高职称、高学历的人数,信息的输入输出能够重载输入与输出操作符,并且要求有错误提示功能,例如输入日期,输入错误提示重新输入。三、设计方案1、总体设计(1)定义员工(Person)类,其中包括编号、职工分类(行政人员,教师,一般员工,退休人员,返聘人员,临时工)、性别、年龄,职务(无,科级2,处级,地级);、职称(无,初级,中级,高级);、政治面貌(群众,中共党员,民主党派)、学历(中专,大专,大学,硕士,博士)。(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);//给类赋值下面程序流程图中的判断框必须用菱形表示,请修改3(1)Person::add()(2)Person::delete()(3)Person::change()4(4).Person::find()53、程序清单/*改程序需要在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处级高级中共党员大学*///下面程序开始#includeiostream#includecstringusingnamespacestd;constintN=1000;intt=0;inton=0;//统计在职人员人数intdang=0;//统计中共党员人数intnv=0;//统计女性职工人数intgaozhi=0;//统计高职称人数intgaoli=0;//统计高学历人数classPerson6{public:charsex[10];//性别charduty[30];//职工分类intage;//年龄charpolitical[30];//政治面貌charrecord[30];//学历charposition[30];//职务charzhicheng[30];//职称charno[100];//编号voidadd();//增加信息voiddelet();//删除信息voidchange();//修改信息voidfind();//查找信息voidpush(Personpp);//给列成员赋值};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;if(strcmp(duty,退休人员))on++;if(strcmp(sex,女)==0)nv++;if(strcmp(zhicheng,高级)==0)gaozhi++;if(strcmp(political,中共党员)==0)dang++;if(strcmp(record,硕士)==0||strcmp(record,博士)==0)gaoli++;}voidtip(){cout输入ENTER返回子菜单!endl;getchar();getchar();system(cls);}voidtip1(){cout输入ENTER返回主菜单!endl;getchar();7getchar();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:cout输入员工的职工分类:;cinduty;if(strcmp(duty,行政人员)&&strcmp(duty,教师)&&strcmp(duty,一般员工)&&strcmp(duty,退休人员)&&strcmp(duty,返聘人员)&&strcmp(duty,临时工)){cout--(请输入正确的职工分类,例如:行政人员,教师,一般员工,退休人员,返聘人员,临时工)endl;gotoA1;}if(strcmp(duty,退休人员))on++;A2:cout输入员工的性别:;cinsex;if(strcmp(sex,男)&&strcmp(sex,女)){cout--(请输入正确的性别,例如:男,女)endl;gotoA2;}if(strcmp(sex,女)==0)nv++;A3:cout输入员工的年龄:;cinage;if(age=0){cout--(请输入正确的年龄,例如:18等)endl;gotoA3;}A4:8cout输入员工的职务:;cinposition;if(strcmp(position,无)&&strcmp(position,科级)&&strcmp(position,处级)&&strcmp(position,地级)){cout--(请输入正确的职务,例如:无,科级,处级,地级)endl;gotoA4;}A5:cout输入员工的职称:;cinzhicheng;if(strcmp(zhicheng,无)&&strcmp(zhicheng,初级)&&strcmp(zhicheng,中级)&&strcmp(zhicheng,高级)){cout--(请输入正确的职称,例如:无,初级,中级,高级)endl;gotoA5;}if(strcmp(zhicheng,高级)==0)gaozhi++;A6:cout输入员工的政治面貌:;cinpolitical;if(strcmp(political,群众)&&strcmp(political,中共党员)&&strcmp(political,民主党派)){cout--(请输入正确的政治面貌,例如:群众,中共党员,民主党派)endl;gotoA6;}if(strcmp(political,中共党员)==0)dang++;A7:cout输入与员工的学历:;cinrecord;if(strcmp(record,中专)&&strcmp(record,大专)&&strcmp(record,大学)&&strcmp(record,硕士)&&strcmp(record,博士)){cout--(请输入正确的学历,例如:中专,大专,大学,硕士,博士)endl;gotoA7;}if(strcmp(record,硕士)==0||strcmp(record,博士)==0)gaoli++;cout编号为no的档案录入结束