C语言程序设计—职工信息管理系统设计_第1页
C语言程序设计—职工信息管理系统设计_第2页
C语言程序设计—职工信息管理系统设计_第3页
C语言程序设计—职工信息管理系统设计_第4页
C语言程序设计—职工信息管理系统设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、c语言程序设计职工信息管理系统设计 南京工程学院 程序设计课程设计报告 职工信息管理系统设计 专业 学生姓名 班学级 号 指导教师 完成日期 职工信息管理系统设计目 录1 课程设计目的 . 1 2 课程设计内容 . 13设计流程图 . 14源程序清单 . 2 5 小结 . 27 程序设计课程设计报告(2011)职工信息管理系统的设计1 课程设计目的1.加深对c语言程序设计课程知识的理解,掌握c语言应用程序的开发方法和步骤;2.进一步掌握和利用c语言进行程序设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会跳是一个较长程序的基本方法;

2、6.学会利用流程图火n-s图表示算法;7.掌握书写长须设计开发文档的能力(书写课程设计报告)2 课程设计内容设计职工信息管理系统,要求职工心想包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。设计一职工信息管理系统,使之能提供以下功能:(6)系统以菜单方式工作(7)职工信息录入功能(职工信息用文件保存)-输入(8)职工信息浏览功能-输出(9)查询和排序功能(至少一种查询方式)-算法(10)按工资查询(11)按学历查询等(12)职工信息删除、修改功能(任选项) 3设计流程图 1职工信息管理系统的设计 2程序设计课程设计报告(2011) (1) 菜单函数 void menu(

3、) /*菜单函数*/printf(" 计算机科学与技术 软件技术n");printf("n");printf(" 22 杨婷婷n");printf("n");printf(" *职工信息管理*n");printf(" 1.录入职工信息");printf(" 2.浏览职工信息n");printf(" 3.查询职工信息");printf(" 4.删除职工信息n");printf(" 5.添加职工信息"

4、);printf(" 6.修改职工信息n");printf(" 7.退出n");printf(" *谢谢使用*n");printf("n");printf("n"); (2)录入职工信息void append()if(fp=fopen("","a")=null)printf("n不能打开该文件!");exit();printf("n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)n");

5、scanf("%s%s%s%s%s%s%s%s%s",;fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",;fclose(fp);(3) 查询职工信息 数据查找共分为职工号、姓名等方式查找void search()int l;printf("tttt姓名查找按:1n");printf("tttt学历查找按:2n");printf("tttt职工号查按:3n");scanf("%d",&l);if(l>0

6、&&l<4)switch(l)3职工信息管理系统的设计case 1:nameway();break;case 2:xueliway();break;case 3:numway();break;printf("nn操作完毕!");else printf("tttt输入有误!"); void nameway()int k=0;char nam8;printf("n请输入您要查找的职工姓名:");scanf("%s",nam);if(fp=fopen("","rb&qu

7、ot;)=null)printf("n不能打开文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",;if(strcmp(nam,=0)printf("nn已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",;k=1;if(k=0)printf("nn对不起,查无此人!。");fclose(fp); void xueliway()int j=0;char x

8、ueli10;printf("tttt输入你要查询的学历n");scanf("%s",xueli);if(fp=fopen("","rb")=null)printf("n不能打开文件!");exit();while(!feof(fp)4程序设计课程设计报告(2011)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",;if(strcmp(xueli,=0)printf("nn已查到,记录为:");printf("n%-10s%-8s

9、%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",;j=1;if(j=0)printf("nn对不起,查无此人!。");fclose(fp); void numway()int i=0;char numb10;printf("tttt输入你要查询的职工号n");scanf("%s",numb);if(fp=fopen("","rb")=null)printf("n不能打开文件!");exit();while(!feof(fp)fscanf(fp,&

10、quot;%s%s%s%s%s%s%s%s%sn",;if(!strcmp(numb,)printf("nn已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",;i=1;if(!i)printf("nn对不起,查无此人!。");fclose(fp);(4)修改职工信息void modify()int m,k=0;long a;char namekey8;printf("n请输入您要修改的职工的姓名:");scanf("%s

11、",namekey);5职工信息管理系统的设计if(fp=fopen("","r+")=null)printf("n不能打开该文件!");exit();while(!feof(fp)a=ftell(fp);fscanf(fp,"%s%s%s%s%s%s%s%s%sn",;if(!strcmp(namekey,)k=1;break;if(k)printf("n已查到,记录为:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s

12、n",;printf("n请输入信息(按照姓名、工号、性别、年龄、学历、职位、工资、电话、地址的顺序输入):");scanf("%s%s%s%s%s%s%s%s%s",;fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",;elseprintf("n对不起,查无此人,无法进行修改。");fclose(fp); (5)删除职工信息void delete()int m,k=0;long a,b;char namekey8,

13、valid4;printf("n请输入您要删除的职工姓名:");scanf("%s",namekey);if(fp=fopen("","r+")=null)printf("n不能打开该文件!");exit();while(!feof(fp)a=ftell(fp);fscanf(fp,"%s%s%s%s%s%s%s%s%sn",6程序设计课程设计报告(2011)osition,;if(strcmp(namekey,=0)k=1;break;if(k=1)printf("

14、;n已查到,记录为");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",;printf("n确实要删除,按1;不删除,按0:");scanf("%d",&m);if(m=1)fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn""","","","","",&qu

15、ot;","","","");elseprintf("n对不起,查无此人。");fclose(fp); (6)数据输出void output()if(fp=fopen("","r")=null)printf("n不能打开该文件!");exit();printf("nn%20sn","职工信息管理系统");while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn&q

16、uot;,;printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",;fclose(fp); 4源程序清单#include <>7职工信息管理系统的设计#include <>#include <>#include <>#define n 100struct employeeint num;char name10;char sex;int age;char xueli30;int wage;char addr30;long int tel;em100; /*定义一个结构体*/ voi

17、d menu();void input();void save(int);void display();void del();void add();void search();void search_wage();void search_xueli();void modify(); /*定义各函数*/8程序设计课程设计报告(2011) void menu() /*菜单函数*/printf(" c语言程序设计n");printf("n");printf(" :1 刘欢欢n"); printf("n");printf(

18、" *职工信息管理*n");printf(" 1.录入职工信息");printf(" 2.浏览职工信息 n");printf(" n");printf(" 3.查询职工信息");printf(" 4.删除职工信息 n");printf(" n");printf(" 5.添加职工信息");printf(" 6.修改职工信息 n");printf(" n");printf(" 7.退出 n&

19、quot;);printf(" *谢谢使用*n");printf("n");printf("n"); void main()int n,flag;char a;9职工信息管理系统的设计menu(); /*调用菜单函数*/doprintf("请选择你需要操作的步骤(1-7):n");scanf("%d",&n);if(n>=1&&n<=7)flag=1;break;elseflag=0;printf("您输入有误,请重新选择!");while

20、(flag=0);while(flag=1)switch(n)case 1:printf(" 输入职工信息n");printf("n");input();break;case 2:printf(" 浏览职工信息n");printf("n");display();break;case 3:printf(" 按职工号查询职工信息n");printf("n");search();break;case 4:printf(" 删除职工信息n");printf(&qu

21、ot;n");del();break;case 5:printf(" 添加职工信息n");printf("n");add();break;10程序设计课程设计报告(2011)case 6:printf(" 修改职工信息n");printf("n");modify();break;case 7:exit(0);break;default :break;getchar();printf("n");printf("是否继续进行(y or n):n");scanf(&quo

22、t;%c",&a);if(a=y)flag=1;menu(); /*调用菜单函数*/printf("请再次选择你需要操作的步骤(1-6):n");scanf("%d",&n);printf("n"); elseexit(0); void input() /*录入函数*/int i,m;printf("请输入需要创建信息的职工人数(1-100):n"); 11职工信息管理系统的设计scanf("%d",&m);for (i=0;i<m;i+)printf(&

23、quot;职工号: ");scanf("%8d ",&emi.num);printf("n");printf("请输入姓名: ");scanf("%s",);getchar();printf("请输入性别(f-女 m-男): "); scanf("%c",&emi.sex);printf("请输入年龄: ");scanf("%d",&emi.age);printf("请输入学历

24、: ");scanf("%s",emi.xueli);printf("请输入工资: ");scanf("%d",&emi.wage);printf("请输入住址: ");scanf("%s",emi.addr);printf("请输入电话: "); scanf("%d",&emi.tel);printf("n"); printf("n创建完毕!n");save(m); 12程序设计课程设计报

25、告(2011) void save(int m) /*保存文件函数*/int i;file*fp;if (fp=fopen("employee_list","wb")=null) /*创建文件并判断是否能打开*/ printf ("cannot open filen");exit(0);for (i=0;i<m;i+) /*将/*导入函数*/file*fp;int i=0;if(fp=fopen("employee_list","rb")=null)printf ("cannot

26、 open filen");exit(0);elsedo13职工信息管理系统的设计fread(&emi,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1); void display() /*浏览函数*/int i;int m=load();printf("n 职工号t姓名t性别t年龄t学历t工资t住址t电话 n");for(i=0;i<m;i+) /*m为输入部分的职工人数*/ printf("n %dt%st%ct%dt%st%dt%st%l

27、dn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); void del() /*删除函数*/ int m=load();int i,j,n,t,flag;14程序设计课程设计报告(2011)char name20;printf("n 原来的职工信息:n");display(); /* 调用浏览函数*/printf("n");printf("请输入要删除的职工的姓名:n");scanf("%s",name);fo

28、r(flag=1,i=0;flag&&i<m;i+)if(strcmp(,name)=0)printf("n已找到此人,原始记录为:n");printf("n职工号t姓名t性别t年龄t学历t工资t住址t电话 n");printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);printf("n确实要删除此人信息请按1,不删除请按0n&qu

29、ot;);scanf("%d",&n);if(n=1) /*如果删除,则其他的信息都往上移一行*/for(j=i;j<m-1;j+)strcpy(,emj+1.name);emj.num=emj+1.num;emj.sex=emj+1.sex;emj.age=emj+1.age;strcpy(emj.xueli,emj+1.xueli);emj.wage=emj+1.wage;strcpy(emj.addr,emj+1.addr);emj.tel=emj+1.tel;15职工信息管理系统的设计flag=0;if(!flag)m=m-1;else

30、printf("n对不起,查无此人!n");printf("n 浏览删除后的所有职工信息:n"); save(m); /*调用保存函数*/display(); /*调用浏览函数*/printf("n继续删除请按1,不再删除请按0n"); scanf("%d",&t);switch(t)case 1:del();break;case 0:break;default :break; void add()/*添加函数*/file*fp;int n;int count=0;int i;16程序设计课程设计报告(20

31、11)int m=load();printf("n 原来的职工信息:n");display(); /* 调用浏览函数*/printf("n");fp=fopen("emploee_list","a");printf("请输入想增加的职工数:n"); scanf("%d",&n);for (i=m;i<(m+n);i+)printf("n 请输入新增加职工的信息:n"); printf("请输入职工号: ");scanf(&

32、quot;%8d ",&emi.num);printf("n");printf("请输入姓名: ");scanf("%s",);getchar();printf("请输入性别(f-女 m-男): "); scanf("%c",&emi.sex);printf("请输入年龄: ");scanf("%d",&emi.age);printf("请输入学历: ");scanf("%s&

33、quot;,emi.xueli);printf("请输入工资: ");scanf("%d",&emi.wage);printf("请输入住址: ");scanf("%s",emi.addr);printf("请输入电话: ");scanf("%d",&emi.tel);printf("n");17职工信息管理系统的设计count=count+1;printf("已增加的人数:n");printf("%dn&qu

34、ot;,count);printf("n添加完毕!n");m=m+count;printf("n浏览增加后的所有职工信息:n");printf("n");save(m);display();fclose(fp); void search()/*查询函数*/int t,flag;doprintf("n按职工工资查询请按1 ; 按学历查询请按2 ;进入主函数按3n"); scanf("%d",&t);if(t>=1&&t<=3)flag=1;break;elsef

35、lag=0;18程序设计课程设计报告(2011)printf("您输入有误,请重新选择!");while(flag=0);while(flag=1)switch(t)case 1:printf("按职工工资查询n");search_wage();break; case 2:printf("按学历查询n");search_xueli();break; case 3:main();break;default:break; void search_wage()int wage;int i,t;int m=load();printf(&quo

36、t;请输入要查找的职工工资:n");scanf("%d",&wage);for(i=0;i<m;i+)if(wage=emi.wage)printf("n已找到此人,其记录为:n");19职工信息管理系统的设计printf("n 职工号t姓名t性别t年龄t学历t工资t住址t电话 n");printf("n %dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.te

37、l);break;if(i=m)printf("n对不起,查无此人n");printf("n");printf("返回查询函数请按1,继续查询职工工资请按2n");scanf("%d",&t);switch(t)case 1:search();break;case 2: break;default:break; void search_xueli()char xueli30;int i,t;int m=load();printf("请输入要查找的学历:n");scanf("%s

38、",xueli);20程序设计课程设计报告(2011)for(i=0;i<m;i+)if(strcmp(emi.xueli,xueli)=0)printf("n已找到,其记录为:n");printf("n 职工号t姓名t性别t年龄t学历t工资t住址t电话 n"); printf("n %dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf(&q

39、uot;n对不起,查无此人n");printf("n");printf("返回查询函数请按1,继续查询学历请按2n");scanf("%d",&t);switch(t)case 1:search();break;case 2:break;default :break; void modify() /*修改函数*/int num;char name10;char sex;int age;char xueli30;21职工信息管理系统的设计int wage;char addr30;long int tel;int b,c

40、,i,n,t,flag;int m=load(); /*导入文件 /* 调用浏览函数*/printf("n");printf("请输入要修改的职工的姓名:n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i+)if(strcmp(,name)=0)printf("n已找到此人,原始记录为:n");printf("n职工号t姓名t性别t年龄t学历t工资t住址t电话 n");printf("n%dt%st%ct

41、%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);printf("n确实要修改此人信息请按1 ; 不修改请按0n");scanf("%d",&n);if(n=1)printf("n需要进行修改的选项n 1.职工号 2.姓名 3.性别 4.年龄 5.学历6.工资 7.住址 8.电话n");printf("请输入你想修改的那一项序号:n");scanf("%d&quo

42、t;,&c);if(c>8|c<1)printf("n选择错误,请重新选择!n");flag=0;22程序设计课程设计报告(2011) if(flag=1)printf("n对不起,查无此人!n");doswitch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/case 1:printf("职工号改为: ");scanf("%d",&num);emi-1.num=num;break;case 2:printf("姓名改为: ")

温馨提示

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

评论

0/150

提交评论