人事档案管理系统课程设计说明书(编辑修改稿)内容摘要:

cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤 (天 ) 罚金 个税 实发数 endl。 while(head!=NULL) { Display(head)。 head=headnext。 } 6 用户手册及测试结果 用户手册 运行程序时,界面刚开始出现一个主菜单及提示信息,用户通过在键盘上输入来选择某个功能。 当用户选择了某个功能,系统将跳转到所选择的功能界面,用户将可以根据提示信息来使用该功能,当用户通过键盘输入编号为 1时,系统将返回主界面。 测试结果 1,主菜单 2,输入,添加,删除,修改,查询: 统计 排序 : 成功之处:此系统程序虽然简单,却集结了基本的管理功能。 删除,存储,统计等功能还是较为成功的。 特别是人事档案的统计管理功能,使烦琐的工作变得简单轻松。 不足之处:由于我们水平和时间有限,难免有不足和差强人意的地方。 尤其是对于系统应该配以保密性的设置,可是由于我知识积累不够, 做不出来。 还请迟老师海涵。 两周 的 数据结构与算法 课程设计结束了,在这 几 天的时间里,我自己独立完成了一个程序从构思结构,到编写代码,然后上机调试运行的过程,感觉自己收获很大。 通过解决一个又一个的问题,熟 悉了 C++语言的应用。 在设计过程中,在编程时条理清晰是至关重要的。 主函数,函数,成员函数之间的层次关系,调用关系一定要有一个全面的把握,尤其要体会类的封装性。 另外很重要的一点就是一定要对链表的五种操作熟练的掌握。 我理解了对于一个较大的程序,不可能一次编写出一个较大的系统,通常要采取自顶向下的设计思想,先设计主函数,再通过完善一个个的功能模块来完成程序的设计过程,在设计过程中要充分理解整个程序的设计思路,采用逐步细化的方式来完成整个程序。 在编译,链接,调试的过程中一定要有耐心。 因为一个程序中会有很多小的错误 ,甚至有的问题要几个小时才能解决。 遇到问题,一定要全面分析,有时候还要向同学请教。 总得来说,编程时极需要耐心的。 参考文献 C语言大学实用教程 电子工业出版社 C++程序设计教程(第二版)高等教育出版社 C 语言程序设计教程 北京大学出版社 C 语言程序设计实例精粹 电子工业出版社 陈天华编 .面向对象程序设计与 Visual C++ 教程 [M].北京 :清华大学出版社 ,20xx 程序清单: includeiostream includestring includefstream includeiomanip using namespace std。 /*****************************************************/ /*定义一个员工信息的结构体 Worker_pay*/ struct Worker_pay { int num。 //员工编号 string name。 //员工姓名 int age。 //年龄 string sex。 //性别 string department。 //部门 string title。 //职务 int eduage。 //学历(年) float wage。 //工资 int day。 //缺 勤天数 float allowance。 //扣发工资 float tax。 //个人所得税 float real_wage。 //实发数 Worker_pay * next。 //链表结点的指针域 }。 /*****************************************************/ /*定义一个员工类 Worker*/ class Worker { protected: Worker_pay * head。 //链表的头 结点指针 // Worker_pay * p。 public: Worker(){head=NULL。 } //构造函数 void Display(Worker_pay *)。 //输出函数 Worker_pay * Find(int)。 //查找函数 Worker_pay * Find(string,string)。 Worker_pay * Find(string)。 int ListCount()。 //统计员工人数函数 void AddItem(int,string,int,string,string,string,int,float,int,float)。 //创建链表并链表的插入 void RemoveItem(int)。 //删除函数 void ReplaceItem(int)。 //修改函数 void ListL()。 //遍历函数 void Search(int)。 //查找并输出某个员工信息函数 void Search(string,string)。 void Search(string)。 void Listavg(string)。 void Real_wage(float,float)。 //计算函数 void Recordinfo(int,string,int,string,string,string,int,float,int,float,float,float)。 //存储函数 void paixu(string)。 void load()。 void sort_data()。 }。 //Worker_pay *t。 /*****************************************************/ //功能:用于统计员工人数 int Worker::ListCount() { if(!head) return 0。 Worker_pay * p=head。 int n=0。 while(p) { n++。 p=pnext。 } return n。 } /*****************************************************/ //功能:在链表中查找员工的编号 Worker_pay * Worker::Find(int num) { if(ListCount==0) { cout列表为空,请先输入数据 !!!endl。 return NULL。 } Worker_pay * p=head。 while(p) { if(pnum==num) break。 p=pnext。 } if(!p) { cout错误,找不到该信息 !!!endl。 return NULL。 } return p。 } /*****************************************************/ /*Worker_pay * Worker::Find(string department) { if(ListCount==0) { cout列表为 空,请先输入数据 !!!endl。 return NULL。 } Worker_pay * p=head。 while(p) { if(pdepartment==department) //(department)。 break。 p=pnext。 } if(!p) { cout错误,找不到该信息 !!!endl。 return NULL。 } return p。 }*/ /*****************************************************/ //功能:创建链表及链表的插入 void Worker::AddItem(int num1,string name1,int age1,string sex1,string department1,string title1,int eduage1,float wage1,int day1,float allowance1) { if(!head) { head=new Worker_pay。 headnum=num1。 headname=name1。 headage=age1。 headsex=sex1。 headdepartment=department1。 headtitle=title1。 headeduage=eduage1。 headwage=wage1。 headday=day1。 headallowance=allowance1。 headnext=NULL。 return。 } Worker_pay * t=head。 while(tamp。 amp。 tnum!=num1) t=tnext。 if(t) { cout操作失败;员工编号为 num1的信息已经存在 !!!endl。 return。 } Worker_pay * p=head。 while(pnext) p=pnext。 Worker_pay * p1=new Worker_pay。 p1num=num1。 p1name=name1。 p1age=age1。 p1sex=sex1。 p1department=department1。 p1title=title1。 p1eduage=eduage1。 p1wage=wage1。 p1day=day1。 p1allowance=allowance1。 p1next=NULL。 pnext=p1。 return。 } /*****************************************************/ //功能:从链表中删除一个结点 void Worker::RemoveItem(int num) { Worker_pay * t=Find(num)。 if(!t) return。 Worker_pay * p=head。 if(head=t) { head=headnext。 delete p。 cout成功删除员工编号为 num的信息 !endl。 return。 } while(pnext!=t) p=pnext。 Worker_pay * p1=pnext。 pnext=p1next。 delete p1。 cout成功删除员工编号为 num的信息 !endl。 return。 } /*****************************************************/ //功能:修改员工信息 void Worker::ReplaceItem(int num) { Worker_pay * p=Find(num)。 if(!p) return。 cout请重新输入相应信息 endl。 cout员工编号 :。 cinpnum。 cout员工姓名 :。 cinpname。 cout年龄 :。 cinpage。 cout性别 :。 cinpsex。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。