1、程序设计实训报告班级: 学号: 姓名: 2012年1月5日 一、课程设计的目的1.进一步巩固C+语言理论基础。2.熟练掌握程序设计的一般技巧和方法。3.培养解决综合性实际问题的能力。二、课程设计任务题目:职工信息管理系统题目要求:完成一个职工信息管理系统的设计,设计主要实现以下功能:(1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、参加工作时间和年龄。(2)使用集成的方法构成三个类(雇员类,教师类个工人类,其中雇员类是虚基类,教师类个工人类是派生类),相应的对象防治10个职工信息。(3)编写成员函数,用来输出数组内容。(4)按不同的类别输出职工信息,比如按系输出驾驶信息。(可选
2、功能)(5)检索(查找)指定信息(如按名字检索)题目 职工信息管理系统 一、题目分析 首先构建虚基类employee,定义私有成员和共有成员变量。再定义两个派生类teacher和workers及数据的输入,定义成员函数。然后用输出流活得选择菜单。 在主函数中定义整形choice用switch(choice).case语句执行选择菜单的功能二、程序代码#include #include using namespace std;class employeepublic: virtual void display()=0;protected: int num; string name; string
3、 sex; float income; int birthday; int workday; int age;class teacher:virtual public employeepublic: void getdata() cout请输入编号:num; cout请输入姓名:name; cout请输入姓别:sex; cout请输入工资:income; cout请输入生日:birthday; cout请输入工作时间:workday; cout请输入年龄:age; void display() cout编号:numendl; cout姓名:nameendl; cout姓别:sexendl; c
4、out工资:incomeendl; cout生日:birthdayendl; cout参加工作时间:workdayendl; cout年龄:ageendl; int getage() return age; int getnum() return num; string getname() return name; ;class worker:virtual public employeepublic: void getdata() cout请输入编号:num; cout请输入姓名:name; cout请输入姓别:sex; cout请输入工资:income; cout请输入生日:birthda
5、y; cout请输入参加工作时间:workday; cout请输入年龄age; void display() cout编号:numendl; cout姓名:nameendl; cout姓别:sexendl; cout工资:incomeendl; cout生日:birthdayendl; cout参加工作时间:workdayendl; cout年龄:ageendl; int getage() return age; int getnum() return num; string getname() return name; ;void menu(int &choice) coutt*endl;
6、coutttt 职工信息管理系统endl; coutt*endl; coutttt1. 增加一位教师记录endl; coutttt2. 增加一位工人记录endl; coutttt3. 显示全部职工记录endl; coutttt4. 删除一个教师记录endl; coutttt5. 删除一个工人记录endl; coutttt6. 按姓名检索所有信息endl; coutttt7. 退出endl; coutt*endl; coutt 请选择你要执行的功能(请输入你要完成的功能的序号):choice;int main() int choice=0; int indx1=0,indx2=0; bool f
7、lag=false; teacher t10; worker w10; while (1) int i=0; int temp; string tname; menu(choice); switch (choice) case 1: tindx1+.getdata(); break; case 2: windx2+.getdata(); break; case 3: cout显示所有教师信息:endl; for (i=0;i!=indx1;+i) ti.display(); cout显示所有工人信息:endl; for (i=0;i!=indx2;+i) wi.display(); break
8、; case 4: cout请输入要删除教师的编号temp; for (i=0;i!=indx1;+i) if (temp=ti.getnum() do ti=ti+1; +i; while (i!=indx1); cout已删除endl; -indx1; break; break; case 5: cout请输入要删除工人的编号temp; for (i=0;i!=indx2;+i) if (temp=wi.getnum() do wi=wi+1; +i; while (i!=indx2); cout已删除endl; -indx2; break; break; case 6: cout请输入姓
9、名:tname; for (i=0;i!=indx1;+i) if (tname=ti.getname() cout这位是教师endl; ti.display(); for (i=0;i!=indx2;+i) if (tname=wi.getname() cout这位是工人endl; wi.display(); break; case 7: flag=true; break; if (flag) break; return 0;三、运行结果显示菜单选择功能1.选择功能2选择功能3选择功能4功能选择5选择功能6选择功能7四、总结 虽然课程设计只有短短的几天,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。 回顾起此次课程设计,我感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。