程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)_第1页
程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)_第2页
程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)_第3页
程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)_第4页
程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础课程设计报告题目员工工资管理系统院(系):信息科学与工程学院专业班级:学生姓名:学号:指导教师:2016年月12日至2016年月23日三昌首义学院制程序设计基础课程设计任务书、设计(调查报告/论文)题目员工工资管理系统二、设计(调查报告/论文)主要内容员工工资管理系统主要内容:设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、应发、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组文件的功能。员工工资管理系统由六大功能模块组成:增加数据该模块完成将输入的数据存入数据文件中,用户一次可输入多个员工的信息。更新数据该模块用于实现对记录的

2、修改,首先用户输入员工的编号,然后查询该员工的信息,最后更新该员工的信息。查询数据该模块可选择按员工编号查询,或者按员工姓名进行查询,然后列出满足条件的且未作删除标记的员工信息。删除数据该模块用于删除指定编号的员工工资信息,为提高效率,只作删除标记,不在物理上删除信息,可称为逻辑删除。显示数据该模块用于以列表方式显示所有未作删除标记的员工信息。重组文件当逻辑删除的信息太多时,将会降低查询效率。重组文件模块专门用于在物理上删除作有删除标记的信息,这样不但提高查询效率,同时也节约存储空间。统计输出输出实发工资最高的员工工资信息。统计输出员工实发工资的平均工资。统计输出超过实发平均工资的员工人数。排

3、序该模块按员工实发工资由高到低的顺序排序输出所有员工信息。要求本系统采用结构体等数据结构。系统以菜单方式工作。2学生学籍管理系统主要内容:设计一个利用文件处理方式,实现对学生学籍信息(包括:学号,姓名,性别,年龄,籍贯,系别,专业,班级)进行添加、修改、删除、查找、统计输出等操作。学生学籍管理系统的功能要求如下:增加数据该模块完成将输入的数据存入数据文件中,用户一次可输入多个学生的学籍信息。更新数据该模块用于实现对记录的修改,首先用户输入学生的学号,然后查询该学生的学籍信息,最后更新该学生的学籍的信息。查询数据该模块可选择按学生的学号查询,或者按学生的姓名查询,再或者按学生的班级查询,然后列出

4、满足条件的且未作删除标记的学生学籍信息。删除数据该模块用于删除指定编号的学生学籍信息,为提高效率,只作删除标记,不在物理上删除信息,可称为逻辑删除。显示数据该模块用于以列表方式显示所有未作删除标记的学生学籍信息。重组文件当逻辑删除的信息太多时,将会降低查询效率。重组文件模块专门用于在物理上删除作有删除标记的信息,这样不但提高查询效率,同时也节约存储空间。统计输出1)按专业输出所有学生的学籍信息。2)统计输出学生的平均年龄。3)统计输出超过平均年龄的学生人数。排序该模块按学生学号由低到高的顺序排序输出所有学生学籍信息。要求本系统采用结构体等数据结构。系统以菜单方式工作。3.班级成绩管理系统主要内

5、容:对一个有N个学生的班级,每个学生有M门课程。每个学生应当包括如下信息:学号、姓名、M门课程名称。该系统实现对班级成绩的添加、修改、删除、查找、统计输出等操作的管理。功能要求如下:增加数据该模块完成将输入的数据存入数据文件中,用户一次可输入多个学生的基本信息。更新数据该模块用于实现对记录的修改,首先用户输入学生的学号,然后查询该学生的基本信息,最后更新该学生的基本信息。查询数据该模块可选择按学生的学号查询,或者按学生的姓名查询,然后列出满足条件的且未作删除标记的学生基本信息。删除数据该模块用于删除指定编号的学生基本信息,为提高效率,只作删除标记,不在物理上删除信息,可称为逻辑删除。显示数据该

6、模块用于以列表方式显示所有未作删除标记的学生基本信息。重组文件当逻辑删除的信息太多时,将会降低查询效率。重组文件模块专门用于在物理上删除作有删除标记的信息,这样不但提高查询效率,同时也节约存储空间。统计输出1)显示每门课程成绩最高的学生的基本信息。2)显示每门课程的平均成绩。3)显示超过某门课程平均成绩的学生人数。排序该模块按学生学号由低到高的顺序排序输出所有学生的基本信息。要求本系统采用结构体等数据结构。系统以菜单方式工作。课程设计要求:课程设计从第一、二和三道题中选一道题完成。其中,学号尾数为0、2、4、8的做第一道题;学号尾数为1、3、7的做第二道题;学号尾数为5、6、9的做第三道题。系

7、统要求在MicrosoftVisualC+6.0编译平台上采用C语言编程实现。课程设计报告(要求正规打印,A4幅面),内容包括:题目需求与总体设计(描述系统要实现什么功能;系统怎么实现,绘制系统功能模块结构图;数据结构的设计及用法说明)详细设计(描述系统包含的主函数和子函数;解释各个功能模块的软件功能;画系统的总体流程图,某种查询、插入、删除程序实现的子函数流程图,要求采用标准流程图图符至少画两个流程图)编码与实现(只能使用C语言,源程序编写格式要按照缩进方式,源程序要有详细的注释,使程序容易阅读。源程序编写格式的规范和注释体现程序员的素质,必须从本课程设计开始培养。)运行结果(包括输入数据的

8、结果,查询、修改、删除的结果,可以将输出的结果以截屏方式呈现到课程设计报告中)总结(必须真实的说出自己在课程设计中的切身体会。例如:课程设计如何构思、如何设计、如何编程、如何调试、遇到的主要问题和解决方法,哪些地方使你“痛苦不堪”;创新之处;课程设计中存在的不足,需进一步改进的设想等等。)注:每人以班级+学号+姓名创建目录,目录需包括课程设计报告电子文档和源程序以备检查。然后由各班学习委员汇总到U盘上统一提交。三、原始资料游洪跃,彭骏,谭斌.C语言程序设计实验与课程设计教程北京:清华大学出版社,2011.孙承爱,赵卫东程序设计基础一基于C语言(第2版)科学出版社,2010.四、要求的设计(调查

9、/论文)成果课程设计报告课程设计软件五、进程安排布置任务,查找资料、需求分析1天总体设计1天详细设计1天编制源程序实现3天测试与修改1天撰写课程设计报告2天六、主要参考资料谭浩强.C程序设计第四版清华大学出版社,2010.苏小红.C语言大学实用教程.第2版.电子工业出版社,2008.指导教师(签名):年月日目录TOCo1-5hz1需求与总体设计12详细设计13编码实现44运行结果21总结241需求与总体设计1.1需求描述设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组文件

10、的功能。1.2总体设计先以登陆函数登陆,再进入主菜单,菜单中显示各个要实现的操作,以菜单将各个函数联系起来,对菜单操作以实现系统的目的。1.3数据结构structuser/登陆者信息charun10;charup10;us3=aaa,111,bbb,222,ccc,333;structyg/员工结构体shortzt;/数据状态longbh;/编号charname20;/名字chartime11;/时间longmoney;/基本工资longjj;/奖金longkk;/扣款longsf;/实发工资;整个程序只运用了结构体的数据结构,结构体运用于登陆者信息和员工信息,将员工信息封装在一个结构体里,再

11、创建结构体数组,将多个员工信息储存在结构体数组中。2详细设计2.1系统功能设计主函数和子函数:系统包含一个主函数,和子函数,分别有登陆子函数,菜单子函数,增加数据子函数,更新数据子函数,查询数据子函数,删除数据子函数,统计数据子函数,重组文件子函数,排序数据子函数,最后两个分别是读取文件和写入文件子函数。各个函数的功能:主函数是一个入口程序从这里进入,再进入登陆函数,实现登陆操作。登陆函数,只有拥有正确账号密码,正确的操作才可以进入菜单界面进行下一步的操作,并且输入错误三次后将会提示并强制退出。菜单界面利用switch()函数将各个函数联系起来实现真正的菜单,输入正确的序号可以进行后续的各个操

12、作。读取函数,将特定文件中的信息,以特定的方式读取到正在运行的程序中,实现读写操作。写入函数,在添加、更新、删除、重组操作过后进行写入操作,将变换后的数据重新写入文件中。注:每次写入都是将程序中的所有数据重新写入文件。增加函数,可以新添员工,并将员工的数据输入,并利用写入函数,写入文件中。在增加后会提示是否继续增加,提供了方便。并且如果原数据中有相同编号的员工,会在输入编号后提示有相同的编号的员工,并重新输入编号。增加了程序的健全性。更新数据函数,以编号来确定更新的员工,更新将重新输入该编号员工的信息,并在更新后执行写入。删除函数,执行该函数后,将有两种选择,按编号删除,或按名字删除,正确输入

13、后将会将该编号或姓名的数据中的一项zt的值更改为1,使其在其他操作时不被识别,以达到不删除数据,但达到相同的效果的逻辑删除。显示函数,有两种显示方式,按学号显示或按名字显示,学号显示为从小到大显示。重组函数,将文件中逻辑删除的数据物理删除,用来节省储存空间,并可以加快运算速度。统计数据,将文件中的数据统计、计算,并输出,给人以直观的方式显示数据。排序函数,将数据以实发工资从大到小排序。2.2系统流程设计3编码实现#defineMAX100#include#include#includecharun10;charup10;us3=aaa,111,bbb,222,ccc,333;structyg/

14、shortzt;/数据状态longbh;/编号charname20;/名字chartime11;/时间longmoney;/基本工资longjj;/奖金longkk;/扣款longsf;/;实发工资;ygyMAX;/intr=0;/辑删除人数intp=0;/能在登陆三次失败时退出程序voidread()/structuser/FILE*fp;登陆者信息员工结构体定义数据体数组全局变量,人数,包括逻登陆的次数,用全局变量读取文件函数charb;inti;b=0;printf(即将读取文件员工信息.datn);if(fp=fopen(员工信息.dat,rb)=NULL)/读取文件printf(员工

15、信息.dat文件不存在n);printf(是否重新创建该文件?n);printf(创建(y)员工信息.dat或退出(n)n);getchar();b=getchar();while(getchar()!=n)if(b=Y|b=N)b+=32;while(b!=y&b!=n)printf(输入错误!请重新输入!n);b=getchar();while(getchar()!=n)if(b=Y|b=N)b+=32;if(b=y)if(fp=fopen(员工信息.dat,wb)=NULL)/文件不存在则创建文件printf(创建文件失败!n);printf(按下任意键以退出程序!n);getchar(

16、);exit(1);if(b=0)fread(&r,4,1,fp);printf(读取成功!n);elseprintf(创建文件成功!n);if(r!=0)for(i=0;ir;i+)fread(&yi,sizeof(yg),1,fp);fclose(fp);voidsave()/保存文件函数FILE*fp;inti;if(fp=fopen(员工信息.dat,wb)=NULL)printf(printf(保存文件失败!n);按下任意键以退出程序!n);getchar();exit(1);elsefwrite(&r,4,1,fp);if(r!=0)for(i=0;ir;i+)fwrite(&yi

17、,sizeof(yg),1,fp);fclose(fp);voidzj_data()/增加数据函数ygyuangong;charb;inti;intk=0;yuangong.zt=0;do/新建员工信息时,状态为0用循环来寻找、避免相同编号的员工printf(编号:(例如:123456)n);scanf(%d,&yuangong.bh);for(i=0;ir;i+)if(yi.bh=yuangong.bh&yi.zt=0)printf(已有同编号员工无法添加!n);printf(请重新输入!n);k=1;break;elseif(i=r-1)k=0;while(k=1);printf(姓名:(

18、例如:张三(ortom)n);scanf(%s,);printf(年月:(例如:);scanf(%s,yuangong.time);printf(岗位工资:(例如:50000)n);scanf(%d,&yuangong.money);printf(奖金:(例如:2000)n);scanf(%d,&yuangong.jj);printf(扣款:(例如:100)n);scanf(%d,&yuangong.kk);printf(实发工资为:(岗位工资+奖金-扣款)n);yuangong.sf=yuangong.money+yuangong.jj-yuangong.kk;pr

19、intf(%dn,yuangong.sf);yr=yuangong;r+;/新建员工信息时人数r+save();printf(添加成功!n);getchar();/防止下面一个C卖取到上一个的回车printf(是否继续添加员工?(y/n)n);b=getchar();while(getchar()!=n);if(b=Y|b=N)b+=32;while(b!=y&b!=n)printf(输入错误!请重新输入!n);b=getchar();while(getchar()!=n)if(b=Y|b=N)b+=32;if(b=y)zj_data();voidgx_data()/更新数据ygyuangon

20、g;longnum;inti;printf(n请输入要更新的员工的编号!n);scanf(%d,&num);for(i=0;ir;i+)if(yi.bh=num&yi.zt=0)yuangong=yi;printf(当前该员工信息为:n);printf(编号:%dn,yuangong.bh);printf(姓名:%sn,);printf(年月:%sn,yuangong.time);printf(岗位工资:%dn,yuangong.money);printf(奖金:%dn,yuangong.jj);printf(扣款:%dn,yuangong.kk);printf(实发

21、工资:dn,yuangong.sf);printf(按下任意键输入更新后的信息!n);getchar();getchar();printf(编号:(例如:123456)n);scanf(%d,&yuangong.bh);printf(姓名:(例如:张三(ortom)n);scanf(%s,);printf(年月:(例如:);scanf(%s,yuangong.time);printf(岗位工资:(例如:50000)n);scanf(%d,&yuangong.money);printf(奖金:(例如:2000)n);scanf(%d,&yuangong.jj);prin

22、tf(扣款:(例如:100)n);scanf(%d,&yuangong.kk);printf(实发工资为:(岗位工资+奖金-扣款)n);yuangong.sf=yuangong.money+yuangong.jj-yuangong.kk;printf(%dn,yuangong.sf);yi=yuangong;save();printf(更新成功!n);break;elseif(i=r-1)printf(查无此人!n);voidcz_data()/查询数据ygyuangong;inta,i;longnum;charna10;printf(n请选择查询方式!n);/分为按编号查询和姓名查询prin

23、tf(*n);printf(*1、编号查询*n);printf(*2、姓名查询*n);printf(*3、返回菜单*n);printf(*n);scanf(%d,&a);if(a=1)printf(请输入查询员工的编号:);scanf(%d,&num);for(i=0;ir;i+)/态为0且编号与所输入的数字相同的数据编号查询则循环r次,查找状if(yi.zt=0&yi.bh=num)yuangong=yi;printf(当前该员工信息为:n);printf(”编号:dn,yuangong.bh);printf(”姓名:%sn,);printf(”年月:%sn,yua

24、ngong.time);printf(岗位工资:%dn,yuangong.money);printf(奖金:dn,yuangong.jj);printf(”扣款:%dn,yuangong.kk);printf(实发工资:%dn,yuangong.sf);break;elseif(i=r-1)printf(查无此人!n);elseif(a=2)printf(请输入查询员工的姓名:);scanf(%s,na);for(i=0;ir;i+)/姓名查询则循环r次,查找状态为0且编号与所输入的字符串相同的数据if(strcmp(,na)=0)&yi.zt=0)yuangong=yi;pri

25、ntf(当前该员工信息为:n);printf(编号:%dn,yuangong.bh);printf(”姓名:%sn,);printf(”年月:%sn,yuangong.time);printf(岗位工资:%dn,yuangong.money);printf(奖金:%dn,yuangong.jj);printf(扣款:%dn,yuangong.kk);printf(实发工资:%dn,yuangong.sf);break;elseif(i=r-1)printf(查无此人!n);elseif(a=3)elseprintf(输入错误!n);cz_data();删除数据删除数据

26、删除也按voidsc_data()/ygyuangong;longnum;inta,i,b;charna10;printf(n请选择!n);/编号删除和姓名删除printf(*n);printf(*1、按编号删除*n);printf(*2、按姓名删除*n);printf(*3、返回主菜单*n);printf(*n);scanf(%d,&a);if(a=1)printf(请输入要删除员工的编号:);scanf(%d,&num);for(i=0;ir;i+)if(yi.zt=0&yi.bh=num)yuangong=yi;printf(当前该员工信息为:n);printf(”编号:dn,yuang

27、ong.bh);printf(”姓名:%sn,);printf(”年月:%sn,yuangong.time);printf(岗位工资:%dn,yuangong.money);printf(奖金:%dn,yuangong.jj);printf(扣款:%dn,yuangong.kk);printf(实发工资:%dn,yuangong.sf);yi.zt=1;save();printf(删除成功!n);防止下面一个%cgetchar();/读取到上一个的回车printf(是否继续删除员工?(y/n)n);b=getchar();while(getchar()!=n);if(

28、b=Y|b=N)b+=32;while(b!=y&b!=n)printf(输入错误!请重新输入!n);b=getchar();while(getchar()!=n)if(b=Y|b=N)b+=32;if(b=y)sc_data();break;elseif(i=r-1)printf(查无此人,无法删除!n);elseif(a=2)printf(请输入删除员工的姓名:);scanf(%s,na);for(i=0;ir;i+)if(strcmp(,na)=0)&yi.zt=0)yuangong=yi;printf(当前该员工信息为:n);printf(”编号:dn,yuangong.

29、bh);printf(”姓名:%sn,);printf(”年月:%sn,yuangong.time);printf(岗位工资:%dn,yuangong.money);printf(奖金:%dn,yuangong.jj);printf(”扣款:dn,yuangong.kk);printf(实发工资:%dn,yuangong.sf);yi.zt=1;save();printf(删除成功!n);getchar();/读取到上一个的回车printf(是否继续删除员工?(y/n)n);b=getchar();while(getchar()!=n);if(b=Y|b=N)b+=3

30、2;while(b!=y&b!=n)printf(输入错误!请重新输入!n);b=getchar();while(getchar()!=n)if(b=Y|b=N)b+=32;if(b=y)sc_data();break;elseif(i=r-1)printf(查无此人,无法删除!n);elseif(a=3)/执行操作返回主菜单elseprintf(输入错误!n);sc_data();防止下面一个%c输入为3时不voidxs_data()/显示数据ygyuangongMAX,t;inta;inti,j;intk=0;printf(n请选择显示方式!n);printf(*n);printf(*1、

31、按编号显示*n);printf(*2、按姓名显示*n);printf(*3、返回主菜单*n);printf(*n);scanf(%d,&a);for(i=0;ir;i+)yuangongi=yi;if(yi.zt=1)k+;if(k=r)printf(无员工信息!n);a=3;if(a=1)/按编号显示时用冒泡排序从大到小排序for(i=1;i=r;i+)for(j=0;jyuangongj+1.bh)t=yuangongj;yuangongj=yuangongj+1;yuangongj+1=t;printf(按编号排列如下:n);printf(%-10s%-10s%-10s%-10s%-10

32、s%-10s%-10sn,编号,姓名,年月,岗位工资,奖金,扣款,实发工资);for(i=0;ir;i+)if(yuangongi.zt=0)printf(%-10d%-10s%-10s%-10d%-10d%-10d%-10dn,yuangongi.bh,,yuangongi.time,yuangongi.money,yuangongi.jj,yuangongi.kk,yuangongi.sf);printf(显示完毕!n);elseif(a=2)/按名字显示时用冒泡排序从大到小排序,用strcmp来比较字符串的大小for(i=1;i=r;i+)for(j=0;j0

33、)t=yuangongj;yuangongj=yuangongj+1;yuangongj+1=t;printf(按姓名排列如下:n);printf(%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,编号,姓名,年月,岗位工资,奖金,扣款,实发工资);for(i=0;ir;i+)if(yuangongi.zt=0)printf(%-10d%-10s%-10s%-10d%-10d%-10d%-10dn,yuangongi.bh,,yuangongi.time,yuangongi.money,yuangongi.jj,yuangongi.kk,yu

34、angongi.sf);printf(显示完毕!n);elseif(a=3)elseif(yuangongi.zt=0)printf(输入错误!n);cz_data();重组文件循环r次,将状态为1的数voidchongz_data()/inti,j;intk=0;for(i=0;ir;i+)据剔除,并将剔除数据的个数记录if(yi.zt=1)for(j=i;jr;j+)yj=yj+1;k+;r-=k;/将人数r重新计算save();printf(重组成功!n);voidtj_data()/统计数据ygyuangongMAX;intmax,m,k=0;doubleave=0;intn=0;in

35、ti;for(i=0;ir;i+)/计算文件中逻辑删除的数据个数kyuangongi=yi;if(yuangongi.zt=1)k+;for(i=0;ir;i+)/将数组中第一个状态为0的数据的实发工资赋给max并记录是第几位,跳出循环max=yuangongi.sf;m=i;break;if(yuangong0.zt=0)/第一个数据是否逻辑删除?否,将实发工资赋给ave未计算的平均值ave=yuangong0.sf;for(i=1;ir;i+)/循环找出最大值,并将所有正常数据加入未计算的ave中if(maxyuangongi.sf)&(yuangongi.zt=0)m=i;if(yuan

36、gongi.zt=0)ave+=yuangongi.sf;ave=ave/(r-k);/计算avefor(i=0;iave)&(yuangongi.zt=0)n+;printf(n最高实发工资员工信息为:n);/输出结果printf(%-10s%-10s%-10s%-10s%-10s%-10s%-10sn,编号,姓名,年月,岗位工资,奖金,扣款,实发工资);printf(%-10d%-10s%-10s%-10d%-10d%-10d%-10dn,yuangongm.bh,,yuangongm.time,yuangongm.money,yuangongm.jj,yuan

37、gongm.kk,yuangongm.sf);printf(平均工资为:.2fn,ave);printf(超过平均工资人数为:%dnn,n);voidpx_data()/排序数据ygyuangongMAX,t;intnum=0;inti,j;for(i=0;ir;i+)yuangongi=yi;for(i=1;i=r;i+)/冒泡排序排序所有数据for(j=0;jr-i;j+)if(yuangongj.sfyuangongj+1.sf)t=yuangongj;yuangongj=yuangongj+1;yuangongj+1=t;printf(n所有员工信息为:n);printf(%-10s%

38、-10s%-10s%-10s%-10s%-10s%-10sn,编号,姓名,年月,岗位工资,奖金,扣款,实发工资);for(i=0;ir;i+)if(yuangongi.zt=0)printf(%-10d%-10s%-10s%-10d%-10d%-10d%-10dn,yuangongi.bh,,yuangongi.time,yuangongi.money,yuangongi.jj,yuangongi.kk,yuangongi.sf);voidcd()/菜单函数intl;doprintf(欢迎进入员工工资管理系统菜单!n);printf(n);printf(*|1.增加

39、数据|*n);printf(*|2.更新数据|*n);printf(*|3.查询数据|*n);printf(*|4.删除数据|*n);printf(*|5.显示数据|*n);printf(*|6.重组数据|*n);printf(*|7.统计输出|*n);printf(*|8.排序数据|*n);printf(*|9.退出|*n);printf(*|其它输入为退出|*n);printf(*|*nn);printf(请输入你的选择:n);scanf(%d,&l);switch(l)1case1:zj_data();printf(即将返回主菜单n);system(PAUSE);break;/syste

40、m用于返回主菜单时等待一下case2:gx_data();printf(即将返回主菜单n);system(PAUSE);break;case3:cz_data();printf(即将返回主菜单n);system(PAUSE);break;case4:sc_data();printf(即将返回主菜单n);system(PAUSE);break;case5:xs_data();printf(即将返回主菜单n);system(PAUSE);break;case6:chongz_data();printf(即将返回主菜单n);system(PAUSE);break;case7:tj_data();pr

41、intf(即将返回主菜单n);system(PAUSE);break;case8:px_data();printf(即将返回主菜单n);system(PAUSE);break;case9:break;while(l!=9&(l=1|l=2|l=3|l=4|l=5|l=6|l=7|l=8);voiddl()/登陆函数inti;chara10,b10;printf(请输入用户名:n);scanf(%s,a);printf(请输入密码:n);scanf(%s,b);for(i=0;i=3)printf(登录失败超过3次,系统将强制退出!n);printf(按下任意键以退出程序!n);getchar(

42、);getchar();exit(1);elsedl();intmain()/主函数dl();return0;4运行结果输入三次登陆失败输出:名;同!户咼密败用密入失入入M输:灵输-输:aa请llgr请打11请11登陆成功读取文件,无文件时:i#输人用户名:请输入密码:I巒庖扁昨怖亠BS(y)员工乍息.dat或退出(n)创建页工倍患血t或退岀S由建文件成功!加壽除不#遢眉.w_.ffl甩嗪排艮L2.乱.06*创建文件成功后进入菜单界面:谙输入你的选择:1编号;(例如:123456)201601姓茗:(例如:张三(ortom)王年月:(例in:20i5.iLid2000.0L01岗

43、位工资:例如:50000)12000奖金:(例如:加00)2000扣款:(例in:loo)500实发工资为:(岗位工资唉釘扣款)13500增加数据输入界面:鲁漿鷄加员工?(y/n)当输入数据中原本就有的员工编号时:所有数据输入完成后,显示所有数据:有两种显示方式将其中一人的数据执行更新操作:音输人蓼更新的员工的歸号!坯比人!-编号错误时:编号错误时:佶逻任煮薩继颔.一请输人奥更新的员丄的编号!201001些前垓反二唁息为:務弩、年月:MDClOL01恸检工資:丄MUU奖伞900010:500齐发13500授下任意键输入更新辰的信息!編号:(例如45的2Q1601姓名;(例如;张三tcmJ)年月

44、;(例如:20富LL11)岗恃工企;(例如;50QQO)14600奖金:(例如:2000)500扣款;(例如;1Q0)20实发工资为江胄位工资哄金-扣款)I144S0正确时:正确时:洁传任議谯竣-查询:两种方式删除数据:两种方式重组完成:14O:月16.为年20自:2信50为工融员名35人签王律T1为T1发S实01工平高号項希畫20平超数据处理完成后,显示所有数据:统计数据:岗位工资奖金扣款实发工资以实发工资高到低排序数据:总结拿到课设题目时,以为很简单,只是将一些函数堆叠在一起就行了,写的时候也没觉得很难,但在调试程序时,各种各样的bug眼花缭乱,如何找出、修改bug占了大部分时间。课设题目要求写的是员工工资管理,系统要求:设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论