




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
41课程设计报告 院(系):_电子信息工程学院_班 级: 学生姓名: _学 号: 1 设计地点(单位)_计算机基础自主学习中心_设计题目:_职工工资管理系统_ 完成日期: 2008年 7月 10日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 教师签名:_商贸学院课程设计任务书5设计题目: 工资管理系统 学生姓名课程名称c程序设计课程设计专业班级自普本2007-1自应本2007-1地 点i302/304起止时间2008.6.30-2008.7.11设计内容及要求主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用c语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。设计参数文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。进度要求1.布置设计题目,讲解要求和说明 2008.6.30 2.确定设计任务,确定具体的功能,熟悉相关知识 2008.7.13.按功能需求确定程序的主要模块 2008.7.2 4.编程实现程序的功能 2008.7.3 - 2008.7.45.调试并完善程序 2008.7.7 - 2008.7.86.撰写课程设计报告 2008.7.9 7. 提交课程设计报告并答辩 2008.7.10- 2008.7.11参考资料c程序设计经典教程 清华大学出版社 2006.3c陷阱与缺陷 人民邮电出版社 2008.2其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师: 年 月 日目录摘 要.11设计内容、任务及具体要求.21.1设计内容.21.2设计任务及具体要求.22概要设计.32.1该系统的功能简介.32.2 总体程序框图.32.3各个模块之间的主要关系.43系统功能模块的具体设计.53.1各个模块的程序流程图及运行界面.53.2对关键代码加以分析说明.154程序调试分析.235程序使用说明.246总结.25致谢.26参考文献.27附:源程序.28摘 要工资管理系统是针对企业的工资管理业务进行计算机处理而开发的应用软件。该系统由系统维护、输入、查询、修改、输出、统计等子模块组成,功能基本涵盖普通企业的工资管理业务范围。企业应用本系统后,可以有效的提高工资管理水平。本文从需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。为便于说明,文中绘制了程序结构框图、数据流程图和部分界面图。最后附有主要的源程序代码清单。 关键词:工资管理 系统维护 数据汇总 管理系统 软件开发1 设计内容、任务及具体要求1.1设计内容工资管理查询系统主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:1)职工个人说得税的计算模块,根据工资多余5000,在10005000之间,少余1000三种情况进行计算。2)添加职工的工资信息模块,用户根据输入职工编号后,对工资信息进行录入。 3)职工工资查询模块,根据用户输入职工编号后,方可进行查询。4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。5)数据输出模块,输出其相应的模块功能。6)职工工资统计模块,根据输入的职工信息进行统计。 1.2设计任务及具体要求主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用c语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2 概要设计2.1该系统的功能简介该系统的主要功能是实现职工工资的录入,包括(录入职工的基本工资、实发工资、津贴、岗贴、补贴、房帖、交通补贴、储蓄、汇费)。对职工的工资信息进行删除、修改、个人所得税的计算。并统计职工的所有信息。2.2 总体程序框图main(职工工资管理系统)添加职工的工资信息计算个人所得税修改工人记录查询工资信息统计工资信息删除个人工资信息图2.2-a总体程序基本工资津贴补贴交通补贴房租储蓄汇费实发工资岗贴房帖添加职工的工资信息 图2.2-b添加职工的工资信息2.2各个模块之间的主要关系该程序的功能主要是实现职工工资的录入,并对工资的相应信息进行个人所得税的计算。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个程序的核心。子函数之间也是有联系的,对个人所得税的计算、职工工资信息的修改、删除、查询、统计,必须是在职工工资录入的情况下进行的。因此对职工工资信息的录入是非常重要的。在职工工资的修改、删除、查询、统计与个人所得税所有的子函数之间是没有多大联系的。3 系统功能模块的具体设计3.1各个模块的程序流程图 1)主函数程序(n-s)流程图及运行界面主函数程序(n-s)流程图(见图3.1-a) 主函数main()定义变量char ch;n=0; while(true)ch=getche(); switch(ch)case 1: addone();break; 添加职工信息case 2:delone();break; 删除个人记录case 3:modone();break; 修改个人记录case 4:idone();break; 查找职工记录case 5:listall();break; 统计职工记录case 6:wfile();break;将信息写入文件当中case 7:rfile();break;从文件中读取信息case 8:exit(0);退出系统default:printf(对不起,请重新选择!n);图3.1-a主函数程序简单说明:该功能主要显示的是给用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。下面是显示给用户的界面。(见图3.1-a) 主函数程序运行界面:图3.1b主函数界面 2)职工个人所得税(n-s)流程图(见图3.1-b)计算个人所得税float tgrsds(float m)定义变量:float sui1,sui2,sui3;float tmp;m=5000假 真 计算工资大于等于5000时的个人所得税 1000=m5000?假 真计算工资在1000-5000之间个人所得税 800=m1000 ?假 真 计算工资在800-1000之间的个人所得税图3.2-a职工个人所得税程序该程序主要根据职工的工资信息进行个人所得税的计算,当个人所得税m大于等于5000时,个人所得税tmp为(m-5000)*0.2;在1000=m5000时,个人所得税为(5000-1000)*0.1;当800=m1000时,个人所得税为(m-800)*0.5。3)录入职工的工资信息(n-s)流程图及程序运行界面录入职工的工资信息(n-s)流程图(见图3.3-a)printf(record no. %d n,n+1);输入月份输入职工基本信息输入职工的职工编号输入职工的基本工资输入职工的津贴输入职工的岗帖输入职工的补贴输入职工的房帖输入职工的交通补贴输入职工的房租输入职工的储蓄输入职工的汇费图3.3-a录入职工的工资信息程序该模块主要是对职工的工资进行录入,录入的主要有职工的津贴、岗贴、补贴、房帖、交通补贴,并把该五项统计为职工的实发工资。还录入职工的房租、储蓄、汇费。录入职工的程序运行界面。(见图3.3-b)图3.3-b录入职工的工资信息程序界面4)删除职工记录的(n-s)流程图及程序运行界面删除职工记录的(n-s)流程图(见图3.4-a)定义数据变量输入某职工的职工编号 gets(numstr);zhigongid=atof(numstr); for(j=0;j=n;j+)zgj.id=zhigongid?真假flagfind=1;tmpk=zgj;k+;flagfind=1?真假 for(j=0;j=(n-1);j+)没有你要删除的记录zgj=tmpj;成功删除记录n=n-1;return (0);图3.4-a删除职工记录程序该模块主要通过已经输入的职工信息进行删除,如果你输入的信息存在或不存在,则分别显示以下运行界面。见图(3.4-b、c)图3.4-b删除职工记录程序界面图3.4-c删除职工记录程序界面 5)修改个人记录的(n-s)流程图及运行界面修改个人记录的(n-s)流程图(见图3.5-a)定义数据变量输入职工的职工编号将所输职工编号转化为double型 for(j=0;j=n;j+)zgj.id=zhigongid?真假输入职工的新信息同时调用atof进行修改flagfind=0flagfind=1;flagfind!=0?真假return 0图3.5-a修改个人记录程序修改个人记录是在原有的基础上对职工的工资信息进行修改,在修改的同时你可以看到该职工原来的工资信息。以下是修改职工工资信息过后的显示界面。(见图3.5-b)图3.5-b修改个人记录的运行界面 6)查找职工记录的(n-s)流程图及运行界面查找职工记录的(n-s)流程图(见图3.6-a)定义数据变量输入职工的职工编号将所输职工编号转化为double型 for(j=0;j=n;j+)zgj.id=zhigongid?真假将查询到的程序一一输出flagfind=0flagfind=1flagfind!=0?真假您查找的记录不存在!return 0图3.6-a查找职工记录的(n-s)流程图该功能是对已经录入的职工信息进行查寻,如果你输入的职工编号存在,则显示职工的工资信息,如果不存在,则提示为“您查找的记录不存在”。运行界面如下。(见图3.6-b)图3.6-b查找职工记录的运行界面 7)统计出所有的职工信息的(n-s)流程图及运行界面 统计出所有的职工信息的n-s流程图(见图3.7-a)int jn1?真假您查找的记录不存在 for(j=0;j_n); return 0; 通过这个函数可以创建一个职工的所有工资信息,首先程序提示输入职工的编号,然后输入职工的工资信息,包括(基本工资、津贴、岗贴、补贴、房帖、交通补贴,并统计这些工资为实发工资。然后输入职工的房租、储蓄、汇费)3)函数delone/*删除个人记录*/delone(void)struct zhigong tmp50;double zhigongid;int j,k;int flagfind;flagfind=0;k=0;printf(-n);printf(n 请输入某职工的职工编号: n);gets(numstr);zhigongid=atof(numstr);for(j=0;j=n;j+)if(zgj.id=zhigongid)flagfind=1;elsetmpk=zgj;k+;if(flagfind=1)for(j=0;j=(n-1);j+)zgj=tmpj;printf(n 成功删除记录 ! n);printf(-n);n=n-1;elseprintf(n 没有你要删除的记录! n);printf(-n);return (0);程序提示用户输入要删除的个人的工资记录,使用线形查找法查找相应的记录,如果找到,则删除记录。如果没有,则提示用户该记录不存在。4)函数modone/*修改个人记录*/modone(void)double zhigongid;int j;int flagfind;flagfind=0;printf(n 请输入职工的职工编号: n);gets(numstr);zhigongid=atof(numstr);for(j=0;j=n;j+)if(zgj.id=zhigongid)printf(no.:%dn,j);printf(month:%dn,zgj.month);printf(t职工编号%10.0fn,zgj.id);printf(t基本工资:%10.2fn,zgj.jbgz);printf(t请输入职工的基本工资: n);gets(numstr); zgj.jbgz=atof(numstr); printf(t津贴:%10.2fn,zgj.jt); printf(t请输入职工的津贴: n); gets(numstr); zgj.jt=atof(numstr);printf(t岗贴:%10.2fn,zgj.gt);printf(t请输入职工的岗贴: n);gets(numstr);zgj.gt=atof(numstr);printf(t补贴:%10.2fn,zgj.bt);printf(t请输入职工的补贴: n);gets(numstr);zgj.bt=atof(numstr);printf(t房帖:%10.2fn,zgj.ft);printf(t请输入职工的房帖: n);gets(numstr);zgj.ft=atof(numstr);printf(t交通补贴:%10.2fn,zgj.jtbt);printf(t请输入职工的交通补贴: n);gets(numstr);zgj.jtbt=atof(numstr);zgj.sfgz=(zgj.jbgz)+(zgj.jt)+(zgj.gt)+(zgj.bt)+(zgj.ft)+(zgj.jtbt);printf(t房租:%10.2fn,zgj.fz);printf(t请输入职工的房租: n);gets(numstr);zgj.fz=atof(numstr);printf(t储蓄:%10.2fn,zgj.cx);printf(t请输入职工的储蓄: n);gets(numstr);zgj.cx=atof(numstr);printf(t汇费:%10.2fn,zgj.hf);printf(t请输入职工的汇费: n);gets(numstr);zgj.hf=atof(numstr);printf(修改成功n);zgj.grsds=tgrsds(zgj.sfgz);zgj.yks=(zgj.fz)+(zgj.cx)+(zgj.hf)+(zgj.grsds);zgj.sfs=(zgj.sfgz)-(zgj.yks);flagfind=1;elseflagfind=0;if(flagfind!=0)printf(n没有此记录! n);return(0);程序提示用户输入职工的编号,使用线形查找相应的记录,如果找到,则提示用户输入新的相应的职工信息。第四章 程序调试分析当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。1. 首先在定义函数时,不能输入汉字。否则会程序会显示错误。2.在程序中,如果定义职工的基本工资、津贴、岗贴、补贴、房帖、交通补贴等为float型,而后面其相应的返回值为双精度浮点型,会出现相应的警告3.前后定义变量要统一。4.如果要调用添加函数,修改函数,修改函数,查找函数,统计函数等要在主函数前面进行申明。否则会显示警告。5.对背景颜色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。6.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。7. 未注意int,float型数据的数值范围,int型数据的数值范围(-3276832768)。对定义工资变量时,如果将职工工资定义为float型,将会出现警告。8.对应该有花括弧的复合语句,忘记加花括弧。9. 所调用的函数在调用语句之后才定义,而又在调用前未加说明。第五章 程序使用说明运行程序进入到主菜单后,显示一个职工工资管理系统主菜单窗口,然后分别按所提示的在1-8中选择,分别输入相应的数字后按enter键即可。例如按数字键后,是对职工工资的录入,然后分别输入相应的工资信息。按数字键,是删除职工信息,输入相应的职工编号即可,当你输入的编号不存在,会提示你没有你要删除的内容。相反,会提示你成功删除记录。按数字键,是对职工的信息进行修改,是在以前的基础上进行修改的,分别输入职工的信息即可。输入成功后会提示你,修改成功!对以后的操作,分别按相应的数字键,按提示操作即可。第六章 总结随着我国成功加入wto及信息化浪潮的日益临近,企业、单位等一些部门在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势。因此,如何使企业、单位等部门及时掌握本企业、单位等人才的各种信息、第一时间处理好随时变化的工资管理问题,建立一套符合企业、单位实际的工资管理系统就显得尤为重要。在本课程设计的设计过程中,我刚开始感觉到有点头痛。要通过一学期c语言的学习后将所学知识运用起来有点困难,但回过头来再去看教课书,对于这些知识点有关的背景,概念和解决方案更进一步的理解,感觉也不是很难。另外我还体会了从事c语言课程设计工作需要特别谨慎认真地态度和作风,一点都不能马虎。每个细微的细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。如果把早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。有时候,我自己觉得我写的程序非常正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展。这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙才向老师同学请教。在开始编写程序的时候,我看到别人的程序功能非常的详细,而且界面非常漂亮,总是希望自己的程序也非常的完善,但是,发现编一个好的程序不是一蹴而就的事情,需要长时间的积累和经验。在反反复复的学习中,我终于作出一个简单的程序,虽然这个程序的功能非常简单,而且在实际运用中还有些不足,因为工资的的内容非常丰富,我涉及到的仅仅是工资管理的一部分简单内容,离实际的客户需求肯定还有差距。由于我的知识浅薄,经验不足及阅历颇浅,在该系统的设计方面还有很多不足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。致谢在这次c语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师熊茜老师,还有我的c语言任课老师金尚柱老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!参考文献1谭浩强著.c程序设计(第二版).北京:清华大学出版社,19992谭浩强,张基温,唐永炎编著.c语言程序设计.北京:高等教育出版社,19923谭浩强编著.qbasic语言教程.北京:电子工业出版社,19974谭浩强.c程序设计m.3版.北京:清华大学出版社,20055herbert schildt著.戴健鹏译.c语言大全(第二版).北京:电子工业出版社,19946美schildth.c语言大全m.4版.王子恢等译.北京:电子工业出版社,2001源程序#include stdio.h#include conio.h#includestdlib.h#include dos.h/* 为了调用atof()等函数 */#include stdlib.h#define true 1addone();delone();modone();idone();listall();wfile();rfile();/* 结构体声明 */struct zhigongint month;double id;double jbgz;double jt;double gt;double bt;double ft;double jtbt;double sfgz;double fz;double cx;double hf;double grsds;double yks;double sfs;/* 建立50个元素的结构体数组 */struct zhigong zg50; /* 建立结构体变量 */struct zhigong zgone;/* 职员列表中的数量 */int n=0;/* 获得字符串 */char numstr50;main() char ch; n=0; /*rfile(); 使用后启动程序时系统会自动加载纪录*/system(color 4e);while(true) printf(n);printf(=n); printf(tt欢迎来到职工工资管理系统 (请在中选择) n); /printf(_n); printf(tt 1.增加职工的工资信息 n); printf(tt 2.删除某职工的工资信息 n); printf(tt 3.改变某职工的工资信息 n); printf(tt 4.输出某职工的所有工资信息 n); printf(tt 5.统计所有的职工工资信息 n); printf(tt 6.保存日期 n); printf(tt 7.下载日期 n); printf(tt 8.退出 n); printf(=n); printf(ttt 请选择(1-8) n);ch=getche();switch(ch) case 1: addone();break; case 2:delone();break; case 3:modone();break; case 4:idone();break; case 5:listall();break; case 6:wfile();break; case 7:rfile();break; case 8:exit(0); default:printf(对不起,请重新选择!n); /*计算个人所得税*/double tgrsds(double m)double sui1,sui2,sui3;double tmp;sui1=0;sui2=0;sui3=0;if(m=5000)sui1=(m-5000)*0.2;sui2=(5000-1000)*0.1;sui3=(1000-800)*0.05;else if(m=1000 & m=800 & m_n); return 0; /*删除个人记录*/delone(void)struct zhigong tmp50;double zhigongid;int j,k;int flagfind;flagfind=0;k=0;printf(-n);printf(n 请输入某职工的职工编号: n);gets(numstr);zhigongid=atof(numstr);for(j=0;j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宁德霞浦3年级数学试卷
- 二零二五版外派员工国际派遣服务合同范本
- 二零二五版电子商务平台合作违约追究合同范本
- 2025版美发店经营权转让与合伙人共享合同
- 二零二五年高端设备进口代理服务合同样本
- 内江高二上学期数学试卷
- 二零二五年度酒店返租合作管理合同
- 2025海南文昌国际航天城管理局及平台公司招聘招聘13个岗位笔试参考题库附带答案详解
- 南通市通州一模数学试卷
- 强华中学小升初数学试卷
- 地基换填处理计算(2017版)
- NB∕T 13007-2021 生物柴油(BD100)原料 废弃油脂
- GB/T 11918.1-2014工业用插头插座和耦合器第1部分:通用要求
- 智学网成绩报告简介
- 顾客财产清单验证确认记录表、产品发放登记表
- 国家保安员资格考试培训教材
- 家谱电子版模板2
- 地下室抗浮计算含锚杆计算表格(自动版)
- 职业健康体检表
- DB43∕T 990-2015 辣椒耐弱光性鉴定技术规程
- 简单娱乐yy频道设计模板
评论
0/150
提交评论