




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+课程设计实验报告 班级: 计科1302班 学号: 1308030219 姓名: 王志飞 时间: 2014年7月2日 题目:高校教职工信息表一、课程设计目的通过课程设计,进一步熟悉C中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C的理解与Visual C环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。二、课程设计题目:高校教职工信息表设计说明与要求:1、 高校主要有2类职工:教师和工人。要求建立职工信息数据,包括职工编号,姓名,性别,工资,出生时间,参加工作时间和年龄。2、 使用继承的方法构造3个类,(即雇员类-虚基类,教师类和工人类-派生类)使用相应的对象放置10个职工信息。3、 编写同名display()成员函数,用来输出数组的内容。4、 按不同类别输出职工信息,比如按系输出教师信息。(可选功能)5、 计算职工的平均年龄。雇员类6、 类的层次结构大体如下:工人类教师类7、 输入数据要求每类人员不能少于10人,并按以下格式输出:编号姓名性别工资年龄8、 总体设计,要有一个菜单,用于选择各项功能,其中1增加一位教师记录。2增加一位工人记录。3显示全部职工记录。4计算教师平均年龄。5计算工人平均年龄6删除一个教师。7删除一个工人。8按系输出教师信息(可选)。9按姓名检索所有信息。10结束程序运行。三、系统设计总体是设计出一个功能齐全,方便可行的高校教职工信息表,具体功能有增加、删除、显示职工信息,计算平均年龄,按系、名检索信息等。首先用继承的方法构造三个类,虚基类的一个雇员类和同为派生类的教师类和工人类,并使用相应的对象分别放置10个雇员。其次使用相应的函数分别实现相应的功能。四、系统实现#include#includevoid menus();void addteacher(); void addworker();void showall(); void teacherage();void workerage(); void closet();void closew();void showxi();void search();void menu();void setstart();void searchxi();int t=0,w=0;using namespace std;class guyuanpublic:guyuan();void getdate();void display();int showage();long number;string name;int birthyear;int birthmonth;int birthday;char sex;int wages;int age;int workage;int guyuan:showage()return(age);void guyuan:getdate()cout请输入职工编号number;cout请输入职工姓名name;cout请输入职工出生日期birthyearbirthmonthbirthday;cout请输入职工性别sex;cout请输入职工工资wages;cout请输入职工工龄workage; age=2014-birthyear;void guyuan:display()cout编号: numberendl;cout姓名: nameendl; cout年龄: age岁endl;cout出生年月: birthyear年birthmonth月birthday日endl;cout性别: sexendl;cout工资: wages元endl;cout工龄: workage年endl;class teacher: virtual public guyuanpublic:string xi;void getdate();void display();teacher jiaoshi50;void teacher:getdate()guyuan:getdate();cout请输入教师所在院系:xi;void teacher:display()cout工作: 教师endl;cout院系:xiendl;guyuan:display();class worker: virtual public guyuanpublic:void display();worker gongren50;void worker:display()cout工作: 工人endl;guyuan:display();void menu()char choice;coutendl;cout 1、增加一位教师记录 endl;cout 2、增加一位工人记录 endl;cout 3、显示全部职工记录 endl;cout 4、计算教师平均年龄 endl;cout 5、计算工人平均年龄 endl;cout 6、删除一个教师 endl;cout 7、删除一个工人 endl;cout 8、按系搜索 endl;cout 9、按名字检索所有信息 endl;cout 0、结束程序运行 endl;coutchoice;switch(choice)case 1: addteacher(); break;case 2: addworker();break; case 3: showall(); break;case 4: teacherage();break;case 5: workerage(); break;case 6: closet();break; case 7: closew();break;case 8: searchxi();break; case 9: search();break;case 0: return;default: cout输入错误请重新输入endl; menus();break;void menus()menu();void searchxi()string xiname;int i;cout请输入要查找的系名xiname;for(i=0;it;i+)if(jiaoshii.xi=xiname)jiaoshii.display();menu();void addteacher()jiaoshit.getdate();t=t+1;menu();void addworker()gongrenw.getdate();w=w+1;menu();void showall()int i,j;for(i=0;it;i+)jiaoshii.display();for(j=0;jw;j+)gongrenj.display();menu();void teacherage()int age=0,i;for(i=0;it;i+)age=age+jiaoshii.showage();age=float(age)/t;cout教师的平均年龄为:age岁endl;menu();void workerage()int age=0,i;for(i=0;iw;i+)age=age+gongreni.showage();age=float(age)/w;cout工人的平均年龄为:age岁endl;menu();void closet()string xm;int i,j=0;cout请输入要删除人员的姓名xm;for(i=0;it;i+)if(=xm)cout该人员信息如下:;jiaoshii.display();cout确认要删除该人员信息?0、否1、是j;if(j!=0)jiaoshii=jiaoshit-1;t=t-1;j=0;cout成功删除!endl;menu();void closew()string xm;int i,j=0;cout请输入要删除人员的姓名xm;for(i=0;iw;i+)if(=xm)cout该人员信息如下:;gongreni.display();cout确认要删除该人员信息?0、否1、是j;if(j!=0)gongreni=gongrenw-1;w=w-1;j=0;cout成功删除!endl;menu();void search()string xm;int i;cout请输入要搜索人员的姓名xm;for(i=0;it;i+)if(=xm)cout该人员信息如下:;jiaoshii.display();if(=xm)cout该人员信息如下:;gongreni.display();menu();void setstart()int i;cout现在开始初始化程序,请按提示输入endl;for(i=0;i1;i+)jiaoshii.getdate();t=t+1;for(i=0;i1;i+)gongreni.getdate();w=w+1;int main()setstart();menu();return 0;5、 系统测试 初始化程序建立初始成员增加一个教师记录增加一个工人记录显示所有记录计算教师平均年龄计算工人平均年龄删除一个教师删除一个工人按系搜索按名字查找结束六、总结 1个人完成内容: 所有部分2 遇到的问题及解决方案:问题主要是虚基类的构造与实现,因为虚基类的不熟悉,我们花了很大功夫在虚基类的构造与实现上了。查了很多资料。其次,考虑到教师及工人的删除,我们打算用链表实现,但数据结构没有学习给我们造成了很大困扰最后我们换了一种实现方式。3设计体会本次c+上机实际操作对我感触良多,首先认识到自己对课本知识的认识上的不足,以及实际设计的难度是平时学习中遇到常见的问题的集合,各种问题都是以前学习是欠下的债。在实际的操作的过程中我们组员能同心协力的完成任务,让我很高兴,这说明团队合作是一件很重要的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省徐州市新沂市2021-2022学年五年级上学期科学期中试卷(含答案)
- 民法典的新变化
- 江苏省连云港市赣榆区2026届化学高一第一学期期末联考模拟试题含解析
- 2026届湖北随州市普通高中化学高一上期中达标检测模拟试题含解析
- 2025年考研英语(一)长篇阅读技巧提升与押题卷
- 2025年注册电气工程师考试试卷 电气设计专项训练:电气工程设计与施工协调
- 2025年注册土木工程师考试真题试卷 建筑结构设计专项训练
- 2025年高考英语阅读理解专项训练:长篇阅读技巧揭秘
- 星光学校开展校园安全生产大排查大整治行动自查自纠报告
- 测量员岗位职责是什么
- 2025《义务教育道德与法治课程标准(2022年版)》测试题库及答案(共4套)
- 2025广东省中考英语真题(原卷版)
- 2025年四川省投资集团有限责任公司招聘笔试备考题库含答案详解
- 变电站防恐课件
- 2025年关于村支部书记的面试题及答案
- 2025湖南非全日制用工劳动合同范本2
- 2025年农村商业银行招聘笔试真题及答案(可下载)
- 熏蒸药品管理办法
- 收银系统操作培训
- 卓越幼儿园教师健康专题培训课件
- 个股期权培训课件
评论
0/150
提交评论