欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

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

  • 资源ID:62400921       资源大小:610.50KB        全文页数:29页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

课程设计报课程名称C语言程序设计课题名称职工信息管理系统专业通信工程班级1402班学号201403020222姓名熊舒炼指导教师罗雅博2015 年 7 月 3 日一、总体设计方案 2二、课程设计目的与要求 32.1设计目的32.2设计要求3三、使用说明及运用实例 3四、项目源程序代码 8五、设计心得与总结 23六、参考文献 2426显示主菜单总体设计方案(一)、系统总体流程图:用键盘输入职工信息:将信息写入指定文本文件1将信息从文件中导岀放在结构数组迪1中:将所有信息显示在屛幕上厂按职工号查询:输入职工号显示对应的职工信息 < 按名字查询卜输入名字显示对应的职工信息 11按学历查询L输入学历显示对应的职工信息 :删除原有的职工信息(二)、为了方便使用,此系统结构均为全局类型定义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. 保存模块:将内存中职工信息输出到磁盘文件中,通过自己定义的void save(int)函数 实现。4. 浏览模块:浏览所有职工的信息,通过自己定义的void display。函数实现。5删除模块:删除需要删除的职工所有信息,通过自己定义的void del()函数实现。6. 查询模块:a.按职工号查询职工相关信息,通过自己定义的void search-num()函数实现。b. 按职工学历查询相关职工信息,通过自己定义的void search-xueli()函数实现。c. 按职工电话号码查询相关职工信息,通过自己定义的void search-tel()函数实现。7. 修改模块:可以修改需要修改的职工信息,通过自己定义的void modify()函数实现。8. 退出系统模块:推出职工信息管理系统,通过头文件中的windows.h中的exit(0)函数 实现。课程设计的目的与要求一、 课程设计目的C 语言程序设计是通信工程专业重要的基础课,通过本课程设计使学生进一步 巩固课堂所学知识, 全面熟悉、掌握 C 语言程序设计的基本方法和技巧, 进一步提高编 写程序、阅读分析程序及上机操作、调试程序的能力 。二、课程设计要求 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等 (职工号不重复)。系统以菜单方式工作;能录入职工信息并保存; 显示所有职工信息(以一定的格式); 查询职工信息(以一种或多种方式) ;修改职工信息并保存;删除职工信息。所有信息保存在文件中(每次使用,上次保存的信息能从文件中读取) 。使用说明及运用实例1.运行程序,进入职工管理系统的主菜单:-!j "F:,X小Dt*hug职工信菅理丟SJ创亡"自T自心自3 一“ 工工士 职职职一一 AJ询改注 录查修K 二职工信息管理g*長浏览职工信息4 删除职工信息 ,6 退由*1射itt 使 用 MXKKMKKMMKMMXMMICMM2.输入数字“ T进行录入职工信息:请选择你需要操作的歩骤“一石=图1c=< *'F:KslDebug翼耳戢埔耳員箕貝幅贰耳梢酬貝幅貝算幅职丁 信息、管理XX XX XXXX 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 <stdio.h>#i nclude <stdlib.h>#i nclude <stri ng.h>#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_xueli();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(); /* 调用菜单函数 */ 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();break;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(" 请再次选择你需要操作的步骤 (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;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("employee_list.txt","w")=NULL) /* 创建文本文件要用的模式 */printf ("cannot open filen");exit(0);for (i=0;i<m;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); / 每员工信息写行间用 空格隔fclose(fp);void input() /* 录入函数 */int i,m;printf(" 请输入需要创建信息的职工人数(1-100):n");scanf("%d",&m);for (i=0;i<m;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(" 请输入学历 :");scanf("%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 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;i<m;i+) /*m 为输入部分的职工人数 */printf("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);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&&i<m;i+)if(strcmp(emi.name,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.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<m-1;j+)strcpy(emj.name,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("n 对不起,查无此人 !n");printf("n 浏览删除后的所有职工信息 :n");save(m) ; /*调用保存函数 */sav(m);display();/* 调用浏览函数 */printf("n 继续删除请按 1,不再删除请按 0n");scanf("%d",&t);switch(t)case 1:del();break;case 0:break;default :break;void search。/*查询函数 */int t,flag;doprintf("n 按职工号查询请按 1 ; 按学历查询请按 2 ; 按电话号码查询请按 3,进入 主函数按 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();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("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 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");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=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;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",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() /* 修改函数 */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&&i<m;i+) if(strcmp(emi.name,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.name,emi.sex,emi.age,e mi.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",&c);if(c>8|c<1)printf("n 选择错误,请重新选择 !n");flag=0; if(flag=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 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.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语言的课程设计,我明白了很多也知道了很多,更收获了很多。 在课程设 计的过程中出现过困难,也想过放弃,最终我们还是坚持了下来,认 真对待,扫破一切困难,勇往直前。一周的课程设计已经结束了。回想 学习C语言的过程中,既有快乐又有烦 恼,回顾这次课程设计,至今我仍感慨颇多,的确,自从 拿到题目到完成整个 编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西, 同时不仅 可以巩固了以前所学 过的知识,而且学到了很多在书本上 所没有学到 过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有 理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论 中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考 能力。在设计的过程中遇到的问题,这毕竟独立做的,难免 会遇到各种各样的 问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不 够深刻,掌握 得不够牢固,比如说结构体通过这次课程设计之后,一定 把 以前所学 过的知识 从新温故。这次课设终于顺利完成了,在设计中遇到了很多 编程问题做完这个课程设计,我们 的自信一下子提高了,我们 也会写程序了 ;尽管对 于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易 了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实 在美妙啊! 通过实践的学习,我认 到学好计算机要重视实践操作,不仅 仅是 学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践, 所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。很感谢这次的课程设计,它使我更加地体会到多看专业书的重要性,只有 掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,在做任何事倒 要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记 团结”二字,它 好比通向成功的铺路石,不可或缺。人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的道路上, 总遇到重重困难,但正是因为困难我们才变得更坚强。今后 的路还很长,面对 困难,让我们用行动去俘虏它吧六、参考文献1、C程序设计(第四版)谭浩强著2. C程序设计(第四版)学习辅导谭浩强著计算机与通信学院课程设计评分表设计内容:C语言程序设计项目评价课程设计期间表现情况课程设计内容完成情况课程设计答辩成绩课程设计报告元成质量综合成绩日 期:2015年7月6日25

注意事项

本文(C语言课程设计职工信息管理系统)为本站会员(痛***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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