版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 c语言程序设计 课题名称 职工工资管理系统 专 业 机械电子 班 级 1101班 学 号 201102170121 姓 名 王贝贝 指导教师 肖伟平 何宏 郭芳 2012年 12 月 19 日湖南工程学院课 程 设 计 任 务 书课程名称 c语言程序设计 课 题 职工工资管理系统 专业班级 机械电子1101班 学生姓名 王贝贝 学 号 201102170121 指导老师 肖伟平 何宏 郭芳 审 批 任务书下达日期 2012 年 12 月 19日任务完成日期 2012年 12月 29日一、设计内容与设计要求1 设计内容:职工工资管理系统设计涉及的知识点:掌握并熟练
2、运用c语言的基本数据类型与各种表达式,程序的流程控制语句;掌握数组的基本概念。熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。2 设计要求:1) 用c语言实现系统;利用结构体数组实现职工工资的数据结构设计;系统的各个功能模块要
3、求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。2) 建立一个职工工资信息数据库,文件名为zggzk.txt,并从该文件中读取数据;3) 职工工资管理系统应能提供以下功能:(1)主菜单界面设计。通过提示用户输入一个数字选项,调用相应的功能函数。(2)显示功能:完成全部职工记录的显示,显示时按表格的形式,且应有表头;(3)计算功能:完成全部职工的应发工资、税款和实发工资的计算并显示;计算方法是: 应发工资=基本工资+奖金 税款的计算方法是:(基本工资+奖金)=3500时,税款
4、为0;3500(基本工资+奖金)5000时,税款=(基本工资+奖金-3500)*0.1-105实发工资=应发工资-扣款-税款(4)修改功能:能分别按指定职工工号和按指定姓名修改一个职工的基本工资、奖金和扣款中的一项或多项数据,修改后重新计算职工的应发工资、税款和实发工资,并重新排序和显示;(5)查询功能:要求能分别按工号和按姓名查询一条记录并以表格形式显示;(6)追加功能:追加一条或多条新职工记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算和显示;(7)删除功能:要求可按指定的工号和指定的姓名两种定位方式删除职工的记录。(8)排序功能:按职工实发工资降序排序;(9)要求在删除模块、
5、修改模块和查询模块中若找不到所需的记录时,系统设计中应有一定的提示信息。4) 说明:(1) 要求将修改后的数据写入到一个新的数据文件nwegzk.txt中。(2) 对系统有兴趣的同学可以在实现基本要求的基础上,完善系统的其它功能。5) 职工工资管理系统采用一个结构体数组,职工工资数据库结构如下:int gh /*工号*/char name10 /*姓名*/double jbgz /*基本工资*/double jj /*奖金*/double kk /*扣款*/double yfgz /*应发工资*/double sk /*税款*/ double sfgz /*实发工资*/注意:职工工号不能重复且
6、不少于4位数字,各项字符串的长度要求在410之间,数据库应有10条或多于10条以上的记录。6) 要求:1 要求每个学生必须独立思考,认真并按时完成本课程设计所包含的所有内容;2 要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序;3 设计报告的完整格式应包括以下部分的内容: 系统设计总体思路; 系统的主要功能; 系统功能模块的划分(要求画出总体模块框图); 主要功能的实现和各个程序模块说明(每个功能模块的框图、系统主模块的流程图,各个功能模块至少要有一个主要的流程图); 程序调试过程及各模块调试中相应的部分截图; 课程设计总结与体会(不少于5
7、00字)。 课程设计参考文献; 程序清单;4 课程设计周内,凡规定的集中上机时间必须到机房调试程序;5 设计完成后必须参加答辩,并按要求演示程序,提交课程设计报告和有关电子文档。7)分组及安排所选题目根据学生班号和学号确定,(班号+学号)% 6+1。如你的班号为01班、学号为01,则所选题目号为:(1+1)%6+13,即课题号为3。8)成绩评定程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低;答辩时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。二、进度安排第 16 周 星期四 14:0017:00 讲课、布置任务第 17 周 星期一 8:0012:
8、00 机房上机调试程序星期二 8:0012:00 机房上机调试程序星期三 19:0022:00 机房上机调试程序星期四 8:0012:00 机房上机调试程序、答辩 附:课程设计报告排版、打印和装订要求1. 课程设计报告装订顺序:封面、任务书、目录、正文、附件、评分表。按a4大小的纸张排版和打印。 2. 设计报告的页码从目录之后开始使用;3. 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22磅。正文中程序清单(英文)用英文字体times new roman,单倍行间距。 4. 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要
9、功能的实现(至少要有一个主要模块的流程图);四、程序调试(各模块至少有一个程序调试的截图);五、总结(不少于500字);六、参考文献;t、附件(包含所有程序的原代码,且程序中应有必要的注释)。八.正文总字数要求在5000字以上(不含程序原代码)。5设计报告中任务书和评分表不需重新排版。 目 录一系统的主要思路1二、系统的主要功能11.显示模块12.计算模块13.排序模块14.追加模块25.修改模块26.删除模块27.查询模块28.退出模块2三系统功能模块的划分1.总体模块功能框图3四总流程图41.总流程图32.八大模块的流程图5五程序调试131.计算模块142.显示模块143.追加模块154.
10、修改模块175.删除模块196.查询模块217.排序模块238.退出模块24六心得与体会25七参考文献:25八附件:251一系统的主要思路 此系统事用c语言实现一个职工工资管理系统;利用结构体数组实现职工工资信息的数据结构;例如,删除某些职工信息、追加某些职工信息、修改某些职工信息等等;系统的各个功能调用各个函数的形式实现;并提供一个界面来调用,各个功能的操作。 首先我们要对系统操作就必须先创建一个数据库,用来存放各个职工的工资信息,如:基本工资、奖金、扣款、应发工资、税款、实发工资等。并用读函数fscanf读取数据,然后才能进入主控程序。然后,运行该程序显示的为主菜单界面,并且主菜单界面显示
11、调用各个功能函数的功能键;通过提示用户,调用各个功能操作。按下相应的功能键,就会进入相应的功能模块系统,并进行相应的操作。程序操作完并正常退出后,系统又会调用写函数fprintf将修改过的数据存入一个新的文件。 职工工资管理系统存放了每位职工的本工资、奖金、扣款、应发工资、税款、实发工资的数据库。每位职工的信息定义在一个结构体变量中。其结构如下:系统通过显示程序、追加程序、查询程序、删除程序、修改程序、排序程序等程序来实现职工工资管理系统的显示功能、追加功能、查询功能、删除功能、修改功能、排序功能等功能。各个功能的调用通过主函数中的switch语句来实现。二、系统的主要功能1、显示模块 voi
12、d display()通过设计此模块,来实现职工工资信息的显示。以便于浏览职工工资。2、计算模块 void caculate()通过设计此模块,计算出职工的应发工资、税款、实发工资。3、排序模块 void sort()通过设计此模块,来实现按照职工工资的实发工资进行排序。114、追加模块 void apperd()通过设计此模块,以便当加入新的职工工资信息的时候,来实现新的职工工资的加入。5、修改模块 void modify()通过设计此模块,当要对某一信息进行修改时,可以通过此模块来进行修改。并且可以按用户指定的信息进行修改。6、删除模块 void delete()通过设计此模块,可以按用户
13、指定的公号和指定的姓名进行职工工资信息的删除。7、查询模块 void query()通过设计此模块,可以按工号和姓名来查询职工工资的所有的信息,并可以显示所查询的职工工资信息。8、退出模块 void quit()通过设计此模块,来实现退出系统主菜单。三系统功能模块的划分 主函数1.总体模块功能框图退出模块查询模块删除模块修改模块追加模块排序模块计算模块显示模块 退出四总流程图1.总流程图 显示主界面 进入程序5127643计算模块排序模块查询模块删除模块修改模块追加模块显示模块 显示内容 退出程序 退出2.八大模块的流程图2.1计算模块开始输入1计算模块输出退出2.2显示模块开始输入2显示模块
14、输出退出2.3排序模块开始输入3排序模块输入排序信息输出排序信息n = ?退出sele=1sele=22.4追加模块开始输入4追加模块输出追加几个人的信息 退出显示模块 输入修改信息(工号)2.5修改模块开始输入5修改模块n =?输入n输入修改信息(姓名)sele=1sele=2输入mm = ?显示模块退出sele=1sele=22.6删除模块开始输入6删除模块输入删除信息n=?输入1或2 退出sele=1sele=22.7查询模块开始输入7查询模块输入nn = ?工号姓名查询信息输入mm = ?退出sele=1sele=2sele=1sele=2sele=32.8退出模块开始输入8退出5 程
15、序调试在vc的环境下,调试程序,进入菜单界面1 计算模块从主菜单界面输入“1”,进入计算模块。此时显示所有职工的基本工资、奖金、扣款等。2.显示模块从菜单界面输入“2”进入显示模块,此时显示所有职工的基本工资、奖金、扣款等。3.追加模块从主界面输入“3”进入追加模块此时按照提示输入“1”,确认进行追加此时按照提示输入你想追加的人数,如输入数字“1”,追加1个人此时按照提示输入具体追加的内容,得到新的工资表4.修改模块在主界面输入“4”进入修改模块按照提示输入数字“1”,此时就会根据工号进行修改此时按照提示输入要修改的工号,如输入数字“1110”,进行对工号为1110的职工信息进行修改此时按照提
16、示输入数字以选择要修改的项目,如输入数字“3”,对基本工资进行修改 此时按照提示输入新的基本工资,如输入数字“200”5.删除模块从主界面输入数字“5”进入删除模块此时按照提示选择按照什么方式查找职工的工资信息,然后进行删除,如输入数字“1”,按照姓名查找此时按照提示输入要删除的职工姓名,如输入姓名“赵信”6.查询模块从主界面输入数字“6”进入查询模块此时按照提示输入数字选择根据什么进行查寻,如输入数字“1”根据工号查询此时按照提示输入要查询的工号,如输入数字“1101”此时按照提示输入数字进行继续查询或退回主界面,如输入数字“2”根据姓名继续查询7.排序模块从主界面输入数字“7”进入排序模块
17、此时按照提示输入数字选择根据什么方式排序,如输入数字“1”进行升序排列此时按照提示输入数字决定是否排序,如输入数字“2”进行排序8.退出模块请输入数字“8”进入退出模块6 心得与体会忙碌了不到一个星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,程序本身并不是完美的,但仍然很高兴。因为在设计的过程中,让我了解到要设计一个大型程序,基础的知识是至关重要的,在良好的基础上,再自己付出努力进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外其他同学的帮助也很关键,因为如果你平时早某些方面学得就不怎么样,那么你面对这么一个比较有难度的程序,
18、你可能会在一些地方出差错,而你又不太敢问老师,这时同学的帮助就很重要了。在设计这个程序时,我刚开始是根据老师给我的主体框架进行编程。当我将程序的最初版搞好的的时候,我认为自己可以是一口气了。谁知道,程序运行之后才发现有着这样或着那样的问题。为此,我查找了不少资料,最后程序终于没有了语法错误。当程序已经可以运行之后,在运行中发现了未成发现的问题,最后在自己的努力和同学的帮助下解决了问题。这次课程设计让我把以前所学过的知识重新温故了一遍。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在肖老师的知道和李参的帮助下,终于顺利完成。同时,在肖老师的教导里我学得到很多实用的知识和学好c语言的
19、方法,在次我表示衷心的感谢!同时,对给过我帮助的同学和指导老师再次表示由衷的感谢!7 参考文献:1 贾宗璞,许合利,c语言程序设计,人民邮电出版社,2010.92 张良,全国计算机等级考试笔试上机一本通,人民邮电出版社,2012.18 附件#include stdio.h#include string.h#include conio.hint n=0;struct stu int gh; /*工号*/ char name10; /*姓名*/ double jbgz; /*基本工资*/ double jj; /*奖金*/ double kk; /*扣款*/ double yfgz; /*应发工资
20、*/ double sk; /*税款*/ double sfgz; /*实发工资*/ s20;void re_file() file *fp; fp=fopen(d:zggzk.txt,r); while( fscanf(fp,%dn%sn%lfn%lfn%lfn%lfn%lfn%lfn,&sn.gh,sn.name,&sn.jbgz,&sn.jj,&sn.kk,&sn.yfgz,&sn.sk,&sn.sfgz)!=eof) n+; fclose(fp); void wr_file()int i; file *fp; fp=fopen(d:newzggzk.txt,w); for(i=0;in
21、;i+) fprintf(fp,%dn%sn%lfn%lfn%lfn%lfn%lfn%lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz); fclose(fp);void caculate() /*计算模块*/int i; for(i=0;in;i+) si.yfgz=si.jbgz+si.jj; if(si.yfgz3500&si.yfgz=5000) si.sk=(si.yfgz-3500)*0.03; else si.sk=(si.yfgz-3500)*0.1-105; si.sfgz=si.yfgz-si.sk-si
22、.kk; void display() /*显示模块*/int i;printf(*n);printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);printf(*n);caculate();for(i=0;in;i+) printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(*n);getchar();void sort() /*排序模块*/ int i,
23、j,f,k; printf(tt* n); printf(tt* * n);printf(tt* 欢迎进入排序模块 * n); printf(tt* * n);printf(tt*nn);printf(tt*n);printf(tt* 按什么方式排序 *n);printf(tt* 1.工资升 *n);printf(tt* 2.工资降 *n);printf(tt* 3.返回上级 *n);printf(tt*n); scanf(%d,&k);if(k!=1&k!=2&k!=3)printf(*n);printf(*input error/排序方式有误*n);printf(*n);elseswitc
24、h(k) case 1:for(j=1;j=n-1;j+) for(i=0;i=si+1.sfgz) struct stu k; k=si; si=si+1; si+1=k; ; printf(*n); printf(*请问需要继续排序?*n);printf(* 1.是 2.否 *n);printf(*n);scanf(%d,&f);if(f!=1&f!=2) printf(*n); printf(*输入错误/请重新输入*n); printf(*n); else if(f=1) break; case 2:for(j=1;j=n-1;j+) for(i=0;i=n-1-j;i+)if(si.s
25、fgz=si+1.sfgz) struct stu k; k=si; si=si+1; si+1=k; printf(*n); printf(*请问需要继续排序?*n);printf(* 1.是 2.否 *n);printf(*n);scanf(%d,&f);if(f!=1&f!=2) printf(*n); printf(*输入错误/请重新输入*n); printf(*n); else if(f=1) break; case 3:break; void append() /*追加模块*/ int x,i,n;printf(*n);printf(# 1.追加 #n);printf(# #n);
26、printf(# 2.退出 #n);printf(*n);printf(请输入你的选择:n);scanf(%d,&x);caculate();switch(x)case 1:printf(请输入你想在追加多少人:n);scanf(%d,&n);printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);for(i=0;in;i+)scanf(%d%s%lf%lf%lf%lf%lf%lf,&sn.gh,sn.name,&sn.jbgz,&sn.jj,&sn.kk,&sn.yfgz,&sn.sk,&sn.sfgz);n+;case 2:break;void modify
27、() /*修改模块*/ int i,x,a,b;double c;char ch20;caculate();printf(*n);printf( * 修改模块 *n);printf( * 1.工号 2.姓名 *n);printf( * 3.退出 *n);printf( *n);printf(请输入你的选择n);scanf(%d,&x);switch(x)case 1:printf(请输入共号n);scanf(%d,&a);for(i=0;in;i+)if(a=si.gh)printf(*n);printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);printf(
28、*n);printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(*n);printf(*n);printf(* 请输入你想修改的项目 *n); printf(* 3.jbgz 4.jj *n);printf(* 5.kk 6.quit *n);printf(*n);printf(请输入你的选择n);scanf(%d,&b);switch(b)case 3:printf(请输入新的数据n)
29、;scanf(%lf,&c);si.jbgz=c;caculate();printf(*n);printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);printf(*n);printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(*n);break;case 4:printf(请输入新的数据n);scanf(%lf,&c);si.jj=c;caculate(
30、);printf(*n); printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);printf(*n);printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(*n);break;case 5:printf(请输入新的数据n);scanf(%lf,&c);si.kk=c;caculate();printf(*n); printf( * 工号 姓名 基本工
31、资 奖金 扣款 应发工资 税款 实发工资 *n);printf(*n);printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(*n);break;case 6:break;if(i=n)printf(错误工号!n);modify();break;case 2:printf(请输入姓名n);scanf(%s,ch);for(i=0;in;i+)if(strcmp(ch,)=
32、0)printf(*n);printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);printf(*n);printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(*n);printf(*n);printf(* 请输入您想修改的项目 *n); printf(* 3.jbgz 4.jj *n);printf(* 5.kk 6.quit *n);printf(*n
33、);printf(请输入您的选择n);scanf(%d,&b);switch(b)case 3:printf(请输入您的新数据n);scanf(%lf,&c);si.jbgz=c;caculate();printf(*n);printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);printf(*n);printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(
34、*n);break;case 4:printf(请输入您的选择n);scanf(%lf,&c);si.jj=c;caculate();printf(*n); printf( * 工号 姓名 基本工资 奖金 扣款 应发工资 税款 实发工资 *n);printf(*n);printf( * %-8.2d%-10s%-10.2lf%-11.2lf%-8.2lf%-10.2lf%-10.2lf%-7.2lfn,si.gh,,si.jbgz,si.jj,si.kk,si.yfgz,si.sk,si.sfgz);printf(*n);break;case 5:printf(请输入您的选择n);scanf(%lf,&c);si.kk=c;caculate();printf(*n); printf( * 工号 姓名 基本工资 奖金 扣款
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度物业租赁与装修合同
- 自行车脚踏车车轮市场需求与消费特点分析
- 吉他放大器市场发展现状调查及供需格局分析预测报告
- 橡胶家务手套市场需求与消费特点分析
- 2024年度环保要求下彩钢房设计与建造合同
- 2024年度智能家居系统开发及安装合同
- 2024年度化妆品销售与仓储配送合同
- 04版食堂小卖部一体化经营合同
- 2024年度临时工程承包合同
- 2024年度废弃物资源化利用与环境合同
- 2024年浙江嘉兴南湖区教育研究培训中心选聘研训员历年高频难、易错点500题模拟试题附带答案详解
- 中国陶瓷史学习通超星期末考试答案章节答案2024年
- GB/T 10433-2024紧固件电弧螺柱焊用螺柱和瓷环
- 师德师风考试试卷及答案
- 全国教育科学规划课题申报书:27.《教育数字化转型的区域实践探索研究》
- 人教版九年级上册化学期末考试试题带答案
- 辽宁省沈阳市重点中学2024年高三高考模拟考试(二)数学试题
- 部编版三年级上册语文全册教案(教案)
- 电信营业厅业务办理指南预案
- 静脉输液治疗护理技术操作规范
- 2023年12月英语四级真题及答案-第2套
评论
0/150
提交评论