




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南科技学院课程设计报告课程名称:计算机高级语言(C+)课程设计课程设计题目:人事信息管理系统系:数学系专 业:信息与计算科学年级、班:信计0801姓 名:XXX学 号:200805002128指导教师:XXX职 称:讲师200X年XX月XX日目 录1. 需求分析-22. 概要设计-23. 程序实现思路-44. 设计总结-65. 参考文献-76. 源代码-71一、 需求分析本课程设计要求设计一个人事信息管理系统,主要功能有:建立职工信息数据,包括职工号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。实现数据录入、数据删除、数据修改、数据浏览和数据查询等功能。用文件保存数据二、 概要设计(一)抽象数据类型定义表序号成员名数据类型含义1snoint编号2namestring姓名3birthdayint出生时间4Adateint参工时间5salarydouble工资6sexstring性别7ageint参工年龄8flagbool记录修改标志9sm100Staff记录数组 2(二)主程序的流程 int sno; int age;int birthday,Adate; double salary; string sex;string name;int count;bool flag;staff sm100struct staffstruct Slistvoid StaffClear(SList &slist);void StaffInsert(SList &slist); void StaffDelete(SList &slist); void StaffFind(SList &slist); void StaffView(SList &slist); void StaffInit(SList &slist); void StaffXG(SList &slist); void StaffSave(SList &slist); int Search(SList &slist,int sno); void Exit(SList &slist); 3(三)各程序模块的功能void StaffClear(SList &slist); /清空职工记录void StaffInsert(SList &slist); /插入职工记录void StaffDelete(SList &slist); /删除职工记录void StaffFind(SList &slist); /查找某编号的职工记录void StaffView(SList &slist); /显示所有职工的记录void StaffInit(SList &slist); /初始化职工数据void StaffXG(SList &slist); /修改职工数据void StaffSave(SList &slist); /将数据保存到文件int Search(SList &slist,int sno); /查找编号为sno的职工,返回记录元素的下标void Exit(SList &slist); /退出程序三、 程序实现思路(1)设计菜单实现功能建立职工信息数据,包括职工号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。实现数据录入、数据删除、数据修改、数据浏览和数据查询等功能。用文件保存数据4(2)设计类与对象struct Staff int sno; /编号 int age; int birthday,Adate; double salary; string sex;string name; /姓名;struct SList int count; /职工人数 bool flag; /记录修改标志,false-没改变,true-已改变 Staff sm100; /记录数组;void StaffClear(SList &slist); /清空职工记录void StaffInsert(SList &slist); /插入职工记录void StaffDelete(SList &slist); /删除职工记录void StaffFind(SList &slist); /查找某编号的职工记录void StaffView(SList &slist); /显示所有职工的记录void StaffInit(SList &slist); /初始化职工数据void StaffXG(SList &slist); /修改职工数据void StaffSave(SList &slist); /将数据保存到文件int Search(SList &slist,int sno); /查找编号为sno的职工,返回记录元素的下标void Exit(SList &slist); /退出程序(3)通过类的调用实现功能设计case 1: StaffInsert(slist); break; case 2: StaffView(slist); break; case 3: StaffFind(slist); break; 5 case 4: StaffXG(slist); break; case 5: StaffDelete(slist); break; case 6: StaffSave(slist); break; case 7: StaffClear(slist); break; case 0: Exit(slist); break; default: cout输入错误!;四、设 计 总 结经过了几周的摸索与探讨,终于在老师和同学的帮助下完成了这次的课程设计,又完成了一次挑战,从中学到了很多。知道了只要坚持就会有收获,只要付出就会成功。对我而言,这次课程设计并不是那么容易完成的,不过我还是努力的去做,遇到不懂的就问同学、查资料等等,终于有了这次的成果,虽然不是很完美,但却还是很欣慰的。 此次课程设计使我更好的理解了所学过的知识,进一步学习和了解了对程序的设计和编写,从中体会到了面向对象程序设计的便利。懂得了在进行编写程序之前,要有明确的目标和整体的设计思想,对整个程序的框架结构的思考是十分重要和关键的。另外还需注意细节,往往被我们所忽视的细节部分成了是否成功的关键。从中我也发现了自己还有许多的不足之处,比如说书本上的知识6都不是很熟悉,也没有仔细的去看,很多细节部分也没注意,导致在编程过程中出现了许多的差错。虽然这次编程中还有参考程序,使编程难度下降了很多,但我依然花费了不少时间,这让我感到很不满意。同时也感到自己在这门课程上下的功夫还不足。下定决心以后要好好学习,尽努力自己最大的把该门课程学好。 五、参 考 文 献1)谭浩强 C+程序设计清华出版社 2007,5六、源 代 码人事信息管理系统程序staff.h#ifndef STAFF_H_INCLUDED#define STAFF_H_INCLUDEDusing namespace std;struct Staff int sno; /编号 int age; int birthday,Adate; double salary; string sex;string name; /姓名;7 int count; /职工人数 bool flag; /记录修改标志,false-没改变,true-已改变 Staff sm100; /记录数组;void StaffClear(SList &slist); /清空职工记录void StaffInsert(SList &slist); /插入职工记录void StaffDelete(SList &slist); /删除职工记录void StaffFind(SList &slist); /查找某编号的职工记录void StaffView(SList &slist); /显示所有职工的记录void StaffInit(SList &slist); /初始化职工数据void StaffXG(SList &slist); /修改职工数据void StaffSave(SList &slist); /将数据保存到文件int Search(SList &slist,int sno); /查找编号为sno的职工,返回记录元素的下标void Exit(SList &slist); /退出程序#endif / STAFF_H_INCLUDEDMenu.h#ifndef MENU_H_INCLUDED#define MENU_H_INCLUDED#includestaff.hvoid ShowMenu();void ShowTip();8void DoMenu(char n,SList &slist);#endif / MENU_H_INCLUDEDStaff.cpp#include #include #include #include staff.hvoid StaffInit(SList &slist) /初始化职工数据 ifstream infile(data.txt); slist.count=0; /职工改变标志置false if (!infile) cerrslist.count; /读入职工人数 for (int i=0;slist.smi.sexslist.smi.salaryslist.smi.birthdayslist.smi.Adateslist.smi.age; infile.close(); /关闭文件void StaffClear(SList &slist) /清空职工记录9 slist.count=0; /职工人数清0 slist.flag=true; /数据已修改void StaffInsert(SList &slist) /插入职工记录 int sno=0,n=-1,birthday=0,Adate=0; double salary=0; string name,sex; cin.sync(); /清空输入缓冲区 coutsno; coutname; coutsex; coutsalary; coutbirthday; coutAdate; if (sno0) cout输入的编号有误,插入记录失败!endl; return; /结束函数 else10 n=Search(slist,sno); /查找编号为sno的职工 if (n!=-1) / 已有该编号 cout该编号已存在,插入记录失败!endl; return; else /该编号不存在,执行数据插入操作 slist.smslist.count.sno=sno; =name; slist.smslist.count.sex=sex; slist.smslist.count.salary=salary; slist.smslist.count.birthday=birthday; slist.smslist.count.Adate=Adate; slist.smslist.count.age=Adate/10000-birthday/10000; slist.count+; slist.flag=true; /数据已修改 cout成功插入一个职工信息!endl; int Search(SList &slist,int sno) /查找编号为sno的职工,返回记录元素的下标 for (int i=0;islist.count;i+) if (slist.smi.sno=sno) return i; return -1;11void StaffDelete(SList &slist) /删除职工记录 int sno=-1,n=-1; coutsno; n=Search(slist,sno); if (n!=-1) /找到该编号的记录,执行删除操作 for (int i=n;islist.count-1;i+) slist.smi=slist.smi+1; slist.flag=true; /数据已修改 slist.count-; /职工人数减1 cout已成功删除该职工信息!endl; else cout没有找到该职工的编号!endl;void StaffFind(SList &slist) /查找某编号的职工记录 int sno=-1,n=-1; if (slist.count=0) cout没有职工记录!endl; else 12 coutsno; n=Search(slist,sno); /找该编号的记录元素的下标 if (n!=-1) /找到,输出职工信息 coutsetw(6)编号setw(12)姓名setw(12)性别setw(12)工资setw(12)出生时间setw(12)参工时间setw(12)年龄endl; coutsetw(6)slist.smn.snosetw(12)setw(12)slist.smn.sexsetw(12)slist.smn.salarysetw(12)slist.smn.birthdaysetw(12)slist.smn.Adatesetw(12)slist.smn.ageendl; else cout没有找到编号为sno的职工记录!endl; void StaffView(SList &slist) /显示所有职工的记录 Staff temp; if (slist.count!=0) /职工数不为0则执行排序操作 for (int i=0;islist.count-1;i+) /冒泡排序 for (int j=i;jslist.smj+1.sno) 13 temp=slist.smj; slist.smj=slist.smj+1; slist.smj+1=temp; cout共有职工slist.count人endl; coutsetw(6)编号setw(12)姓名setw(12)性别setw(12)工资setw(12)出生时间setw(12)参工时间setw(12)年龄endl; for (int i=0;islist.count;i+) coutsetw(6)slist.smi.snosetw(12)setw(12)slist.smi.sexsetw(12)slist.smi.salarysetw(12)slist.smi.birthdaysetw(12)slist.smi.Adatesetw(12)slist.smi.ageendl;void StaffSave(SList &slist) /将数据保存到文件 ofstream outfile(data.txt); /创建文件输出流 if (!outfile) cerr错误:数据文件不能打开!n; else outfileslist.countendl; /写入职工人数 for (int i=0;islist.count;i+) /写入职工信息 outfileslist.smi.sno slist.smi.sex slist.smi.salary slist.smi.birthday slist.smi.Adate slist.smi.ageendl;14 slist.flag=false; /数据修改标志置false cout保存成功!endl; void StaffXG(SList &slist) int sno=0,n=-1,birthday=0,Adate=0; double salary=0; string name,sex; cin.sync(); /清空输入缓冲区 coutsno; if (sno0) cout输入的编号有误,插入记录失败!endl; return; /结束函数 n=Search(slist,sno); /查找编号为sno的职工 if (n!=-1) / 已有该编号 coutname; coutsex; coutsalary; coutbirthday;15 coutAdate; =name; slist.smn.sex=sex; slist.smn.salary=salary; slist.smn.birthday=birthday; slist.smn.Adate=Adate; slist.smn.age=Adate/10000-birthday/10000; slist.flag=true; /数据已修改 cout成功修改一个职工信息!endl; void Exit(SList &slist)/退出程序 char ch=Y; if (slist.flag) /判断数据是否修改 coutch; if (ch=y|ch=Y) StaffSave(slist); cout已安全退出,;system(pause); /程序暂停,按任一键继续16 exit(0); /退出程序Menu.cpp#include #include menu.husing namespace std;void ShowMenu() cout|-|endl; cout|
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024秋八年级道德与法治上册 第四单元 远离犯罪 第十课 认识刑法 第3框 正当防卫与紧急避险说课稿 教科版
- 第4课 制作简单表格说课稿-2025-2026学年初中信息技术川教版八年级上册-川教版2018
- 1.2 地球的运动 第二课时 说课稿-2025-2026学年七年级地理上学期人教版
- 炉灶维修创新创业项目商业计划书
- 线上社交读书会创新创业项目商业计划书
- 肘关节康复机器人企业制定与实施新质生产力项目商业计划书
- 美发沙龙跨界艺术展合作创新创业项目商业计划书
- 社区便利店智能化升级创新创业项目商业计划书
- 2025-2030口腔种植牙耗材集采政策对民营医疗机构经营影响评估
- 2025-2030口腔护理行业市场全面剖析及产品创新与消费趋势研究报告
- DL∕T 593-2016 高压开关设备和控制设备标准的共用技术要求
- GA/T 2133.1-2024便携式微型计算机移动警务终端第1部分:技术要求
- DL∕T 5850-2021 电气装置安装工程 高压电器施工及验收规范(双页版)
- DG∕TJ 08-2220-2016 桥梁水平转体法施工技术规程
- 火灾车辆鉴定评估讲解
- TB10001-2016 铁路路基设计规范
- 尘肺病工伤认定申请书范文
- 窗口人员服务规范培训课件
- 电务室外设备安装及基础面硬化标准动车论坛样本
- 新媒体视频节目制作 课件 学习领域1 新闻短视频制作
- (完整)中医症候积分量表
评论
0/150
提交评论