版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C 语言程序设计课程设计报告设计题目:职工工资管理系统专业:分 值班级:学号:姓名:信息工程学院1 前言工资管理系统是企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理系统的系统化、规范化和自动化,为企业提高工作效率。本程序旨在训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉C 语言的文件和结构数组的各种基本操作。本程序中涉及结构体、数组、文件等方面的知识。2 需求分析2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。 通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术
2、设计的初步能力,为毕业设计(论文)打基础。2.2 课程设计任务职工工资管理系统功能设计要求( 1)输入记录 : 将每一个职工的姓名、 ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。( 2)显示记录 : 根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。( 3)修改记录 : 可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。( 4)查找记录 : 可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。( 5)删除记录 : 可删除数据文件中的任一记录
3、。( 6) 统计 : (A) 计算各项工资平均工资及总工资 , (B)? 统计符合指定条件 ( 如职工工资前三项之和在3000 元以上、 30002000元、 20001000元)以内的工资职工人数及占总职工人数的百分比。 (C) 按字符表格形式打印全部职工工资信息表及平均工资 (? 包括各项总的平均工资 ) 。( 7)保存数据文件功能。例如:职工工资信息表ID 号 姓名 基本工资职务工资津贴 医疗保险 - 公积金 -总工资01张望1286794198109135203402李明118562813594114174003王小民895438986473129404张效章1350868210116
4、150216205彭山7453988461681098各项平均工资 1092.2 625.2 145 88.8 108(要求:1. 源文件采用多文件的工程结构 2. 数据存储采用文件形式 3. 标准的 C 输入输出 4. 功能完善,适当的注释, 5. 关于文件的内容需要自学)2.3 设计环境( 1)WINDOWS 2000/2003/XP/7/Vista 系统( 2)Visual C+输查显删添修退2.4 开发语言找示除加改出入功功功功功功程C语言能能能能能能序3 分析和设计从主菜单中选择相对应的数字,使程序进入不同的程序模块,用switch 实现其功能,程序共分为六个模块, 分别为:主函数、
5、Input() 函数 ( 输入函数 ) 、Display(T)显示按函姓数(名计查算职工工资信息并输入文件)、修改工号修改姓名Delete (T)删除函数(从文件中读入信息并将其删除),按姓名删Chick (T)查询模块,Change(T);修改基修本改工模块,sum(T);修统改计职模务块工按工号查修改津贴修改医疗3.1 系统模块图按工号删修改公积图 3.1系统模块图4 具体代码实现#include"stdio.h"#include<stdlib.h>#include<conio.h>#include<string.h> /static
6、 int n=0;/typedef struct头文件定义静态全局变量,存储已经读入记录的条数。char id15; char name10; double base; double position; double allowance; double insurance;/*ID/*/*/*/*/*号*/姓名 */基本工资 */职务工资 */津贴 */医疗保险 */double fund;double wage;/ 公积金/ 总工资Student;Student T100;int Menu_Select()int c;dosystem("cls");/清屏printf(&
7、quot;tt*职工工资管理系统*n");printf("ttn");printf("tt#1.添加记录#n");printf("tt#n");printf("tt#2.显示记录#n");printf("tt#n");printf("tt#3.删除记录#n");printf("tt#n");printf("tt#4.查询记录#n");printf("tt#n");printf("tt#5.修改记录
8、#n");#n");printf("tt#printf("tt#6.统计记录#n");printf("tt#n");printf("tt# 0. 退出程序 #n"); printf("tt#n");printf("ttt请您选择 (0-6)选择请输入:");scanf("%d",&c);while(c<0&&c>=7);return(c);int Input(Student stu)int i=0;char s
9、ign;while(sign!='n'&&sign!='N')printf("tID:");scanf("t%s",stun+i.id);printf("t姓名 :");scanf("t%s",stun+);printf("t基本工资 :");scanf("t%lf",&stun+i.base);printf("t职务工资 :");scanf("t%lf",&s
10、tun+i.position);printf("t津贴 :");scanf("t%lf",&stun+i.allowance);printf("t医疗保险 :");scanf("t%lf",&stun+i.insurance);printf("t公积金 :");scanf("t%lf",&stun+i.fund);stun+i.wage=stun+i.base +stun+i.position +stun+i.allowance +stun+i.ins
11、urance +stun+i.fund; ;printf("nt是否继续添加 ?(Y/N)");scanf("t%c",&sign);i+;return(n+i);void Display(Student stu)int i;double m1=0,m2=0,m3=0,m4=0,m5=0;printf("nn按照姓名进行排序! nn");printf("-n"); /显示的格式printf("ID姓名基本工资职务工资津贴医疗保险公积金总工资 n");printf("-n&quo
12、t;);for(i=0;i<n;i+)printf("%-6s%-8s%-11.2lf%-11.2lf%-11.2lf%-11.2lf%-11.2lf%-11.2lfn",stu i.id,,stui.base,stui.position,stui.allowance,stui.in surance,stui.fund,stui.wage);/-14d% -表示左对齐 14表示十四个字节的位置不足用空格补齐for(i=0;i<n;i+)m1+=stui.base;m2+=stui.position;m3+=stui.allowance;m4+=
13、stui.insurance;m5+=stui.fund;if(n!=0)printf("-n");printf(" 各 项 平 均 工资: %-11.2lf%-11.2lf%-11.2lf%-11.2lf%-11.2lfnn",m1/n,m2/n,m3/n,m4/n,m5 /n);system("pause"); /系统函数停止。int Delete(Student stu)int i=0,j,x;char m10;printf("t 1.全部删除 n");printf("t 2.根据 ID 号删除 n
14、");printf("t请选择 : ");scanf("%d",&x);if(x=1)for(j=0;j<n;j+)/后一条记录覆盖前一条记录stuj=stun+1;n=0;printf(" 已抹掉数据文件中的所有数据! n"); system("pause");else if(x=2)printf("t请输入想删除记录中的ID 号:");scanf("%s",m);while(strcmp(stui.id,m)!=0&&i<n)
15、i+;if(i=n)printf("t职工工资管理系统中没有此人!n");elsefor(j=i;j<n-1;j+)/后一条记录覆盖前一条记录stuj=stuj+1;printf("ttt已经成功删除 !n");n=n-1;return (n);void Chick(Student stu)int m;printf("tn请选择查询方式 :n");/printf输出查询格式printf("t*n");/格式:printf("t*printf("t*1-2-ID姓名查询查询*n")
16、;*n");printf("t*n");printf("请选择 :");scanf("%d",&m);while(m!=1&&m!=2)printf("输入错误,请重新选择 :");scanf("%d",&m);if(m=1)/此处对名字进行特殊处理char s20;int i=0;int f=0;printf("t请输入想查询的姓名:");scanf("t%s",s);while(strcmp(
17、,s)!=0&&i<n )/名字如果有重复的也照常输出i+;if(i=n)printf("t职工工资管理系统中没有此人!n");return;elseprintf("tID: %sn",stui.id);printf("tprintf("tprintf("tprintf("t姓名 : %sn",);基本工资 : %.2lfn",stui.base);职务工资 : %.2lfn",stui.position);津贴 : %.2lfn",s
18、tui.allowance);printf("tprintf("t医疗保险 : %.2lfn",stui.insurance);公积金 : %.2lfn",stui.fund);printf("t总工资 : %.2lfn",stui.wage);if(m=2)/用 ID 作为索引查询char s20;int i=0;printf("t请输入想查询的ID:");scanf("t%s",s);while(strcmp(stui.id,s)!=0&&i<n)i+;if(i=n)p
19、rintf("t职工工资管理系统中没有此人!n");return;printf("tID: %sn",stui.id);printf("t姓名 : %sn",);printf("t基本工资 : %.2lfn",stui.base);printf("t职务工资 : %.2lfn",stui.position);printf("t津贴 : %.2lfn",stui.allowance);printf("tprintf("tprintf(&qu
20、ot;t医疗保险 : %.2lfn",stui.insurance);公积金 : %.2lfn",stui.fund);总工资 : %.2lfn",stui.wage);void Change(Student stu)int m;printf("tn请选择修改方式 :n");/printfprintf("t*n");/printf("t*1-ID*n");printf("t*2-姓名*n");printf("t*n");输出查询格式格式:printf("请
21、选择 :");scanf("%d",&m);while(m!=1&&m!=2)printf("输入错误,请重新选择 :");scanf("%d",&m);if(m=1)int i=0;char m10;printf("t请输入想修改的记录中人的ID:");scanf("%s",m);while(strcmp(stui.id,m)!=0&&i<n)i+;if(i=n)printf("t 职工工资管理系统中没有此人 !n&qu
22、ot;); return;printf("tID:");scanf("t%s",stui.id);printf("t姓名 :");scanf("t%s",);printf("t基本工资 :");scanf("t%lf",&stui.base);printf("t职务工资 :");scanf("t%lf",&stui.position);printf("t津贴 :");scanf(&q
23、uot;t%lf",&stui.allowance);printf("t医疗保险 :");scanf("t%lf",&stui.insurance);printf("t公积金 :");scanf("t%lf",&stui.fund);stui.wage=stui.base +stui.position +stui.allowance +stui.insurance +stui.fund;printf("t修改成功! ");else if(m=2)int i=0;
24、char m10;printf("t请输入想修改的记录中人的姓名:");scanf("%s",m);while(strcmp(,m)!=0&&i<n)i+;if(i=n)printf("t 职工工资管理系统中没有此人 !n"); return;printf("tID:");scanf("t%s",stui.id);printf("t姓名 :");scanf("t%s",);printf("
25、t基本工资 :");scanf("t%lf",&stui.base);printf("t职务工资 :");scanf("t%lf",&stui.position);printf("t津贴 :");scanf("t%lf",&stui.allowance);printf("t医疗保险 :");scanf("t%lf",&stui.insurance);printf("t公积金 :");scanf(
26、"t%lf",&stui.fund);stui.wage=stui.base +stui.position +stui.allowance +stui.insurance +stui.fund;printf("t修改成功! ");void WritetoText(Student stu)int i=0;FILE *fp;printf("t保存到文件 n");/*/*定义文件指针输入文件名 */*/if(fp=fopen("output","w")=NULL)printf("t无
27、法打开文件 n");system("pause");return;while(i<n)fprintf(fp,"%s %s %lf %lf %lf %lf %lf %lfn",stui.id,stui.nam e,stui.base,stui.position,stui.allowance,stui.insurance,stui.f und,stui.wage);i+;fclose(fp);/*关闭文件 */printf("保存成功 !n");void Read(Student stu)FILE *fp;int i;ch
28、ar filename20;strcpy(filename,"output");if(fp=fopen(filename,"r")=NULL)printf("找不到 %s文件 !n",filename);system("pause");return ;n=0;for(i=0;i<100&&!feof(fp);i+) /这里的100 是前面已经说明了最多可以存100 条记录fscanf(fp,"%s%s%lf%lf%lf%lf%lf%lfn",stui.id,&stu
29、,&stui.base,&stui.position,&stui.allowance,&stui.insurance,&stui.fund,&stui.wage);n+;fclose(fp);/qsort(stu,n,sizeof(Student),comp);/调用qsort排序printf("读取成功,文件 %s中的所有信息已经读入 !n",filename);int sum(Student stu)int i;double s=0,m=0,n1,s1;for(i=0;i<n;i+)m=0;m=stui.
30、base + stui.position + stui.allowance;if(m>2000)s+;printf("在职工工资前三项之和中大于2000 的占总职工的百分比: %.2lfn",s/n);return(n);system("pause");void Menu()while(1) /让这里程序循环,否则就退出程序了。switch(Menu_Select()case 1:printf("nt添 加 记 录 到 职 工 工 资 管 理 系 统 n");/* 添加记录 */n=Input(T);WritetoText(T)
31、;system("pause");break;case 2:printf("nttt职工工资管理系统记录表 n");Read(T);Display(T); /*显示记录 */system("pause");break;case 3:printf("nt从职工工资管理系统中删除记录 n");n=Delete(T);WritetoText(T);/* 删除记录 */printf("t");system("pause");/*按任意键继续 */break;case 4:printf
32、("nt在职工工资管理系统中查找记录 n");Chick(T);/* 查找记录 */printf("t");system("pause");break;case 5:printf("nt修改职工工资管理系统中的记录 n");Change(T);WritetoText(T);/* 修改数据 */printf("t");system("pause");break;case 6:printf("nt*职 工 工 资 管 理 系 统 统 计 人 数 *nn");/* 统计记录 */sum(T);system("pause");break;case 0:printf("nttt欢迎您再次使用本 程 序 !n");/* 结束程序 */printf("nttn");system("pause");exit(0);int main()char ch7;int i,n;/ 设置的控制台输出的格式printf ("tt *职工工资管理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026内蒙古电力(集团)有限责任公司乌海供电公司招聘12人考试参考题库及答案解析
- 2026广西出版传媒集团有限公司招聘98人考试参考题库及答案解析
- 2026广东江门市台山市三合镇人民政府招聘村级动物防疫员1人考试备考题库及答案解析
- 庐山文化旅游投资控股集团有限公司面向社会公开招聘工作人员考试备考题库及答案解析
- 2026重庆市永川区朱沱镇人民政府招聘全日制和非全日制公益性岗位人员9人考试参考题库及答案解析
- 2026甘肃白银市靖远县三滩镇人民政府选聘专业化管理村文书2人考试备考题库及答案解析
- 2026山东新琅琊投资发展集团有限公司招聘6人考试参考试题及答案解析
- 2026年1月重庆市綦江区关坝镇人民政府公益性岗位招聘20人笔试参考题库及答案解析
- 2026中卫市沙坡头区团委、妇联招聘财务工作人员2人考试备考题库及答案解析
- 2026内蒙古包头市昆都仑区招聘社区工作者后备库储备人员200人笔试模拟试题及答案解析
- 电梯安全培训课件下载
- 事业单位职工劳动合同管理规范
- 老年人静脉输液技巧
- 呼吸内科一科一品护理汇报
- 陪诊师医学知识培训总结课件
- 项目验收过程标准化手册
- 医院患者护理隐患预警及上报制度
- 土地复垦项目施工组织设计方案书
- 民航旅客运输(第二版) 课件 模块3-国际航空旅客运价基础
- 五脏与五味的课件
- 非电量保护培训
评论
0/150
提交评论