1、c语言课程设计报告湖北工业大学商贸学院课程设计报告 院(系):_电子信息工程学院_班 级: 电信本09 学生姓名: _学 号: 2009540291 设计地点(单位)_计算机基础自主学习中心_设计题目:_职工工资管理系统_ 完成日期: 2008年 7月 10日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 教师签名:_湖北工业大学商贸学院课程设计任务书5设计题目: 工资管理系统 学生姓名课程名称C程序设计课程设计专业班级自普本2007-1自应本2007-1地 点I302/304起止时间2008.6.30-2008.7.11设计内容及要求主要利用c语言的文件操作能力设计开发一个小型的管
2、理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。设计参数文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。进度要求1. 布置设计题目,讲解要求和说明 2008.6.30 2. 确定设计任务,确定具体的功能,熟悉相关知识 2008.7.1
3、3. 按功能需求确定程序的主要模块 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.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:
4、 年 月 日摘 要.11设计内容、任务及具体要求.21.1设计内容.21.2设计任务及具体要求.22概要设计.32.1该系统的功能简介.32.2 总体程序框图.32.3各个模块之间的主要关系.43系统功能模块的具体设计.53.1各个模块的程序流程图及运行界面.53.2对关键代码加以分析说明.154程序调试分析.235程序使用说明.246总结.25致谢.26参考文献.27附:源程序.28摘 要工资管理系统是针对企业的工资管理业务进行计算机处理而开发的应用软件。该系统由系统维护、输入、查询、修改、输出、统计等子模块组成,功能基本涵盖普通企业的工资管理业务范围。企业应用本系统后,可以有效的提高工资管
5、理水平。本文从需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。为便于说明,文中绘制了程序结构框图、数据流程图和部分界面图。最后附有主要的源程序代码清单。 关键词:工资管理 系统维护 数据汇总 管理系统 软件开发1 设计内容、任务及具体要求1.1设计内容工资管理查询系统主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:1)职工个人说得税的计算模块,根据工资多余5000,在10005000之间,少余1000三种情况进行计算。2)添加职工的工资信息模块,用户根据输入职工编号后,对工资信息进行录入。
6、 3)职工工资查询模块,根据用户输入职工编号后,方可进行查询。4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。5)数据输出模块,输出其相应的模块功能。6)职工工资统计模块,根据输入的职工信息进行统计。 1.2设计任务及具体要求主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文
7、件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2 概要设计2.1该系统的功能简介该系统的主要功能是实现职工工资的录入,包括(录入职工的基本工资、实发工资、津贴、岗贴、补贴、房帖、交通补贴、储蓄、汇费)。对职工的工资信息进行删除、修改、个人所得税的计算。并统计职工的所有信息。2.2 总体程序框图图2.2-A总体程序 图2.2-B添加职工的工资信息2.2各个模块之间的主要关系该程序的功能主要是实现职工工资的录入,并对工资的相应信息进行个人所得税的计算。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个程序的核心。子函数之间也是
8、有联系的,对个人所得税的计算、职工工资信息的修改、删除、查询、统计,必须是在职工工资录入的情况下进行的。因此对职工工资信息的录入是非常重要的。在职工工资的修改、删除、查询、统计与个人所得税所有的子函数之间是没有多大联系的。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; 删除个人记录
9、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)职工个人
10、所得税(N-S)流程图(见图3.1-B)图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);输入月份输入职工基本信息输入职工的职工编号输入职工的基本工资输入职工的津贴输入职工的岗帖输入职工的补贴输入职工的
11、房帖输入职工的交通补贴输入职工的房租输入职工的储蓄输入职工的汇费图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?真假f
12、lagfind=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.
13、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?真假
14、将查询到的程序一一输出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; 通过这个函数可以创建一个职工的所有工资信
15、息,首先程序提示输入职工的编号,然后输入职工的工资信息,包括(基本工资、津贴、岗贴、补贴、房帖、交通补贴,并统计这些工资为实发工资。然后输入职工的房租、储蓄、汇费)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=zhi
16、gongid) flagfind=1; else tmpk=zgj; k+; if(flagfind=1) for(j=0;j=(n-1);j+) zgj=tmpj; printf(n 成功删除记录 ! n); printf(-n); n=n-1; else printf(n 没有你要删除的记录! n); printf(-n); return (0);程序提示用户输入要删除的个人的工资记录,使用线形查找法查找相应的记录,如果找到,则删除记录。如果没有,则提示用户该记录不存在。4)函数modone/*修改个人记录*/modone(void) double zhigongid; int j; in
17、t 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
18、(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=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1