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

下载本文档

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

文档简介

1、课程设计报课程名称_C 语言程序设计_课题名称_职工信息管理系统专业_通信工程_班级_1402班_学 号_姓名_熊舒炼_指导教师_罗雅博_20152015 年 7 7 月 3 3 日一、 总体设计方案 . 2二、.课程设计目的与要求32.1 设计目的.32.2 设计要求.3三、.使用说明及运用实例 .3四、.项目源程序代码8五、.设计心得与总结23六、.参考文献24总体设计方案(一)、系统总体流程图(二)、为了方便使用,此系统结构均为全局类型定义 struct employee/ 定义一个职工信息的结构体char num20;char name20;char sex;char age20;ch

2、ar xueli30;int wage;char addr30;char post20;long int tel;em100;(三)、各模块的功能与实现1.菜单模块: 显示职工管理系统的主菜单, 供用户选择所需功能, 通过自己定义的 voidmenu()函数实现。2. 输入模块:输入职工的工号、姓名及其他的一些职工信息,通过自己定义的 void input() 函数实现。3. 保存模块:将内存中职工信息输出到磁盘文件中,通过自己定义的void save(int)函数实现。4. 浏览模块:浏览所有职工的信息,通过自己定义的 void display() 函数实现。5. 删除模块:删除需要删除的职

3、工所有信息,通过自己定义的void del() 函数实现。6. 查询模块: a. 按职工号查询职工相关信息,通过自己定义的 void search-num() 函数 实现。b.按职工学历查询相关职工信息,通过自己定义的 void search-xueli() 函数实 现。c. 按职工电话号码查询相关职工信息,通过自己定义的 void search-tel() 函数实现。7. 修改模块:可以修改需要修改的职工信息,通过自己定义的 void modify() 函数实现。8. 退出系统模块:推出职工信息管理系统,通过头文件中的 windows.h 中的 exit(0) 函 数实现。课程设计的目的与要

4、求一、 课程设计目的C 语言程序设计是通信工程专业重要的基础课,通过本课程设计使学生进一步巩 固课堂所学知识,全面熟悉、掌握 C 语言程序设计的基本方法和技巧,进一步提高编写 程序、阅读分析程序及上机操作、调试程序的能力 。二、课程设计要求 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等 (职工号不重复)。系统以菜单方式工作; 能录入职工信息并保存; 显示所有职工信息 (以一定的格式);查询职工信息(以一种或多种方式) ;修改职工信息并保存;删除职工信息。 所有信息保存在文件中(每次使用,上次保存的信息能从文件中读取) 。使用说明及运用实例1. 运行程序,进入职工管理

5、系统的主菜单:图 12. 输入数字“ 1”进行录入职工信息:图 23. 输入“ y”返回住主菜单(界面同图 1)4. 输入“ 2”浏览职工信息:5. 输入“ y ”后继续,输入“ 3”查询职工信息:图 46. 进入主菜单,输入“ 4”进行删除职工信息:图 57. 进入主菜单输入“ 5”进行修改职工信息图 68. 进入主菜单输入“ 6”退出职工信息管理系统四、项目程序源代码#include #include #include #define N 100struct employeechar num20;char name20;char sex;char age20;char xueli30;in

6、t 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_tel();void modify(); /* 定义各函数 */void menu() /* 菜单函数 */printf(n);printf(n);printf(printf(pr

7、intf(printf(printf(printf(printf(printf(*职工信息管理 *n);1.录入职工信息 );2.浏览职工信息 n);3.查询职工信息 );4.删除职工信息 n);5.修改职工信息 );6.退出 n);* 谢谢使用 *n);printf(n);printf(n);void main()int n,flag;char a;menu(); /* 调用菜单函数 */doprintf( 请选择你需要操作的步骤 (1-6):n); scanf(%d,&n);if(n=1&n=6)flag=1; break;elseflag=0;printf( 您输入有误,请重新选择 !)

8、;while(flag=0); while(flag=1)switch(n)case 1:printf( *n);printf(n);input();break;case2:printf(*n);printf(n);display();break;case3:printf(*n);printf(n);search();break;case4:printf(*n);printf(n);del();break;case5:printf(*n);printf(n);modify();break;case 6:exit(0);break; default :break;getchar(); print

9、f(n); printf( 是否继续进行 (y orn):n);scanf(%c,&a);if(a=y)flag=1;system(cls); /*清屏 */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)

10、=NULL) /* 创建文件并判断是否能打开 */printf (cannot open filen);exit(0);for (i=0;im;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(employee_list.txt,w)=NULL) /* 创建文本文件要用的模式 */printf (canno

11、t open filen);exit(0);for (i=0;im;i+) /* 内存职工信息输磁盘文件 */fprintf(fp,n %s %s %c %s %s %d %s%ldn,emi.num,emi .name,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);/ 每 员工信息写行间用空格隔fclose(fp);void input() /*录入函数 */int i,m;printf( 请输入需要创建信息的职工人数 (1-100):n); scanf(%d,&m);for (i=0;im;i+)printf( 职工号: );sc

12、anf(%s,emi.num);printf(n);printf( 请输入姓名 : );scanf(%s,);getchar();printf(请输入性别 (f- 女 m- 男 ): );scanf(%c,&emi.sex);printf( 请输入出生年月 : );scanf(%s,emi.age);printf(请输入学历 : );scanf(%s,emi.xueli);printf(请输入工资 : );scanf(%d,&emi.wage);printf(请输入住址 : );scanf(%s,emi.addr);printf(请输入电话 : );scanf(%d,&emi.

13、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 open filen);exit(0);elsedofread(&emi,sizeof(struct employee),1,fp); i+;while(feof(fp)=0);fclose(fp); return(i-1);void displa

14、y() /*浏览函数 */int i;int m=load();printf(n 职工号 姓名 性别 出生年月 学历 住址 电话 n);工资for(i=0;im;i+) /*m为输入部分的职工人数 */printf(n %s %s %c %s %s %d %s %ldn,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();

15、 /* 调用浏览函数 */printf(n);printf( 请输入要删除的职工的姓名 :n);scanf(%s,name);for(flag=1,i=0;flag&im;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,emi.xueli,emi.wage,emi.addr,emi.tel);printf(n确

16、实要删除此人信息请按 1, 不删除请按 0n);scanf(%d,&n);if(n=1) /* 如果删除,则其他的信息都往上移一行 */for(j=i;j=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();break;case 3:printf(按电话号码查询 n);search_tel

17、();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;im;i+)if (strcpy(emi-1.num,num)=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,

18、emi.age,emi.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 search_xueli()char xueli30;int i,t;int m=load();printf( 请输入要查找的学历 :n);scanf(%s,xueli);for(i=0;im;i+

19、)if(strcmp(emi.xueli,xueli)=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,emi.xueli,emi.wage,emi.addr,emi.tel);if(i=m)printf(n 对不起,查无此人 n); printf(n);printf( 返回查询函数请按 1, 继续查询学历请按 2n);scanf(%d,&t);switch(t)case

20、1:search();break;case 2:break;default :break;void search_tel()long int tel;int i, t;int m=load();printf( 请输入要查找的电话号码 :n);scanf(%ld,&tel);for(i=0;im;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,emi.num,,emi.sex ,emi.ag

21、e,emi.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() /* 修改函数 */char num20;char name10;char sex;char age20;char xueli30;int wage;char addr30;long int

22、 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&i8|c1)printf(n 选择错误,请重新选择 !n);flag=0;if(flag=1)printf(n 对不起,查无此人 !n);doswitch(c) /* 因为当找到第 i 个职工时 ,for 语句后 i 自加了 1, 所以下面 的应该把改后的信息赋值给第

23、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(%c,&sex); emi-1.sex=sex;break;case 4:printf(出生年月改为 : );scanf(%s,age);strcpy(emi-1.age,age);break;case 5:printf( 学

24、历改为 : ); scanf(%s,xueli);strcpy(emi-1.xueli,xueli);break;case 6:printf( 工资改为 : ); scanf(%d,&wage);emi-1.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 ; 不 , 重新修

25、改 请按 2: n);scanf(%d,&b);while(b=2);printf(n 浏览修改后的所有职工信息 :n);printf(n);save(m);sav(m);display();printf(n 继续修改请按 1 ,不再修改请按 0n);sea nf(%d, &t);switch(t)case 1:modify();break;case 0:break;default :break;五、设计计心得与总设结通过这次 C 语言的课程设计,我明白了很多也知道了很多,更收获了很多。 在课程设 计的过程中出现过困难,也想过放弃,最终我们还是坚持了下来,认 真对待,扫破一切困难,勇往直前。一周的课程设计已经结束了。回想 学习 C 语言的过程中,既有快乐又有烦 恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从 拿到题目到完成整个 编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西, 同时

温馨提示

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

评论

0/150

提交评论