C++课程设计-职工工资管理系统设计_第1页
C++课程设计-职工工资管理系统设计_第2页
C++课程设计-职工工资管理系统设计_第3页
C++课程设计-职工工资管理系统设计_第4页
C++课程设计-职工工资管理系统设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++课程设计-职工工资管理系统设计一、课程设计题目职工工资管理系统设计

二、课程设计目的1.深入理解C++语言的基本概念和特性,提高运用C++进行程序设计的能力。2.掌握面向对象编程的思想和方法,培养良好的编程风格和习惯。3.通过设计一个实际的职工工资管理系统,增强对数据结构、算法以及文件操作等知识的综合运用能力。4.提升问题分析、系统设计、代码实现和调试的能力,培养解决实际问题的能力。

三、课程设计要求1.功能要求-能够录入职工的基本信息,包括职工编号、姓名、部门等。-可以输入职工的工资信息,如基本工资、奖金、补贴、扣款等。-计算职工的应发工资、实发工资,并进行显示。-能够对职工工资信息进行修改和删除操作。-可以按照职工编号、部门等条件查询职工工资信息。-能够将职工工资信息保存到文件中,并可以从文件中读取信息进行显示。2.界面要求-设计友好的用户界面,便于用户操作。-提供清晰的菜单选项,让用户能够方便地选择各项功能。3.数据要求-职工信息和工资信息应准确无误地存储和处理。-对输入的数据进行合法性检查,确保数据的有效性。

四、系统设计(一)总体设计职工工资管理系统主要由职工信息管理模块、工资信息管理模块、查询模块、文件操作模块和界面模块组成。各模块之间相互协作,共同完成职工工资管理的各项功能。

(二)详细设计1.职工信息管理模块-数据结构:使用结构体来存储职工的基本信息,如职工编号、姓名、部门等。```cppstructEmployee{intid;stringname;stringdepartment;};```-功能实现:提供函数用于录入职工信息、显示职工信息等。```cppvoidaddEmployee(Employeeemployees[],int&count){EmployeenewEmployee;cout<<"请输入职工编号:";cin>>newEmployee.id;cout<<"请输入职工姓名:";cin.ignore();getline(cin,newE);cout<<"请输入职工部门:";getline(cin,newEmployee.department);employees[count++]=newEmployee;}

voiddisplayEmployees(Employeeemployees[],intcount){for(inti=0;i<count;i++){cout<<"职工编号:"<<employees[i].id<<"姓名:"<<employees[i].name<<"部门:"<<employees[i].department<<endl;}}```2.工资信息管理模块-数据结构:在职工信息结构体的基础上,增加工资相关字段,如基本工资、奖金、补贴、扣款等。```cppstructEmployee{intid;stringname;stringdepartment;doublebasicSalary;doublebonus;doublesubsidy;doublededuction;doublepayableSalary;doubleactualSalary;};```-功能实现:提供函数用于录入工资信息、计算应发工资和实发工资等。```cppvoidaddSalary(Employeeemployees[],intcount){intid;cout<<"请输入职工编号:";cin>>id;for(inti=0;i<count;i++){if(employees[i].id==id){cout<<"请输入基本工资:";cin>>employees[i].basicSalary;cout<<"请输入奖金:";cin>>employees[i].bonus;cout<<"请输入补贴:";cin>>employees[i].subsidy;cout<<"请输入扣款:";cin>>employees[i].deduction;employees[i].payableSalary=employees[i].basicSalary+employees[i].bonus+employees[i].subsidy;employees[i].actualSalary=employees[i].payableSalary-employees[i].deduction;return;}}cout<<"未找到该职工编号"<<endl;}

voiddisplaySalary(Employeeemployees[],intcount){for(inti=0;i<count;i++){cout<<"职工编号:"<<employees[i].id<<"姓名:"<<employees[i].name<<"部门:"<<employees[i].department<<"基本工资:"<<employees[i].basicSalary<<"奖金:"<<employees[i].bonus<<"补贴:"<<employees[i].subsidy<<"扣款:"<<employees[i].deduction<<"应发工资:"<<employees[i].payableSalary<<"实发工资:"<<employees[i].actualSalary<<endl;}}```3.查询模块-功能实现:提供按职工编号、部门等条件查询职工工资信息的函数。```cppvoidqueryById(Employeeemployees[],intcount){intid;cout<<"请输入职工编号:";cin>>id;for(inti=0;i<count;i++){if(employees[i].id==id){cout<<"职工编号:"<<employees[i].id<<"姓名:"<<employees[i].name<<"部门:"<<employees[i].department<<"基本工资:"<<employees[i].basicSalary<<"奖金:"<<employees[i].bonus<<"补贴:"<<employees[i].subsidy<<"扣款:"<<employees[i].deduction<<"应发工资:"<<employees[i].payableSalary<<"实发工资:"<<employees[i].actualSalary<<endl;return;}}cout<<"未找到该职工编号"<<endl;}

voidqueryByDepartment(Employeeemployees[],intcount){stringdepartment;cout<<"请输入部门名称:";cin.ignore();getline(cin,department);boolfound=false;for(inti=0;i<count;i++){if(employees[i].department==department){cout<<"职工编号:"<<employees[i].id<<"姓名:"<<employees[i].name<<"部门:"<<employees[i].department<<"基本工资:"<<employees[i].basicSalary<<"奖金:"<<employees[i].bonus<<"补贴:"<<employees[i].subsidy<<"扣款:"<<employees[i].deduction<<"应发工资:"<<employees[i].payableSalary<<"实发工资:"<<employees[i].actualSalary<<endl;found=true;}}if(!found){cout<<"未找到该部门的职工"<<endl;}}```4.修改和删除模块-功能实现:提供修改和删除职工工资信息的函数。```cppvoidmodifySalary(Employeeemployees[],intcount){intid;cout<<"请输入职工编号:";cin>>id;for(inti=0;i<count;i++){if(employees[i].id==id){cout<<"请输入基本工资:";cin>>employees[i].basicSalary;cout<<"请输入奖金:";cin>>employees[i].bonus;cout<<"请输入补贴:";cin>>employees[i].subsidy;cout<<"请输入扣款:";cin>>employees[i].deduction;employees[i].payableSalary=employees[i].basicSalary+employees[i].bonus+employees[i].subsidy;employees[i].actualSalary=employees[i].payableSalary-employees[i].deduction;cout<<"修改成功"<<endl;return;}}cout<<"未找到该职工编号"<<endl;}

voiddeleteEmployee(Employeeemployees[],int&count){intid;cout<<"请输入职工编号:";cin>>id;for(inti=0;i<count;i++){if(employees[i].id==id){for(intj=i;j<count-1;j++){employees[j]=employees[j+1];}count--;cout<<"删除成功"<<endl;return;}}cout<<"未找到该职工编号"<<endl;}```5.文件操作模块-功能实现:提供保存职工工资信息到文件和从文件读取信息的函数。```cppvoidsaveToFile(Employeeemployees[],intcount,conststring&filename){ofstreamfile(filename);if(file.is_open()){for(inti=0;i<count;i++){file<<employees[i].id<<""<<employees[i].name<<""<<employees[i].department<<""<<employees[i].basicSalary<<""<<employees[i].bonus<<""<<employees[i].subsidy<<""<<employees[i].deduction<<""<<employees[i].payableSalary<<""<<employees[i].actualSalary<<endl;}file.close();}else{cout<<"无法打开文件"<<endl;}}

voidloadFromFile(Employeeemployees[],int&count,conststring&filename){ifstreamfile(filename);if(file.is_open()){count=0;while(file>>employees[count].id>>employees[count].name>>employees[count].department>>employees[count].basicSalary>>employees[count].bonus>>employees[count].subsidy>>employees[count].deduction>>employees[count].payableSalary>>employees[count].actualSalary){count++;}file.close();}else{cout<<"无法打开文件"<<endl;}}```6.界面模块-功能实现:使用菜单驱动的方式,提供清晰的界面让用户选择各项功能。```cppvoiddisplayMenu(){cout<<"1.录入职工信息"<<endl;cout<<"2.录入职工工资信息"<<endl;cout<<"3.显示职工工资信息"<<endl;cout<<"4.按职工编号查询"<<endl;cout<<"5.按部门查询"<<endl;cout<<"6.修改职工工资信息"<<endl;cout<<"7.删除职工信息"<<endl;cout<<"8.保存到文件"<<endl;cout<<"9.从文件读取"<<endl;cout<<"0.退出"<<endl;}```

五、系统实现根据详细设计,使用C++语言编写各个模块的代码,并进行整合和调试。

```cppintmain(){Employeeemployees[MAX_EMPLOYEES];intcount=0;intchoice;while(true){displayMenu();cout<<"请选择功能:";cin>>choice;switch(choice){case1:addEmployee(employees,count);break;case2:addSalary(employees,count);break;case3:displaySalary(employees,count);break;case4:queryById(employees,count);break;case5:queryByDepartment(employees,count);break

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论