1、1.需求分析a.能对员工工资信息进行录入。b.能对员工工资信息进行增加。c.能对员工工资进行删除。d.能对员工工资进行修改。e.能对员工按实发工资,姓名,进行查询。f.能输出员工工资的所有数据。g.能对员工工资信息按实发工资、员工号进行排序。2.系统性能要求a.系统安全、可靠;b.功能齐全;c.操作方便、界面友好;d易于维护和扩充。3.系统的功能分析资料维护:系统维护包括对员工工资信息的录入操作及数据表中的信息进行浏览。系统功能:可以对数据表中的信息进行浏览。系统查询:可以对员工工资信息进行查询。4.系统功能模块员工查询系统有:工资信息录入、增加、删除、修改,数据查询,排序显示构成。5.模块框
2、架图三、系统设计与实现1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。通过cout语句排列而成。2.功能设计与实现应用系统主控界面主要包括三大模块:记录编辑、记录查询、排序。(一) 记录编辑(1)数据录入数据录入是通过cin输入数据,然后用文件“工资表.txt”来作以储存。(2)增加员工数据增加员工数据是通过cin输入数据,然后用文件“工资表.txt”来作以储存。(3)删除员工数据删除员工数据是通过cin语句输入要删除的员工信息,然后使用if语句在“工作表”中寻找名字判断是否相等,最后在文件中删除。(4)修改员工数据修改员工数据是通过cin语句输入要修改的员工信息,然后使用if语
3、句在“工作表”中寻找名字判断是否相等,再使用cin输入修改的信息,最后储存在文件中。如果寻找不到则输出“对不起,您要修改的学生不存在!请查证后输入!”。(二) 查询(1)按员工实发工资查询通过输入员工实发工资,在for循环语句中用if语句在“工作表”中寻找实发工资是否与输入的实发工资相等,如果相等就输出该员工信息,如果寻找不到就输出“对不起!您要查询的员工不存在!(2)按员工姓名查询通过输入员工姓名,在for循环语句中用if语句在“工作表”中寻找姓名是否与输入的员工姓名相等,如果相等就输出该员工的信息,如果寻找不到就输出“对不起!您要查询的员工不存在!(3)浏览所有员工工资信息直接输出“工作表
4、”中的数据。(三) 排序(1)按实发工资排序先让实发工资数组赋给a100,再通过双重for语句依次将an小的调到前面,排序完后再通过双重for循环输出排序后的相关信息。(2)按员工号排序先让员工号数组赋给a100,再通过双重for语句依次将an小的调到前面,排序完后再通过双重for循环输出排序后的相关信息。在每个case中都有一个判断是否继续运行次case和一个是否进行其他操作。在case4/5/6/8/9开头都有一个判断语句,判断系统中是否有数据,没有数据则结束此case,有则继续执行下一条语句。四、运行及测试结果每一个case都能执行,但是有些的地方还都不够完善,例如:删除数据中,本来没有
5、该员工信息,它也依然显示删除成功。五、总结此次C+程序设计课程综合实习,让我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。六
6、、参考资料龚静 李娟芳.C+语言程序设计.西安:西北工业大学出版社,2013.附录:源程序#includefstreamstringsstreamiomanipusing namespace std;class Money string name; float Wage,Subsidy,Reward,Deduct,SumWage; int number;public: Money(); Money(int num,string n,float W,float S,float R,float D); float getSumWage();xt,ios:out|ios:app);xt can no
7、t open.n; return; outfile员工号:number 姓名:nameendl基本工资:Wage 补贴工资:Subsidy 奖励工资:Reward 扣除工资:Deduct 实发工资:SumWageendl; (); (工资表.txtin); if(!file) cout工资表.txt can not open.n char ch; while(ch)ch; xt if(! cout return; outfile (); (file) coutc; if(c!=y&c!n) cout输入的指令无效!请重新输入! while(c=); break; case 3: fstream
8、 outfile(trunc|ios:out); ifstream outf( f 指令错误! case 4: ofstream outfile( cout while(!() xt fstream inf( outf() if(c!) 输入的指令无效! cin while(c= break; case 5:ame该员工的工资信息为:(*sj).number(*sj).name(*sj).Wage(*sj).Subsidy(*sj).Reward(*sj).Deduct(*sj).SumWage if(flag=0)cout对不起!是否继续查?(y/n): case 6:该生的工资信息是:n员
9、工号: if(flag=0)对不起您要查询的员工不存在,请查证后再输入!您想继续查询吗? if(c!请重新输入: case 7: cout (); break; case 8:etSumWage(); j+; for(h=0;hi;h+) for(n=0;nan+1) temp=an; an=an+1; an+1=temp; for(n=1;=i; for(int j=0;jgetSumWage()=an)实发工资排第的员工是: case 9:umber; for(int j=0; if(sj-number=an)第位员工是: 员工号:(*sj).getSumWage()w; if(w!w! cout else flag=1; while(flag=0); if(w=* coutp; while(w=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1