ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:403.53KB ,
资源ID:6866587      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6866587.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(职工信息管理系统 C语言实习报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

职工信息管理系统 C语言实习报告.docx

1、职工信息管理系统 C语言实习报告C 语 言 课 程 实 习 报 告所 在 院 系 :经济管理学院 班 级 学 号 :081081 20081001708姓 名 :张梦莹程序 已存档 : 指 导 老 师 :赵 曼 评 分 : 二零一零年一月十五日目 录1.1题目分析1.2需求分析1. 3总体设计1.4详细设计1.1.4主函数1.4.2各功能模块设计(1) 输入模块(2) 浏览模块(3) 查找模块(包括修改)(4) 插入模块 3公共函数(1) 保存函数(2) 加载函数 (3) 职工号输入函数(4) 输入整一个记录函数(5) 显示一个记录的函数 (6) 结束选择浏览或返回函数(7) 修改整条数据记录

2、函数1.5程序测试 1.5.1数据源1.5.2编译、连接和运行1.5.3结果1.6结束语-实习心得职工信息管理系统摘要:本论文设计的程序是C语言课程设计指导书第11题-职工信息管理系统。这个管理系统能对职工的信息(包括职工号、姓名、性别、年龄、学历、工资、住址、电话等)进行有效地信息录入、浏览、查询、插入、删除等操作,通过操作可以给各方面的用户带来很大的便利。1.1 题目分析题目要求职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作。 职工信息录入功能(职工信息用文件保存)。 职工信息浏览功能。 职

3、工信息查询功能,查询方式可按学历查询或按职工号查询。 职工信息删除,修改功能(可选项)。提示 建立职工信息结构体,结构体成员包括职工号、姓名、性别、年龄、学历、工资、住址、电话。1.2 需求分析根据题目要求,要求对职工信息进行输入、输出等操作;在程序中需要浏览职工的信息,应提供显示、查找、浏览、插入、修改等操作;另外还应提供键盘式选择菜单实现功能选择。1.3 总体设计图1.3 系统功能模块图1.4详细设计1.4.1 主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图:显示各功能选项图1.4.1 主函数流程图程序: /*主函数*/main

4、 ()menu();/*menu函数*/void menu() int n,w1;/*变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围*/ do puts(tt*职工信息管理系统*nn); puts(tttt1.Enter new data); puts(tttt2.Browse all); puts(tttt3.Search );puts(tttt4.Add); puts(tttt5.Exit); puts(nntt*n); printf(Choice your number(1-5): bb); scanf(%d,&n); if(n5) /*对选择的数字作出判断,是否在

5、菜单功能数字范围内*/ w1=1;getchar(); else w1=0; while(w1=1); switch(n)/*根据输入的数字,进入到相应的操作模块中*/ case 1:enter();break;/*输入模块*/ case 2:browse();break; /*浏览模块*/ case 3:search();break; /*查找模块,其中包括按不同类别进行查找的多个子模块*/ case 4:add();break;/*插入模块*/ case 5:exit(0); /*退出*/ 注:menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的操作模块中,此外把menu函数

6、独立出来,可以方便随时对它进行调用,容易返回到系统界面。 用结构体来存放职工信息:/*结构体*/struct workerchar number11;char name20;char sex20;char adress20;char xueli20;char telephone20;char age20;char salary20;worN;/* worN中每个数组元素对应一个职工*/其中可以根据宏定义# define N随时对N的值进行调整,扩大信息的储存量。1.4.2各功能模块设计(1)输入模块需求分析 对信息进行输入。流程图:图1 输入模块流程图程序:/*输入模块*/void enter

7、()/*输入函数*/int i,n; printf(How many workers(0-%d):,N-1); scanf(%d,&n);/*输入记录的个数,赋值给n*/ printf(n Enter data nownn);for(i=0;in;i+)/*通过for循环语句依次输入个职工信息数据*/ printf(n Input %dth worker record.n,i+1); input(i);/*调用单个输入函数*/ if(i!=0)save(n);/*调用保存函数*/ printf_back(); /*一个任务结束时让用户选择还是浏览还是返回*/ (2)浏览模块需求分析 该模块的功

8、能是显示所有职工记录信息。流程图显示职工记录(10个一屏):按任意键显示下一屏按任意键返回主菜单图2 浏览模块流程图程序:/*浏览(全部)模块*/browse() /*浏览(全部模块)*/ int i,j,n; n=load(); /*调用加载函数,并计算可以记录的个数*/ printf_face(); /*调出显示数据结构项目函数*/ for(i=0;inn1).number2.xueli3).cancel and back);printf(Which you needed?: bb);scanf(%d,&c);if(c3|c3|c1);switch(c) /* switch语句提供按不同类

9、别进行查找功能*/case 1:search1();break; /*按职工号进行查找*/ case 2:search2();break; /*按学历进行查找*/ case 3:menu();break; /*返回主菜单*/*按职工号查找模块*/流程图:按职工号查找模块用户作出选择,输入一整型数值1,2,还是31继续查找3返回主菜单2修改 图4 按职工号查找模块流程图程序:search1()int i,n,k,w1=1,w2,w3,w4; struct worker s; /*定义结构体变量s,用以储存输入的number的值,便于进行比较*/ n=load(); /*加载将要记录的个数*/ d

10、o /*该do- while循环语句判断是否继续执行该函数*/ do /*该do- while循环语句判断是否找到要查找的对象*/ k= =1; printf(nnEnter number that you want to search! number:); scanf(%s,s.number); printf_face();/*调出显示数据结构项目函数*/ for(i=0;in;i+) /* for循环语句用来判断原数据信息中是否有与输入职工号相 同的职工号*/ if(strcmp(s.number,wori.number)=0) /*原数据信息中找到与输入职工号相 同的职工号*/ k=i;

11、 printf_one(k);break; if(k= =1) / *原数据信息中没有找到与输入职工号相同的职工号*/ printf(nnNo exit!please); printf(nnAre you again?nt1).again 2).No and back bb); scanf(%d,&w1); if(w1=2) menu();/*返回主菜单*/ while(k= =1&w1= =1);/*在没有找到且想再次查找的情况下继续进行循环*/ w4=0;w3=0; if(k!= =1) /*在查找到的情况下*/ printf(nnWhat do you want to do?nt1).S

12、earch another 2).Modify 3).Back menu bb); scanf(%d,&w2); switch(w2) case 1:search1();break;/*继续按照职工号查找其他对象*/ case 2:w3=modify_data(k,n);break;/*对查找到的对象进行修改*/ case 3:menu();break;/*返回主菜单*/ while(w2=1);menu();/*返回主菜单*/ /*按职工学历查找模块*/流程图按职工学历查找模块用户作出选择,输入一整型数值 1,2,还是3修改继续查找返回主菜单图5按职工学历查找模块流程图程序:search2(

13、)int i,n,k,w1=1,w2,w3,w4; struct worker s; /*定义结构体变量s,用以储存输入的xueli的值,便于进行比较*/ n=load(); /*加载将要记录的个数*/ do /*该do- while循环语句判断是否继续执行该函数*/ do /*该do- while循环语句判断是否找到要查找的对象*/ k=-1; printf(nnEnter xueli that you want to search! xueli:); scanf(%s, xueli ); printf_face();/*调出显示数据结构项目函数*/ for(i=0;in;i+) /* fo

14、r循环语句用来判断原数据信息中是否有与输入职工学历相同的 职工号*/ if(strcmp(s. xueli,wori. xueli)=0) /*原数据信息中找到与输入职工学历相同的职工*/ k=i; printf_one(k);break; if(k=-1) / *原数据信息中没有找到与输入职工学历相同的职工号*/ printf(nnNo exit!please); printf(nnAre you again?nt1).again 2).No and back bb); scanf(%d,&w1); if(w1=2) menu();/*返回主菜单*/ while(k=-1&w1=1);/*在

15、没有找到且想再次查找的情况下继续进行循环*/ w4=0;w3=0; if(k!=-1) /*在查找到的情况下*/ printf(nnWhat do you want to do?nt1).Search another 2).Modify 3).Back menu bb); scanf(%d,&w2); switch(w2) case 1:search1();break;/*继续按照职工学历查找其他对象*/ case 2:w3=modify_data(k,n);break;/*对查找到的对象进行修改*/ case 3:menu();break;/*返回主菜单*/ while(w2=1);menu

16、();/*返回主菜单*/(4)插入模块需求分析 该模块的功能是插入职工记录信息并且不能覆盖原有职工信息。流程图 插入模块调用加载函数让用户输入要插入的职工信息个数 调用整条信息输入函数 用户作出选择,输入1or21还是22返回主菜单1 浏览全部图6插入模块流程图【程序】/*插入模块*/add() /*插入模块*/ int i,n,m,k; FILE*fp; n=load(); /*加载将要记录的个数*/printf(How many workers are you want to add(0-%d)?:,N-1-n); scanf(%d,&m); /*输入要插入职工信息的个数*/k=m+n;

17、for(i=n;ik;i+) /*用for循环实现m个信息的录入*/ printf(nInput %dth workers record.n,i-n+1 ); input(i); /*调用整条职工信息输入函数*/ if(fp=fopen(worker.txt,ab)=NULL) printf(cannot open filen); for(i=n;ik;i+) /*用for循环实现对m个信息录入到文件worker.txt */if(fwrite(&wori,sizeof(struct worker),1,fp)!=1) printf(file write errorn); fclose(fp)

18、; printf_back(); /*一个任务结束时的选择浏览还是返回的函数*/1.4.3公共函数(1)保存函数 save(int n) 说明:形参n控制保存的个数。程序:void save(int n) FILE *fp; /*定义文件指针*/ int i; if(fp=fopen(worker.txt,wb)=NULL)/*以只写方式为输出打开一个二进制文件,若打不开返回NULL值*/ printf(nCannot open filen); for(i=0;in;i+) /* for循环语句作用为读写n个数据块*/ if(fwrite(&wori,sizeof(struct worker)

19、,1,fp)!=1)/*若读写成功,则返回值1*/ printf(file write errorn); fclose(fp); /*关闭文件*/ (2)加载函数 load()说明:该函数可以用来加载所有记录,并且可以返回所有记录的个数。程序:int load()FILE *fp;int i;if(fp=fopen(worker.txt,rb)=NULL) /*以只读方式打开二进制文件,若打不开返回NULL值*/printf(nCannot open filen);return NULL;for(i=0;!feof(fp);i+)/*在文件关闭之前,向磁盘文件中读入数据块*/fread(&wo

20、ri,sizeof(struct worker),1,fp);fclose(fp);return(i-1); /*返回数据块个数值*/(3)职工号输入函数no_input(int i,int n)说明:该函数对输入职工号进行判断,确保输入的职工号唯一。形参i表示第i个职工记录,形参n表示总共有n个职工记录。程序:void no_input(int i,int n)int j,k,w1;do /*该do- while循环语句用来输入职工号信息并判断号码是否重复*/w1=0;printf(number:);scanf(%s,wori.number);for(j=0;wori.numberj!=0;

21、j+) /*判断输入的号码是否由0-9间的数字组成*/if(wori.numberj9)/*输入数字不是有0-9之间的数字组成*/puts(Input error!Only be made up of (0-9).Please reinput!n);w1=1;break;if(w1!=1) /* w1!=1表示输入数字正确*/for(k=0;knn 1).number 2).name 3).cancel and back);printf(Which you needed?: bb);scanf(%d,&c);if(c3|c3|c1);do /*按照选择输出对应数据块*/switch(c)case 1:no_input(i,n);break;case 2:printf(name:);scanf(%s,wori.name);break;case 3:m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1