版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书学院、系:专业:学学生姓名:号:设计题目:职工工资管理系统起迄日期:指导教师:日期:2017年 5月 12日设计目的本课程设计是采用C 语言,在VC 平台下设计年历显示系统,该系统运行在MS-DOS命令行模式下。本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。进一步巩固和复习 C程序设计的基础知识;培养学生结构化程序、模块化程序设计的方法和能力;了解软件的编制过程及各环节的具体内容;提高学生程序调试技巧、软件设计能力和代码规范化等素质;提高学生分析问题、解决问题以及
2、实际运用能力。任务概述功能设计要求:输入记录 : 将每一个职工的姓名、 ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录(系统应能建立一个新的数据文件或给已建立好的数据文件增加记录)。显示记录 : 根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。修改记录 : 可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。4 查找记录: 可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。删除记录 : 可删除数据文件中的任一记录。统计 : ( 按字符表格形式打印全部职工工资信息表及平均工资(? 包括各项总的平均工资
3、) 。7保存数据文件功能。例如:职工工资信息表ID 号 姓名 基本工资职务工资津贴 医疗保险 -公积金 -总工资01张望1286794198109135203402李明118562813594114174003王小民895438986473129404张效章1350868210116150216205彭山7453988461681098各项平均工资1092.2 625.2 145 88.8 108模块划分图 3.14 主要函数说明及其N-S 图主要函数说明:1)输入记录:将每一个职工的姓名、 ID 号、基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个结构体。2)显示记录:根据职工姓
4、名或者ID 号显示一个或几个职工的各项工资。3)修改记录:对任何一个结构体中的成员按照要求进行修改,并显示修改前后结构体中的所有成员信息。4)查找记录:查找满足条件的职工信息,要求显示所有的职工成员信息。5)删除记录:删除满足条件的职工信息。6)统计:计算各项工资的总工资及平均工资。N-S 图:输入函数图 4.1查找函数图 4.2统计函数图 4.3修改函数图 4.4删除函数图 4.5显示函数图 4.6保存数据文件图 4.7读取数据文件9.图 4.8程序框图图 4.9程序运行数据及其结果1.输入职工信息的实现图 5.1.1图 5.1.2通过姓名显示职工信息图 5.2.1图 5.2.23.修改职员
5、信息图 5.34. 查找职员信息图 5.4.1图 5.4.25. 删除职员信息图 5.5.1图 5.5.26. 统计职员信息图 5.67.退出系统图 5.76 课程设计心得通过这次的设计,练习熟悉了C 语言的编译,有更深的体会和了解。对传值传址更为熟悉,对单链表的相关算法,如键立,插入,删除等也基本掌握,最基本的单链算法是后期学习的基础,调试程序作分析找错误时,画图细心分析每步的进程,提高了逻辑能力和思维能力。也经过这次的练习找到自已很多的不足,好的编程习惯很重要,可以节省不少的调试时间。对基础的掌握很重要,这样可不不必时时查资料,向同学咨询。计算机编程要多多练习,这样才可以熟悉,可以加深记忆
6、,提高编程的能力。在编程的过程中,有时因某些错误难以改正而无奈,可以调试改正好后的成就感也让人愉悦。大学的生活很松散,在编程过程中会觉得时间过得很快,专心的做一件事,也让人充实。这也是学习计算机的乐趣所在, 以后会加深在计算机方面的学习。 通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢
7、固。计算机是门注重实践的学科,要学好计算机必须要多多的实践。这次练习让我更明白了这点。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际。经过这段时间的上机实践学习,使我对 c 语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对 c 语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对 c 语言中经常出现的错误也不了解,通过实践,使我
8、在这几个方面的认识有所提高。课堂上要讲授许多关于c 语言的语法规则,听起来十分枯燥无味,也不容易记住, 死记硬背是不可取的。然而要使用c 语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握 c 语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。学习 c 语言不能停留在学习它的语法规则,而是利用学到的知识编写c 语言程序, 解决实际问题。即把 c 语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上
9、机才能检验自己是否掌握c 语言、自己编写的程序是否能够正确地解题。一个 c 语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓环境 就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c 语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系
10、统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。附录:#include#include#define N 100struct workerint ID;char name20;float base; /base 基本工资float rate; /rate 职务工资float subsidy; /subsidy岗位津贴float medicare; /medicare医疗保险float fund; /fund float tot
11、al; /tootal ;公积金总工资/输入函数,输入职工的信息int input(struct worker work,int a)int i;printf( 请输入员工人数:n);scanf(%d,&a);printf( 输入格式为:nID 号 姓名 n 基本工资职务工资岗位津贴医疗保险公积金 n);for(i=0;ia;i+)printf( 请输入第 %d 个员工信息,i+1);scanf(%d %s,&worki.ID,);scanf(%f %f %f %f %f,&worki.base,&worki.rate,&worki.subsidy,&worki.medic
12、are,&worki.fund);printf( 输入职工信息成功! );return a;void read(struct worker work,int a)FILE *fp;if(fp=fopen(zggzxx.txt,r)=NULL)printf( 打开文件失败);elsefor(int i=0;iN;i+)fscanf(fp,%d %s %f %f %f %f %f,&worki.ID,,&worki.base,&worki.rate,&work i.subsidy,&worki.medicare,&worki.fund);fclose(fp);void save
13、(struct worker work,int a)FILE *fp;if(fp=fopen(zggzxx.txt,w)=NULL)printf( 打开文件失败!n);elsefor(int i=0;iN;i+)fprintf(fp,%d %s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.su bsidy,worki.medicare,worki.fund);printf( 保存文件信息成功!) ;fclose(fp);/显示,按要求显示需要显示的职工信息void xianshi(struct worker w
14、ork,int a)int i,select,t;char * next,r20;printf(n 1.按姓名查找 n);printf(n 2.按查找 n);scanf(%d,&select);switch(select)case 1:printf( 请输入要显示的姓名:n);scanf(%s,r);next=r;printf(ID号 姓 名 基本工资职务工资岗位津贴医疗保险公积金 n);for(i=0;ia;i+)if(strcmp(next,)=0)printf(%d %s %f %f %f %f %fn,worki.ID,,worki.base,w
15、orki.rate,worki.subsidy,wo rki.medicare,worki.fund);break;case 2:printf( 请输入要查询的ID : n);scanf(%d,&t);printf(ID 号 姓 名 基本工资 职务工资 岗位津贴 医疗保险 公积金 n); for(i=0;ia;i+)if(t=worki.ID)printf(%d %s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.subsidy,wo rki.medicare,worki.fund);break;/修改函数,修改
16、需要修改的职工信息void xiugai(struct worker work,int a)int i,ID,t;printf( 请输入要修改员工的ID : n);scanf(%d,&ID);printf( 修改前职工的信息:n);printf(ID 号 姓 名 基本工资 职务工资 岗位津贴 医疗保险 公积金 n); for(i=0;ia;i+)printf(%d %s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.subsidy,wo rki.medicare,worki.fund);for(i=0;ia;i+
17、)if(ID=worki.ID)t=i;printf( 请输入该职工的信息:);printf( 输入格式为:nID 号 姓名 n 基本工资scanf(%d %s,&workt.ID,);职务工资岗位津贴医疗保险公积金n);scanf(%f %f %f %f %f,&workt.base,&workt.rate,&workt.subsidy,&workt.medicare,&workt.fu nd);printf( 修改后职工的信息:n);printf(ID 号 姓 名 基本工资 职务工资 岗位津贴 医疗保险 公积金 n); for(i=0;ia;i+)printf(%d %
18、s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.subsidy,wo rki.medicare,worki.fund);/查找函数,查找员工信息,并输出其信息void search(struct worker work,int a)int i,select,t;char * next,r20;printf(n 1.按姓名查找 n);printf(n 2.按查找 n);scanf(%d,&select);switch(select)case 1:printf( 请输入要显示的姓名:n);scanf(%s,r);n
19、ext=r;printf(ID 号 姓 名 基本工资 职务工资 岗位津贴 医疗保险 公积金 n); for(i=0;ia;i+)if(strcmp(next,)=0)printf(%d %s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;case 2:printf( 请输入要查询的ID : n);scanf(%d,&t);printf(ID 号 姓 名 基本工资 职务工资 岗位津贴 医疗保险 公积金 n); fo
20、r(i=0;ia;i+)if(t=worki.ID)printf(%d %s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;/删除函数,删除员工信息int dele(struct worker work,int a)int i,select,t;char * next,r20;printf(n 1.按姓名查找 n);printf(n 2.按查找 n);scanf(%d,&select);switch(select)case 1:pr
21、intf( 请输入要显示的姓名:n);scanf(%s,r);next=r;printf(ID号 姓 名 基本工资职务工资岗位津贴医疗保险公积金 n);for(i=0;ia;i+)if(strcmp(next,)=0)printf(%d %s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.subsidy,wo rki.medicare,worki.fund);printf( 您确定要删除该职工信息吗?(请输入 y或 n):);getchar();if(getchar()=y)|(getchar
22、()=Y)worki=worki+1;a-;case 2:printf( 请输入要查询的ID : n);scanf(%d,&t);printf(ID 号 姓 名 基本工资 职务工资 岗位津贴 医疗保险 公积金 n); for(i=0;ia;i+)if(t=worki.ID)printf(%d %s %f %f %f %f %fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);printf( 您确定要删除该职工信息吗?(请输入y或 n):);getchar();if(getch
23、ar()=y)|(getchar()=Y)worki=worki+1;a-;return a;/统计函数,统计员工的信息void tongji(struct worker work,int a)int i=0,j;float add5;for(i=0;ia;i+)add0+=worki.base;add1+=worki.rate;add2+=worki.subsidy;add3+=worki.medicare;add4+=worki.fund;worki.total=worki.base+worki.rate+worki.subsidy+worki.medicare+worki.fund;for(i=0;ia;i+)printf(ID号 姓 名 基本工资职务工资岗位津贴医疗保险公积金 n);printf(%d%s%f%f%f%f%fn,worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund,worki.total);printf( 各项平均工资:%f %f %f %f %fn,add0/a,add1/a,add2/a,add3/a,add4/a);int main()struct worker work100,*p=work;int a=0,select,i=0;print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国电源连接器行业竞争动态与销售渠道策略报告
- 2024-2030年中国电子电镀行业发展态势投资策略分析报告
- 《《海录碎事》中的音乐史料研究》
- 2024-2030年中国玻璃升降器市场销售渠道分析及发展策略研究报告
- 2024-2030年中国环状膦酸酯行业运营状况与应用前景预测报告
- 2024-2030年中国环境卫生管理行业发展前景预测及投资规划分析报告
- 2024年煤及矿产品批发服务项目提案报告模板
- 2024-2030年中国烘焙油脂行业市场竞争策略及投资盈利分析报告
- 《吉林省汽车产业产能利用率的测度及对环境的影响研究》
- 2024-2030年中国混凝土强化剂行业运营状况与投资盈利预测报告
- 2024-2030年中国南美白对虾行业市场竞争格局及发展趋势与投资前景研究报告
- 重大事故隐患判定标准课件
- 2023年江苏省公安机关招考录用人民警察简章
- 2024新老物业移交协议
- 在线网课知道智慧《电路(1)(山大)》单元测试考核答案
- 不履行合同义务催告函范文
- 小学二年级上册数学-数角的个数专项练习
- 项目目标成本测算书样表
- 家长会课件:小学四年级数学期中家长会课件
- 职业生涯规划概述课件
- 九年级英语《Unit 6 When was it invented》说课稿
评论
0/150
提交评论