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

下载本文档

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

文档简介

1、课程设计报课程名称C语言程序设计课题名称职工信息管理系统通信工程1402 班熊舒炼罗雅博指导教师2015年7月3日总体设计方案二、课程设计目的与要求设计目的设计要求 三、使用说明及运用实例2324四、项目源程序代码 五、设计心得与总结 六、参考文献浏览所有职工的信息,通过自己定义的void disp lay()函数实现。删除需要删除的职工所有信息,通过自己定义的void del()函数实现。a.按职工号查询职工相关信息,通过自己定义的void search-num()函数实现。void search-xueli()函数实现。 void search-tel()函数实现。void modify(

2、) 函数实现。 exit(O)函数实现。总体设计方案(一)、系统总体流程图 (二)、为了方便使用,此系统结构均为全局类型定义struct empio yee单模块:显示职工管理系统的主菜单,供用户选择所需功能,通过自己 定义的void menu()函数实现。输入职工的工号、姓名及其他的一些职工信息, 通过自己定义的 void input()2. 输入模块: 函数实现。将内存中职工信息输出到磁盘文件中,通过自己定义的void save(i nt)函数3. 保存模块: 实现。4. 浏览模块:5. 删除模块:6. 查询模块:b.按职工学历查询相关职工信息,通过自己定义的C.按职工电话号码查询相关职工

3、信息,通过自己定义的7. 修改模块:可以修改需要修改的职工信息,通过自己定义的8. 退出系统模块:推出职工信息管理系统,通过头文件中的中的课程设计的目的与要求一、 课程设计目的C 语言程序设计是通信工程专业重要的基础课,通过本课程设计使学生进 巩固课堂所学知识, 全面熟悉、掌握 C 语言程序设计的基本方法和技巧, 进一步提高编 写程序、阅读分析程序及上机操作、调试程序的能力 。二、课程设计要求 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等 (职工号不重复)。系统以菜单方式工作; 能录入职工信息并保存; 显示所有职工信息 (以一定的格式); 查询职工信息(以一种或多种

4、方式) ;修改职工信息并保存;删除职工信息。所有信息保存在文件中(每次使用,上次保存的信息能从文件中读取) 。使用说明及运用实例1. 运行程序,进入职工管理系统的主菜单:图12. 输入数字“ 1”进行录入职工信息:6.进入主菜单,输入7.进入主菜单输入“输入“ 3”查询职工信息:图44”进行删除职工信息:图55”进行修改职工信息图2 3输入“ y”返回住主菜单(界面同图1) 4.输入“ 2”浏览职工信息: 5输入“ y ”后继续,图68.进入主菜单输入“ 6”退出职工信息管理系统四、项目程序源代码#include <>#include <>#include <&g

5、t;#define N 100 struct employeechar num20; char name20;char sex;char age20;char xueli30; int wage;char addr30;char post20;long int tel;em100; /* 定义一个结构体 */ void menu();void input();void save(int);void sav(int);void display();void del();void search();void search_num();void search_xueli();void search_

6、tel();void modify(); /* 定义各函数 */ void menu() /*菜单函数 */ printf("n");printf("n");printf("* 职printf("1.录入职工信息 ");printf("2.浏览职工信息 n");printf("3.查询职工信息 ");printf("4.删除职工信息 n");printf("5.修改职工信息 ");printf("6.退出 n");printf

7、("*printf("n");printf("n");*n");谢谢使用 *n");void main()int n,flag; char a; menu(); /* 调用菜单函数 */ doprintf(" 请选择你需要操作的步骤 (1-6):n"); scanf("%d",&n); if(n>=1&&n<=6) flag=1; break; else flag=0; printf(" 您输入有误,请重新选择 !"); whil

8、e(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("n");del();bre

9、ak; case 5:printf("*n");printf("n");modify();break; case 6:exit(0);break; default :break; getchar(); printf("n");printf("是否继续进行(y or n):n"); scanf("%c",&a); if(a='y')输入职工信息浏览职工信息按职工号查询职工信息删除职工信息* 修改职工信息flag=1;system("cls");/* 清屏

10、*/menu(); /*调用菜单函数 */printf(" 请再次选择你需要操作的步骤 (1-6):n");scanf("%d",&n); printf("n");elseexit(0);void sav(int m) /* 保存文件函数 */int i;FILE*fp;if (fp=fopen("employee_list","wb")=NULL) /*创建文件并判断是否能打开 */ printf ("cannot open filen"); exit(0);for

11、 (i=0;i<m;i+) /* 将内存中职工的信息输出到磁盘文件中去 */if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf("file write errorn");fclose(fp);void save(int m) /*保存文件函数 */int i;FILE*fp;if (fp=fopen("","w")=NULL) /* 创建文本文件要用的模式 */ printf ("cannot open filen"); exit(0);fo

12、r (i=0;i<m;i+) /* 内存职工信息输磁盘文件 */fprintf(fp,"n %s %s %c %s %s %d %s %ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); um); printf("n");printf("请输入姓名:");scanf("%s",);getchar();printf(" 请输入性别 (f- 女 m-男) :");scanf(&q

13、uot;%c",&emi.sex);printf(" 请输入出生年月 : "); scanf("%s",emi.age);printf("请输入学历:"); scanf("%s",emi.xueli); printf(" 请输入工资 :");scanf("%d",&emi.wage); printf(" 请输入住址 :");scanf("%s",emi.addr); printf(" 请输入电话 :&

14、quot;);scanf("%d",&emi.tel); printf(" 请输入职务 : "); scanf("%s",&emi.post); printf("n"); printf("n 创建完毕 !n"); save(m);sav(m); int load() /* 导入函数 */ FILE*fp;int i=0; if(fp=fopen("employee_list","rb")=NULL) printf ("cannot

15、 open filen"); exit(0); else do 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 职工号 姓名 址 电话 n");for(i=0;i<m;i+) /*m 为输入部分的职工人数 */printf("n %s %s %c %s %s %d %s %ldn&quo

16、t;,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;char name20;printf("n 原来的职工信息 :n");display(); /* 调用浏览函数 */printf("n");printf(" 请输入要删除的职工的姓名 :n");scanf("%s",name);for(flag=1,i=0;flag&am

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

18、quot;%d",&n);if(n=1)/* 如果删除,则其他的信息都往上移一行*/for(j=i;j<m-1;j+)strcpy(,emj+1.name);strcpy(emj.num,emj+1.num);emj.sex=emj+1.sex;strcpy(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; flag=0;if(!flag)m=m-1;elseprintf(&

19、quot;n 对不起,查无此人 !n");printf("n 浏览删除后的所有职工信息 :n"); save(m);/*调用保存函数*/ sav(m);*/不再删除请按 0n");display(); /*调用浏览函数 printf("n 继续删除请按 1, scanf("%d",&t);switch(t)case 1:del();break;case 0:break; default :break;void search。/*查询函数 */int t,flag; do1 ; 按学历查询请按 2 ; 按电话号码查询请

20、按 3,进入printf("n 按职工号查询请按 主函数按 4n");scanf("%d",&t);if(t>=1&&t<=4)flag=1; break;elseflag=0;printf(" 您输入有误,请重新选择 !");while(flag=0);while(flag=1)switch(t)case 1:printf("按职工号查询 n");search_num();break;case 2:printf("按学历查询 n");search_xueli

21、();break;case 3:printf("按电话号码查询 n");search_tel();break;case 4:main();break;default:break;void search_num()char num20;int i,t;int m=load();printf(" 请输入要查找的职工号 :n");scanf("%s",num);for(i=0;i<m;i+)if (strcpy(emi-1.num,num)=0) printf("n 已找到此人,其记录为: n");printf(&

22、quot;n职工号t姓名t性别t出生年月t学历t工资t住址t电话 n");printf("n%st%st%ct%st%st%dt%st%ldn",emi.num,,emi.sex,emi.age,e mi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf("n 对不起,查无此人 n");printf("n");printf(" 返回查询函数请按 1,继续查询职工号请按 2n");scanf("%d",&t)

23、;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",xueli);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&q

24、uot;);printf("n%st%st%ct%st%st%dt%st%ldn",emi.num,,emi.sex,emi.age,e mi.xueli,emi.wage,emi.addr,emi.tel);if(i=m)printf("n 对不起,查无此人 n");printf("n");printf(" 返回查询函数请按 1,继续查询学历请按 2n");scanf("%d",&t);switch(t)case 1:search();break;case 2:brea

25、k;default :break;void search_tel()long int tel;int i, t;int m=load();printf(" 请输入要查找的电话号码 :n");scanf("%ld",&tel);for(i=0;i<m;i+)if(tel=emi.tel)printf("n 已找到此人,其记录为: n");printf("n职工号t姓名t性别t出生年月t学历t工资t住址t电话 n");printf("n%st%st%ct%st%st%dt%st%ldn"

26、;,emi.num,,emi.sex,emi.age,e mi.xueli,emi.wage,emi.addr,emi.tel);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 modify() /* 修改函数 */c

27、har num20;char name10;char sex;char age20;char xueli30;int wage;char addr30;long int tel;int b,c,i,n,t,flag;int m=load(); /*导入文件内的信息 */printf("n 原来的职工信息 :n");display(); /* 调用浏览函数 */ printf("n");printf(" 请输入要修改的职工的姓名 :n");scanf("%s",name); for(flag=1,i=0;flag&a

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

29、nf("%d",&n);if(n=1)printf("n 需要进行修改的选项 n 1.职工号 2.姓名 3.性别 4.出生年月 5. 学历6.工资7.住址8.电话n");printf(" 请输入你想修改的那一项序号 :n"); scanf("%d",&c);if(c>8|c<1)printf("n 选择错误,请重新选择 !n");flag=0;if(flag=1) printf("n 对不起,查无此人 !n");do switch(c) /* 因为

30、当找到第 i 个职工时 ,for 语句后 i 自加了 1,所以下面的应该 把改后的信息赋值给第 i-1 个人 */case 1:printf("职工号改为:"); scanf("%s",num); strcpy(emi-1.num,num); break; case 2:printf("姓名改为:"); scanf("%s",name); strcpy(,name); break;case 3:printf("性别改为:"); getchar(); scanf("%

31、c",&sex); emi-1.sex=sex; break;case 4:printf("出生年月改为:"); scanf("%s",age); strcpy(emi-1.age,age); break;case 5:printf("学历改为:"); scanf("%s",xueli); strcpy(emi-1.xueli,xueli); break;case 6:printf("工资改为:"); scanf("%d",&wage);emi-1.

32、wage=wage;break; case 7:printf("住址改为:"); scanf("%s",addr); strcpy(emi-1.addr,addr); break;case 8:printf("电话改为:"); scanf("%ld",&tel);emi-1.tel=tel;break;printf("n"); printf("n 是否确定所修改的信息 ?n 是 请按 1 ; 不,重新修改 请按 2:n");scanf("%d",&b);while(b=2);printf("n浏览修改后的所有职工信息:n");prin tf("n");save(m);sav(m);dis playO;printf("n继续修改请按1,不再修改请按0n"); sca nf("%d", &t);

温馨提示

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

评论

0/150

提交评论