版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的根本知识和编辑技能;根本掌握结构化程序设计的根本思路和方法.要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入〔职工信息用文件保存〕,可以一次完成假设干条记录的输入.3、浏览功能:完成对全部职工信息的显示。4、查找功能:=1\*GB3①完成按职工的职工号查询职工的相关信息,并显示。=2\*GB3②完成按职工的学历查询职工的相关信息,并显示。=3\*GB3③完成按职工的号码查询职工的相关信息,并显示。5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。6、添加功能:完成添加新职工的信息的任务。7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。8、退出职工信息管理系统.三、信息描述职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、等.四、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程〔流程图)来描述模块的详细过程。确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。五、进度安排课程设计时间为两周,分为五个阶段完成:分析设计阶段。在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。按照需求分析、总体设计、详细设计几个步骤进行.这一阶段前1-2天完成;编码调试阶段。根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。这一阶段在3-7天完成;总结报告阶段.总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。这一阶段在8-9天完成;考核阶段。六、写课程设计总结课程设计报告要求总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结和参考资料等。七、参考资料《C程序设计》(第三版〕谭浩强著清华大学出版社《C程序设计题解与上机指导》(第三版〕谭浩强编著清华大学出版社目录1.总体设计方案………………32.使用说明及运行实例……………………53.工程源程序代码……………104.课程设计心得………………23总体设计方案一.系统的总体流程图菜单菜单开始根据菜单输入n的值选择程序保存结束是否继续进行NYYY5添加职工信息6修改职工信息2浏览职工信息3查询职工信息4删除职工信息7退出1录入职工信息图1。系统的总体流程图二。为了方便使用结构此系统结构均为全局类型定义structemployee//定义一个职工信息的结构体{intnum;charname[10];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[20];}em[100];三。各模块的功能和实现1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的voidmenu()函数来实现.2.输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的voidinput()函数来实现。3。保存模块:将内存中职工的信息输出到磁盘文件中,可以通过自己定义的voidsave(int〕函数来实现。4.浏览模块:浏览所有职工的相关信息,通过自己定义的voiddisplay〔〕函数来实现。5。删除模块:删除需要删除的职工的所有信息,通过自己定义的voiddel〔〕函数来实现。6。添加模块:添加需要添加的职工的相关信息,通过自己定义的voidadd(〕函数来实现。7.按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的voidsearch_num〔〕函数来实现.8。按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的voidsearch_xuelil函数来实现.9。按职工的号码查询模块:可以按职工的来查询职工的相关信息,通过自己定义的voidsearch_tel函数来实现。10。修改模块:可以修改需要修改的职工的相关信息,通过自己定义的voidmodify〔〕函数来实现.11.退出系统模块:退出职工信息管理系统,通过头文件windows.h中的exit〔0〕函数来实现.使用说明及运行实例1.运行程序,进入职工信息管理系统的主菜单:图1:进入主菜单界面2。输入数字“1”进行录入职工信息:图2:录入职工信息3.输入“y”返回主菜单〔界面同图1〕。4.输入“2”浏览职工信息:图3:浏览职工信息5.输入“y"后继续,输入“3”进行查询职工信息:图4:按职工号及学历查询职工信息图5:按号码查询职工信息6。进入主菜单,输入“4”进行删除职工信息:图6:删除职工信息7.进入主菜单输入“5”进行添加职工信息:图7:添加职工信息8.进入主菜单输入“6”进行修改职工信息:图8:修改职工信息9.进入主菜单输入”7”退出职工信息管理系统。职工信息管理系统源程序代码#include<stdio。h〉#include〈windows.h〉#include<string。h〉#defineN100structemployee{intnum;charname[20];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[20];}em[100];/*定义一个结构体*/voidmenu();voidinput();voidsave〔int〕;voiddisplay(〕;voiddel(〕;voidadd(〕;voidsearch(〕;voidsearch_num();voidsearch_xueli();voidsearch_tel(〕;voidmodify(〕;/*定义各函数*/voidmain(〕{menu();intn,flag;chara;do{printf〔”请选择你需要操作的步骤(1-—7):\n”);scanf〔"%d”,&n);if〔n>=1&&n〈=7〕{flag=1;break;}else{flag=0;printf(”您输入有误,请重新选择!”);}}while〔flag==0);while(flag==1〕{switch(n){case1: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”);add〔〕;break;case6:printf〔”◆◆◆修改职工信息◆◆◆\n");printf〔"\n”〕;modify〔);break;case7:exit〔0〕;break;default:break;}getchar〔〕;printf(”\n”);printf(”是否继续进行(yorn〕:\n");scanf〔”%c”,&a);if〔a==’y'){flag=1;system〔”cls”);/*清屏*/menu〔);/*调用菜单函数*/printf("请再次选择你需要操作的步骤〔1—-7〕:\n”〕;scanf〔"%d",&n);printf〔"\n”);}elseexit〔0〕;}}voidmenu〔〕/*菜单函数*/{printf(”************欢送进入职工信息管理系统**********\n”〕;printf(”1。录入职工信息”〕;printf(”2。浏览职工信息\n");printf("3。查询职工信息”〕;printf(”4.删除职工信息\n”〕;printf(”5。添加职工信息");printf("6.修改职工信息\n"〕;printf〔”7。退出\n”);printf〔"********************谢谢使用******************\n”);printf(”\n"〕;printf(”\n”);}voidinput(〕/*录入函数*/{inti,m;printf〔"请输入需要创立信息的职工人数〔1-—100〕:\n”);scanf〔”%d",&m〕;for〔i=0;i<m;i++){printf〔"请输入职工号:”〕;scanf〔"%d”,&em[i]。num〕;printf(”请输入姓名:”);scanf(”%s”,em[i]。name);getchar〔);printf("请输入性别(f——女m--男):”);scanf("%c”,&em[i].sex〕;printf(”请输入年龄:"〕;scanf("%d”,&em[i].age〕;printf〔"请输入学历:”〕;scanf〔”%s”,em[i]。xueli〕;printf("请输入工资:");scanf〔”%d”,&em[i].wage〕;printf〔”请输入住址:"〕;scanf("%s”,em[i]。addr);printf("请输入:”);scanf〔”%s",em[i]。tel〕;printf(”\n");}printf〔"\n创立完毕!\n");save(m);}voidsave(intm)/*保存文件函数*/{inti;FILE*fp;if〔(fp=fopen〔”employee_list",”wb"〕)==NULL〕{printf〔"cannotopenfile\n");exit(0〕;}for(i=0;i<m;i++)/*将内存中职工的信息输出到磁盘文件中去*/if(fwrite〔&em[i],sizeof〔structemployee〕,1,fp〕!=1〕printf〔"filewriteerror\n”);fclose(fp);}intload()/*导入函数*/{FILE*fp;inti=0;if〔〔fp=fopen(”employee_list","rb”))==NULL〕{printf("cannotopenfile\n”);exit(0〕;}else{do{fread(&em[i],sizeof(structemployee〕,1,fp);i++;}while(feof(fp〕==0〕;}fclose(fp〕;return〔i-1);}voiddisplay〔〕/*浏览函数*/{inti;intm=load〔);printf("职工号\t姓名\t\t性别\t\t年龄\n");for〔i=0;i<m;i++〕/*m为输入局部的职工人数*/printf("\n%d\t\t%s\t%c\t\t%d\t\n”,em[i]。num,em[i].name,em[i]。sex,em[i]。age);printf("\n学历\t\t工资\t\t住址\t\t\n”〕;for〔i=0;i〈m;i++)/*m为输入局部的职工人数*/printf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i]。wage,em[i].addr,em[i].tel〕;}voiddel〔)/*删除函数*/{intm=load〔);inti,j,n,t,flag;charname[20];printf〔"\n原来的职工信息:\n"〕;display〔〕;printf(”\n”〕;printf(”请输入要删除的职工的姓名:\n"〕;scanf〔”%s",name);for〔flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf(”\n已找到此人,原始记录为:\n”);printf("职工号\t姓名\t\t性别\t\t年龄\n”);printf("\n%d\t\t%s\t%c\t\t%d\t\n”,em[i]。num,em[i].name,em[i]。sex,em[i]。age〕;printf(”\n学历\t\t工资\t\t住址\t\t\n”〕;printf〔"\n%s\t%d\t\t%s\t%s\n”,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf〔"\n确实要删除此人信息请按1,不删除请按0\n”);scanf(”%d",&n);if〔n==1〕{for〔j=i;j〈m—1;j++〕{strcpy(em[j].name,em[j+1]。name〕;em[j].num=em[j+1].num;em[j].sex=em[j+1].sex;em[j]。age=em[j+1]。age;strcpy(em[j]。xueli,em[j+1].xueli〕;em[j]。wage=em[j+1]。wage;strcpy〔em[j].addr,em[j+1].addr);strcpy〔em[j]。tel,em[j+1].tel〕;}flag=0;}}}if(!flag〕m=m—1;elseprintf〔”\n对不起,查无此人!\n”);printf("\n浏览删除后的所有职工信息:\n”);save(m〕;/*调用保存函数*/display〔);/*调用浏览函数*/printf〔"\n继续删除请按1,不再删除请按0\n");scanf〔”%d”,&t〕;switch(t〕{case1:del(〕;break;case0:break;default:break;}}voidadd(〕/*添加函数*/{FILE*fp;intn;intcount=0;inti;intm=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(”%d”,&em[i].num);printf〔”\n”);printf〔"请输入姓名:”);scanf〔"%s",em[i]。name);getchar(〕;printf〔”请输入性别(f-—女m——男):");scanf(”%c",&em[i]。sex);printf〔"请输入年龄:"〕;scanf(”%d”,&em[i].age〕;printf("请输入学历:”);scanf〔”%s”,em[i]。xueli);printf〔"请输入工资:");scanf(”%d",&em[i].wage);printf("请输入住址:”);scanf("%s”,em[i].addr);printf〔"请输入:");scanf(”%s”,em[i].tel);printf〔”\n");count=count+1;printf(”已增加的人数:\n");printf(”%d\n”,count);}printf(”\n添加完毕!\n”);m=m+count;printf〔”\n浏览增加后的所有职工信息:\n"〕;printf〔”\n"〕;save(m);display(〕;fclose(fp〕;}voidsearch〔〕/*查询函数*/{intt,flag;do{printf〔”\n按职工号查询请按1;按学历查询请按2;按号码查询请按3;进入主函数请按4\n”〕;scanf〔”%d",&t〕;if(t〉=1&&t〈=4){flag=1;break;}else{flag=0;printf("您输入有误,请重新选择!”);}}while〔flag==0);while〔flag==1){switch〔t〕{case1:printf〔"按职工号查询\n”〕;search_num(〕;break;case2:printf(”按学历查询\n");search_xueli〔);break;case3:printf〔”按号码查询\n”〕;search_tel();break;case4:main〔);break;default:break;}}}voidsearch_num(){intnum;inti,t;intm=load(〕;printf〔"请输入要查找的职工号:\n");scanf〔”%d",&num〕;for(i=0;i〈m;i++)if(num==em[i].num〕{printf("\n已找到此人,其记录为:\n");printf〔”职工号\t姓名\t\t性别\t\t年龄\n”〕;printf(”\n%d\t\t%s\t%c\t\t%d\t\n”,em[i]。num,em[i]。name,em[i]。sex,em[i]。age);printf(”\n学历\t\t工资\t\t住址\t\t\n"〕;printf("\n%s\t%d\t\t%s\t%s\n”,em[i]。xueli,em[i].wage,em[i]。addr,em[i]。tel〕;break;}if(i==m〕printf("\n对不起,查无此人\n");printf("\n”〕;printf〔”返回查询函数请按1,继续查询职工号请按2\n”〕;scanf〔”%d”,&t);switch〔t〕{case1:search(〕;break;case2:break;default:break;}}voidsearch_xueli〔){charxueli[30];inti,t;intm=load〔);printf〔"请输入要查找的学历:\n");scanf(”%s”,xueli);for〔i=0;i<m;i++)if〔strcmp〔em[i]。xueli,xueli)==0){printf(”\n已找到,其记录为:\n”〕;printf〔"职工号\t姓名\t\t性别\t\t年龄\n"〕;printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i]。num,em[i].name,em[i].sex,em[i].age〕;printf〔"\n学历\t\t工资\t\t住址\t\t\n”);printf(”\n%s\t%d\t\t%s\t%s\n”,em[i].xueli,em[i]。wage,em[i].addr,em[i]。tel);}if(i==m〕printf〔"\n对不起,查无此人\n”〕;printf〔"\n”〕;printf〔”返回查询函数请按1,继续查询学历请按2\n"〕;scanf〔"%d",&t);switch〔t){case1:search〔);break;case2:break;default:break;}}voidsearch_tel(〕{chartel[20];inti,t;intm=load();printf(”请输入要查找的号码:\n"〕;scanf〔"%s”,tel〕;for〔i=0;i<m;i++〕if〔strcmp(tel,em[i]。tel)==0){printf〔”\n已找到此人,其记录为:\n”〕;printf〔”职工号\t姓名\t\t性别\t\t年龄\n”〕;printf〔”\n%d\t\t%s\t%c\t\t%d\t\n”,em[i]。num,em[i].name,em[i].sex,em[i]。age〕;printf("\n学历\t\t工资\t\t住址\t\t\n");printf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel〕;break;}if〔i==m〕printf(”\n对不起,查无此人\n"〕;printf("\n”〕;printf〔"返回查询函数请按1,继续查询号码请按2\n");scanf〔"%d",&t);switch(t〕{case1:search();break;case2:break;default:break;}}voidmodify〔〕/*修改函数*/{intnum;charname[20];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[20];intb,c,i,n,t,flag;intm=load();printf("\n原来的职工信息:\n"〕;display();printf(”\n”〕;printf〔"请输入要修改的职工的姓名:\n”);scanf(”%s",name);for〔flag=1,i=0;flag&&i<m;i++){if〔strcmp(em[i]。name,name〕==0){printf("\n已找到此人,原始记录为:\n”〕;printf〔”职工号\t姓名\t\t性别\t\t年龄\n");printf〔"\n%d\t\t%s\t%c\t\t%d\t\n”,em[i]。num,em[i]。name,em[i].sex,em[i].age〕;printf〔"\n学历\t\t工资\t\t住址\t\t\n”);printf〔”\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i]。wage,em[i].addr,em[i].tel);printf〔”\n确实要修改此人信息请按1;不修改请按0\n"〕;scanf〔”%d",&n〕;if(n==1){printf("\n需要进行修改的选项\n1。职工号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)/*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i—1个人*/{case1:printf〔"职工号改为:”〕;scanf〔"%d",&num);em[i—1].num=num;break;case2:printf("姓名改为:”〕;scanf("%s",name〕;strcpy(em[i—1]。name,name);break;case3:printf("性别改为:");getchar〔);scanf〔"%c”,&sex);em[i—1]。sex=sex;break;case4:printf〔"年龄改为:");scanf("%d”,&age〕;em[i-1]。age=age;break;case5:printf("学历改为:"〕;scanf〔"%s",xueli);strcpy〔em[i—1].xueli,xueli);break;case6:printf(”工资改为:"〕;scanf〔”%d”,wage);break;case7:printf〔”住址改为:"〕;scanf〔"%s",addr〕;strcpy〔em[i—1].addr,addr〕;break;case8:printf〔"改为:"〕;scanf(”%s",tel);strcpy(em[i-1]。tel,tel〕;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年及未来5年中国公路建设行业发展监测及投资战略咨询报告
- 精密制造业自动化技术项目经理考核表
- 业务执行标准与效率承诺函5篇范文
- 校园运动会精彩瞬间事件类作文(7篇)
- 我的梦想演讲稿的创作灵感(5篇)
- 2026年及未来5年中国胎圈钢丝行业市场调查研究及投资前景预测报告
- 灾区重建工程品质保障责任书4篇
- 教育资源高质量共享承诺书范文6篇
- 2026年及未来5年中国挖掘机械行业发展趋势及投资前景预测报告
- 信息安全教育培训承诺书(4篇)
- 电影院培训员工课件
- 安措费清单完整版本
- 老年人综合能力评估施过程-评估工作及填写规范
- 蒙牛乳制品分公司仓储部管理制度培训课件
- 工程制图习题集答案
- 食品安全管理制度打印版
- 多联机安装施工方案
- 煤矿副斜井维修安全技术措施
- 公共视频监控系统运营维护要求
- 小学数学人教版六年级上册全册电子教案
- 阿司匹林在一级预防中应用回顾
评论
0/150
提交评论