工资管理系统C++编程实验报告

上传人:痛*** 文档编号:91845386 上传时间:2022-05-17 格式:DOC 页数:17 大小:118KB
返回 下载 相关 举报
工资管理系统C++编程实验报告_第1页
第1页 / 共17页
工资管理系统C++编程实验报告_第2页
第2页 / 共17页
工资管理系统C++编程实验报告_第3页
第3页 / 共17页
点击查看更多>>
资源描述
C+程序设计课程综合实习实习题目: 工资管理系统系 别: 计算机系 _专业: 计算机与科学班级:姓 名:学号:指导教师:日 期: 2015年12月27日_目录一、课程实习的题目、任务与要求21.课程实习的题目22.课程实习内容23.课程实习的要求2二、系统分析21.需求分析22.系统性能要求33.系统的功能分析34.系统功能模块35.模块框架图3三、系统设计与实现41.界面设计42.功能设计与实现4四、运行及测试结果5五、总结5六、参考资料5附录:源程序6一、课程实习的题目、任务与要求1.课程实习的题目工资管理系统2.课程实习内容1存储的数据包括:员工号.姓名.基本工资.补贴金额.奖励金额.扣除金额、实发工资等。实发工资=基本工资补贴金额奖励金额-扣除金额。2按职工号增加、删除、修改记录功能;3查询功能.包括按姓名、职工号查询;4排序功能.按指定的关键字如职工号、姓名、实发工资排序。3.课程实习的要求根据C+课程所学的概念、理论和方法.按照C+程序设计的基本步骤.设计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程序.对给出的程序源代码要给出各部分的详细注释自己根据能力及需要添加相应功能模块.增强模拟系统功能。包括系统的功能分析、系统的功能模块设计、程序流程图或结构框图、逻辑结构设计等。二、系统分析1.需求分析a.能对员工工资信息进行录入。b.能对员工工资信息进行增加。c.能对员工工资进行删除。d.能对员工工资进行修改。e.能对员工按实发工资.姓名.进行查询。f.能输出员工工资的所有数据。g.能对员工工资信息按实发工资、员工号进行排序。2.系统性能要求a.系统安全、可靠;b.功能齐全;c.操作方便、界面友好;d易于维护和扩充。3.系统的功能分析资料维护:系统维护包括对员工工资信息的录入操作及数据表中的信息进行浏览。系统功能:可以对数据表中的信息进行浏览。系统查询:可以对员工工资信息进行查询。4.系统功能模块员工查询系统有:工资信息录入、增加、删除、修改.数据查询.排序显示构成。5.模块框架图工资管理系统操作查询排序退出录入增加删除修改实发工资姓名按实发工资排序按员工好排序输出所有学生的成绩三、系统设计与实现1.界面设计程序运行后会出现一个简捷的窗口.便于用户查询数据。通过cout语句排列而成。2.功能设计与实现应用系统主控界面主要包括三大模块:记录编辑、记录查询、排序。(一) 记录编辑1数据录入数据录入是通过cin输入数据.然后用文件工资表.txt来作以储存。2增加员工数据增加员工数据是通过cin输入数据.然后用文件工资表.txt来作以储存。3删除员工数据删除员工数据是通过cin语句输入要删除的员工信息.然后使用if语句在工作表1.txt中寻找名字判断是否相等.最后在文件中删除。4修改员工数据修改员工数据是通过cin语句输入要修改的员工信息.然后使用if语句在工作表1.txt中寻找名字判断是否相等.再使用cin输入修改的信息.最后储存在文件中。如果寻找不到则输出对不起.您要修改的学生不存在!请查证后输入!。(二) 查询1按员工实发工资查询通过输入员工实发工资.在for循环语句中用if语句在工作表1.txt中寻找实发工资是否与输入的实发工资相等.如果相等就输出该员工信息.如果寻找不到就输出对不起!您要查询的员工不存在!。2按员工姓名查询通过输入员工姓名.在for循环语句中用if语句在工作表1.txt中寻找姓名是否与输入的员工姓名相等.如果相等就输出该员工的信息.如果寻找不到就输出对不起!您要查询的员工不存在!。3浏览所有员工工资信息直接输出工作表1.txt中的数据。(三) 排序1按实发工资排序先让实发工资数组赋给a100.再通过双重for语句依次将an小的调到前面.排序完后再通过双重for循环输出排序后的相关信息。2按员工号排序先让员工号数组赋给a100.再通过双重for语句依次将an小的调到前面.排序完后再通过双重for循环输出排序后的相关信息。在每个case中都有一个判断是否继续运行次case和一个是否进行其他操作。在case4/5/6/8/9开头都有一个判断语句.判断系统中是否有数据.没有数据则结束此case.有则继续执行下一条语句。四、运行及测试结果每一个case都能执行.但是有些的地方还都不够完善.例如:删除数据中.本来没有该员工信息.它也依然显示删除成功。五、总结此次C+程序设计课程综合实习.让我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识.然后系统分析与系统设计.最后是代码设计与调试。程序实现上.设计了简单的查询界面.将各个功能集中出来按照程序编写原则.便于查询。根据C+课程所学的概念、理论和方法.按照C+程序设计的基本步骤.设计出一个适当规模的程序;进一步加深对C+语言的理解和掌握。理论联系实际.加深和巩固所学的理论知识.提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的.程序的编写原则很重要.只要我们在编程.就必须不断改进.才能更好提高编程能力。六、参考资料龚静 李娟芳.C+语言程序设计.XX:西北工业大学出版社,2013.附录:源程序#include#include#include#include#includeusingnamespace std;class Moneystring name;float Wage,Subsidy,Reward,Deduct,SumWage;int number;public:Money;Money;float getSumWage;/实发工资friendvoid main;Money:Moneynumber=num;name=n;Wage=W;/基本工资Subsidy=S;/补贴工资Reward=R;/奖励工资Deduct=D;/扣除工资float Money:getSumWageSumWage=Wage+Subsidy+Reward-Deduct;return SumWage;void mainsystem;cout*endl;cout*endl;cout*endl;cout*-欢迎来到工资管理系统-*endl;cout*-请选择您需要的操作!-*endl;cout*-操作:-*endl;cout*-数据录入-*endl;cout*-增加员工数据-*endl;cout*-删除员工数据-*endl;cout*-修改员工数据-*endl;cout*-查询:-*endl;cout*-按员工号查询-*endl;cout*-按姓名查询-*endl;cout*-浏览所有学生的数据-*endl;cout*-排序:-*endl;cout*-按实发工资排序-*endl;cout*-按员工号排序-*endl;cout*-退出-*endl;cout*endl;cout*endl; coutp;if=0&pchris1=1;elsecout输入指令无效!请重新输入:endl;while;doswitchcase 1:/录入员工数据char c;/用于判断是否int number;string name;float Wage,Subsidy,Reward,Deduct,SumWage;docoutnumber;coutname;coutWage;coutSubsidy;coutReward;coutDeduct;SumWage=Wage+Subsidy+Reward-Deduct;fstream outfile,infile;outfile.open;/用于显示录入的数据ifcout工资表.txt can not open.n;return;outfile员工号:number 姓名:nameendl基本工资:Wage 补贴工资:Subsidy 奖励工资:Reward 扣除工资:Deduct 实发工资:SumWageendl;outfile.close;infile.open;ifcout工资表.txt can not open.n;return;char ch;whileinfile.getcoutch; /?coutendl;infile.close;j+;si=new Money;i+;cout员工数据录入成功.想继续录入吗?c;chris1=0;doifcout输入的指令无效!请重新输入!c;elsechris1=1;while;while;break;case 2:/增加员工工资信息char c;/用于判断是否int number;string name;float Wage,Subsidy,Reward,Deduct,SumWage;do coutnumber;coutname;coutWage;coutSubsidy;coutReward;coutDeduct;SumWage=Wage+Subsidy+Reward-Deduct; fstream outfile,infile; outfile.open; if cout工资表.txt can not open.n; return; outfile员工号:number 姓名:nameendl基本工资:Wage 补贴工资:Subsidy 奖励工资:Reward 扣除工资:Deduct 实发工资:SumWageendl; outfile.close; infile.open; if cout工资表.txt can not open.n; return; char h;whileinfile.getcouth; coutendl; infile.close; j+; si=new Money; i+; cout员工数据增加成功.想继续录入吗c; if cout输入的指令无效!请重新输入!c; while; break;case 3:/删除员工资料char c; string xingming,line,str,name; do ifstream fin; fstream outfile; /作一个文本文档在文件夹中用于显示所录入的数据 coutxingming; while!fin.eof getline; istringstream stream; name = line.substr0,line.find;/找到名字.判断是否相等if outfilelineendl; outfile.close; fin.close; fstream f; ifstream outf; foutf.rdbuf; outf.close; f.close;ifcout该员工数据删除成功.想继续删除吗?c;if cout指令错误!请重新输入!c; while; break; case 4:/修改员工工资数据string sname,line,str,name; int n;float W,S,R,D,SW;int flag;char c;if cout系统中没有输入数据,请先输入数据!endl;break; do flag=0; coutname; fstream fin; ofstream outfile; coutendl;while!fin.eof /在文件中查找 getline; istringstream stream; sname = line.substr0,line.find;if outfilelineendl; else flag=1; fin.close;if coutn; coutname; coutW; coutS; coutR; coutD; SW=W+S+R-D; coutendl; outfile员工号:n 姓名:nameendl基本工资:W 补贴工资:S 奖励工资:R 扣除工资:D 实发工资:SWendl; outfile.close; fstream outf; fstream inf; outfinf.rdbufendl; outf.close; inf.close; if cout对不起.您要修改的学生不存在!请查证后输入!endl; cout想继续修改吗:; cinc; coutendl;if cout 输入的指令无效!请重新输入!endlc; while;break;case 5:/按员工号查询int j=0;float num;char c;int flag;if cout系统中没有输入数据,请先输入数据!endl;break; do flag=0; cout请输入您要查询的员工的员工号:num;forint j=0;j ifnumber=num flag=1; cout您要查询的员工是:.nameendl; cout该员工的工资信息为:endl;cout员工号:.number 姓名:.nameendl基本工资:.Wage 补贴工资:.Subsidy 奖励工资:.Reward 扣除工资:.Deduct 实发工资:.SumWageendl; ifcout对不起!您要查询的员工不存在!endl; cout是否继续查?:; cinc;if cout输入的指令无效!请重新输入!c; while;break;case 6:/按姓名查询string n;char c;int j=0;int flag;if cout系统中没有输入数据,请先输入数据!endl;break; do flag=0; cout请输入要查询员工的名字: n;forint j=0;j ifname=n flag=1;cout您要查询的员工是:.nameendl; cout该生的工资信息是:n员工号:.numberendl基本工资:.Wage 补贴工资:.Subsidy 奖励工资:.Reward 扣除工资:.Deduct 实发工资:.SumWageendl; ifcout对不起您要查询的员工不存在,请查证后再输入!endl;cout您想继续查询吗?:;cinc;ifcout输入的指令无效!请重新输入:c; while;break;case 7:/浏览所有员工工资信息cout所有员工数据如下:endl; ifstream file; file.open; coutfile.rdbuf; file.close;break;case 8:/按实发工资排序if cout系统中没有输入数据,请先输入数据!endl;break;int h,g,n;int j=0;float a100,temp;forg=0;gaj=.getSumWage;j+;forh=0;hforn=0;nifan+1 temp=an;an=an+1;an+1=temp; forn=1;nforint j=0;j ifgetSumWage=an cout实发工资排第n的员工是:.name 实发工资:.SumWageendl; break;case 9:/按员工号排序if cout系统中没有输入数据,请先输入数据!endl;break;int h,g,n;int j=0;int a100,temp;forg=0;gaj=.number;j+;forh=0;hforn=0;nifan+1 temp=an;an=an+1;an+1=temp; forn=1;nforint j=0;jifnumber=an cout第n位员工是:.name 员工号:.number 实发工资:.getSumWageendl;break;case 0:exit;cout 您想继续进行其他操作吗?:;int flag=0;do cinw; coutendl;ifcout输入的指令无效!请重新输入!endl;else flag=1; while;if cout*endl;cout*endl; cout*endl; cout*-欢迎来到工资管理系统-*endl; cout*-请选择您需要的操作!-*endl; cout*-操作:-*endl; cout*-数据录入-*endl; cout*-增加员工数据-*endl; cout*-删除员工数据-*endl; cout*-修改员工数据-*endl; cout*-查询:-*endl; cout*-按员工号查询-*endl; cout*-按姓名查询-*endl; cout*-浏览所有学生的数据-*endl; cout*-排序:-*endl; cout*-按实发工资排序-*endl; cout*-按员工号排序-*endl; cout*-退出-*endl; cout*endl; cout*p;while;16 / 17
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!