




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书课 程 名 称: 面向对象程序设计 题 目: 公司员工管理系统 年级/专业/班: 学 生 姓 名: 学 号: 目 录 1 引 言 1.1 问题的提出 1.2任务与分析 2 程序的主要功能 2.1新增功能 2.2更改功能 2.3 删除信息 2.4查找功能 2.5显示功能 2.6全部删除功能 3 程序运行平台 4 总体设计 5 程序类的说明 6 模块分析 6.1 添加模块 6.2 显示模块 6.3 修改模块 6.4 查找模块 6.5 删除模块 6.6 清空模块 7 系统测试 引言1.1 问题的提出随着计算机的普及,网络进入大宗的家庭,不论在工作、学习还是生活中,人们越来越离不开它,社会上,计算机及使用计算机的人几乎是随处可见。人们用计算机,是因为它能反映现实世界,随着计算机越来越深入到人们的实际生活,如何把计算机科学更好的应用于实际,最大限度解决人们日常问题已经成为许多人热衷的研究方向。1.2 任务与分析1. 人数其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。2. 升级程序对所有人员有提升级别的功能3. 工资计算薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成 ,销售经理既拿固定月薪也领取销售提成。4. 修改能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息5. 在基本要求达到后,可设计出比较友好的界面(如下拉菜单),也可用VC+ ClassWizard 设计。2. 程序的主要功能1. 新增(添加新职员,计算工资)2. 更改(更改职员信息)3. 删除(删除职员信息)4. 查找(显示所要寻找的职员信息)5. 显示(显示所有职员的信息)6. 全删(删除所有职员的信息)3. 程序运行平台WINDOWS XP/2000 VC+4. 总体设计4.1 主要流程图开始选定相应操作序号退出增加修改删除查询显示输 入 数 据保 存 到 文 件退 出显示信息图2-1 流程图4.2 N-S图开始键盘输入操作序号判断炒作序号操作序号传入函数按要求输入相关数据数据保存到文件退出 图2-2 N-S图5. 程序类的说明class Employee /职工类int tag;/删除标记int no;/职工编号char name20;char zw20;/职工职位int salary;/职工工资public:Employee()char *getname() return name;/获取名字int gettag() return tag;/获取标记int getno() return no;/获取编号int getsalary()return salary;/获取工资void setzw(char q)/设置职位strcpy(zw,q);void setname(char na)/设置名字strcpy(name,na);void getsalary(int sa)salary=sa;void delna()tag=1;/删除void addemp(int n,int sa,char *na,char *q)/增加 tag=0;no=n;salary=sa;strcpy(name,na);strcpy(zw,q); void disp()/显示职工信息 coutsetw(10)nosetw(10)namesetw(10)salarysetw(10)zw endl;coutendl;/class Database/职工数据类int top;Employee readMaxr;public:Database()/将职工信息从employee.txt读取到read中 Employee s; top=-1; fstream file(employee.txt,ios:in); while (1) file.read(char *)&s,sizeof(s); if (!file) break; top+; readtop=s; file.close(); void clear()/删除所有 top=-1; renshu=0; /int addemp (int n, int sa,char *na,char*q) /增加职工 Employee *p=query(n); if (p=NULL) top+; readtop.addemp(n,sa,na,q); return 1; return 0; /Employee *query(int empid) for (int i=0;i=top;i+) if (readi.getno()=empid & readi.gettag()=0) return &readi; return NULL; /Employee *query1(char empna20) for (int i=0;i=top;i+) if (readi.getname()=empna) & readi.gettag()=0) return &readi; return NULL; /void disp() /职工信息显示 for (int i=0;i=top;i+) readi.disp(); /void empdata(); Database() /将read中的信息读如到employee.txt中 fstream file(employee.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,sizeof(readi); file.close(); ;6. 模块分析6.1添加:void Database:empdata()/职工维护 int choice=1; int m=1;int b=1;char rname20; int empid; int empsa;char q20;Employee *r; while (choice!=0) cout; cinchoice; switch (choice) case 1: coutsetw(50) n; coutsetw(50) 请选择您所需的操作 n; coutsetw(50) 经理: 1,并按回车键 n; coutsetw(50) 销售经理: 2,并按回车键 n; coutsetw(50) 兼职推销员: 3,并按回车键 n; coutsetw(50) 兼职技术人员 4,并按回车键 n; coutsetw(50) n; coutsetw(50) 公司总人数:renshum;while(m!=0)switch(m)case 1:coutempid;coutrname; addemp(empid,8000,rname,经理);renshu+;break; case 2:coutempid;coutempsa;coutrname; addemp(empid,4000+empsa,rname,销售经理);renshu+;break; case 3:coutempid;coutempsa;coutrname; addemp(empid,empsa,rname,兼职推销员);renshu+;break;case 4:coutempid;coutempsa;coutrname; addemp(empid,20*empsa,rname,兼职技术人员);renshu+;break; break;break;6.2更改:case 2: coutempid;r=query(empid);if (r=NULL) cout该职工不存在endl; break; cout输入新的工资:empsa;r-getsalary(empsa);cout请输入新的及级别q;r-setzw(q);addemp(empid,empsa,rname,q);break; 6.3删除:case 3: coutempid;r=query(empid); if (r=NULL) cout该读者不存在delna();break; 6.4查找:case 4: coutsetw(50) n; coutsetw(50) 请选择您所需的操作 n; coutsetw(50) 按编号查找1,并按回车键 n; coutsetw(50) 返回 2,并按回车键 n; coutsetw(50)b;while(b!=0)switch(b)case 1:coutempid; r=query(empid); if (r=NULL) cout该职工不存在endl; break; coutendl; coutsetw(10)编号setw(10)姓名setw(10)工资setw(10)级别 endl;coutdisp();break;case 2:break;break;break;6.5显示:case 5:coutendl; coutsetw(10)编号setw(10)姓名setw(10)工资setw(10)级别 endl;coutendl;disp();6.6全部删除:case 6: clear(); break; /void main()int choice=1;Database EmpDB;while(choice!=0)cout*endl;coutendl;coutendl;coutsetw(20)*欢迎使用职工管理系统*endl;coutendl;coutendl;coutsetw(50) n;coutsetw(50) 欢迎使用公司员工管理系统 n; coutsetw(50) n; coutsetw(50) 请选择您所需的操作 n;coutsetw(50) n; coutsetw(50) 操作 1,并按回车键 n;coutse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2293-2025在线钠离子计校准规范
- 2025年自行车 环评报告
- 天津市人民医院放疗物理师资格认证
- 大同市中医院护理科研国际交流考核
- 唐山市人民医院血液透析医师上岗资格认证
- 邯郸市中医院人才梯队建设与继任者计划试题
- 上海市中医院复发预防指导考核
- 张家口市人民医院皮秒激光技术专项考核
- 通辽市人民医院神经介入与开放手术协作考核
- 忻州市中医院图像判读技能考核
- 生产与运作管理案例大全
- 外科学-颈部疾病课件
- 【优选】茶叶中的化学成分PPT文档
- LY/T 1955-2011林地保护利用规划林地落界技术规程
- GB/T 5272-2017梅花形弹性联轴器
- 一年级《劳动实践指导手册》《学习用品我整理》教案
- 高速铁路隧道衬砌拆换支架施工方案
- 班组‘五大员’管理办法
- 急性中毒急危重症护理学
- 龟虽寿-完整版课件
- 2018山东省东营市中考地理真题及答案
评论
0/150
提交评论