首页 工资管理系统的设计与实现

工资管理系统的设计与实现

举报
开通vip

工资管理系统的设计与实现工资管理系统的设计与实现 C++课程设计报告 ( 2010 -- 2011 年度第 二 学期) 工资管理系统的设计与实现 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期 2011年 月 日 工资管理系统的设计与实现 目 录 目 录 .................................................................................................................. 2 1 概 述...

工资管理系统的设计与实现
工资管理系统的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与实现 C++课程设计报告 ( 2010 -- 2011 年度第 二 学期) 工资管理系统的设计与实现 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期 2011年 月 日 工资管理系统的设计与实现 目 录 目 录 .................................................................................................................. 2 1 概 述............................................................................................................... 1 1.1 课程设计目的 ................................................................................................. 1 1.2 课程设计内容 ................................................................................................. 1 2 系统需求分析 ..................................................................................................... 1 2.1 系统目标 ........................................................................................................ 1 2.2 主体功能 ........................................................................................................ 1 2.3 开发环境 ........................................................................................................ 2 3 系统概要设计 ..................................................................................................... 2 3.1 系统的功能模块划分 ..................................................................................... 2 3.2 系统流程图..................................................................................................... 2 4系统详细设计 ..................................................................................................... 3 4.1 主函数的设计 ................................................................................................. 3 4.2 函数的设计..................................................................................................... 3 4.3 成员函数的设计 ............................................................................................. 3 4.4 输入模块设计 ................................................................................................. 4 4.5 删除模块设计 ................................................................................................. 5 4.6 修改模块设计 ................................................................................................. 5 4.7 查询模块设计 ................................................................................................. 5 4.8 排序模块设计 ................................................................................................. 5 5 测试 .................................................................................................................... 5 5.1 测试 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ........................................................................................................ 5 5.2 测试结果 ........................................................................................................ 6 6 小结 .................................................................................................................... 9 参考文献 .............................................................................................................. 10 附 录 ................................................................................................................ 11 附录1 源程序清单 .............................................................................................. 11 C++课程设计报告(2011) 工资管理系统的设计与实现 1 概 述 1.1 课程设计目的 1、巩固并加深学生对C++语言程序设计知识的理解; 2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别; 3、进一步掌握和应用VC++ 6.0集成开发环境; 4、提高运用C++语言解决实际问题的能力; 5、初步掌握开发小型实用软件的基本方法,能独立设计、实现具有实际功能的小系统; 6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。 1.2 课程设计内容 课题名称:工资管理系统 说明:一个员工工资管理程序,有新建、存储、显示、修改和删除的功能。 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 : 1) 利用工号区别员工身份,工号用字符数组的形式,从000001开始编号,该工号不能人工修改,是由计算机自动根据录入的先后复制的,录入数据时不必输入工号。 2) 可以选择现实的多种排序形式,如按姓名的顺序、工资总额的顺序、职务工资或奖金的顺序。 3) 每次显示时,将所有要显示数据的工资总额、职务工资总额、奖金总额一起计算显示。 4) 可以根据工号或姓名修改、删除数据,在修改、删除时现要求用户确认,确认后再进行操作。 2 系统需求分析 2.1 系统目标 对员工众多的企业进行工资管理,并且合理管理好用户的个人信息及公司信息。提高公司财务管理的工作效率,降低管理成本。 2.2 主体功能 一个员工工资管理程序,有新建、存储、显示、修改和删除的功能。 1 工资管理系统的设计与实现 2.3 开发环境 Microsoft Visual C++ 3 系统概要设计 3.1 系统的功能模块划分 1.职工信息添加 2.职工信息输出显示 3.职工信息修改 4.职工信息删除 5.职工信息查询 6.职工工资由高到低排序 7.退出 3.2 系统流程图 开始 主界面 信息查询 信息修改 信息删除 排序 输出显示 信息添加 输入姓名输入信息 修改信息 删除信息 或工号 显示全部 退出 退出 退出 显示信息 结束 图3.2 系统流程图 2 C++课程设计报告(2011) 4系统详细设计 4.1 主函数的设计 在做一个系统开发前,一定要明确系统的功能以及功能实现时的输出(屏幕显示)。编写主函数的主要任务就是确定调用函数以及控制屏幕显示。 ?确定调用的函数 根据要求,该系统至少应该实现五种基本功能:输出工作信息,删除工资信息,修改工资信息,查找工资信息,列出所有信息。实现以上任何一种功能都必须要调用一个函数,根据标识符的定义规则,依次命名为 AddNew(),DoDelete(),DoMotify(),DoFind(),List(). ?屏幕显示 一个系统要想处理信息,首先必须要输出菜单及提示信息,通过用户在键盘上的输入来选择某个功能。本系统的屏幕显示如上。 为实现该屏幕显示,输出语句完全可以放在main()函数中,但为了使主函数清晰明了,我设计了一个菜单函数Main()供其调用。 4.2 函数的设计 编写函数的目的就是编写一个能实现某种功能的函数供主函数调用。根据C++面向对象的特点,函数也可以调用类中的成员函数。这样主函数,函数以及成员函数之间的层次分明,关系就清晰明了,不会有冗长的感觉。函数设计的主要任务是确定调用的成员函数以及屏幕显示。 ?确定调用的成员函数。 不同的函数调用的成员函数是不尽相同的,基本上每个函数都有一个对应的成员函数,例如AddNew()与AddItem(),DoDelete()与RemoveItem(),DoFind()与Search(),DoMotify()与Replace(),List()与Worker.List()对应,这些成员函数都是共有函数,并且只被其对应函数唯一调用一次。当然,每个函数不可能只调用一个成员函数,例如AddNew()还调用了另外两个函数Input()和Actualpay()。 ?屏幕显示 编写函数也需要控制输出以及功能间的转换,从而每一个函数都需要有一个循环来控制其结束。结束的条件都是“当输入的编号为-1时结束”,循环语句有while也有do…while,例如DoDelete()和DoFind()用的是do…while, AddNew()用到的是while语句。 4.3 成员函数的设计 成员函数是系统的灵魂,因为所有的处理过程的细节都在成员函数中完成的。 3 工资管理系统的设计与实现 编写成员函数实际上就是一个算法的实现。成员函数的设计包括两方面内容:成员函数算法的实现和成员函数过程的实现。 ?成员函数算法的实现 工资管理系统不能单凭数组来处理数据,因为企业职工数是不确定的,并且数组在删除和查找某条信息是相当繁琐。所以该系统需要一个全新的数据处理方式——链表。链表是最简单也是最常用的一种动态数据结构,它是对动态获得的内存进行组织的一种结构。它不需要实现定义固定的长度,灵活性更强。 链表是算法的关键。在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法决定了其他成员函数数据的处理。本系统中采取的是表尾插入的方法。在删除某信息时需要判断数据是在表头,表中还是表尾,如果删除的是在表中,则需要将删除的前后链表连接起来。总之,本系统大量运用了链表的5种基本操作:建立链表、链表的插入、删除、输入和查找。 ?成员函数过程的实现 算法确定后还需要控制屏幕显示、条件的判断以及调用其它成员函数。成员函数之间是可以相互调用的,例如成员函数List()就调用了成员函数ListCount()来统计当前链表信息的总数,同时还调用了成员函数Print()来输出Worker_pay()的信息。整个过程中还有一个重要的指针,Worker_pay *Find(),它被Search(),RemoveItem()以及AddItem()所调用。其次成员函数中大量运用到了程序控制结构。例如,AddItem()中用if来判断是否是链表的表头,List()中用到了while语句来实现循环输出。最后屏幕上则需要显示一些完成了某种功能的标志,例如“成功删除编号为xx的信息”,“成功修改编号为xx的信息”等。 4.4 输入模块设计 输入模块的功能是创建存储职工工资信息的存储系统以及添加某职工的工资信息。其中的信息包括职工编号,基本工资,津贴,房租,交通费以及银行储蓄。为实现输入的功能,有两个方面的任务:定义结构体以及建立链表。 ?定义结构体 结构体的名称为Worker_pay,其中包含的信息有职工编号(num),基本工资(pay[0]),津贴(pay[1]),房租(pay[2]),交通费(pay[3]),储蓄(pay[4])以及个人所得税(tax),应扣数(deduct),实发数(actualpay)。定义一个pay的数组时为了简化变量的定义,使程序更有条理。 ?建立链表 通过从表尾插入的方法来建立链表,首先要先设立一个头指针(head)来存放链表的首地址。然后,不断用new运算符生成一个新的起点,将这个起点链入已有的链表尾部;如果链表中还没有结点,则这个新结点将是首结点,否则,将新结 4 C++课程设计报告(2011) 点的地址赋给原有链表的尾结点的next指针。 4.5 删除模块设计 删除模块的功能是删除某职工的工资信息。当然,信息包括所有输入的信息,以及程序内部函数计算的信息例如个人所得税,实发数。 从一个链表中删去一个结点,首先从表头开始,找到被删结点后,只要改变链接关系即可,使被删结点的前去结点的指针域指向被删结点的后继结点。如果删去的结点是首结点,则将第二个结点的地址作为新的链表的首地址返回;如果删去的结点是链尾,则将被删结点的前驱作为新的链尾。 4.6 修改模块设计 修改模块的功能是修改某职工的部分工资信息。 要修改某职工的信息首先必须从表头开始搜寻,当找到指定的编号是,重新对其赋值即可。 4.7 查询模块设计 查找模块的功能就是输出指定编号职工的工资信息。 查找链表中的信息时比较简单的,在上面的模块中也用到了,主要是注意查找叶必须从表头开始。 4.8 排序模块设计 根据已有员工工资由高到低排序,并返回排序子菜单。 5 测试 5.1 测试方案 在计算机上使用Microsoft Visual C++ 6.0 输入原程序清单进行调试。 在运行界面测试程序是否正常运行。 输入多个员工信息,进行输出显示,修改,删除,查询和排序等操作。 5 工资管理系统的设计与实现 5.2 测试结果 图5-2-1录入员工信息 图5-2-2输出显示 6 C++课程设计报告(2011) 图5-2-3.修改员工信息 图5-2-4.删除员工信息 7 工资管理系统的设计与实现 图5-2-5.职工工资由高到低排序 8 C++课程设计报告(2011) 图5-2-6.查询员工信息 6 小结 通过这一个多星期的课程设计,我学到了很多很多。在设计的过程中,我发现我已经遗忘了很多上星期学习过的C++知识,也发现了原来学习中的不少漏洞。有不少地方的树叶还是新的,那方面的知识自然还没有吃透。比如结构体的定义已经不是很熟,字符串数组也不太能熟练运用了,还有就是指向数组和字符串的指针也不是很熟了。在编写项目程序的过程中,我不断的发现自己的不足并努力提高,在原来的基础上对C++有了更进一步的理解。完成这个设计使我觉得收获不少 9 工资管理系统的设计与实现 参考文献 [1]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005. [2]谭浩强.C程序设计题解与上机指导(第三版)[M].北京:清华大学出版社,2005. 10 C++课程设计报告(2011) 附 录 附录1 源程序清单 #include #include #include #include #include using namespace std; int i; class Person { public: void display() { cout << "姓名:"; cin >> name; cout << "工号:"; cin >> num; while(num<=0) { cout<<"请重新输入工号大于0的数:"<>num; } } string name;//名字 int num; };//工号 class Teacher: public Person//员工 { public: Teacher() { int s=1000; wage = s; butie1=0; } void display1(); int wage;//基本工资 int time; int butie1; int jintie1; };//工作时 void Teacher::display1() { cout << "请输入"; Person::display(); cout << "请输入员工的工作时(小时): "; cin >> time; while(time<=0) { cout<<"请重新输入工作时大于0的数:"<>time; } 11 工资管理系统的设计与实现 } class Leader: public Person//领导 { public: Leader() { int s=2500; int b=600; wage = s; butie = b; jintie=0; } void display1() { cout << "请输入领导的"; Person::display(); } int wage;//基本工资 int butie; int jintie; };//补贴 class Jianzhi: public Teacher, public Leader//员工兼职领导 { public: Jianzhi( int b = 500) : Leader() { butie = b; } void display1() { cout << "请输入员工兼职领导的"; Teacher::display(); cout << "请输入员工兼职领导的工作时(小时):"; cin >> time; while(time<=0) { cout<<"请重新输入工作时大于0的数:"<>time; } } int butie; };//补贴 Teacher t[100]; Leader x[100]; Jianzhi j[100]; void show() { cout << "\t请输入你要录入的对象 :" << endl; cout << "\t\t 1:员工" << endl; cout << "\t\t 2:领导" << endl; cout << "\t\t 3:员工兼职领导" << endl; cout << "\t\t 4:退出录入" << endl; cout << "请选择: "; } 12 C++课程设计报告(2011) void jiaoshiluru()//员工录入 { ofstream outfile("员工.txt", ios::app); if (!outfile) { cerr << "open error!" << endl; exit(0); } int b; cout << "请选择你要录入员工的个数:"; cin >> b; for (i = 0; i < b; i++) { t[i].display1(); cout<<"是否保存信息(y(Y)/n(N))"<>c; if(c=='Y'||c=='y') { outfile << t[i].num << " " << t[i].name << " " << t[i].wage << " " << t[i].time << endl; } } outfile.close(); } void Leaderluru()//领导录入 { ofstream outfile("领导.txt", ios::app); if (!outfile) { cerr << "open error!" << endl; exit(0); } int b; cout << "请输入你要录入领导的个数:"; cin >> b; for (i = 0; i < b; i++) { x[i].display1(); cout<<"是否保存信息(y(Y)/n(N))"<>c; if(c=='Y'||c=='y') { outfile << x[i].num << " " << x[i].name << " " << x[i].wage << " " << x[i].butie << endl; } } } void jianzhiluru()//员工兼职领导录入 { ofstream outfile("员工兼职领导.txt", ios::app); if (!outfile) { cerr << "open error!" << endl; exit(0); } int b; cout << "请输入你要员工兼职领导的个数:"; cin >> b; 13 工资管理系统的设计与实现 for (i = 0; i < b; i++) { j[i].display1(); cout<<"是否保存信息(y(Y)/n(N))"<>c; if(c=='Y'||c=='y') { outfile << j[i].Teacher::num << " " << j[i].Teacher::name << " " << j[i].Leader::wage << " " << j[i].butie << " " << j[i].Teacher::time << endl; } } } void wenjianluru()//文件录入 { int c; for (i = 0;; i++) { show(); cin >> c; if (c == 4) { cout << "退出录入成功。" << endl; system("cls"); break; } else switch (c) { case 1: jiaoshiluru(); break; case 2: Leaderluru(); break; case 3: jianzhiluru(); break; default: { cout << "上一次输入错误。" << endl; } break; } } } void jiaoshishuchu()//员工输出显示 { ifstream infile("员工.txt", ios::in); int m; for (i = 0; i < 100; i++) { t[i].num=0; infile >> t[i].num >> t[i].name >> t[i].wage >> t[i].time; if (t[i].num == 0) 14 C++课程设计报告(2011) break; int jintie1; jintie1=t[i].time*30; m = t[i].wage + jintie1; cout << "\t员工: " <> x[i].num >> x[i].name >> x[i].wage >> x[i].butie; if (x[i].num == 0) break; m = x[i].wage + x[i].butie; cout << "\t领导:" <> j[i].Teacher::num >> j[i].Teacher::name >> j[i].Leader::wage >> j[i].butie >> j[i].Teacher::time; if (j[i].Teacher::num == 0) break; int jintie1; jintie1=t[i].time*30; m = j[i].Leader::wage + j[i].butie +jintie1 ; cout << "\t员工兼领导:" <>x; switch(x) { case 1:{cout<<"\t\t请输入要查找的员工的姓名:"; cin>>nam; for (i = 0, n = 0; i < 100; i++) { infile >> t[i].num >> t[i].name >> t[i].wage >> t[i].time; if (t[i].num == 0) break; if (t[i].name==nam) { n++; m = t[i].wage + (t[i].time - 24) * 30; cout<<"\t\t工号 姓名 工资"<>num; for (i = 0, n = 0; i < 100; i++) { infile >> t[i].num >> t[i].name >> t[i].wage >> t[i].time; if (t[i].num == 0) break; if (t[i].num==num) { n++; m = t[i].wage + (t[i].time - 24) * 30; cout<<"\t\t工号 姓名 工资"<>y; switch(y) { case 1:{cout<<"\t\t请输入要查找的领导的姓名:"; cin>>nam; for (i = 0, n = 0; i < 100; i++) { infile >> x[i].num >> x[i].name >> x[i].wage >> x[i].butie; if (x[i].num == 0) break; if (x[i].name==nam) { n++; m = x[i].wage + x[i].butie; cout<<"\t\t工号 姓名 工资"<>num; for (i = 0, n = 0; i < 100; i++) { infile >> x[i].num >> x[i].name >> x[i].wage >> x[i].butie; if (x[i].num == 0) break; if (x[i].num==num) { n++; 17 工资管理系统的设计与实现 m = x[i].wage + x[i].butie; cout<<"\t\t工号 姓名 工资"<>x; switch(x) { case 1:{cout<<"\t\t请输入要查找的员工兼职领导的姓名:"; cin>>nam; for (i = 0, n = 0; i < 100; i++) { infile >> j[i].Teacher::num >> j[i].Teacher::name >> j[i].Leader::wage >> j[i].butie >> j[i].Teacher::time; if (j[i].Teacher::num == 0) break; if (j[i].Teacher::name==nam) { n++; m = j[i].Leader::wage + j[i].butie + j[i].Teacher::time * 30; cout<<"\t\t工号 姓名 工资"<>num; for (i = 0, n = 0; i < 100; i++) { infile >> j[i].Teacher::num >> j[i].Teacher::name 18 C++课程设计报告(2011) >> j[i].Leader::wage >> j[i].butie >> j[i].Teacher::time; if (j[i].Teacher::num == 0) break; if (j[i].Teacher::num==num) { n++; m = j[i].Leader::wage + j[i].butie + j[i].Teacher::time * 30; cout<<"\t\t工号 姓名 工资"<> c; if (c == 4) { cout << "退出查询成功。" << endl; system("cls"); break; ; } else switch (c) { case 1: jiaoshichaxun(); break; case 2: leaderxhaxun(); break; case 3: jianzhichaxun(); break; default: { cout << "上一次输入错误。" << endl; } break; } } } 19 工资管理系统的设计与实现 void show5() { cout << "\t请输入你要修改的对象:" << endl; cout << "\t\t 1:员工修改" << endl; cout << "\t\t 2:员工兼职领导修改" << endl; cout << "\t\t 3:退出修改" << endl; cout << " 请选择一个操作:"; } void jiaoshixiugai()//员工修改 { ifstream infile("员工.txt", ios::in); string nam; int n, n1, m1 = 0; cout << "请输入你要修改员工的名字: "; cin >> nam; cout << "请输入你要修改的工作时:"; cin >> n; for (i = 0; i < 100; i++) { infile >> t[i].num >> t[i].name >> t[i].wage >> t[i].time; if (t[i].num == 0) break; m1++; if (t[i].name ==nam) { n1 = t[i].time; t[i].time = n; n = n1; } } infile.close(); ofstream outfile("员工.txt", ios::out); for (i = 0; i < m1; i++) { outfile << t[i].num << " " << t[i].name << " " << t[i].wage << " " << t[i].time << endl; } outfile.close(); } void janzhi2xiugai()//员工兼职领导修改 { ifstream infile("员工兼职领导.txt", ios::in); int n, n1, n2; string nam; cout << "请输入你要修改的员工兼职领导的名字: "; cin >> nam; cout << "请输入你要修改的员工兼职领导的工作时:"; cin >> n2; for (i = 0, n = 0; i < 100; i++) { infile >> j[i].Teacher::num >> j[i].Teacher::name >> j[i].Leader::wage >> j[i].butie >> j[i].Teacher::time; if (j[i].Teacher::num == 0) break; n++; if (j[i].Teacher::name==nam) { n1 = j[i].Teacher::time; j[i].Teacher::time = n2; 20 C++课程设计报告(2011) n2 = n1; } } infile.close(); ofstream outfile("员工兼职领导.txt", ios::out); for (i = 0; i < n; i++) { outfile << j[i].Teacher::num << " " << j[i].Teacher::name << " " << j[i].Leader::wage << " " << j[i].butie << " " << j[i].Teacher::time << endl; } outfile.close(); } void xiugai()//修改 { int c; for (i = 0;; i++) { show5(); cin >> c; if (c == 3) { cout << "\t\t\t退出修改成功。" << endl; system("cls"); break; } else switch (c) { case 1: jiaoshixiugai(); break; case 2: janzhi2xiugai(); break; default: { cout << "上一次输入错误。" << endl; } break; } } } void show6() { cout << "\t请选择如下操作:" << endl; cout << "\t1:员工删除" << endl; cout << "\t2:领导删除" << endl; cout << "\t3:员工兼职领导删除" << endl; cout << "\t4:退出删除" << endl; cout << "请选择你的一个操作: "; } void jiaoshidel()//员工删除 { ifstream infile("员工.txt", ios::in); string nam; int num; int n,x; cout<<"\t\t1.按员工的姓名删除\n\t\t2.按员工的工号删除"; cout<<"\n\t\t 请选择"; cin>>x; 21 工资管理系统的设计与实现 switch(x) { case 1:{cout<<"\t\t请输入要删除的员工的姓名:"; cin>>nam; for (i = 0, n = 0; i < 100; i++) { infile >> t[i].num >> t[i].name >> t[i].wage >> t[i].time; if (t[i].num == 0) break; if (t[i].name==nam) { n++; t[i].num=0;break; } } if (n ==0) cout << "没有你要删除的员工。" << endl; else cout<<"删除成功!"<>num; for (i = 0, n = 0; i < 100; i++) { infile >> t[i].num >> t[i].name >> t[i].wage >> t[i].time; if (t[i].num == 0) break; if (t[i].num==num) { n++; t[i].num=0;break; } } if (n ==0) cout << "没有你要删除的员工。" << endl; else cout<<"删除成功"<>y; switch(y) { case 1:{cout<<"\t\t请输入要删除的领导的姓名:"; cin>>nam; for (i = 0, n = 0; i < 100; i++) { infile >> x[i].num >> x[i].name >> x[i].wage >> x[i].butie; if (x[i].num == 0) break; if (x[i].name==nam) { n++; x[i].num=0;break; } } if (n ==0) cout << "没有你要删除的领导。" << endl; else cout<<"删除成功"<>num; for (i = 0, n = 0; i < 100; i++) { infile >> x[i].num >> x[i].name >> x[i].wage >> x[i].butie; if (x[i].num == 0) break; if (x[i].num==num) { n++; x[i].num=0;break; } } if (n ==0) cout << "没有你要删除的领导。" << endl; else cout<<"删除成功"<>y; switch(y) { case 1:{cout<<"\t\t请输入要删除的员工兼职领导的姓名:"; cin>>nam; for (i = 0, n = 0; i < 100; i++) { infile >> j[i].Teacher::num >> j[i].Teacher::name >> j[i].Leader::wage >> j[i].butie >> j[i].Teacher::time; if (j[i].Teacher::num == 0) break; if (j[i].Teacher::name==nam) { n++; j[i].Teacher::num=0;break; } } if (n ==0) cout << "没有你要删除的员工兼职领导。" << endl; else cout<<"删除成功"<>num; for (i = 0, n = 0; i < 100; i++) { infile >> j[i].Teacher::num >> j[i].Teacher::name >> j[i].Leader::wage >> j[i].butie >> j[i].Teacher::time; if (j[i].Teacher::num == 0) break; if (j[i].Teacher::num==num) { n++; j[i].Teacher::num=0; break; } } if (n ==0) cout << "没有你要删除的员工兼职领导。" << endl; else 24 C++课程设计报告(2011) cout<<"删除成功"<> c; if (c == 4) { cout << "退出删除成功。" << endl; system("cls"); break; } else switch (c) { case 1: jiaoshidel(); break; case 2: leaderdel(); break; case 3: jianzhidel(); break; default: { cout << "上一次输入错误。" << endl; } break; } } } void show_sort() { cout << "请选择如下操作:" << endl; cout << "\t\t 1:员工排序" << endl; cout << "\t\t 2:员工兼职领导排序" << endl; cout << "\t\t 3:退出排序" << endl; 25 工资管理系统的设计与实现 cout << "请选择你的一个操作: "; } void jiaoshi_sort() //员工排序 { ifstream infile("员工.txt", ios::in); int m[100]; for (i = 0; i < 100; i++) { infile >> t[i].num >> t[i].name >> t[i].wage >> t[i].time; if (t[i].num == 0) break; m[i] = t[i].wage + t[i].time * 30; } infile.close(); int count = i; Teacher teacher; int tmp; for (int x = 0; x < count - 1; ++x) for (int y = x + 1; y < count; ++y) { if (m[x] < m[y]) { teacher = t[x]; t[x] = t[y]; t[y] = teacher; tmp = m[x]; m[x] = m[y]; m[y] = tmp; } } cout <<"\t\t 工号 名字 总工资 " << endl; for (i = 0; i < count; ++i) cout << "\t员工: " <> j[i].Teacher::num >> j[i].Teacher::name >> j[i].Leader::wage >> j[i].butie >> j[i].Teacher::time; if (j[i].Teacher::num == 0) break; m[i] = j[i].Leader::wage + j[i].butie + j[i].Teacher::time * 30; } infile.close(); int count = i; Jianzhi jz2; int tmp; for (int x = 0; x < count - 1; ++x) for (int y = x + 1; y < count; ++y) { if (m[x] < m[y]) { jz2 = j[x]; 26 C++课程设计报告(2011) j[x] = j[y]; j[y] = jz2; tmp = m[x]; m[x] = m[y]; m[y] = tmp; } } cout <<"\t\t\t工号 名字 总工资 " << endl; for (i = 0; i < count; ++i) cout << "\t员工兼职领导:" <> c; if (c == 3) { cout << "退出排序成功。" << endl; system("cls"); break; } else switch (c) { case 1: jiaoshi_sort(); break; case 2: jianzhi_sort(); break; default: { cout << "上一次输入错误。" << endl; } break; } } } void show7() { cout << " \t\t\t\t 工资管理系统 " << endl; cout << " \t\t\t\t1:职工信息添加" << endl; cout << " \t\t\t\t2:职工信息输出显示" << endl; cout << " \t\t\t\t3:职工信息修改" << endl; cout << " \t\t\t\t4:职工信息删除" << endl; cout << " \t\t\t\t5:职工信息查询" << endl; cout << " \t\t\t\t6:职工工资由高到低排序" << endl; cout << " \t\t\t\t7:退出" << endl; cout << "请选择你的一个操作: "; } int main() 27 工资管理系统的设计与实现 { int c; for (i = 0;; i++) { show7(); cin >> c; if (c == 7) { cout << "退出成功。" << endl; break; } else switch (c) { case 1: wenjianluru(); break; case 2: shuchu(); break; case 3: xiugai(); break; case 4: del(); break; case 5: wenjianchaxun(); break; case 6: sort(); break; default: { cout << "上一次输入错误。" << endl; } break; } } return 0; } 28
本文档为【工资管理系统的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_180829
暂无简介~
格式:doc
大小:211KB
软件:Word
页数:52
分类:互联网
上传时间:2017-10-20
浏览量:88