收藏 分销(赏)

C语言程序设计报告职工工资管理系统-.doc

上传人:二*** 文档编号:4512097 上传时间:2024-09-26 格式:DOC 页数:23 大小:103KB
下载 相关 举报
C语言程序设计报告职工工资管理系统-.doc_第1页
第1页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、- .C语言程序设计报告课程名称:C语言程序设计院 系: 管理与经济学院专业班级: 工业工程2012142班学 号:201214217学生XX:海蛟指导教师:雪青完成时间:2013-06-20报告成绩:目录1、设计题目-22、设计要求包括设计容描述-23、设计作用与目的-34、所用软件-35、系统设计-45.1 系统构造-45.2 程序程序图-45.3 产生源程序-66、实验调试结果附运行效果图-367、设计中的问题及解决方法-398、设计心得-409、参考文献-41职工工资管理系统的设计与实现1.设计题目题目:工资管理系统工资管理系统是企业不可缺少的一局部,它利用计算机对员工工资进展统一管理

2、,实现工资管理系统的系统化、规化和自动化,为企业提高工作效率。本程序旨在训练读者的根本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和构造数组的各种根本操作。本程序中涉及构造体、数组、文件等方面的知识。2.设计要求1、启动软件时,进展密码校验。假设出错三次,那么自动退出系统。2、实现简易的提示菜单界面,刚运行时应显示版本信息。用所学的知识尽量实现良好的、美观的“人机界面,便于软件的操作使用。3、要求把所有录入的数据以文件的形式,保存在硬盘上。4、系统包含以下根本功能:登陆功能、显示主菜单功能、职工信息输入信息输出、职工信息查询、职工信息修改、工资排序、工资统计、导出数据、导入数据、退出

3、等。5、职工信息输入信息输出要求一个职工的根本信息(编号、XX、根本工资)的录入,以文件形式保存输入。6、职工工资表浏览工资功能输出。7、计算职工的工资输入根本工资、扣款、奖金后,马上算出应发工资、税金、实发工资、总工资。8、查询、排序功能算法。1) 按编号查询、排序。2) 按XX查询。3) 按工资排序。4) 根本信息的删除与修改可选项。3.设计作用与目的1、通过这次专题实习,稳固和加深对所学相关知识点的理解。2、进一步熟悉根本流程控制构造实现分支的ifelse语句、switch语句和实现循环的for、while、dowhile语句、break、continue等。3、根本数据类型、数组、构造

4、体、自定义类、函数的应用。4、加强对模块化程序设计和面向对象程序设计的理解。5、掌握C语言程序设计的根本思想,了解简单的系统分析和6、了解数据库系统的理论7、掌握数据库设计的根本方法,熟悉数据库设计的步骤;8、学习根本数据库编程方法。9、进一步稳固、加深学生所学专业课程?C语言程序设计?的根本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。10全面考核学生所掌握的根本理论知识及其实际业务能力,从而到达提高学生素质的最终目的。11利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进展数据处理的综合能力。12对于给定的设计题目,如何进展分

5、析,理清思路,并给出相应的数学模型。 13掌握面向对象的程序设计方法。14进一步掌握在集成环境下如何调试程序单步调试,设置断点、观察表达式,分块调试、修改程序和程序的测试。4.运行环境及工具软件Windows XP;Visual C+ 6.0完整绿色版;5.系统设计5.1 程序逻辑图职工工资管理系统登陆功能用户管理职工信息输入职工信息输出职工工资信息查询计算职工信息修改工资排序工资统计导出数据导入数据工资计算退出 图1:系统构造框图5.2 程序流程图选择2选择1开场系统登录主页面初始化双链表录入职工工资修改职工工资选择操作查询职工工资选择3浏览职工工资选择4选择6选择9选择8选择7选择5删除职

6、工工资删插入职工工资职工工资排序保存职工工资平安退出系统按编号删除完毕6源程序代码#include /标准输入输出#include /处理杂乱 #include /Sleep() #include /字符串操作 #include /系统输入输出#include /时间相关/*下面是对用到的全局常量声明*/#define NAME 10 /职工职工XX长度#define PASSWORD 123 /系统登陆密码int shuru=0; /全局变量标记当前录入职工个数FILE *fp; /声明一个文件指针/*构造体定义*/struct person /职工工资的构造体char nameNAME;

7、/职工职工XXint num; /职工编号float paid; /职工根本工资float discount; /扣款float extra; /奖金float fare;/税金float gotpaid;/应发工资float realpaid; /实发工资float sum; /总工资*pp; /声明一个构造指针/*下面是对用到的函数声明*/void Password(); /密码验证函数void Save(struct person per); /保存信息函数void Inputper(struct person per); /录入信息函数void Delper(struct person

8、 per); /删除信息函数void Modifyper(struct person per); /修改信息函数void Findper(struct person per); /查找信息函数void Insertper(struct person per); /插入信息函数void Sortper(struct person per); /排 序 函 数void Listper(struct person per); /显示职工信息void fare(struct person per,int n);/计算税金函数void Menu();void Help();/*程序主体*void mai

9、n() /程序入口system(color 027); /设置当前窗口的背风光和前风光 Password(); /调用密码验函数Help(); /调用系统信息函数Menu(); /调用菜单函数void Inputper(struct person per) /录入职工工资函数原形 pp=per; /指针指向构造 system(cls); /清屏int i;printf(请问你要输入几个职工的信息:);scanf(%d,&shuru);if(fp=fopen(inputdata,wb+)=NULL) /当前目录下是否存在INPUTDATA文件 /wb+:读写翻开或建立一个二进制文件,允许读和写p

10、rintf(Cannot open file strike any key exit!);getch();exit(1);fprintf(fp,职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工作 总工资n);for(i=0;ishuru;i+)printf(输入职工编号:); /输入职工编号fflush(stdin);scanf(%d,&peri.num);printf(输入职工XX:); /输入职工XXfflush(stdin);gets(peri.name); printf(输入职工的工资信息n);printf(-n);printf(n根本工资: ); /根本工资fflus

11、h(stdin);scanf(%f,&peri.paid); printf(n扣款: ); /扣款fflush(stdin);scanf(%f,&peri.discount); printf(n奖金: ); /奖金fflush(stdin);scanf(%f,&peri.extra); printf(n税金: ); /税金 printf(-n);peri.sum=peri.paid-peri.discount+peri.extra;peri.realpaid=peri.paid-peri.discount;fprintf(fp, %6d %8s %5.1ft %5.1ft %3.1ft %5.

12、1ft %4.1ftn,peri.num,peri.name,peri.paid,peri.discount,peri.extra,peri.realpaid,peri.sum);void Modifyper(struct person per)pp=per;int id,i=0; /id为接收用户输入的职工编号if(fp=fopen(modifydata.sys,wb+)=NULL) printf(Cannot open file strike any key exit!);getch();exit(1);fprintf(fp,职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工

13、资 总工资n);printf(n请输入你要修改的职工的编号:);scanf(%d,&id);Sleep(500);printf(nt查找相关数据.);for(i=0;i=15;i+)Sleep(250);printf(.);for(i=0;ishuru;i+)if(peri.num=id) /如果找到了就执行下面语句 ,找不到直接回主界面printf(n输入新职工编号:); /输入职工编号fflush(stdin);scanf(%d,&peri.num);printf(n输入新职工XX:); /输入职工XXfflush(stdin);gets(peri.name); printf(输入职工的工

14、资信息n);printf(-n);printf(n根本工资: );scanf(%f,&peri.paid);fflush(stdin);printf(n扣款: );scanf(%f,&peri.discount);fflush(stdin);printf(n 奖金: );scanf(%f,&peri.extra);printf(-n);peri.sum=peri.paid-peri.discount+peri.extra;peri.realpaid=peri.paid-peri.discount;fprintf(fp, %6d %8s %5.1ft %5.1ft %3.1ft %5.1ft %

15、4.1ftn,peri.num,peri.name,peri.paid,peri.discount,peri.extra,peri.realpaid,peri.sum);void Findper(struct person per) /查询职工工资信息int i=0,j=0,id; /循环变量和用于接收职工编号 printf(请输入你要查询的职工编号:);scanf(%d,&id);for(i=0;ishuru;i+)if (peri.num=id) /如果找到你查询的数据就执行下面语句 /如果找不到。直接回程序主界%peri.sum=peri.paid-peri.discount+peri.

16、extra;peri.realpaid=peri.paid-peri.discount;printf(n职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工资 总工资 n);printf(n%6d %8s %5.1ft %5.1ft %3.1ft %5.1ft %5.1ft %5.1ft %4.1ft nn,peri.num,peri.name,peri.paid,peri.discount,peri.extra,peri.gotpaid,peri.fare,peri.realpaid,peri.sum);system(pause); void Insertper(struct p

17、erson per) /插入职工工资信息int flag=1;pp=per;int i,id;if(fp=fopen(insertdata.sys,wb+)=NULL) printf(Cannot open file strike any key exit!);getch();exit(1);fprintf(fp,职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工资 总工资n);printf(输入你插入的职工编号:);scanf(%d,&id);for(i=0;ishuru;i+)if(peri.num=id) /判断职工编号信息否存在?printf(职工编号信息已经存在!n);

18、flag=0;getch();break;if (flag!=0)shuru+; /插入一个,原来的总数增加1 printf(请确认输入要插入职工编号:);scanf(%d,&pershuru-1.num); /如果不存在.那么就把插入的信息放到构造数组最后printf(输入职工XX:); fflush(stdin);gets(pershuru-1.name); printf(输入职工的工资信息n);printf(-n);printf(n根本工资: );fflush(stdin);scanf(%f,&pershuru-1.paid);printf(n扣款: );fflush(stdin);sc

19、anf(%f,&pershuru-1.discount);printf(n奖金: ); /奖金fflush(stdin);printf(n税金: ); /税金fflush(stdin);printf(-n);peri.sum=peri.paid-peri.discount+peri.extra;peri.realpaid=peri.paid-peri.discount;fprintf(fp, %6d %8s %5.1ft %5.1ft %3.1ft %5.1ft %4.1ftn,pershuru-1.num,pershuru-1.name,pershuru-1.paid,pershuru-1.

20、discount,pershuru-1.extra,peri.realpaid,pershuru-1.sum);Sleep(500);printf(插入数据成功!n);getch();void Listper(struct person per) /浏览所有职工工 int i=0;for(i=0;ishuru;i+) peri.gotpaid=peri.paid-peri.discount;if (peri.gotpaid=2000&peri.gotpaid=5000&peri.gotpaid=10000&peri.gotpaid=100000)peri.fare=peri.gotpaid*0

21、.3;peri.sum=peri.paid-peri.discount+peri.extra;peri.realpaid=peri.paid-peri.discount;printf(n职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工资 总工资n);for(i=0;ishuru;i+)printf(n %6d %8s %5.1ft %5.1ft %3.1ft %5.1ft %5.1ft %4.1ft %5.1ft,peri.num,peri.name,peri.paid,peri.discount,peri.extra,peri.gotpaid,peri.fare,peri.r

22、ealpaid, peri.sum); getch();void Delper(struct person per) /删除职工信息函数pp=per;struct person temp;int delnum;char ask;int i,j;if(fp=fopen(Deldata.sys,wb+)=NULL) printf(Cannot open file strike any key exit!);getch();exit(1);fprintf(fp,职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工资 总工资n);system(cls);printf(nnt请输入你要删除的

23、职工的职工编号:);fflush(stdin);scanf(%d,&delnum); printf(nt是否确认删除职工%d的信息(y/n),delnum);fflush(stdin);ask = getchar();if(ask != n)for(i=0;i shuru)printf(nt没有你要删除的职工!n);elsefor(j=i;jshuru;j+)temp = perj;perj = perj+1;perj+1 = temp;shuru-; /删掉一个职工信息后职工总数相应-1system(cls);printf(nn删除成功!n); peri.sum=peri.paid-peri

24、.discount+peri.extra;peri.realpaid=peri.paid-peri.discount;fprintf(fp, %6d %8s t%5.1f t%5.1f t%5.1f t%5.1f t%4.1fn,peri.num,peri.name,peri.paid,peri.discount,peri.extra,peri.realpaid,peri.sum);getch();void Sortper(struct person per) /排序函数int i,j,chose; /i,j为循环变量 chose为接收用户输入的排序方式struct person temp;p

25、rintf(排序前的数据为n);printf(n职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工资 总工资n);for(i=0;ishuru;i+) printf(n %6d %8s %5.1ft %5.1ft %3.1ft %5.1ft %4.1ftn,peri.num,peri.name,peri.paid,peri.discount,peri.extra,peri.realpaid,peri.sum); printf(n1.按职工编号排序t2.按总工资(高低)排序n);printf(n请您正确选择:);fflush(stdin);scanf(%d,&chose);if(c

26、hose=1)for(i=0;ishuru-1;i+)for(j=i+1;jperj.num)temp=peri;peri=perj;perj=temp;printf(n职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工资 总工资n);for(i=0;ishuru;i+)printf(n %6d %8s %5.1ft %5.1ft %3.1ft %5.1ft %4.1ftn,peri.num,peri.name,peri.paid,peri.discount,peri.extra,peri.realpaid,peri.sum); system(pause);else if(cho

27、se=2)for(i=0;ishuru-1;i+)for(j=i+1;jshuru;j+)if(peri.sumperj.sum)temp=peri;peri=perj;perj=temp;printf(n职工编号 职工XX 根本工资 扣款 奖金 应发工资 税金 实发工资 总工资n);for(i=0;i=0)&(passcount+=getch()!=13) /密码输入if(pass0=b)count=0;continue;else if(passcount-1=b)printf(%c%c%c,b,0,b);count-=2;elseputchar(*);pass-count=0;if(!st

28、rcmp(pass,PASSWORD) /开场验证 printf(nnttttttLogining);for(i=0;i=25;i+)Sleep(250);printf(.); system(cls);printf(nnnnnnnnnttt);printf( 欢 迎 登 陆 职 工 工 资 管 理 系 统 !nn);start=time(NULL);end=time(NULL);while(end-start2) /延时2秒执行以下程序end=time(NULL);system(cls);free(pass); /释放储存密码的存return ;free(pass); /释放密码错误的那块存p

29、ass=(char *)malloc(255*sizeof(char); /重新分配储存密码存system(cls);printf(annnnnnnntttt密 码 错 误 !);getch();system(cls);void Menu()struct person per50; /最大职工人数struct person *p; /声明一个构造指针p=per; /指针指向构造变量perint i,in; /接收用户的选择char ch; /用于判断是否继续 dosystem(cls);printf(nn);printf(tt=n);printf(tt * 职 工 工 资 管 理 系 统 *n

30、);printf(tt*=*n);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.删除职工工资 *n);printf(tt * *n);printf(tt* 6.插入职工工资 *n);printf(tt * *n);printf(tt* 7. 职工工资排序 *n);printf(tt * *n);p

31、rintf(tt* 8. 保存职工工资 *n);printf(tt * *n);printf(tt* 9. 平安退出系统 *n);printf(tt=n);printf(tt 请您正确选择: );if(!(scanf(%d,&in)=1)while(ch=getchar()!=n)putchar(ch);printf( 没有此选项,请正确选择!);getch();continue;fflush(stdin);switch(in)case 1:Inputper(per); /调用录入职工工资函数break;case 2:Modifyper(per); /调用修改职工工资函函数break;case

32、 3:Findper(per); /调用查询职工工资函数break;case 4:Listper(per); /调用浏览职工工资函数break;case 5:Delper(per); /调用删除职工工资函数break;case 6:Insertper(per); /插入职工工资信息break;case 7:Sortper(per); /调用职工工资排序函数break;case 8:Save(per); /保存职工工资函数break;case 9: /退出系统break;default:printf(没有此选项,请正确选择!);getch();break;while(in!=9);system(cls);printf(nnnnnnnnttt);printf(谢 谢 使 用 本 系 统 !nn); printf(nntttttEnding);for(i=0;i=30;i+)Sleep(300);printf(.);printf(n);void Help() printf(=n);printf(nntttt系 统 信 息n);printf(=n);printf(nntt本系统是职工工资管理系统,在职工的XX栏可以输入汉字);printf(ntt如果在输入中没看到任何信息那么是因为输入错误或无信息);printf(ntt系统中的 :实发工资 = 根本工资 - 扣款 ,不需要输入);pri

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服