《2023年c课程设计实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年c课程设计实验报告.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、下载可编辑.专业.整理.C+课程设计实验报告下载可编辑.专业.整理.班级:计科 1302 班学号:1308030219 姓名:王志飞时间:2014 年 7 月 2 日需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.题目:高校教职工信息表一、课程设计目的通过课程设计,进一步熟悉C 中类的概念、类的封装、继承的实现方式。
2、了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对 C的理解与 Visual C 环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。二、课程设计题目:高校教职工信息表设计说明与要求:1、高校主要有2 类职工:教师和工人。要求建立职工信息数据,包括职工编号,姓名,性别,工资,出生时间,参加工作时间和年龄。2、使用继承的方法构造3 个类,(即雇员类-虚基类,教师类和工人类-派生类)使用相应的对象放置10 个职工信息。3、编写同名 display()成员函数,用来输出数组的内容。4、按不同类别输出职工信息,比如按系输出教师信息。(可选功能)5、计算职工
3、的平均年龄。6、类的层次结构大体如下:7、输入数据要求每类人员不能少于10 人,并按以下格式输出:编号姓名性别工资年龄工人类教师类雇员类需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.8、总体设计,要有一个菜单,用于选择各项功能,其中1 增加一位教师记录。2 增加一位工人记录。3 显示全部职工记录。4 计算教师平均年
4、龄。5 计算工人平均年龄6 删除一个教师。7 删除一个工人。8 按系输出教师信息(可选)。9 按姓名检索所有信息。10 结束程序运行。三、系统设计总体是设计出一个功能齐全,方便可行的高校教职工信息表,具体功能有增加、删除、显示职工信息,计算平均年龄,按系、名检索信息等。首先用继承的方法构造三个类,虚基类的一个雇员类和同为派生类的教师类和工人类,并使用相应的对象分别放置10 个雇员。其次使用相应的函数分别实现相应的功能。四、系统实现#include 需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时
5、间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.#include void 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();in
6、t t=0,w=0;using namespace std;class guyuan public:guyuan();void getdate();void display();需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.int showage();long number;string name;int birt
7、hyear;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()co
8、ut编号:numberendl;cout 姓名:nameendl;cout 年龄:age 岁endl;cout出 生 年 月:birthyear年 birthmonth月birthday日endl;cout 性别:sexendl;cout 工资:wages元endl;cout 工龄:workage年endl;class teacher:virtual public guyuan 需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输
9、出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.public: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 guyuan public:void display(
10、);需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.;worker gongren50;void worker:display()cout工作:工人endl;guyuan:display();void menu()char choice;cout endl;cout 1、增加一位教师记录endl;cout 2、增加一
11、位工人记录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;cout choice;switch(choice)case 1:addteacher();break;case 2:addworker();break;case 3:showall();break;case 4:teacherage();break;case 5:worker
12、age();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()需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输
13、出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.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();需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步
14、熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.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)
15、/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岁
16、endl;menu();void closet()string xm;int i,j=0;cout请输入要删除人员的姓名 xm;for(i=0;it;i+)需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.if(jiaoshii.name=xm)cout该人员信息如下:;jiaoshii.display();cout确
17、认要删除该人员信息?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(gongreni.name=xm)cout该人员信息如下:;gongreni.display();cout确认要删除该人员信息?0、否 1、是j;if(j!=0)gongreni=gongrenw-1;w=w-1;j=0;cout 成功删除!endl;menu();void search()需求分析类
18、层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.string xm;int i;cout请输入要搜索人员的姓名 xm;for(i=0;it;i+)if(jiaoshii.name=xm)cout该人员信息如下:;jiaoshii.display();if(gongreni.name=xm)cout该人员信息如下:;gongre
19、ni.display();menu();void setstart()int i;需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.cout现在开始初始化程序,请按提示输入 endl;for(i=0;i1;i+)jiaoshii.getdate();t=t+1;for(i=0;i1;i+)gongreni.getdat
20、e();w=w+1;int main()setstart();menu();return 0;五、系统测试初始化程序建立初始成员需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.增加一个教师记录需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工
21、编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.增加一个工人记录需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.显示所有记录计算教师平均年龄需求分析类层次设计模块
22、分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.计算工人平均年龄删除一个教师需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结
23、构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.删除一个工人需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.按系搜索按名字查找结束需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使
24、用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.六、总结1 个人完成内容:所有部分2 遇到的问题及解决方案:问题主要是虚基类的构造与实现,因为虚基类的不熟悉,我们花了很大功夫在虚基类的构造与实现上了。查了很多资料。其次,考虑到教师及工人的删除,我们打算用链表实现,但数据结构没有学习给我们造成了很大困扰最后我们换了一种实现方式。3 设计体会本次 c+上机实际操作对我感触良多,首先认识到自己对课本知识的认识上的不足,以及实际设计的难度是平时学习中遇到常见的问题的集合,各种问题都是以前学习
25、是欠下的债。在实际的操作的过程中我们组员能同心协力的完成任务,让我很高兴,这说明团队合作是一件很重要的事情,特别是在我们遇到大型项目及一些难度特别大的题目是,团队的力量越能显现。一个大型项目需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每下载可编辑.专业.整理.的完成现在绝不是一个人厉害就可以解决的,同心协力才是王道。一个好的团队,分工很重要,我们分工不同大家在交流中不断成长,不断学习,一周的时间说长不长说短不短,但是对于一个好的系统来说我们的方案还存在着诸多不足,我们只是完成了基本功能的实现,并没有使这个东西能成为一个产品,我们会在以后继续完善,争取早日做出自己的产品来。王志飞成绩:王志飞需求分析类层次设计模块分解编码测试模块组装与整体调试的全过程加深对的理解与环境的使用逐步熟悉程序设计的建立职工信息数据包括职工编号姓名性别工资出生时间参加工作时间和年龄使用继承的方法构造个类即雇员类虚基类信息比如按系输出教师信息可选功能计算职工的平均年龄类的层次结构大体如下雇员类教师类工人类输入数据要求每