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

    职工工资管理系统课程设计方案说明文本.doc

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

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

    职工工资管理系统课程设计方案说明文本.doc

    C+程序设计课程设计说明书职工工资管理系统齐齐哈尔大学计年算机中心二零一零九月指导教师:廉佐政设计成员:冯文宇王 鑫金 璐张丽苹学院:食品与生物工程学院班级:生工091班C+程序设计课程设计任务书适用专业:生物工程设计题目:职工工资管理系统一、已知技术参数或设计前提1、学校教职工共一千多人。2、存储每位教职工的个人信息:基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费信息。3、该系统可对职工的信息进行查询、添加、修改、删除和储存。并且该系统可对职工的个人所得税、应发工资、应扣工资、实际工资做出自动计算。二、设计内容及要求1、实现对职工信息如基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费信息的录入,将数据文件导入工资信息,将工资信息导入磁盘文件。2、可利用职工的编号对相应职工的信息进行查询、浏览职工的相应信息。3、可对系统进行维护,包括对在职职工的信息的查询、修改;对非在职职工的信息的删除。4、要通过文件记录职工工资的信息。三、课程设计工作计划1、确定题目,成立设计小组,做用户需求分析(10月11日)2、查阅资料,进行问题分析,制定方案,确定成员分工(10月13日-10月20日)3、根据方案编写程序并进行调试(10月21日-11月05日)4、撰写设计说明书,完成设计(11月06日-11月10日)5、提交设计内容,答辩(11月10日-11月25日)四、相关教材及参考书目1、C+程序设计作者:刘娜娜出版社:北京航天航空大学出版社。20082、C+程序设计实用教程【M】作者:苏仕华出版社:清华大学出版社。2006目 录一、需求分析2二、系统总体设计2三、模块功能实现3四、系统的软硬件环境9五、系统的使用说明9六、结束语12附录A:程序源代码12附录B:程序调试记录22教师评语23一、需求分析从远古的货币发放到现代的工资发放,公司越来越需要对员工工资进行管理发放和合理存根。而此套程序就是为方便公司对员工工资管理而设计,其程序操作起来简单、易懂,内容包含有:月份、工人编号、姓名、基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费,而程序会自动计算出员工的个人所得税、应发数、应扣数、实发数等。其操作功能有:浏览数据、增加数据、修改数据、查询数据、删除数据、存储文件、退出等。相信此程序会使公司对员工工资的管理和发放带来很大的帮助。二、系统总体设计主菜单添加职工信息删除职工信息修改职工的工资信息按职工编号查找记录列出所有记录从数据文件导入当月工资信息将当月工资信息导出到磁盘文件安全退出系统冯文宇 张丽苹 负责模块:浏览数据、增加数据王鑫 负责模块:修改数据、储存数据金璐 负责模块:修改数据、删除数据三、模块功能实现程序由7个功能模块组成,功能模块图如下添加数据:将职工的发放月份、编号、姓名、基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费输入。浏览数据:输入职工编号后不但能显示出职工的月份、编号、姓名、基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费,系统还会自动算出其个人所得税、应发工资、应扣工资和实际工资。修改数据:输入职工编号后可通过代码对基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费进行修改。增加数据:本功能可容纳大量的数据,对任何大中小企业均适用,仍通过上述信息进行输入储存。删除数据:输入职工编号后就会将职工的全部资料删除,快捷方便。储存文件:将输入的职工信息从数据文件中导入当月工资信息,再将当月工资信息导出到磁盘文件.dat中。退出系统:退出工作界面模块名称void print()模块说明定义输出一条指定职工的工资记录,并返回该记录的指针模块名称void additem()模块说明添加一条工资记录表模块名称void removeitem()模块说明删除一条指定职工的工资记录模块名称void changemonth()模块说明修改月份模块名称void changeitem()模块说明修改职工的工资信息模块名称void list()模块说明输出当月全体职工的工资信息模块名称void search()模块说明输出指定编号职工的工资信息模块名称void input()模块说明输入职工信息模块名称void addnew()模块说明增加记录模块名称void dofind()模块说明按职工编号查找模块名称void dodelete()模块说明删除职工信息模块名称void domodify()模块说明修改职工信息模块名称void SaveFilethism()模块说明将当月工资信息写入文件模块名称void Loadfilethism()模块说明读取当月全体职工的工资信息文件 以int worker:listcount定义职工工资记录链表VoidAdditem定义添加工资记录void search输出指定信息通过Class worker类定义函数的继承方式以int worker:menu定义职工工资记录菜单VoidRemoveitem定义删除指定工资记录VoidChangemonth修改月份VoidChangeitem修改职工信息void list输出当月信息Public公有继承Private私有继承对工资记录的编辑输出一条指定职工的工资记录Return 安全退出系统四、系统的软硬件环境1、软件环境系统可以运行在Windows XP/200X等操作系统上。系统编辑编译环境为Visual C+ 6.0。2硬件环境本系统在计算中心实验室的计算机上编辑测试。测试用计算机的主要配置是CPU 2.4GHz,256M内存,80G硬盘。本系统可以运行在使用Windows操作系统的品牌机或兼容机上,具有80486,50MHz以上的处理器都可以运行本管理系统。五、系统的使用说明(1)主界面画面(2)添加职工信息的方法(如图示所示)请选择(输入相应的数字):输入1当输入的职工编号为-1时表示输入结束。请输入月份 编号 姓名 基本工资 津贴 房帖 交通补贴 房租 储蓄 交通费 会费 输入月份 编号 姓名 基本工资 津贴 房帖 交通补贴 房租 储蓄 交通费 会费当录入结束时编号输入-1.(3)删除职工信息的方法(如图所示)请选择(输入相应的数字)输入2当输入的编号为-1时表示输入结束。请输入要删除的职工的编号输入要删除的职工的编号成功删除编号为x的记录输入结束输入-1.(4)修改职工的工资信息的方法(如图所示)请选择(输入相应的数字)输入3当输入职工编号为-1时表示结束修改。请输入所需修改职工的编号输入职工编号请选择(输入相应的数字)输入相应数字请输入修改后的值输入修改后的值输入-1结束修改。(1、基本工资2、津贴3、房帖4、交通补贴5、房租6、储蓄7、交通费8、会费0、退出修改系统)(5)按职工编号查找记录的方法。请选择(输入相应的数字)输入4当输入的编号为-1时表示结束输入。请输入要查找的职工的编号输入相应的职工的编号显示相应编号的职工的信息结束查找输入-1.(6)列出所有记录的方法。请选择(输入相应的数字)输入5共有记录x,显示所有记录。(7)请选择(输入相应的数字)输入6当月工资信息将自动导入(8)将当月工资信息导出的磁盘文件的方法。请选择(输入相应的数字)输入7成功将工资信息存入文件。(9)安全退出系统的方法。请选择(输入相应的数字)输入0确定要退出程序吗?Y/N输入Y安全退出系统。六、结束语:调试:按照界面提示输入便可得到以上截图的效果。总结:该程序完成了题目要求,总体来说,1、主要优点有:1) 界面美观。2) 具有清屏功能,使界面保持整洁、清晰。2、主要缺点有:1) 程序没有设置成多文件形式,可修改性差。2) 程序没有缩进,可读性差。3) 没有使用动态内存分配,内存浪费情况严重。3、此次课程设计的心得体会此次C+课程设计我们做的题目是职工工资管理系统,刚开始做的时候,以为做这个会像顺水推舟一般容易,结果发现我们的C+知识竟是如此的匮乏,没给人掌握的C+知识对编程还远远不够,而就算是已经掌握的理论知识用在实践上还是那样的困难,编程错误百出,等到没有错误了,运行时还是会发现很多功能无法实现。本次课程设计让我深刻体会到了理论与实践的差距,正所谓知易行难,理论运用到实际还需要我们不断的练习,努力编程。而我们认为本次课程设计最大的收获就是能体会如何把C+理论知识运用到实际当中去以及在没有老师的帮助下如何自学,如何自己通过各种方式(图书、网络等)来独立完成任务,同时它还培养了我们独立思考的能力及严密的逻辑思维能力。可以说这次课程设计让我们受益匪浅。附录1、程序源代码# include <iostream># include <fstream># include <string># include <iomanip># include <stdlib.h>using namespace std;struct worker_infint month; int code; string name; float get4; float pay4; float tax; float theory_num; float reduce_num; float practice_num; worker_inf *next;/class worker private: worker_inf *head; void print(worker_inf *); worker_inf *find(int); public: worker()head=NULL; worker_inf *get_head()return head; int listcount(); void additem(int month,int code,string name,float get4,float pay4); void removeitem(int); int menu(); void changemonth(); void changeitem(int); void list(); void search(int); float tax_num(); float theorynumber(); float reducenumber(); float practicenumber(); ;/int worker:listcount() if(!head)return 0; worker_inf *p=head; int n=0; while(p) n+;p=p->next; return n;/void worker:additem(int month,int code,string name,float get4,float pay4) if(!head) head=new worker_inf; for(int i=0;i<4;i+) head->geti=geti; head->payi=payi; head->code=code; head->month=month; head->name=name; head->next=NULL; return; worker_inf *t=head; while(t && t->code!=code) t=t->next; if(t) cout<<"操作失败:编号为"<<code<<"的记录已经存在!"<<endl; return; worker_inf *p=head; while(p->next)p=p->next; worker_inf *p1=new worker_inf; p1->code=code; for(int i=0;i<4;i+) p1->geti=geti; p1->payi=payi; p1->code=code; p1->month=month; p1->name=name; p1->next=NULL; p->next=p1; return;/void worker:removeitem(int code) worker_inf *t=find(code); if(!t)return; worker_inf *p=head; if(head=t) head=head->next; delete p; cout<<"成功删除编号为"<<code<<"的记录!"<<endl<<endl; return; while(p->next!=t)p=p->next; worker_inf *p1=p->next; p->next=p1->next; delete p1; cout<<"成功删除编号为"<<code<<"的记录!"<<endl<<endl; return;/int worker:menu() int select=-1; cout<<"tttttt*修改菜单*"<<endl<<endl; cout<<"1.基本工资"<<endl<<endl; cout<<"2.津贴"<<endl<<endl; cout<<"3.房帖"<<endl<<endl; cout<<"4.交通补贴"<<endl<<endl; cout<<"5.房租"<<endl<<endl; cout<<"6.储蓄"<<endl<<endl; cout<<"7.交通费"<<endl<<endl; cout<<"8.会费"<<endl<<endl; cout<<"0.退出修改系统"<<endl<<endl; cout<<"请选择(输入相应数字):" cin>>select; if(select<0|select>9) cout<<"对不起您输入错误!请重新输入【0-9】:"<<endl; cin>>select; return select;/int menu();void worker:changeitem(int code) worker_inf *p=find(code); if(!p)cout<<"不存在职工编号为"<<code<<"的职工工资信息"<<endl;return; int select; while(1) float m; select=menu(); if(select=0)system("cls");break; cout<<"请输入修改后的值" cin>>m; int n; if(select<=4) n=select-1; p->getn=m; else n=select-5; p->payn=m; tax_num(); theorynumber(); reducenumber(); practicenumber(); cout<<"修改成功"<<endl; /void worker:changemonth() worker_inf *p=head; while(p) if(p->month=12)p->month=1; else p->month+; p=p->next; /void worker:print(worker_inf *p) cout.precision(0); cout<<p->month<<" " cout<<p->code<<" " cout<<p->name<<"t" for(int i=0;i<4;i+) cout<<setiosflags(ios:fixed)<<p->geti<<"t" for(int j=0;j<4;j+) cout<<p->payj<<"t" cout<<p->tax<<"t" cout<<p->theory_num<<"t" cout<<p->reduce_num<<"t" cout<<p->practice_num<<endl<<endl; return;/void worker:list() if(listcount=0) cout<<"错误:当前的列表为空!"<<endl; return; worker_inf *p=head; cout<<"共有记录:"<<listcount()<<endl; cout<<"月份t编号t姓名t基本工资t津贴t房帖t交通补贴t房租t储蓄t交通费t会费t个人所得税t应发工资t应扣工资t实际工资"<<endl; while(p) print(p); p=p->next; cout<<endl; return;/void worker:search(int code) cout<<"searching."<<endl; worker_inf *p=find(code); if(p) cout<<"月份t编号t姓名t基本工资t津贴t房帖t交通补贴t房租t储蓄t交通费t会费t个人所得税t应发工资t应扣工资t实际工资"<<endl; print(p); cout<<endl;/worker_inf *worker:find(int code) if(listcount=0) cout<<"错误:当前列表为空!"<<endl; return NULL; worker_inf *p=head; while(p) if(p->code=code)break; p=p->next; if(!p) cout<<"错误:找不到该记录!n" return NULL; return p;/float worker:theorynumber() int i; if(listcount()=0) cout<<"错误:当前的列表为空!"<<endl; return -1; float sum; worker_inf *p=head; while(p) sum=0; for(i=0;i<4;i+) sum+=p->geti; p->theory_num=sum; p=p->next; return 0;/float worker:tax_num() if(listcount=0) cout<<"错误:当前的列表为空!"<<endl; return -1; worker_inf *p=head; while(p) float s; s=p->theory_num; if(s<=800) p->theory_num=0; else if(s<=2000) p->theory_num=(s-800)*0.05; else if(s<=5000) p->theory_num=(s-2000)*0.1+60; else p->theory_num=(s-5000)*0.2+360; p=p->next; return 0;/float worker:reducenumber() int i; if(listcount=0) cout<<"错误:当前的列表为空!"<<endl; float sum; worker_inf *p=head; while(p) sum=0; for(i=0;i<4;i+) sum+=p->payi; p->reduce_num=p->tax+sum; p=p->next; return 0;/float worker:practicenumber() if(listcount()=0) cout<<"错误:当前的列表为空!"<<endl; return -1; worker_inf *p=head; while(p) float a,b; a=p->theory_num; b=p->reduce_num; p->practice_num=a-b; p=p->next; return 0;/worker worker; /定义全局变量int menu() int select=-1; cout<<"*主菜单*"<<endl<<endl; cout<<"1.添加职工信息;"<<endl<<endl; cout<<"2.删除职工信息;"<<endl<<endl; cout<<"3.修改职工的工资信息;"<<endl<<endl; cout<<"4.按职工编号查找记录;"<<endl<<endl; cout<<"5.列出所有记录;"<<endl<<endl; cout<<"6.从数据文件导入当月工资信息;"<<endl<<endl; cout<<"7.将当月工资信息导出到磁盘文件;"<<endl<<endl; cout<<"0.安全退出系统;"<<endl<<endl; cout<<"请选择(输入相应的数字):" cin>>select; return select;/char exit() char s; cout<<"确定要退出程序吗?Y/N:" cin>>s; return s;/void input(int *month,int*code,string *name,float get4,float pay4) cout<<"请输入月份 编号 姓名 基本工资 津贴 房帖 交通补贴 房租 储蓄 交通费 会费:"<<endl; cin>>*month; cin>>*code; if(*code=-1)return; cin>>*name>>get0>>get1>>get2>>get3>>pay0>>pay1>>pay2>>pay3; return;/void addnew() int month=0,code=0;float get4=0,pay4=0; string name="" cout<<endl<<"当输入的职工编号为-1时表示输入结束。"<<endl; input(&month,&code,&name,get,pay); while(code!=-1) worker.additem(month,code,name,get,pay); worker.tax_num(); worker.theorynumber(); worker.reducenumber(); worker.practicenumber(); input(&month,&code,&name,get,pay); return;/void dofind() int code; cout<<endl<<"当输入的编号为-1时表示结束输入."<<endl; do cout<<"请输入要查找的职工的编号:" cin>>code; if(code=-1)continue; worker.search(code); while(code!=-1); return;/void dodelete() cout<<endl<<"当输入的编号为-1时表示输入结束."<<endl; int code; do cout<<"请输入要删除的职工的编号:" cin>>code; if(code=-1)continue; worker.removeitem(code); while(code!=-1); return;/void domodify() int code; cout<<"当输入职工编号为-1时表示结束修改"<<endl; while(1) cout<<"请输入所需修改职工编号" cin>>code; if(code=-1)return; else worker.changeitem(code); return;/void SaveFilethism() worker_inf *p; char name20; fstream iofile; int i=0; iofile.open("Worker_5th.dat",ios:out|ios:binary); if(!iofile) cerr<<"open error!"<<endl; abort(); p=worker.get_head(); while(p) p->name.copy(name,20,0); namep->name.length()=0; iofile.write(char *) &p->code,sizeof(int); iofile.write(char *) &p->month,sizeof(int); iofile.write(char *) name,20); for(int i=0;i<4;i+) iofile.write(char *) &p->geti,sizeof(float); for(int j=0;j<4;j+) iofile.write(char *) &p->payj,sizeof(float); p=p->next; iofile.close(); cout<<"成功将工资信息存入文件"<<endl;/void Loadfilethism() int month,code; char name20="" float get4,pay4; fstream iofile; int i=0; iofile.open("Worker_5th.dat",ios:in|ios:binary); if(!iofile) cout<<"数据文件不存在,请先建立该文件"<<endl; return; if(iofile.eof() cout<<"数据库为空,请先添加数据"<<endl; iofile.close(); else while(iofile.peek()!=EOF)/peek()是取文件当前指针,EOF是文件尾标符 iofile.read(char *) &code,sizeof(int); iofile.read(char *) &month,sizeof(int); iofile.read(char *) name,20); for(int i=0;i<4;i+) iofile.read(char *) &geti,sizeof(float); for(int j=0;j<4;j+) iofile.read(char *) &payj,sizeof(float); worker.additem(code,month,name,get,pay); worker.tax_num(); worker.theorynumber(); worker.reducenumber(); worker.practicenumber(); iofile.close(); cout<<"成功导入工资信息"<<endl; /

    注意事项

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

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




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

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

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

    收起
    展开