C语言课程设计职工信息管理系统

上传人:痛*** 文档编号:62400921 上传时间:2022-03-14 格式:DOC 页数:29 大小:610.50KB
收藏 版权申诉 举报 下载
C语言课程设计职工信息管理系统_第1页
第1页 / 共29页
C语言课程设计职工信息管理系统_第2页
第2页 / 共29页
C语言课程设计职工信息管理系统_第3页
第3页 / 共29页
资源描述:

《C语言课程设计职工信息管理系统》由会员分享,可在线阅读,更多相关《C语言课程设计职工信息管理系统(29页珍藏版)》请在装配图网上搜索。

1、课程设计报课程名称C语言程序设计课题名称职工信息管理系统专业通信工程班级1402班学号201403020222姓名熊舒炼指导教师罗雅博2015 年 7 月 3 日一、总体设计方案 2二、课程设计目的与要求 32.1设计目的32.2设计要求3三、使用说明及运用实例 3四、项目源程序代码 8五、设计心得与总结 23六、参考文献 2426显示主菜单总体设计方案(一)、系统总体流程图:用键盘输入职工信息:将信息写入指定文本文件1将信息从文件中导岀放在结构数组迪1中:将所有信息显示在屛幕上厂按职工号查询:输入职工号显示对应的职工信息 按名字查询卜输入名字显示对应的职工信息 11按学历查询L输入学历显示对

2、应的职工信息 :删除原有的职工信息(二)、为了方便使用,此系统结构均为全局类型定义struct employee/定义一个职工信息的结构体char num20;char n ame20;char sex;char age20;char xueli30;int wage;char addr30;char post20;long int tel;em100;(三) 、各模块的功能与实现1. 菜单模块:显示职工管理系统的主菜单,供用户选择所需功能,通过自己定义的voidme nu()函数实现。2. 输入模块:输入职工的工号、姓名及其他的一些职工信息, 通过自己定义的 void input() 函数实

3、现。3. 保存模块:将内存中职工信息输出到磁盘文件中,通过自己定义的void save(int)函数 实现。4. 浏览模块:浏览所有职工的信息,通过自己定义的void display。函数实现。5删除模块:删除需要删除的职工所有信息,通过自己定义的void del()函数实现。6. 查询模块:a.按职工号查询职工相关信息,通过自己定义的void search-num()函数实现。b. 按职工学历查询相关职工信息,通过自己定义的void search-xueli()函数实现。c. 按职工电话号码查询相关职工信息,通过自己定义的void search-tel()函数实现。7. 修改模块:可以修改需

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

5、式); 查询职工信息(以一种或多种方式) ;修改职工信息并保存;删除职工信息。所有信息保存在文件中(每次使用,上次保存的信息能从文件中读取) 。使用说明及运用实例1.运行程序,进入职工管理系统的主菜单:-!j F:,X小Dt*hug职工信菅理丟SJ创亡自T自心自3 一“ 工工士 职职职一一 AJ询改注 录查修K 二职工信息管理g*長浏览职工信息4 删除职工信息 ,6 退由*1射itt 使 用 MXKKMKKMMKMMXMMICMM2.输入数字“ T进行录入职工信息:请选择你需要操作的歩骤“一石=图1c= *F:KslDebug翼耳戢埔耳員箕貝幅贰耳梢酬貝幅貝算幅职丁 信息、管理XX XX XX

6、XX XX XX XX XX口息5 .修改职工信息:需隸淮自氣退谢谢使用 M请再次选择你需要操作的步骤1 输入职工信息请输入需要创建信息的职工人数1-100 :1职工号r 001名别生历资址话务 姓性出学工住电职 1A1A1A1A1A1A1A1A7 男创建完毕?是否继续进行3 n:图23输入“ y”返回住主菜单(界面同图1)4.输入“2”浏览职工信息:5.输入“ y”后继续,输入“ 3”查询职工信息:图46.进入主菜单,输入“ 4”进行删除职工信息:图57.进入主菜单输入“ 5”进行修改职工信息图68.进入主菜单输入“ 6”退出职工信息管理系统四、项目程序源代码#i nclude #i ncl

7、ude #i nclude #define N 100 struct employee char 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_x

8、ueli();void search_tel();void modify(); /* 定义各函数 */void menu() /*菜单函数 */printf(n);printf(* 职printf(1.录入职工信息 );printf(2.浏览职工信息 n);printf(3.查询职工信息 );printf(4.删除职工信息 n);printf(5.修改职工信息 );printf(n);丿Li、*n);printf(6.退出 n);printf( * printf(n);printf(n);谢谢使用*n);void main()int n,flag;char a;menu(); /* 调用菜单函

9、数 */ doprintf( 请选择你需要操作的步骤 (1-6):n); scanf(%d,&n);if(n=1&n=6)flag=1; break;elseflag=0;printf( 您输入有误,请重新选择 !);while(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();br

10、eak;case 4:printf( *n);printf(n);del();break;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); /* 清屏*/ menu(); /*调用菜单函数 */* 按 职 工 号 查 询 职 工 信 息* 删 除 职 工 信 息* 修 改 职 工 信 息printf( 请再次选择你

11、需要操作的步骤 (1-6):n);scanf(%d,&n);printf(n);else exit(0);void sav(int m) /* 保存文件函数 */int i;FILE*fp;if (fp=fopen(employee_list,wb)=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

12、);fclose(fp);void save(int m) /* 保存文件函数 */int i;FILE*fp;if (fp=fopen(employee_list.txt,w)=NULL) /* 创建文本文件要用的模式 */printf (cannot open filen);exit(0);for (i=0;im;i+) /* 内存职工信息输磁盘文件 */fprintf(fp,n %s %s %c %s %s %d %s %ldn,emi.num,emi.na me,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); / 每员工信息写

13、行间用 空格隔fclose(fp);void input() /* 录入函数 */int i,m;printf( 请输入需要创建信息的职工人数(1-100):n);scanf(%d,&m);for (i=0;im;i+)printf( 职工号: ); scanf(%s,emi.num); printf(n);printf(请输入姓名:);scanf(%s,emi.name);getchar();printf(请输入性别(f-女m-男):);scanf(%c,&emi.sex); printf( 请输入出生年月 :);scanf(%s,emi.age); printf( 请输入学历 :);sca

14、nf(%s,emi.xueli); printf( 请输入工资 :);scanf(%d,&emi.wage); printf( 请输入住址 :);scanf(%s,emi.addr); printf( 请输入电话 :);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);elsedofread(&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;im;i+) /*m 为输入部分的职工人数 */printf(n %s %s %c %s %s %d %s %ldn,emi.num,emi.name, emi.sex,emi.age,emi.

16、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&im;i+)if(strcmp(emi.name,name)=0)printf(n 已找到此人,原始记录为: n);printf(n职工号t姓名t性别t出生年月t学历t工资t住址t电

17、话 n);printf(n%st%st%ct%st%st%dt%st%ldn,emi.num,emi.name,emi.sex,emi.age,e mi.xueli,emi.wage,emi.addr,emi.tel);printf(n 确实要删除此人信息请按 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

18、(按职工号查询 n);search_num();break;case 2:printf(按学历查询 n);search_xueli();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;im;i+)if (strcpy(emi-1.num,num)=0)printf(n 已找到此人,其记录为:

19、 n);printf(n职工号t姓名t性别t出生年月t学历t工资t住址t电话 n);printf(n%st%st%ct%st%st%dt%st%ldn,emi.num,emi.name,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

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

21、=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_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性别

22、t出生年月t学历t工资t住址t电话 n);printf(n%st%st%ct%st%st%dt%st%ldn,emi.num,emi.name,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() /* 修改函数 */

23、char 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&i8|c1)printf(n 选择错误,请重新选择 !n);flag=0; if(flag

24、=1)printf(n 对不起,查无此人 !n);doswitch(c) /* 因为当找到第 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(emi-1.name,name);break;case 3:printf(性别改为:);getchar();scanf(%c,&sex);emi-1.sex=sex;break;case

25、 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.wage=wage;break;case 7:printf(住址改为:);scanf(%s,addr); strcpy(emi-1.addr,addr);break;case 8:printf(电话改为:);scanf(%ld,&tel);emi-1

26、.tel=tel;break;prin tf(n);printf(n是否确定所修改的信息?n是请按1 ;不,重新修改 请按2:n);sea nf(%d,&b);while(b=2);printf(n浏览修改后的所有职工信息:n);prin tf(n);save(m);sav(m);display();printf(n继续修改请按1,不再修改请按0n);sca nf(%d, &t);switch(t)case 1:modify();break;case 0:break;default :break;五、设计计心得与总设结通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。 在课程设

27、 计的过程中出现过困难,也想过放弃,最终我们还是坚持了下来,认 真对待,扫破一切困难,勇往直前。一周的课程设计已经结束了。回想 学习C语言的过程中,既有快乐又有烦 恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从 拿到题目到完成整个 编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西, 同时不仅 可以巩固了以前所学 过的知识,而且学到了很多在书本上 所没有学到 过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有 理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论 中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考 能力。在

28、设计的过程中遇到的问题,这毕竟独立做的,难免 会遇到各种各样的 问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不 够深刻,掌握 得不够牢固,比如说结构体通过这次课程设计之后,一定 把 以前所学 过的知识 从新温故。这次课设终于顺利完成了,在设计中遇到了很多 编程问题做完这个课程设计,我们 的自信一下子提高了,我们 也会写程序了 ;尽管对 于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易 了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实 在美妙啊! 通过实践的学习,我认 到学好计算机要重视实践操作,不仅 仅是 学习c语言,还是其它的语言,

29、以及其它的计算机方面的知识都要重在实践, 所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有 掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒 要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记 团结”二字,它 好比通向成功的铺路石,不可或缺。人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上, 总遇到重重困难,但正是因为困难我们才变得更坚强。今后 的路还很长,面对 困难,让我们用行动去俘虏它吧六、参考文献1、C程序设计(第四版)谭浩强著2. C程序设计(第四版)学习辅导谭浩强著计算机与通信学院课程设计评分表设计内容:C语言程序设计项目评价课程设计期间表现情况课程设计内容完成情况课程设计答辩成绩课程设计报告元成质量综合成绩日 期:2015年7月6日25

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!