欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:35130911       资源大小:107.50KB        全文页数:15页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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+语言程序设计.西安:西北工业大学出版社,2013.附录:源程序#include<iostream>#include<fstream>#include<string>#include<sstream>#include<iomanip>using namespace std;class Moneystring 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();/实发工资friend void main();Money:Money(int num, string n, float W, float S, float R, float D)number=num;name=n;Wage=W;/基本工资Subsidy=S;/补贴工资Reward=R;/奖励工资Deduct=D;/扣除工资float Money:getSumWage()SumWage=Wage+Subsidy+Reward-Deduct;return SumWage;void main()system("color 0a");cout<<"*"<<endl;cout<<"*"<<endl;cout<<"*"<<endl;cout<<"*-欢迎来到工资管理系统-*"<<endl;cout<<"*-请选择您需要的操作!-*"<<endl;cout<<"*-操作:-*"<<endl;cout<<"*-(1)数据录入-*"<<endl;cout<<"*-(2)增加员工数据-*"<<endl;cout<<"*-(3)删除员工数据-*"<<endl;cout<<"*-(4)修改员工数据-*"<<endl;cout<<"*-查询:-*"<<endl;cout<<"*-(5)按员工号查询-*"<<endl;cout<<"*-(6)按姓名查询-*"<<endl;cout<<"*-(7)浏览所有学生的数据-*"<<endl;cout<<"*-排序:-*"<<endl;cout<<"*-(8)按实发工资排序-*"<<endl;cout<<"*-(9)按员工号排序-*"<<endl;cout<<"*-(0)退出-*"<<endl;cout<<"*"<<endl;cout<<"*"<<endl; cout<<"请输入:"int p=0;/全局变量,用于选择菜单时的输入char w;/用于是否继续操作Money *s100;ofstream *file100;int i=0;/用于录入的下标int j=0;int chris1=0;/用于do-while语句docin>>p;if(p>=0&&p<=9)chris1=1;elsecout<<"输入指令无效!请重新输入:"<<endl;while(chris1=0);doswitch(p) case 1:/录入员工数据char c;/用于判断是否int number;string name;float Wage,Subsidy,Reward,Deduct,SumWage;docout<<"请输入员工号:"cin>>number;cout<<"请输入员工姓名:"cin>>name;cout<<"请输入员工基本工资:"cin>>Wage;cout<<"请输入员工补贴工资:"cin>>Subsidy;cout<<"请输入员工奖励工资:"cin>>Reward;cout<<"请输入员工扣除工资:"cin>>Deduct;SumWage=Wage+Subsidy+Reward-Deduct;fstream outfile,infile;outfile.open("工资表.txt",ios:out|ios:app);/用于显示录入的数据if(!file)cout<<"工资表.txt can not open.n"return;outfile<<"员工号:"<<number<<" 姓名:"<<name<<endl<<"基本工资:"<<Wage<<" 补贴工资:"<<Subsidy<<" 奖励工资:"<<Reward<<" 扣除工资:"<<Deduct<<" 实发工资:"<<SumWage<<endl;outfile.close();infile.open("工资表.txt",ios:in);if(!file)cout<<"工资表.txt can not open.n"return;char ch;while(infile.get(ch)cout<<ch; /?cout<<endl;infile.close();j+;si=new Money(number,name,Wage,Subsidy,Reward,Deduct);i+;cout<<"员工数据录入成功,想继续录入吗?(y/n)"<<endl;cin>>c;chris1=0;doif(c!='y'&&c!='n')cout<<"输入的指令无效!请重新输入!"<<endl;cin>>c;elsechris1=1;while(chris1=0);while(c='y');break; case 2:/增加员工工资信息char c;/用于判断是否int number;string name;float Wage,Subsidy,Reward,Deduct,SumWage; do cout<<"请输入增加的员工号:"cin>>number;cout<<"请输入增加的员工姓名:"cin>>name;cout<<"请输入增加的员工基本工资:"cin>>Wage;cout<<"请输入增加的员工补贴工资:"cin>>Subsidy;cout<<"请输入增加的员工奖励工资:"cin>>Reward;cout<<"请输入增加的员工扣除工资:"cin>>Deduct;SumWage=Wage+Subsidy+Reward-Deduct; fstream outfile,infile; outfile.open("工资表.txt",ios:out|ios:app); if(!file)cout<<"工资表.txt can not open.n" return; outfile<<"员工号:"<<number<<" 姓名:"<<name<<endl<<"基本工资:"<<Wage<<" 补贴工资:"<<Subsidy<<" 奖励工资:"<<Reward<<" 扣除工资:"<<Deduct<<" 实发工资:"<<SumWage<<endl; outfile.close(); infile.open("工资表.txt",ios:in); if(!file) cout<<"工资表.txt can not open.n" return; char h;while(infile.get(h)cout<<h; cout<<endl; infile.close(); j+; si=new Money(number,name,Wage,Subsidy,Reward,Deduct); i+; cout<<"员工数据增加成功,想继续录入吗(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') cout<<"输入的指令无效!请重新输入!"<<endl; cin>>c;while(c='y'); break; case 3:/删除员工资料char c; string xingming,line,str,name; do ifstream fin("工资表.txt"); fstream outfile("工资表.txt",ios:trunc|ios:out); /作一个文本文档在文件夹中用于显示所录入的数据 cout<<"请输入您要删除的员工的姓名:" cin>>xingming; while(!fin.eof() ) getline(fin,line); istringstream stream(line); name = line.substr(0,line.find(" ",0);/找到名字,判断是否相等 if(name != xingming) outfile<<line<<endl; outfile.close(); fin.close(); fstream f("工资表.txt",ios:trunc|ios:out); ifstream outf("工资表.txt"); f<<outf.rdbuf(); outf.close(); f.close();if(name!=xingming)cout<<"该员工数据删除成功,想继续删除吗?(y/n)"<<endl;cin>>c; if(c!='y'&&c!='n') cout<<"指令错误!请重新输入!"<<endl; cin>>c; while(c='y'); break; case 4:/修改员工工资数据string sname,line,str,name; int n;float W,S,R,D,SW;int flag;char c; if(i=0)cout<<"系统中没有输入数据,请先输入数据!"<<endl;break; do flag=0; cout<<"请输入您要修改的员工的姓名:" cin>>name; fstream fin("工资表.txt",ios:in); ofstream outfile("工资表.txt",ios:trunc|ios:out); cout<<endl; while(!fin.eof() /在文件中查找 getline(fin,line); istringstream stream(line); sname = line.substr(0,line.find(" ",0); if(name!=sname) outfile<<line<<endl; else flag=1; fin.close(); if(flag=1) cout<<"请输入修改的员工号:" cin>>n; cout<<"请输入修改的员工姓名:" cin>>name; cout<<"请输入修改的员工基本工资:" cin>>W; cout<<"请输入修改的员工补贴工资:" cin>>S; cout<<"请输入修改的员工奖励工资:" cin>>R; cout<<"请输入修改的员工扣除工资:" cin>>D; SW=W+S+R-D; cout<<endl; outfile<<"员工号:"<<n<<" 姓名:"<<name<<endl<<"基本工资:"<<W<<" 补贴工资:"<<S<<" 奖励工资:"<<R<<" 扣除工资:"<<D<<" 实发工资:"<<SW<<endl; outfile.close(); fstream outf("工资表.txt",ios:trunc|ios:out); fstream inf("工资表.txt",ios:in); outf<<inf.rdbuf()<<endl; outf.close(); inf.close(); if(flag=0) cout<<"对不起,您要修改的学生不存在!请查证后输入!"<<endl; cout<<"想继续修改吗(y/n):" cin>>c; cout<<endl; if(c!='y'&&c!='n') cout<<" 输入的指令无效!请重新输入!"<<endl<<" " cin>>c; while(c='y');break; case 5:/按员工号查询int j=0;float num;char c;int flag; if(i=0) cout<<"系统中没有输入数据,请先输入数据!"<<endl;break; do flag=0; cout<<"请输入您要查询的员工的员工号:"<<endl; cin>>num; for(int j=0;j<i;j+)if(sj->number=num) flag=1; cout<<"您要查询的员工是:"<<(*sj).name<<endl; cout<<"该员工的工资信息为:"<<endl;cout<<"员工号:"<<(*sj).number<<" 姓名:"<<(*sj).name<<endl<<"基本工资:"<<(*sj).Wage<<" 补贴工资:"<<(*sj).Subsidy<<" 奖励工资:"<<(*sj).Reward<<" 扣除工资:"<<(*sj).Deduct<<" 实发工资:"<<(*sj).SumWage<<endl; if(flag=0)cout<<"对不起!您要查询的员工不存在!"<<endl; cout<<"是否继续查?(y/n):" cin>>c; if(c!='y'&&c!='n') cout<<"输入的指令无效!请重新输入!"<<endl; cin>>c; while(c='y');break; case 6:/按姓名查询string n;char c;int j=0;int flag; if(i=0) cout<<"系统中没有输入数据,请先输入数据!"<<endl;break; doflag=0; cout<<"请输入要查询员工的名字: "<<endl; cin>>n; for(int j=0;j<i;j+) if(sj->name=n) flag=1; cout<<"您要查询的员工是:"<<(*sj).name<<endl; cout<<"该生的工资信息是:n员工号:"<<(*sj).number<<endl<<"基本工资:"<<(*sj).Wage<<" 补贴工资:"<<(*sj).Subsidy<<" 奖励工资:"<<(*sj).Reward<<" 扣除工资:"<<(*sj).Deduct<<" 实发工资:"<<(*sj).SumWage<<endl;if(flag=0)cout<<"对不起您要查询的员工不存在,请查证后再输入!"<<endl;cout<<"您想继续查询吗?(y/n):"cin>>c;if(c!='y'&&c!='n')cout<<"输入的指令无效!请重新输入:"<<endl;cin>>c; while(c='y'); break; case 7:/浏览所有员工工资信息cout<<"所有员工数据如下:"<<endl; ifstream file; file.open("工资表.txt",ios:in); cout<<file.rdbuf(); file.close(); break;case 8:/按实发工资排序if(i=0) cout<<"系统中没有输入数据,请先输入数据!"<<endl; break; int h,g,n;int j=0;float a100,temp; for(g=0;g<i;g+)aj=(*sg).getSumWage();j+; for(h=0;h<i;h+)for(n=0;n<i-h;n+) if(an>an+1) temp=an;an=an+1;an+1=temp; for(n=1;n<=i;n+)for(int j=0;j<i;j+) if(sj->getSumWage()=an) cout<<"实发工资排第"<<n<<"的员工是:"<<(*sj).name<<" 实发工资:"<<(*sj).SumWage<<endl; break;case 9:/按员工号排序if(i=0) cout<<"系统中没有输入数据,请先输入数据!"<<endl; break; int h,g,n;int j=0;int a100,temp; for(g=0;g<i;g+)aj=(*sg).number;j+; for(h=0;h<i;h+)for(n=0;n<i-h;n+) if(an>an+1) temp=an;an=an+1;an+1=temp; for(n=1;n<=i;n+) for(int j=0;j<i;j+) if(sj->number=an) cout<<"第"<<n<<"位员工是:"<<(*sj).name<<" 员工号:"<<(*sj).number<<" 实发工资:"<<(*sj).getSumWage()<<endl; break;case 0:exit(0);cout<<" 您想继续进行其他操作吗?(y/n):" int flag=0; do cin>>w; cout<<endl; if(w!='y'&&w!='n')cout<<"输入的指令无效!请重新输入!"<<endl; else flag=1; while(flag=0);if(w='y') cout<<"*"<<endl;cout<<"*"<<endl; cout<<"*"<<endl;

    注意事项

    本文(工资管理系统C编程实验报告.doc)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开