课程设计报告书(职工信息管理系统)_第1页
课程设计报告书(职工信息管理系统)_第2页
课程设计报告书(职工信息管理系统)_第3页
课程设计报告书(职工信息管理系统)_第4页
课程设计报告书(职工信息管理系统)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告课程:面向对象程序设计学号: 姓名: 张亮 班级: 10计72 教师: 王霞 徐州师范大学计算机科学与技术学院课程设计名称:职工信息管理系统1.设计内容:设计的职工信息管理系统,能完成功能:系统以菜单方式工作职工信息录入功能(职工信息用文件保存)职工信息浏览功能 输出查询和排序功能:职工信息删除、修改功能(任选项)2.设计目的与要求:2.1设计目的达到熟练掌握C+语言的基本知识和技能; 基本掌握面向对象程序设计的基本思路和方法; 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2.2设计要求要求利用面向对象的方法以及C+的编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。3.系统分析与设计3.1主要知识点利用类的成员函数调用类的数据成员完成系统的工作。3.2关键技术主要由worker类中的成员函数来完成对数据成员 num(工号),name(姓名),sex(性别),edu(学历),adress(地址),tel(电话),age(年龄),salary(薪水)的操作来实现系统的运行。系统以菜单方式运行。成员函数主要如下:(1)void menu();显示菜单函数,提供成员函数的选择。(2) void add();职工信息添加函数。(3)void modify();职工信息修改函数。(4)void dele();/职工信息删除函数。(5)void sort();职工信息排序函数。提供职工信息按照工号,姓名以及工资的升序和降序排序。(6)void search();/职工信息查找,提供职工信息按照工号,姓名,工资以及学历的查询。(7)void showworker();职工信息显示函数。(8) void save();职工信息以文件形式保存函数。3.3基本功能要求(1) 功能选择可以用菜单来实现,如上图所示。(2) 运行时给出明确的提示信息,机出错纠正信息。如:4.源程序代码*#include#includeworker.hint main()w0.menu();return 0;#includestring#include#define N 100/N作为最大职工总数int NUM=0;/用来计算职工数目int count;/用来暂时记录当前操作第几个职工int f=0;/f作为开关using namespace std;string p;/p作为接收菜单选项的字符串class workerpublic:worker()void menu();/显示菜单 void add();/职工信息录入void show();/职工信息显示void showworker();/显示职工信息在屏幕上void sort();/职工信息排序void search();/职工信息查找void dele();/职工信息删除void modify();/职工信息修改 void save();/职工信息以文件形式保存worker()private:string num,name,sex,edu,address,tel;int age,salary;worker wN;void worker:menu()/主菜单函数实现coutendl;cout*endl;cout* *endl;cout* 职工信息管理系统主菜单 *endl;cout* *endl;cout* 1.职工信息添加 *endl;cout* 2.职工信息修改 *endl;cout* 3.职工信息删除 *endl;cout* 4.职工信息排序 *endl;cout* 5.职工信息查找 *endl;cout* 6.职工信息显示 *endl;cout* 7.职工信息保存 *endl;cout* 0.退出 *endl;cout* *endl;cout*endl;coutendl;cout请选择数字编号07i1;while(!(i1=0&i1=7)cout输入有误,请重新输入:i1;switch(i1)case 1:add();break;case 2:modify();break;case 3:dele();break;case 4:sort();break;case 5:search();break;case 7:save();break;case 6:showworker();break;case 0:cout系统退出!endl;exit(0);default:break;void worker:add()/职工信息添加函数实现cout请输入职工信息:endl; cout工号t姓名t性别t学历t年龄t工资t地址t电话num;for(int i=0;iNUM;i+)while(num=wi.num)cout此职工编号已存在,请重新输入:num;wNUM.num=num;cinwNUM.namewNUM.sexwNUM.eduwNUM.agewNUM.salarywNUM.addresswNUM.tel;+NUM;count=NUM;cout是否返回主菜单? Y/Np;while(1)if(p=y|p=Y)menu();else if(p=n|p=N)cout系统退出!endl;exit(0);else coutp;void worker:show()/显示职工信息函数实现cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;coutnumtnametsextedutagetsalarytaddressttelendl;coutendl;void worker:modify()/职工信息修改函数实现if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();elsecout职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(int i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;cout请输入需要修改信息职工的工号:num1;int j=0,k;int flag=1;while(flag)for(;jcount;j+)if(num1=wj.num)flag=0;k=j;break;if(flag)cout不存在此员工,请重新输入:num1;cout你选择的职工的信息为:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk.agetwk.salarytwk.addresstwk.telendl;coutendl;cout*endl;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* 0.返回主菜单 *endl;cout*endl;coutendl;cout请选择数字编号08i3;while(i38)cout输入有误,请重新输入:i3;switch(i3)case 1:coutwk.num;cout修改信息已保存,现返回主菜单:endl;menu();break;case 2:;cout修改信息已保存,现返回主菜单:endl;menu();break;case 3:coutwk.sex;cout修改信息已保存,现返回主菜单:endl;menu();break;case 4:;cout修改信息已保存,现返回主菜单:endl;menu();break;case 5:coutwk.age;cout修改信息已保存,现返回主菜单:endl;menu();break;case 6:coutwk.salary;cout修改信息已保存,现返回主菜单:endl;menu();break;case 7:coutwk.address;cout修改信息已保存,现返回主菜单:endl;menu();break;case 8:coutwk.tel;cout修改信息已保存,现返回主菜单:endl;menu();break;case 0:menu();default:break;void worker:showworker()/职工信息显示函数实现if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();elsecout已保存的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(int i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;cout是否返回主菜单? Y/Np;while(1)if(p=y|p=Y)menu();else if(p=n|p=N)cout系统退出!endl;exit(0);else coutp;void worker:search()if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();elsecout请选择查找方式:endl;cout*endl;cout* 1.按工号查找 *endl;cout* 2.按姓名查找 *endl;cout* 3.按工资查找 *endl;cout* 4.按学历查找 *endl;cout* 0.返回主菜单 *endl;cout*endl;coutendl;cout请选择数字编号04i4;while(i44)cout输入有误,请重新输入:i4;if(i4=1)string num2;cout请输入要查询的职工的工号:num2;int j=0,k;int flag=1;while(flag)for(;jcount;j+)if(num2=wj.num)flag=0;k=j;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk.agetwk.salarytwk.addresstwk.telendl;break;if(flag)flag=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=2)string name2;cout请输入要查询的职工的姓名:name2;int j2=0,k2;int flag2=1;while(flag2)for(;j2count;j2+)if(name2=)flag2=0;k2=j2;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk2.agetwk2.salarytwk2.addresstwk2.telendl;break;if(flag2)flag2=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=3)int salary2;cout请输入要查询的职工的工资:salary2;int j3=0,k3;int flag3=1;while(flag3)for(;j3count;j3+)if(salary2=wj3.salary)flag3=0;k3=j3;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk3.agetwk3.salarytwk3.addresstwk3.telendl;break;if(flag3)flag3=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=4)string edu2;cout请输入要查询的职工的学历:edu2;int j4=0,k4;int flag4=1;while(flag4)for(;j4count;j4+)if(edu2=)flag4=0;k4=j4;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk4.agetwk4.salarytwk4.addresstwk4.telendl;break;if(flag4)flag4=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=0)menu();void worker:sort()/职工信息排序功能实现if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();elsecout请选择排序方式:endl;cout*endl;cout* 1.按工号排序(升序) *endl;cout* 2.按工号排序(降序) *endl;cout* 3.按姓名排序(升序) *endl;cout* 4.按姓名排序(降序) *endl;cout* 5.按工资排序(升序) *endl;cout* 6.按工资排序(降序) *endl;cout* 0.返回主菜单 *endl;cout*endl;coutendl;cout请选择数字编号06i5;while(i56)cout输入有误,请重新输入:i5;if(i5=1)for(int i=0;icount-1;i+)for(int j=0;jwj+1.num)string temp;temp=wj.num;wj.num=wj+1.num;wj+1.num=temp;cout按工号升序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=2)for(int i=0;icount-1;i+)for(int j=0;jcount-1-i;j+)if(wj.numwj+1.num)string temp;temp=wj.num;wj.num=wj+1.num;wj+1.num=temp;cout按工号降序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=3)for(int i=0;icount-1;i+)for(int j=0;jwj+1.name)string temp;temp=;=wj+1.name;wj+1.name=temp;cout按姓名升序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=4)for(int i=0;icount-1;i+)for(int j=0;jcount-i-1;j+)if(wj+1.name)string temp;temp=;=wj+1.name;wj+1.name=temp;cout按姓名降序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=5)for(int i=0;icount-1;i+)for(int j=0;jwj+1.salary)int temp;temp=wj.salary;wj.salary=wj+1.salary;wj+1.salary=temp;cout按工资升序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=6)for(int i=0;icount-1;i+)for(int j=0;jcount-i-1;j+)if(wj.salarywj+1.salary)int temp;temp=wj.salary;wj.salary=wj+1.salary;wj+1.salary=temp;cout按工资降序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=0)menu();void worker:dele()/职工信息删除功能实现if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();elsecout职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(int i=0;icount;i+)twi.agetwi.salarytwi.addresstwi.telendl;cout请输入需要删除信息职工的工号:num3;int j=0,k;int flag=1;while(flag)for(;jcount;j+)if(num3=wj.num)flag=0;k=j;break;if(flag)cout不存在此员工,请重新输入:num3;cout你选择的职工的信息为:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk.agetwk.salarytwk.addresstwk.telendl;cout确认请输入 Yt返回主菜单请输入 N p;while(1)if(p=y|p=Y)cout员工信息已删除!endl;for(

温馨提示

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

评论

0/150

提交评论