收藏 分销(赏)

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

上传人:w****g 文档编号:6883100 上传时间:2024-12-23 格式:DOC 页数:21 大小:467KB
下载 相关 举报
职工工资管理系统设计--C语言课程设计.doc_第1页
第1页 / 共21页
职工工资管理系统设计--C语言课程设计.doc_第2页
第2页 / 共21页
职工工资管理系统设计--C语言课程设计.doc_第3页
第3页 / 共21页
职工工资管理系统设计--C语言课程设计.doc_第4页
第4页 / 共21页
职工工资管理系统设计--C语言课程设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、C语言程序设计课程设计实习报告实 验 题 目 职工工资管理 1问题描述:添加模块:添加职工或工资的信息删除模块:能通过姓名或者工号删除职工信息修改模块:修改职工信息查询模块:能通过姓名或者工号查询职工信息显示模块:显示全部职工信息文件管理模块:负责源数据文件的管理,包括新建、读取和保存源数据2概要设计 职工工资管理添加模块删除模块修改模块查询模块显示模块文件管理模块按姓名按工号按姓名按工号新建记录数据文件读取记录数据文件保存记录数据文件在各模块处用指针函数来使用后面的保存记录数据文件进行保存。3详细设计 include # include # include /*宏定义*/# define N

2、 100 /*假设工人个数是100*/# define HEADER1 -n # define HEADER2 | Number | Name | Psex | Age | Time | Ywage | Ykou | Pwage |n# define HEADER3 |-|-|-|-|-|-|-|-|n# define FORMAT |%-8d|%-8s|%-8s|%-7d|%-6d|%-7d|%-6d|%-7d|n# define DATA p-num ,p-name,p-sex,p-age,p-time,p-ywage,p-ykou,p-pwage# define END -n/*/typ

3、edef struct workint num; /*/char name10; char sex10;int age; /*/ int time; /*/int ywage; /*/int ykou; /*/int pwage; /*/WORK;/*/typedef struct pointer_infoWORK*pHead; /*/int count; /*/char fname10; /*/ int saveflag; /*/PI; /*/void Menu(); void Add(PI*);void Del(PI*);void Save(PI*pi);void Modify(PI*pi

4、);void Qur(PI*pi);void Load(PI*pi);void New(PI*pi);void Disp(PI*);void Wrong();void printheader();void main()int sel;WORK *pwork;PI pi;pwork = (WORK*)malloc(N * sizeof(WORK);pi.pHead = pwork;pi.count = 0;pi.fname0 = 0;pi.saveflag = 0;/*显示主函数*/Menu();printf(Please input your choice 05:);do scanf(%d,&

5、sel); if (sel = 0) /*if (pi.saveflag =1) if (strlen(pi.fname)Save(&pi);else New(&pi);Save(&pi); */break;switch(sel) case 1:Add(&pi);break; case 2:Del(&pi);break;case 3:Modify(&pi);break;case 4:Qur(&pi);break; case 5:Disp(&pi);break;default:Wrong();break; while(1);pwork = pi.pHead;free(pwork);void pr

6、intheader() printf(HEADER1);printf(HEADER2);printf(HEADER3);void Menu()system(cls);printf( The Workers Grade Wage System n);printf(*Menu*n);printf( * 1 添加 *n);printf( * 2 删除 *n);printf( * 3 修改 *n);printf( * 4 查询 *n);printf( * 5 显示 *n);printf( * 0 退出 *n);printf (*n);void Wrong( )printf(n*Error :input

7、 has wrong ! press any key to continue*n); void Add(PI* pi ) int num;/char sex10;int nSex;int i,flag=0;WORK * pwork,*p;do pwork=pi-pHead+pi-count;p=pi-pHead;printf(please input the number:(press 0return menu);scanf(%d,&num);for(i=1;icount; i+)if(num=p-num)printf (the number you input has exist,pleas

8、e input another one!n);flag=1;break;p+;if(flag) flag=0;continue;if (num != 0)pwork-num = num;elseMenu();printf(please input your choice05:);break;printf(please input the name:);scanf(%s,pwork-name);printf(please input the sex(0 is woman,1 is man):);scanf( %d, &nSex );if( nSex = 0 )strcpy( pwork-sex,

9、woman);elsestrcpy( pwork-sex,man);printf(please input the time:);scanf(%d, &pwork-time);printf(please input the age:);scanf(%d, &pwork-age);printf(please input the Ywage:);scanf(%d, &pwork-ywage);printf(please input the Ykou:);scanf(%d, &pwork-ykou);pwork-pwage = pwork-ywage-pwork-ykou;pi-count+;pi-

10、saveflag=1;while(1);void Qur(PI * pi)int a,i,num;WORK *p;char name10;p=pi-pHead;Menu();printf(1-search by numbern);printf(2-search by namen);printf(3-returnn);printf(please input your choice:1,2?);scanf(%d,&a);if(a=3) return;if(a=1)printf(please input the number for search:);scanf(%d,&num);for(i=1;i

11、count; i+) if(num=p-num)break;p+;if(ipi-count)printf(no record foundn);return;else printheader();printf(FORMAT,DATA);printf(END);else if(a=2)printf(please input name to search:);scanf(%s,name);for(i=1;icount;i+)if(strcmp(name,p-name) !=0) break;p+;if(ipi-count)printf(no record foundn);return;else pr

12、intheader();printf(FORMAT,DATA);printf(END);printf(Please input your choice05:);void Modify(PI *pi)int num,i;WORK *p,*pwork;p = pi-pHead;Menu();Disp(pi);printf(please input the number of work to modify:);scanf(%d,&num);for (i = 1;i count;i+)if (num = p-num)break;p+;if (i pi-count)printf(no record fo

13、undn);return;elseprintf(please input the number:(enter 0return menu);scanf(%d,&num);if (num!=0)p-num =num;elseMenu();return;printf(please input the name:);scanf(%s,p-name);printf(please input the sex:);scanf(%s,p-sex);printf(please input the age:);scanf(%d,&p-age);printf(please input the time:);scan

14、f(%d,&p-time);printf(please input the ywage:);scanf(%d,&p-ywage);printf(please input the ykou:);scanf(%d,&p-ykou);pwork-pwage = pwork-ywage-pwork-ykou;pi-saveflag = 1;/*删除职工记录*/void Del(PI * pi)int sel,i,num;char name10;WORK *p;/*指针函数*/p=pi-pHead;Menu();printf(1-delete by numbern);/*选择工号*/printf(2-d

15、elete by namen);/*选择姓名*/printf(any key other-returnn);/*按别的键就返回*/printf(please input your choice:1,2?n);scanf(%d,&sel);if(sel!=1&sel!=2)/*按别的键*/ return;if( sel = 1 )/*选择工号*/printf(Please input the number to delete:);scanf(%d,&num);for(i=1;icount;i+)/*按学号搜索*/ if(num=p-num)break;p+;if(ipi-count)printf

16、(no record foundn);return;else if(i=pi-count) /*删除中间某个记录,只需要将count减1*/pi-count-;pi-saveflag=1;printf(record delete successfully!n);else /*删除某个记录,只要将其后的数据前移覆盖即可*/ memcpy(p,p+1,(pi-pHead + pi-count - p)*sizeof(WORK);pi-count-;pi-saveflag = 1;printf(record delete successfully!n);else if(sel = 2)/*选择姓名*

17、/printf(please input name to delete:);scanf(%s,name);for(i=1;icount;i+) if(strcmp(name,p-name) != 0)break;p+;if(ipi-count)printf(no record foundn);return;else if(i=pi-count)/*删除中间某个记录,只需要将count减1*/pi-count-;pi-saveflag=1;printf(record delete successfully!n);else /*删除某个记录,只要将其后的数据前移覆盖即可*/ memcpy(p,p+

18、1,(pi-pHead+pi-count-p)*sizeof(WORK) );pi-count-;pi-saveflag=1;printf(record delete successfully!n);printf(please input your choice05:);/*显示*/void Disp(PI * pi)int i;WORK *p = pi-pHead;if (pi-count=0)printf(no record foundn);printf(nplease input your choice05:);return;printheader();for(i=1;icount;i+

19、)printf(FORMAT,DATA);printf(END);p+;void New(PI *pi)FILE * fp;char name10;char fname10 =.;printf(please input the date file name foe create:);scanf(%s,fname);strcat(fname,name);strcat(fname,.dat);fp=fopen(fname,wb);if(fp=NULL)printf(n=open file error!n);return;strcpy(pi-fname,fname);fclose(fp);void

20、Load (PI *pi) FILE * fp;WORK * p=pi-pHead;char name 10;char fname 10= .;printf( please input the data file name for load:);scanf( %s,name);strcat(fname,name);fp=fopen(fname , rb);if(fp=NULL) printf(n=open file error!n);return;pi-count = 0;pi-saveflag = 0;while(feof(fp)!=0)if(fread(p,sizeof(WORK),1,f

21、p)pi-count+;p+;strcpy(pi-fname,name);printf(load data file %s successfully!,name);fclose(fp);void Save(PI * pi)FILE * fp;int numwriten;if (!strlen(pi-fname)New(pi);fp=fopen(pi-fname, wb);if(fp=NULL) printf(n=open file error!n);fclose(fp);return ;if (pi-count) numwriten = fwrite(pi-pHead,1,pi-count *

22、 sizeof(WORK),fp);pi-saveflag = 0;printf(file save succesefully!);elseprintf(no record for save !);fclose(fp);4测试分析添加时Q1:性别通过输入0或1输出woman or man有if语句进行选择Q2:实得工资由应发工资减去应扣工资自动得到在程序中做减法添加后删除Q1:通过工号或姓名删除使用if语句进行选择,并用for语句对进行搜索Q2:删除中间摸个记录删除后 修改查找Q1:要求通过工号或者姓名查找使用if语句Q2:如果找不到记录则要返回使用if else语句找不到就输出源数据显示5.

23、 课程设计总结通过我们小组的共同努力终于完成任务,制作了职工工资管理系统。虽然这系统我们是参照课本的类似例题制作,但其中还是集大家的努力进行修改,使系统更加完善。但由于能力有限,系统还是不是很稳定。比如,输入进入公司时间时,不能精确到具体时间。总的来说,我们制作的系统还是能达到基本要求的,实现职工工资管理系统的功能。自我评价:通过这次作业,我发现自己的不足之处。对一些C语言的基本东西还是比较陌生,所以不能熟悉运用。增加了负担,所以这给与我提示是要再去好好看几遍书,熟悉其内容。这次作业我们小组成员也发挥出各自所有的能力,相互协作,共同努力思考,对一些疑难点和问题进行讨论。我也发挥出带头领导的作用,制定出相对合理的工作计划并予以实施。总的来说,我在这次工作中是投入大量时间和精力的,实实在在的努力!教师评价成绩评定: 日期: 年 月 日

展开阅读全文
部分上传会员的收益排行 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 

客服