程序设计训练报告.doc_第1页
程序设计训练报告.doc_第2页
程序设计训练报告.doc_第3页
程序设计训练报告.doc_第4页
程序设计训练报告.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

程序设计训练 报 告目 录一、设计题目二、开发平台三、需求分析四、信息描述五、总体分析(一)、定义结构体体变量(二)、功能模块(三)、流程图六、运行界面设计七、设计心得八、附录源程序代码一、设计题目:职员管理系统二、开发平台开发平台:vc+6.0 企业版,使用系统,winXP以上三、需求分析1、该程序可用于对企业员工工资情况基本信息的保存、查询等操作,以实现对企业员工工资的管理。2、其中更新功能包括:添加工资信息、删除工资信息、修改工资信息、可根据需要添加一个或多个员工工资信息,也可对个别员工信息进行适当的删除或修改。以便随时更新员工工资信息。3、程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据两种不同的方法查询:按工作证号查询和按姓名查询。以满足不同的需要。四、信息描述职工信息包括职工号、姓名、基本工资、奖金、扣款、税款,实发工资。五、总体方案(一) 定义结构体体变量typedef struct employee char num10; /保存职工编号 char name15; /保存职工姓名 float jbgz; /保存职工基本工资 float jj; /保存职工奖金 float kk; /保存职工扣款 float yfgz; /保存职工应发工资 double sk; /保存职工税款 double sfgz; /保存职工实发工资ZGGZ;(二) 功能模块菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。职员管理系统菜单menu()输入模块删除模块查询模块修改模块插入模块显示模块保存模块退出模块(1)输入模块按照编号,姓名,基本工资,奖金,扣款的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。通过自己定义的void input()函数来实现。(2)删除模块 按照用户的意愿删除指定的信息。通过自己定义的void del()函数来实现。(3)查询模块实现按照工资卡号和姓名的查询,采用基本的查找方法即可。通过自己定义的void sear()函数来实现。(4)修改模块按照用户的意愿修改已输入的信息。通过自己定义的void modi()函数 来实现。(5)插入模块在用户指定的位置插入信息。通过自己定义的void insert()函数来实现。(6)显示模块在窗口处显示输入的信息。通过自己定义的void display()函数来实现。(7)保存模块 保存输入的信息(8)退出模块(三)、流程图 (1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。菜单开始根据菜单输入n的值选择程序保存结束是否继续进行 0 YY5插入职工信息4修改职工信息2删除职工信息3查询职工信息6显示职工信息7退出1录入职工信息录入职工基本工资信息开始输入各项信息储存职工信息返回?主菜单继续录入0删除职工基本工资信息判断是否存在 开始输入继续删除N 返回?删除信息 主菜单 y查询职工基本工资信息开始输入按姓名查询按卡号查询输出返回?继续查询主菜单修改职工基本工资信息输入开始判断是否存在继续修改 N Y返回?修改信息主菜单 y 插入职工基本工资信息开 始输入新职工信息继续添加返回?储存输入信息y主菜单七.使用说明1.初始界面2.输入模块3.删除模块4.查询模块5.修改模块6.插入模块7.显示模块8.保存模块9.退出模块八、设计心得通过这几天的努力,职工工资管理系统的设计已基本完成。在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。职工工资管理系统是一个很实用并且使用广泛的操作系统。此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间内,查找出所需的职工工资资料,提高工作效率。该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。总的来说,通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。这会对以后的学习有所帮助。九、附录源程序代码:#include #includetypedef struct employee char num10; /保存职工编号 char name15; /保存职工姓名 float jbgz; /保存职工基本工资 float jj; /保存职工奖金 float kk; /保存职工扣款 float yfgz; /保存职工应发工资 double sk; /保存职工税款 double sfgz; /保存职工实发工资ZGGZ;void menu() printf( Empoyee Systemn); printf( *n); printf( *1 添加 record *2 删除 recordn); printf( *3 查询 record *4 修改 recordn); printf( *5 插入 record *6 显示 recordn); printf( *7 保存 record *0 退出 recordn); printf( *n); printf(Please enter you choice(0-7)n);int input(ZGGZ a,int k) int j,x; char str10; j=x=0; while(1) printf(-n); printf(请输入职工的编号:(按0返回主菜单)); scanf(%s,str); strcpy(ak.num,str); for(j=0;jk;j+) if(strcmp(aj.num,str)=0) printf(已经有工号为%s的员工信息!请重新输入员工号。n,str); printf(请输入职工的编号:); scanf(%s,str); strcpy(ak.num,str); if(strcmp(ak.num,0)=0) break; printf(请输入职工的姓名:); scanf(%s,); printf(请输入职工的基本工资:); scanf(%f,&ak.jbgz); printf(请输入职工的奖金:); scanf(%f,&ak.jj); printf(请输入职工的扣款:); scanf(%f,&ak.kk); ak.yfgz=ak.jbgz+ak.jj-ak.kk; ak.sk=ak.yfgz*(0.05); ak.sfgz=ak.yfgz*(0.95); k+; return k; int del(ZGGZ a,int y) int i=0; int x=0; char str15; printf(请输入你要删除的编号或姓名:); scanf(%s,str); printf(-删除成功-n); for(i=0;iy;i+) if(!strcmp(str,ai.num)|!strcmp(str,) while(iy) strcpy(ai.num,ai+1.num); strcpy(,ai+1.name); ai.jbgz=ai+1.jbgz; ai.jj=ai+1.jj; ai.kk=ai+1.kk; ai.sfgz=ai+1.sfgz; ai.sk=ai+1.sk; ai.yfgz=ai+1.yfgz; i+; x+; if(x=0) printf(输入的编号或姓名不存在,请重新输入:n); return y-x;void sear(ZGGZ a,int y) int i; int x=0; char str15; printf(请输入你要查找的编号或姓名:); scanf(%s,str); for(i=0;iy;i+) if(!strcmp(str,ai.num)|!strcmp(str,) printf(员工编号为%sn,ai.num); printf(员工姓名为%sn,); printf(基本工资:%fn,ai.jbgz); printf(奖金:%fn,ai.jj); printf(扣款:%fn,ai.kk); printf(应发工资:%fn,ai.yfgz); printf(税款:%fn,ai.sk); printf(实发工资:%fn,ai.sfgz); x+; if(x=0) printf(未找到该记录n); return ; void mod(ZGGZ a,int y) int i; int x=0; char str15; printf(请输入你要修改的编号:); scanf(%s,str); for(i=0;iy;i+) if(!strcmp(str,ai.num)|!strcmp(str,) printf(请输入修改后职工的姓名:); scanf(%s,); printf(请输入修改后职工的基本工资:); scanf(%f,&ai.jbgz); printf(请输入修改后职工的奖金:); scanf(%f,&ai.jj); printf(请输入修改后职工的扣款:); scanf(%f,&ai.kk); printf(-修改成功-n); ai.yfgz=ai.jbgz+ai.jj-ai.kk; ai.sk=ai.yfgz*(0.05); ai.sfgz=ai.yfgz*(0.95); x+; if(x=0) printf(未找到要修改的编号n); int insert(ZGGZ a,int y) int i; int x=0; char str15; printf(请输入你要插入的编号:); scanf(%s,str); printf(请输入一条新的记录信息:n); for(i=0;ix+1;i-) ai.jbgz=ai-1.jbgz; ai.jj=ai-1.jj; ai.kk=ai-1.kk; ai.sfgz=ai-1.sfgz; ai.sk=ai-1.sk; ai.yfgz=ai-1.yfgz; strcpy(,); strcpy(ai.num,ai-1.num); x+; printf(请输入职工的编号:); scanf(%s,ax.num); printf(请输入职工的姓名:); scanf(%s,); printf(请输入职工的基本工资:); scanf(%f,&ax.jbgz); printf(请输入职工的奖金:); scanf(%f,&ax.jj); printf(请输入职工的扣款:); scanf(%f,&ax.kk); ax.yfgz=ax.jbgz+ax.jj-ax.kk; ax.sk=ax.yfgz*(0.05); ax.sfgz=ax.yfgz*(0.95); return y+1;void save(ZGGZ a,int n) FILE *fp; int i; if(fp=fopen(sj.txt,wb)=NULL) printf(cannot open filen); return; for(i=0;in;i+) if(fwrite(&ai,sizeof(struct employee),1,fp)!=1) printf(file write errorn); fclose(fp);void display(ZGGZ a,int n) int i=0; if(n=0) printf(Files are emptyn); return; do printf(-n); printf(员工编号为%sn,ai.num); printf(员工姓名为%sn,); printf(基本工资:%fn,ai.jbgz); printf(奖金:%fn,ai.jj); printf(扣款:%fn,ai.kk); printf(应发工资:%fn,ai.yfgz); printf(税款:%fn,ai.sk); printf(实发工资:%fn,ai.sfgz); i+; while(in);void main() int selete,c=0; int i=0; int z=0; char q,p,x,s; ZGGZ b100; FILE *fp; if(fp=fopen(sj.txt,rb)=NULL) printf(Not Found!n); else do fread(&bi,sizeof(struct employee),1,fp); i+; while(!feof(fp); fclose(fp); c=i-1; while(1) menu(); scanf(%d,&selete); if(selete=0) printf(Tha

温馨提示

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

评论

0/150

提交评论