版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数据库课设模板 数据库课程设计报告 设计题目:工 资 管 理 系 统 学生姓名: 学生学号: 计算机专升本 级:11班 李素萍指导教师: 月年2013 1 4 日 录 目 !未定义书签。 . 一、需求分析:错误 未定义书签。错误二、程序的主要功能: . ! !三、程序运行平台: . 错误未定义书签。 四、系统总框架图 . 错误!未定义书签。 五、程序类的说明: .4 六、设计分析 .4 七、测试分析结果 .4 .5八、程序源代码 3 一、需求分析 随着企业规模的越来越扩大化,企业员工的 数量也越来越多,企业的工资管理更加复杂。如果人工操作,每月发放工资需要人工做很大规模的运算,浪费劳动力,也
2、耗费时间。所以我们用计算机管理系统对职工工资进行管理,这样就优化了管理体系,提高了管理效率,使管理简易化,高效化,智能化,同时还提高了管理的透明度和互动性。 二、程序的主要功能 1、创建功能: 添加一个职员的基本信息,包括员工编号,姓名,基本工资,奖金,扣款。 2、删除功能: 能够对一个职员的工资信息进行删除按员工编号进行删除、 3、添加功能: 能够添加新员工的工资信息。 4、插入功能: 4 能够插入员工的工资信息,包括员工编号, 姓名,基本工资,奖金,扣款。 、修改功能:5 输入要修改的员工编号后可以对员工的基 本信息进行修改。 6、查找功能:可以通过员工编号或者员工姓名进行查 找。 、排序
3、功能:7 可以按员工编号进行排序。 、打印功能:8 能够将员工的工资信息打印出来。 三、程序运行平台 VC+6.0 系统总框架图四、 职工工资管理系统 5 修创删添插查打工 号找印建入除加改 排记记记记记记记 五、程序类的说明class worker public: int num; string name; float jbgz; float jj; float kk; float sj; float sfgz; worker*next; ; 6 worker*head=NULL; 六、程序分析 建立一个员工类,放入员工基本信息做为公用数据成员,以供其它函数调用。在主函数中调用menu函数,
4、根据输入数字选择所需模块,有创建记录,删除记录,添加记录,插入记录,寻找记录,工号排序,打印记录这些模块,完成职工工资信息的管理 七、测试分析结果 进入界面如下 7 : 排序后的记录 : 删除后的记录如下 8 八、程序源代码 #include #include using namespace std; class worker public: int num; string name; float jbgz; float jj; float kk; float sj; float sfgz; worker*next; ; worker*head=NULL; bool cherk(string
5、str) int i; for(i=0;istr.length();i+) 9 if(stri9)&(stri!=.) return false; return true; void menu() /*主菜单*/ system(cls); /*调用DOS命令,清屏.与clrscr()功能相同*/ cout 制作者:韩娟 n; cout 学号:110731006 n; cout 职工工资管理系统 n; cout *n; cout * 1 创建记录 2 删除记录 *n; 10 cout * 3 添加记录 4 插入记录 *n; cout * 5 修改记录 6 查找记录 *n; cout * 7 工号
6、排序 8 打印记录 *n; cout * 0 退出系统 *n; cout *n; cout 请选择要进行的操作:; worker*creat() worker *p1,*p2; p1=new worker; int num; head=p1; p2=p1; coutstr1; while(!cherk(str1) 潣瑵?输入的不是数字,请重新输入:; cinstr1; p1-num=atoi(str1.c_str(); if(p1-num!=0) ; 姓名:潣瑵? cinp1-name; ; 基本工资: 潣瑵? string str2; cinstr2; while(!cherk(str2)
7、; 输入的不是数字,请重新输入: 潣瑵? cinstr2; 12 p1-jbgz=atoi(str2.c_str(); 潣瑵?奖金: ; string str3; cinstr3; while(!cherk(str3) 潣瑵?输入的不是数字,请重新输入:; cinstr3; p1-jj=atoi(str3.c_str(); 潣瑵?扣款:; string str4; cinstr4; while(!cherk(str4) 潣瑵?输入的不是数字,请重新输入:; cinstr4; p1-kk=atoi(str4.c_str(); 13 p1-sj=(p1-jbgz+p1-jj-p1-kk)*0.12
8、; p1-sfgz=p1-jbgz+p1-jj-p1-kk-p1-sj; else delete p1; p2=NULL; p2-next=NULL; head=NULL; while(p1-num!=0) p2=p1; p1=new worker; coutstr; while(!cherk(str) 潣瑵?输入的不是数字,请重新输入:; cinstr; 14 p1-num=atoi(str.c_str(); if(p1-num=p2-num) 潣瑵?该工号已存在,请重新输入:; cinp1-num; if(p1-num!=0) 潣瑵?姓名:; cinp1-name; 潣瑵?基本工资:; s
9、tring str1; cinstr1; while(!cherk(str1) 潣瑵?输入的不是数字,请重新输入:; cinstr1; p1-jbgz=atoi(str1.c_str(); 15 潣瑵?奖金: ; string str2; cinstr2; while(!cherk(str2) 潣瑵?输入的不是数字,请重新输入:; cinstr2; p1-jj=atoi(str2.c_str(); 潣瑵?扣款:; string str3; cinstr3; while(!cherk(str3) 潣瑵?输入的不是数字,请重新输入:; cinstr3; p1-kk=atoi(str3.c_str(
10、); p1-sj=(p1-jbgz+p1-jj-p1-kk)*0.12; 16 p1-sfgz=p1-jbgz+p1-jj-p1-kk-p1-sj; p2-next=p1; delete p1; p2-next=NULL; return head; void Delete(worker *head) if(head=NULL) couti; if(head-num=i) 17 p=head; head=head-next; :head=head; delete p; 潣瑵?删除成功!next-num=i) p=head-next; head-next=p-next; delete p; 潣瑵?
11、删除成功!next; 18 void add(worker *head) worker *list=new worker; worker *l; if(head=NULL) coutnext; l-next=list; coutstr; while(!cherk(str) 19 潣瑵?输入的不是数字,请重新输入:; cinstr; list-num=atoi(str.c_str(); 潣瑵?姓名:; cinlist-name; 潣瑵?基本工资:; string str1; cinstr1; while(!cherk(str1) 潣瑵?输入的不是数字,请重新输入:; cinstr1; list-
12、jbgz=atoi(str1.c_str(); ; 奖金: 潣瑵?string str2; cinstr2; while(!cherk(str2) ; 输入的不是数字,请重新输入: 潣瑵? 20 cinstr2; list-jj=atoi(str2.c_str(); 潣瑵?扣款:; string str3; cinstr3; while(!cherk(str3) 潣瑵?输入的不是数字,请重新输入:; cinstr3; list-kk=atoi(str3.c_str(); list-sj=(list-jbgz+list-jj-list-kk)*0.12; list-sfgz=list-jbgz+
13、list-jj-list-kk-list-sj; list-next=NULL; void insert(worker*head,int num) if(head=NULL) 21 coutnum; 潣瑵?请输入新的员工工号:; string str; cinstr; while(!cherk(str) 潣瑵?输入的不是数字,请重新输入:; cinstr; p-num=atoi(str.c_str(); 潣瑵?姓名:; cinp-name; 潣瑵?基本工资:; string str1; cinstr1; 22 while(!cherk(str1) 潣瑵?输入的不是数字,请重新输入:; cins
14、tr1; p-jbgz=atoi(str1.c_str(); 潣瑵?奖金:; string str2; cinstr2; while(!cherk(str2) 潣瑵?输入的不是数字,请重新输入:; cinstr2; p-jj=atoi(str2.c_str(); ; 扣款: 潣瑵?string str3; cinstr3; while(!cherk(str3) ; 输入的不是数字,请重新输入: 潣瑵? cinstr3; 23 p-kk=atoi(str3.c_str(); p-sj=(p-jbgz+p-jj-p-kk)*0.12; p-sfgz=p-jbgz+p-jj-p-kk-p-sj; i
15、f(head-num=num) p-next=head; :head=p; 潣瑵?插入成功!next-num=num) p-next=head-next; head-next=p; return; head=head-next; 24 void seach(worker *head) if(head=NULL) 潣瑵?没有记录!endl; return; int i,workernum; string name; worker *q; cout.通过员工编号查找 2.通过员工姓名查找endl; couti; if(i=1) 潣瑵?请输入要查找的员工编号:; cinworkernum; whil
16、e(head) 25 if(head-num=workernum) coutendl; cout -endl; cout 工号 姓名 基本工资 奖金 扣款 税金 实发工资 endl; cout -endl; cout; coutnum; coutname; coutjbgz; coutjj; coutkk; coutsj; coutsfgzendl; cout 26 -next; 潣瑵?没有该记录! ; if(i=2) 潣瑵?请输入要查找的员工姓名:; cinname; while(head) if(head-name=name) coutendl; cout -endl; cout 工号 姓
17、名 基本工资 奖金 扣款 税金 实发工资 27 endl; cout - endl; cout; coutnum; coutname; coutjbgz; coutjj; coutkk; coutsj; coutsfgzendl; cout -next; 潣瑵?该记录不存在!endl; 28 void NumSort(worker *head) if(head=NULL) coutnext!=NULL; p=p-next) /*循环遍历链表中的节点,找出此时 最小的节点。*/ if (p-next-num num) /*找到一个比当前min小的节点。*/ p_min = p; /*保存找到节点
18、的前驱节点:显然p-next的前驱节点是p。*/ min = p-next; /*保存键值更小的节点。*/ /*上面for语句结束后,就要做两件事;一是把它放入有序链表中;二是根据相应的条件判断,安排它离开原来的链表。*/ /*第一件事*/ if (first = NULL) /*如果有序链表目前还是一个空链表*/ 30 first = min; /*第一次找到键值最小的节点。*/ tail = min; /*注意:尾指针让它指向最后的一 个节点。*/ else /*有序链表中已经有节点*/ tail-next = min; /*把刚找到的最小节点放到最后,即让尾指针的next指向它。*/ t
19、ail = min; /*尾指针也要指向它。*/ /*第二件事*/ if (min = head) /*如果找到的最小节点就是第一个节点*/ head = head-next; /*显然让head指向原head-next,即第二个节点,就OK*/ else /*如果不是第一个节点*/ p_min-next = min-next; /*前次最小节点 31 的next指向当前min的next,这样就让min离开了原链表。*/ if (first != NULL) /*循环结束得到有序链表first*/ tail-next = NULL; /*单向链表的最后一个节点的next应该指向NULL*/ :
20、head = first; return; void amend(worker *head) if(head=NULL) coutchange; while(p & p-num!=change) p=p-next; if(p-num=change) 潣瑵?请输入新的姓名:; cinp-name; 潣瑵?更改后的基本工资:; string str1; cinstr1; while(!cherk(str1) 潣瑵?输入的不是数字,请重新输入:; cinstr1; 33 p-jbgz=atoi(str1.c_str(); 潣瑵?更改后的奖金: ; string str2; cinstr2; whil
21、e(!cherk(str2) 潣瑵?输入的不是数字,请重新输入:; cinstr2; p-jj=atoi(str2.c_str(); 潣瑵?更改后的扣款:; string str3; cinstr3; while(!cherk(str3) 潣瑵?输入的不是数字,请重新输入:; cinstr3; p-kk=atoi(str3.c_str(); p-sj=(p-jbgz+p-jj-p-kk)*0.12; 34 p-sfgz=p-jbgz+p-jj-p-kk-p-sj; 潣瑵?修改成功!endl; return; else 潣瑵?没有此编号!endl; void print(worker *head) if(head=NULL) coutendl; 潣瑵?没有记录!endl; return; coutendl; cout -endl; 35 cout 工号 姓名 基本工资 奖金 扣款 税金 实发工资 endl; cout -endl; while(head) cout; coutnum; coutname; coutjbg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钾肥生产工核心能力强化考核试卷含答案
- 锅炉设备制造工变更管理能力考核试卷含答案
- 多工序数控机床操作调整工安全操作水平考核试卷含答案
- 烧碱电解工岗位责任感考核试卷含答案
- 医疗机构依法执业自查报告
- 物业管理公司客户服务中心人员文明服务制度
- 安全主题手绘指南讲解
- 2026年大学试题(艺术学)-舞蹈鉴赏历年参考题库含答案解析
- 2026年大学试题(经济学)-管理经济学历年参考题库含答案解析
- 2026年安徽广播影视职业技术学院高职单招笔试数学历年参考题库含答案解析
- 20S515 钢筋混凝土及砖砌排水检查井
- 实施指南(2025)《JB-T 10285-2017食品真空冷冻干燥设备》
- 南亚地理教学课件
- 肠系膜静脉血栓形成的护理查房
- 如何写地质报告怎样写地质报告地质报告的详细编写方法
- T∕CACM 1114-2018 中医治未病实践指南 药茶调理偏颇体质
- 2.1.3碳酸钠和碳酸氢钠 课件 高一上学期化学人教版(2019)必修第一册
- 概率论与数理统计第四版-课后习题答案-盛骤-浙江大学
- 中职数学集合与不等式综合测试题
- JT-T-794-2019道路运输车辆卫星定位系统车载终端技术要求
- 世界十大汽车公司及其品牌
评论
0/150
提交评论