C语言程序设计工资管理系统.doc

上传人:精*** 文档编号:865544 上传时间:2023-10-05 格式:DOC 页数:16 大小:270.96KB
下载 相关 举报
C语言程序设计工资管理系统.doc_第1页
第1页 / 共16页
C语言程序设计工资管理系统.doc_第2页
第2页 / 共16页
C语言程序设计工资管理系统.doc_第3页
第3页 / 共16页
C语言程序设计工资管理系统.doc_第4页
第4页 / 共16页
C语言程序设计工资管理系统.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、一、课程设计时间201415第1学期第1周,即9月1日9月5日,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:(1)输入职工数据(包括:职工号,姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资等)保存在data22.txt文件中。(实发工资不用录入。注:实发工资=基本工资补贴金额奖励金额-扣除金额。)(2)统计实发工资并更新到data22.txt文件中。(3)统计:各项工资的总金额和平均金额。如:基本工资 补贴金额 奖励金额 扣除金额 实发工资总和 12000 1300 1400 1500 13200平均 1200 130 140 150 1320人数: 10(4)建

2、议使用freadfwrite函数访问文件。三、课程设计要求程序质量:1贯彻结构化程序设计思想。2用户界面友好,功能明确,操作方便;可以加入其它功能或修饰。3用户界面中的菜单至少应包括“职工信息录入”、“统计实发工资”、“各项统计”和“退出”4项。4代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语目录一、需求分析1二、设计分析2三、主要界面截图5四、技术要点7五、个人总结9六、参考文献10七、源程序1014一、需求分析根据任务书给

3、定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个较典型的数据管理系统,其使用者被假定为某办公室的职工工资管理人员,系统涉及到企业诚信、资金安全及职工利益问题,所以系统应该具有稳定、准确、功能齐全的特点。1. 稳定性分析指系统比较健壮,计算数据准确,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。2. 主要功能分析按照题目的要求及考虑到用户操作方便等因素,可定义以下自定义函数:录入职工信息函数(add),计算实发工资函数(cal),统计函数(tol),查看个人工资明细(view)以及主函数(main)。以下分别介绍:1、录入职工

4、信息函数(add) 用户可以输入职工的职工号,姓名等必要的信息,并将这些职工信息存入文件data22.txt中;2、计算实发工资函数(cal)经计算统计出每个职工的实发工资,并实时存入文件data22.txt中。3、统计函数(tol) 按照题目的具体要求实现对各类金额数据的求和,求平均并显示;4、显示工资明细(view) 此功能用于查看各个职工的工资明细,可以清楚的看到职工的基本工资,补贴金额,奖励金额,扣除金额及实发工资分别是多少。 除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。二、 设计分析本程序主要由四个自定义函数和一个主

5、函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,增加新职工数据函数和统计各项工资的总金额和平均金额是程序中较为核心的部分,下面分别进行介绍: 工资管理系统21、 程序总体结构图Topic() Getchar()While(1)Menu() getchar() Case1否真否Case2真 输 入 职 工 信 息Case3 统 计 实 发 工 资否真统 计 各 项 工 资 的 总 金 额 和 平 均 金 额退出图1程序总体结构图2、主要功能模块框图(1)录入数据函数add printf(“请输入职工数量”n); scanf(“%d”,&n);for(j=0;jn

6、umwork-namework-jibenwork-butiework-jiangliwork-kouchu循环 work+ Save()图2 录入数据函数int sum1=0; float ave1=0;int sum2=0; float ave2=0;int sum3=0; float ave3=0;int sum4=0; float ave4=0;int sum5=0; float ave5=0;For(i=0;in;i+)假真 Wori.num!=0printf(总和t%dtt%dtt%dtt%dtt%dn,sum1,sum2,sum3,sum4,sum5);printf(平均t%ft

7、%ft%ft%ft%fn,ave1,ave2,ave3,ave4,ave5);Sum1+=wori.jiben ave1=sum1/n Sum2+=wori.butie ave2=sum2/nSum3+=wori.jiangli ave3=sum3/nSum4+=wori.kouchu ave4=sum4/nSum5+=wori.shifa ave5=sum5/n(2)统计各项工资的总金额和平均金额tol图3 统计函数三、主要界面截图图4 程序主界面图5 职工数据输入界面图6计算实发工资函数并显示图7 统计各项工资的总金额和平均金额界面图8 职工工资明细查询界面四、技术要点1、结构体的应用定义

8、了结构体用来描述职工的工号、姓名以及各项工资的金额。具体的定义如下:struct work /定义结构体int num; /定义职工号为整形char name10; /定义职工姓名为字符串数组int jiben; /定义基本工资为整形int butie; /定义补贴金额为整形int jiangli; /定义奖励金额为整形int kouchu; /定义扣除金额为整形int shifa; /定义实发金额为整形worSIZE;2、文件操作包括了文件的写入和读取两个方面。文件的写入操作,用于保存录入的职工数据,也用于保存所修改的数据。例如如下程序段用于保存录入的职工信息:void save()FILE

9、 *fp; /定义文件型指针变量int i;if(fp=fopen(e:data22.txt,w+)=NULL) /以读写方式建立并打开文件data22.txt/printf(cannot open this filen);return;for(i=0;iSIZE;i+)if(fwrite(&wori,sizeof(struct work),1,fp)!=1) /向文件中写入职工信息/printf(file write errorn);fclose(fp); /关闭文件以下程序段则用于读取以写入并保存的职工信:void read()FILE *fp; /定义文件型指针变量int i;if(fp

10、=fopen(e:data22.txt,r+)=NULL) /以读写方式打开文件data22.txt/printf(cannot open this filen);return;for(i=0;iSIZE;i+)if(fread(&wori,sizeof(struct work),1,fp)!=1) /读入文件中的职工信息/printf(file read errorn);fclose(fp); /关闭文件3、 录入职工信息 职工信息包括职工号,姓名,基本工资,补贴金额,奖励金额,扣除金额和实发金额,本函数的功能是把职工信息写入到文件中。在程序中建立一个文件data22.txt。定义一个结构体

11、变量,输入职工的基本信息把职工信息写入到文件中。之后再次输入下一个职工的编号,直到达到循环次数自动退出此函数。void add() 声明自定义函数int i,n;printf(请输入职工数量n);scanf(%d,&n);printf(请依次输入职工的职工号,姓名,基本工资,补贴金额,奖励金额,扣除金额:n);for(i=0;in;i+)scanf(%d%s%d%d%d%d,&wori.num,wori.name,&wori.jiben,&wori.butie,&wori.jiangli,&wori.kouchu); /输入职工数据save(); /调用文件储存函数,将数据存入文件printf

12、(已保存到文件data22.txt中n);五、 个人总结经过了短短一周的C语言课程设计,我对C语言有了更进一步的了解。懂得了将C程序模块化的好处。用主函数调用子函数的方法,可以把一个大的程序分成几个小的程序,这样不仅降低了程序的难度还使程序的编辑思路更加清晰明了。在编制程序的过程中,我也遇到了许多较难解决的问题,例如:文件数据的储存和读取,语法错误的查找以及实现要求的C语句的编写等问题。不过在老师的帮助和指导下,我逐个击破了这些问题。其中,我觉得统计各项工资的总金额和平均金额这项要求是最复杂的,因为他涉及到的数据比较多,编写起来比较麻烦,费时费力。但是经过我的努力,我最终攻克了它,这也让我更加

13、坚信有志者事竟成的道理。总的来说,这次C语言课程设计的综合训练让我把以前学到的理论知识在实际生活中得到了应用,也让我学会了如何才能精益求精。六、参考文献1 谭浩强C程序设计(第三版)北京清华大学出版社2 道客巴巴 忽略:/忽略此处七、 源程序#include#include#define SIZE 10void topic();void menu();void add();void save();void read();void view();void cal();void tol();struct workint num;char name10;int jiben;int butie;int

14、 jiangli;int kouchu;int shifa;worSIZE;void main()int k;topic();printf(请按回车键进入系统);getchar();while(1)menu();scanf(%d,&k);switch(k)case 1:add();break;case 2:cal();break;case 3:tol();break;case 4:view();break;case 0:return;default: printf(你输入的编号不正确!n);void topic() printf(*n); printf(* * *n); printf(* *

15、* *n); printf(* * GONGZIGUANLIXITONG * *n); printf(* * * *n); printf(* * * *n); printf(* * *n); printf(*n); printf( All rights are pro. by BAI SONG n); printf(*n); void menu() printf(*n); printf(* * 1. 输入职工数据,保存到文件e:data22.txt * *n); printf(* * 2. 统计实发工资并更新到data22.txt文件中 * *n); printf(* * 3. 统计各项工资的

16、总金额和平均金额 * *n); printf(* * 4. 查看职工个人工资明细 * *n); printf(* * 0. 退出 * *n); printf(*n); void add()int i,n;printf(请输入职工数量n);scanf(%d,&n);printf(请依次输入职工的职工号,姓名,基本工资,补贴金额,奖励金额,扣除金额:n);for(i=0;in;i+)scanf(%d%s%d%d%d%d,&wori.num,wori.name,&wori.jiben,&wori.butie,&wori.jiangli,&wori.kouchu);save();printf(已保存到

17、文件data22.txt中n);void cal()read();printf(姓名t实发工资n);int i;for(i=0;iSIZE;i+)wori.shifa=wori.jiben+wori.butie+wori.jiangli-wori.kouchu;printf(%st%dn,wori.name,wori.shifa);save();void save()FILE *fp;int i;if(fp=fopen(e:data22.txt,w+)=NULL)printf(cannot open this filen);return;for(i=0;iSIZE;i+)if(fwrite(&

18、wori,sizeof(struct work),1,fp)!=1)printf(file write errorn);fclose(fp);void read()FILE *fp;int i;if(fp=fopen(e:data22.txt,r+)=NULL)printf(cannot open this filen);return;for(i=0;iSIZE;i+)if(fread(&wori,sizeof(struct work),1,fp)!=1)printf(file read errorn);fclose(fp);void view()read();int i;printf(职工号

19、t姓名 基本工资 补贴金额 奖励金额 扣除金额 实发工资n);for(i=0;iSIZE;i+)printf(%3dt%st%3dt %3dt %3dt %3dt%3dn,wori.num,wori.name,wori.jiben,wori.butie,wori.jiangli,wori.kouchu,wori.shifa);void tol()read();int i,n=0;int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;float ave1=0,ave2=0,ave3=0,ave4=0,ave5=0;for(i=0;iSIZE;i+)sum1+=wori.j

20、iben;sum2+=wori.butie;sum3+=wori.jiangli;sum4+=wori.kouchu;sum5+=wori.shifa;if(wori.num!=0)n+;ave1=sum1/n;ave2=sum2/n;ave3=sum3/n;ave4=sum4/n;ave5=sum5/n;printf(t基本工资t补贴金额t奖励金额t扣除金额t实发工资n);printf(总和t%dtt%dtt%dtt%dtt%dn,sum1,sum2,sum3,sum4,sum5);printf(平均t%ft%ft%ft%ft%fn,ave1,ave2,ave3,ave4,ave5);printf(人数t%dn,n);

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922