版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学院教职工工资管理系统C语言程序设计includestdio。h>includestdlib。hinclude<string.hdefine N 100int n;/*职工总数*/struct teacher char name20;/姓名*/ char sex5;/*性别/ int year,mounth;/出生年月*/ int age;/年龄*/ char marrige5;/婚姻状况/ char addr30;/家庭住址/ char engineer20;/*职称/ float wage;/工资级别/teacN;float sum=0;/*总工资/void save();/数
2、据输入函数/void all();/计算工资总额函数*/void ave();/计算平均工资函数/void sort1();/*排序函数*/void sort2();/排序函数*/void same();/找工资级别相同职工名单函数/void reviwe();/修改函数/void find();/查询函数*/void print();/*数据输出函数*/void main() char ch; printf(” n"); printf(”*欢进院工资理统*n”); printf(”*迎入职工管系*n"); printf(” n”); printf(”n请选择你所需要的服务
3、,按回车确认n”); printf(”ntts:数据输入tntta:总工资tnttv:平均工资tnttg:按工资排序tnttx:按姓名排序tnttm:工资级别相同职工名单tnttr:修改tnttf:查询tntte:退出tn”); scanf(”c”,ch); while(ch!=e') switch(ch) cases':save();break; casea:all();break; casev:ave();break; caseg:sort1();break; casex':sort2();break; casem:same();break; case'r&
4、#39;:reviwe();break; casef:find(); printf("n请再次选择你所需要的服务,按回车确认n”); printf(”ntts:数据输入tntta:总工资tnttv:平均工资tnttg:按工资排序tnttx:按姓名排序tnttm:工资级别相同职工名单tnttr:修改tnttf:查询tntte:退出tn”); getchar(); scanf("c",ch); /函数功能:输入职工信息/void save() FILE fp; int j=0,i; char ch2; int n=0; printf(”请选择输入方式:n”); pri
5、ntf(”1:向管理系统重新输入数据,并删除原有数据n2:向系统增加数据n”); scanf(”%d”,i);/输入选项*/ if(i=1) if(fp=fopen("C:file1。dat”,”wb+")=NULL)/判断文件能否打开/ printf(”can not open this filen”); exit(0); printf(”你是否要输入职工信息?(是:y/否:n)"); scanf("s”,ch); while(strcmp(ch,”y”)=0|strcmp(ch,”Y")=0)/*判断是否要录入新信息/ printf(&qu
6、ot;n姓名t”); scanf("s”,); printf(”n性别(男:b/女:g)t”); scanf("%s”,teacj.sex); printf(”n生日:年t”); scanf(”d",teacj.year); printf("n月t"); scanf("d”,teacj。mounth); while(teacj.mounth1|teacj.mounth12) printf(”输入月份有误请重输”); scanf(”%d”,teacj.mounth); printf("n年龄t”); sca
7、nf(”d”,teacj。age); printf("n婚否(是y/否n)t"); scanf("%s”,teacj。marrige); printf("n地址t"); scanf("s”,teacj。addr); printf(”n职称t"); scanf(”%s”,teacj。engineer); printf(”n工资t”); scanf(”%f”,teacj.wage); fwrite(teacj,sizeof(struct teacher),1,fp);/信息写入磁盘*/ j+; printf("你是否要
8、输入职工信息?(是:y/否:n)n”); getchar(); scanf(”c",ch); fclose(fp);/关闭文件*/ if(i=2) if((fp=fopen(”c:file1.dat",”rb"))=NULL)/*判断文件能否打开/ printf(”can not open this filen”); exit(0); for(n=0;(fread(teacn,sizeof(struct teacher),1,fp)=1);n+)continue;/将职工信息读入内存*/ fclose(fp); printf("你是否要增加职工信息?(是
9、:y/否:n)”); scanf(”s”,ch); while(strcmp(ch,”y”)=0|strcmp(ch,"Y")=0)/*判断是否要录入新信息*/ printf(”n姓名t”); scanf(”%s”,teacj+); printf(”n性别(男:b/女:g)t”); scanf("s”,teacj+n。sex); printf("n生日:年t”); scanf(”%d",teacj+n。year); printf(”n月t”); scanf(”d”,teacj+n。mounth); while(teacj+n。mou
10、nth1teacj+n。mounth>12) printf(”输入月份有误请重输”); scanf(”%d",&teacj。mounth); printf(”n年龄t”); scanf(”d",teacj+n.age); printf(”n婚否(是y/否n)t”); scanf(”%s”,teacj+n.marrige); printf(”n地址t”); scanf(”s”,teacj+n。addr); printf("n职称t”); scanf(”s”,teacj+n。engineer); printf(”n工资t"); scanf(&q
11、uot;%f”,teacj+n。wage); /fwrite(&teacj+n,sizeof(struct teacher),1,fp);/信息写入磁盘/ n+; printf("你是否要输入职工信息?(是:y/否:n)n"); getchar(); scanf(”c”,&ch); if(fp=fopen(”c:file1.dat”,”wb”))=NULL)/*判断文件能否打开/ printf(”can not open this filen”); exit(0); for(j=0;jn;j+) fwrite(&teacj,sizeof(struct
12、 teacher),1,fp);/信息写入磁盘/ fclose(fp); /函数功能:计算总工资/ void all() FILEfp; n=0; sum=0; if((fp=fopen(”c:file1。dat”,"ab+”))=NULL) printf(”can not open this filen”); exit(0); printf("姓名t性别t生日:年 月t年龄t婚否t地址t职称t工资n”); for(n=0;(fread(teacn,sizeof(struct teacher),1,fp)=1);n+)/*将职工信息读入内存/ printf(”%st%st
13、d dt%dtststtstfn”,,teacn。sex,teacn。year,teacn。mounth,teacn。age,teacn。marrige,teacn。addr,teacn。engineer,teacn。wage);/*将职工信息输出到屏幕上/ sum=sum+teacn.wage; continue; printf(”总工资为fn”,sum); fclose(fp); /函数功能:计算平均工资/ void ave() float aver; n=0; all();/调用计算总工资函数得到总工资/ (float)(aver=sum/n);/计算平均工资*/ p
14、rintf(”平均工资为%fn",aver); /函数功能:按工资由低到高排序*/ void sort1() FILE *fp; int i,j; struct teacher temp;/定义一个结构体变量一边在交换顺序是暂时存放数据*/ if(fp=fopen(”c:file1.dat",”ab+”))=NULL)/*以只读方式打开一个二进制文件判断能否打开/ printf("can not open this filen”); exit(0); /while(!feof(fp)/*检查文件是否结束/ for(n=0;(fread(teacn,sizeof(s
15、truct teacher),1,fp)=1);n+) continue;/*将职工信息读入内存*/ /排序/ for(i=0;in;i+) for(j=0;jn(i+1);j+) if(teacj。wageteacj+1.wage) temp=teacj; teacj=teacj+1; teacj+1=temp; print();/调用数据输出函数,输出结果/ fclose(fp); void sort2() FILE fp; int i,j; struct teacher temp;/*定义一个结构体变量一边在交换顺序是暂时存放数据/ if((fp=fopen(”c:file1。dat”,
16、”ab+”))=NULL)/以只读方式打开一个二进制文件判断能否打开/ printf(”can not open this filen”); exit(0); for(n=0;(fread(teacn,sizeof(struct teacher),1,fp)=1);n+) continue;/将职工信息读入内存/ /排序*/ for(i=0;i<n;i+) for(j=0;jn-(i+1);j+) if(strcmp(,teacj+1.name)0) temp=teacj; teacj=teacj+1; teacj+1=temp; print();/*调用数据输出函数
17、,输出结果/ fclose(fp); /函数功能:找工资级别相同的职工名单/ void same() FILE fp; static int t=0;/*定义一个静态变量/ int i,j,k,m,a,l; struct teacher tempN;/定义一个结构体数组存放工资级别相同的职工名单/ if(fp=fopen("c:file1。dat”,"ab+"))=NULL)/以读写方式打开一个文本文件并判断能否打开*/ printf(”can not open this filen”); exit(0); printf(”姓名t性别t生日:年 月t年龄t婚否t地
18、址t职称t工资n”); for(n=0;(fread(teacn,sizeof(struct teacher),1,fp)=1);n+)/将职工信息读入内存/ printf("stst d %dtdt%stststfn",,teacn.sex,teacn。year,teacn。mounth,teacn。age,teacn。marrige,teacn。addr,teacn。engineer,teacn。wage);/*将职工信息输出到屏幕上*/ continue; /*找相同*/ for(i=0;i<n;i+) m=t; a=0; if(i0) fo
19、r(l=0;l<t;l+) if(teaci。wage=templ.wage) a+; if(a0) continue;/说明该数已在上一级比较中存入temp数组中了不需再比结束本次循环/ else for(j=i;j<n;j+) if(teaci。wage=teacj。wage) tempt+=teacj; printf("n工资级别为%f的名单为:t",tempt1.wage); for(k=m;kt;k+) printf("%st”,); fclose(fp); /函数功能:删除不需要的职工信息/ void reviwe()/
20、删除函数*/ FILEfp; struct teacher temp; int i,j,k=0; char name20; char ch2; int a; if(fp=fopen(”c:file1。dat”,”rb”)=NULL)/*判断文件能否打开/ printf(”can not open this filen"); exit(0); for(n=0;(fread(teacn,sizeof(struct teacher),1,fp)=1);n+)continue;/将职工信息读入内存/ fclose(fp); if(n=0) printf("没有记录n”); else
21、 printf(”请输入姓名n”); scanf("s”,name); for(i=0;i<n;i+) if(strcmp(name,)=0)/*找与要修改的信息相同的姓名/ printf(”该职工信息为:n"); printf(”st%stdt d dtstststfn",,teaci.sex,teaci。year,teaci。mounth,teaci。age,teaci.marrige,teaci.addr,teaci。engineer,teaci。wage); break; printf(”是否删除?(y/n)”
22、); scanf("s”,ch); if(strcmp(ch,”y”)=0strcmp(ch,”Y")=0)/*判断是否删除/ printf("已成功删除信息nn”); for(j=i;jn;j+) strcpy(teacj。addr,teacj+1。addr); strcpy(teacj。engineer,teacj+1。engineer); strcpy(teacj.marrige,teacj+1.marrige); strcpy(,teacj+1.name); strcpy(teacj。sex,teacj+1.sex); teacj。ag
23、e=teacj+1.age; teacj。year=teacj+1。year; teacj。mounth=teacj+1。mounth;break; if(fp=fopen("c:file1。dat","wb"))=NULL)/判断文件能否打开/ printf(”can not open this filen”); exit(0); for(j=0;jn1;j+) fwrite(teacj,sizeof(struct teacher),1,fp);/信息写入磁盘*/ fclose(fp); /函数功能:查询*/ void find() FILE*fp; int i; char name20; char ch2; if(fp=fopen(”c:file1。dat”,”ab+”))=NULL)/判断文件能否打开/ printf("can not open this filen”); exit(0); for(n=0;(fread(teacn,sizeof(str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场劳资员责任制度
- 服务质量首问责任制度
- 机房岗位安全责任制度
- 果园看护责任制度范本
- 煤矿胶轮车责任制度范本
- 物流操作岗位责任制度
- 环境保护责任制管理制度
- 监理机构质量责任制度
- 矿山保管员岗位责任制度
- 社保局业务岗位责任制度
- 2025-2026学年地质版(新教材)小学体育与健康二年级全一册第二学期教学计划及进度表
- 2026年部编版新教材道德与法治小学三年级下册教学计划(含进度表)
- 学校洗衣机卫生消毒制度
- 2025年河南信阳事业单位联考《公共基础知识》试题附答案
- 2026年重庆公务员考试《申论》试题题库(答案+解析)
- 2026年书记员考试题库100道含答案(考试直接用)
- 2025至2030中国变频器行业调研及市场前景预测评估报告
- 动物疫病防治员题库(含参考答案)
- 2025年平顶山工业职业技术学院单招职业适应性考试题库附答案
- 2025年宁夏财经职业技术学院单招职业倾向性测试题库附答案解析
- 2026年山西药科职业学院单招职业技能考试题库及答案详解一套
评论
0/150
提交评论