版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课程设计报告(本科)课程:学号:姓名:班级:教师:时间:高级语言课程设计C+职工信息管理系统目的:要求熟练掌握 C 语言的基本知识和编辑技能。基本掌握结构化程序设计的基本思路和方法。通过编写学生的 C 语言职工信息管理系统,便于对职工的信息进行管理。通过对职工 C 语言信息管理系统设计,训练综合运用函数的自定义,数组,结构体等,并提高程序设计的能力。要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。4、查找功能:完成按职工的职工号
2、查询职工的相关信息,并显示。完成按职工的学历查询职工的相关信息,并显示。完成按职工的电话号码查询职工的相关信息,并显示。5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。通过输入职工号完成对该名职工的信息进行删除。6、添加功能:完成添加新职工的信息的任务。7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。通过输入职工号完成对该名职工的信息进行修改。8、退出职工信息管理系统。计划与进度安排:2012 年 12 月 8 日至 2012 年 12 月 15 日 资料找思路。2012 年 12 月 16 日至 2012 年 12 月 20 日 和各调用函数模块编出来。2012
3、年 12 月 21 日至 2013 年 1 月 1 日序大体功能都实现。修改并完善各功能,写好电子实验报一功能结构C+2二、设计说明 C+/ 是用来选择的 4.定义的函数完成功能的实现:录入职工信息,浏览职工信息,查询职工信息,修改职工信息,添加职工信息,删除职工信息。5.执行程序。C+2.输入数字“1”进行录入职工信息:3.输入“y”返回主菜单(界面同图 入览C+5.输入“y”后继续,输入“3”进行查询职工信息:C+5:按学历查询职工信息图 7:按姓名删除职工信息C+图C+设计体会与建议:C+附录:#include/标准输入输出函数库#include/字符串函数库#includestruct
4、 employeeint num;/职工号char name20;/姓名char sex;/性别int age;/年龄char xueli30;/学历int wage;/工资char addr30;/家庭住址char tel20;/联系电话employee100;/定义一个结构体C+int main()/函数主体void menu();/菜单函数void input();/录入函数void save(int m);/保存文件函数void display();/浏览函数void del();/删除函数void del_name();/按姓名删除函数void del_num();/按职工号删除函数
5、void add();/添加函数void search();/查询函数void search_num();/按职工号码查询函数void search_xueli();/按学历查询函数void search_tel();/按号码查询函数void modify();/修改函数C+void modify_num();/按员工号修改函数void modify_name();/按姓名修改函数int n,flag;char a;menu();printf(请选择你需要操作的步骤(1-7):n);scanf(%d,&n);doif(n=1&n=7)flag=1;break;elseC+flag=0;prin
6、tf(您输入有误,请重新选择!);while(flag=0);while(flag=1)switch(n)case 1:printf(输入职工信息n);printf(n);input();break;case2:printf(浏览职工信息n);printf(n);display();break;case 3:printf(查询职工信息n);printf(n);search();break;case 4:printf(删除职工信息n);printf(n);();break;C+case 5:printf(添加职工信息n);printf(n);add();break;case 6:printf(修
7、改职工信息n);printf(n);modify();break;case 7: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-7):n);C+scanf(%d,&n);printf(n);elseexit(0);void menu() printf(*欢迎进入职工信息管理系统*n);printf(1.录入职工信息);printf(2.浏览
8、职工信息n);printf(3.查询职工信息);printf(4.删除职工信息n);C+printf(5.添加职工信息);printf(6.修改职工信息n);printf(7.退出n);printf(*xx使用*n);printf(n);printf(n);void input() int i,m;printf(请输入需要创建信息的职工人数(1-100):n);scanf(%d,&m);for (i=0;im;i+)printf(请输入职工号:);C+scanf(%d,&employeei.num);printf(请输入姓名: );scanf(%s,);getcha
9、r();printf(请输入性别(f-女 m-男): );scanf(%c,&employeei.sex);printf(请输入年龄: );scanf(%d,&employeei.age);printf(请输入学历: );scanf(%s,employeei.xueli);printf(请输入工资: );scanf(%d,&employeei.wage);printf(请输入住址: );scanf(%s,employeei.addr);printf(请输入电话: );scanf(%s,employeei.tel);C+printf(n);printf(n创建完毕!n);save(m);void
10、 save(int m) /保存文件函数int i;FILE*fp;if (fp=fopen(employee_list.txt,wb)=NULL)printf (cannot open filen);exit(0);for(i=0;im;i+)/将内存中职工的信息输出到磁盘文件中去C+if (fwrite(&employeei,sizeof(structemployee),1,fp)!=1)printf(file write errorn);fclose(fp);int load() /导入函数FILE*fp;int i=0;if(fp=fopen(employee_list.txt,rb)
11、=NULL)printf (cannot open filen);exit(0);elseC+dofread(&employeei,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);/循环过程中跳出循环时i一void display() /浏览函数int i;C+int m=load();printf( 职工号 姓名 性别 年龄 学历工资住址电话 n);for(i=0;i=1&t=3)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(flag=0
12、);while(flag=1)switch(t)C+case 1:printf(按职工号删除n);del_num();break;case 2:printf(按姓名删除n);del_name();break;case 3:main();break;default:break;void del_name() /按姓名删除函数int m=load();int i,j,n,t,flag;char name20;printf(n原来的职工信息:n);display(); /调用浏览函数C+printf(n);printf(请输入要删除的职工的姓名:n);scanf(%s,name);for(flag=
13、1,i=0;flag&im;i+)if(strcmp(,name)=0)printf(n已找到此人,原始记录为:n);printf( 职工号 姓名 性别 年龄 学历工资住址电话 n);printf( %d %s %c%d%s %d %s %sn,employeei.num,,employeei.sex,employeei.age,employeei.xueli,employeei.wage,employeei.addr,employeei.tel);printf(n确实要删除此人信息请按1,不删除请按0n);scanf(%d,&n);if
14、(n=1)C+for(j=i;jm-1;j+)strcpy(,employeej+1.name);/strcpy(str1,str2)把str2 指向的字符串复制到str1中去employeej.num=employeej+1.num;employeej.sex=employeej+1.sex;employeej.age=employeej+1.age;strcpy(employeej.xueli,employeej+1.xueli);employeej.wage=employeej+1.wage;strcpy(employeej.addr,employeej+1.
15、addr);strcpy(employeej.tel,employeej+1.tel);/把下一员工的信息复制到上一个员工信息的位置中去flag=0;C+if(!flag) /flag取逻辑反,及flag=0m=m-1;elseprintf(n对不起,查无此人!n);printf(n浏览删除后的所有职工信息:n);save(m);/调用保存函数display(); /调用浏览函数printf(n不在删除请按0,返回删除菜单请按1,继续按姓名删除请按2n);scanf(%d,&t);switch(t)case 0:main();break;case 1:();break;case 2:break
16、;C+default :break;void del_num() /按职工号删除函数int m=load();int i,j,n,t,flag;int num;printf(n原来的职工信息:n);display(); /调用浏览函数printf(n);printf(请输入要删除的职工的职工号:n);scanf(%d,&num);for(flag=1,i=0;flag&im;i+)C+if(employeei.num=num)printf(n已找到此人,原始记录为:n);printf( 职工号 姓名 性别 年龄 学历工资住址电话 n);printf( %d %s %c%d%s %d %s %s
17、n,employeei.num,,employeei.sex,employeei.age,employeei.xueli,employeei.wage,employeei.addr,employeei.tel);printf(n确实要删除此人信息请按1,不删除请按0n);scanf(%d,&n);if(n=1)for(j=i;jm-1;j+)strcpy(,employeej+1.name);/strcpy(str1,str2)把str2指向的字符串复制到str1中去C+employeej.num=employeej+1.num;empl
18、oyeej.sex=employeej+1.sex;employeej.age=employeej+1.age;strcpy(employeej.xueli,employeej+1.xueli);employeej.wage=employeej+1.wage;strcpy(employeej.addr,employeej+1.addr);strcpy(employeej.tel,employeej+1.tel);/把下一员工的信息复制到上一个员工信息的位置中去flag=0;if(!flag) /flag取逻辑反,及flag=0m=m-1;elseC+printf(n对不起,查无此人!n);pr
19、intf(n浏览删除后的所有职工信息:n);save(m);/调用保存函数display(); /调用浏览函数printf(n不在删除请按0,返回删除菜单请按1,继续按职工号删除请按2n);scanf(%d,&t);switch(t)case 0:main();break;case 1:();break;case 2:break;default :break;C+void add() /添加函数FILE*fp;int n;int count=0;int i;int m=load();printf(n原来的职工信息:n);display();printf(n);fp=fopen(emploee_
20、list.txt,a);printf(请输入想增加的职工数:n);scanf(%d,&n);for (i=m;i=1&t=4)flag=1;break;elseflag=0;C+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;defaul
21、t:break;C+void search_num() /按职工号码查询函数int num;int i,t;int m=load();printf(请输入要查找的职工号:n);scanf(%d,&num);for(i=0;im;i+)if(num=employeei.num)printf(n已找到此人,其记录为:n);printf( 职工号 姓名 性别 年龄 学历工资住址电话 n);C+printf( %d %s %c%d%s %d %s %sn,employeei.num,,employeei.sex,employeei.age,employeei.xueli,e
22、mployeei.wage,employeei.addr,employeei.tel);break;if(i=m)printf(n对不起,查无此人n);printf(n);printf(不在查询请按0,返回查询函数请按1,继续查询职工号请按2n);scanf(%d,&t);switch(t)case 0:main();break;case 1:search();break;case 2: break;C+default:break;void search_xueli() /按职工号码查询函数char xueli30;int i,t,n=0;int m=load();printf(请输入要查找的
23、学历:n);scanf(%s,xueli);for(i=0;im;i+)if(strcmp(employeei.xueli,xueli)=0)printf(n已找到,其记录为:n);C+printf( 职工号 姓名 性别 年龄 学历工资住址电话 n);printf( %d %s %c%d%s %d %s %sn,employeei.num,,employeei.sex,employeei.age,employeei.xueli,employeei.wage,employeei.addr,employeei.tel);n+;if(i=m&n=m)printf(n对不起
24、,查无此人n);printf(n);printf(不在查询请按0,返回查询函数请按1,继续查询学历请按2n);scanf(%d,&t);switch(t)case 0:main();break;C+case 1:search();break;case 2:break;default :break;void search_tel() /按号码查询函数char tel20;int i, t;int m=load();printf(请输入要查找的电话号码:n);scanf(%s,tel);for(i=0;i=1&t=3)C+flag=1;break;elseflag=0;printf(您输入有误,请
25、重新选择!);while(flag=0);while(flag=1)switch(t)case 1:printf(按职工号修改n);modify_num();break;C+case 2:printf(按姓名修改n);modify_name();break;case 3:main();break;default:break;void modify_num() /按员工号修改函数int num;char name20;char sex;int age;char xueli30;int wage;char addr30;C+char tel20;int b,c,i,n,t,flag;int m=l
26、oad();printf(n原来的职工信息:n);display(); /调用浏览函数printf(n);printf(请输入要修改的职工的员工号:n);scanf(%d,&num);for(flag=1,i=0;flag&i8|c1)printf(n选择错误,请重新选择!n);flag=0;C+if(flag=1)printf(n对不起,查无此人!n);doswitch(c)/因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人case 1:printf(职工号改为: );scanf(%d,&num);employeei-1.num=num;break
27、;case 2:printf(姓名改为: );scanf(%s,name);strcpy(,name);break;case 3:printf(性别改为: );C+getchar();scanf(%c,&sex);employeei-1.sex=sex;break;case 4:printf(年龄改为: );scanf(%d,&age);employeei-1.age=age;break;case 5:printf(学历改为: );scanf(%s,xueli);strcpy(employeei-1.xueli,xueli);break;case 6:print
28、f(工资改为: );scanf(%d,&wage);employeei-1.wage=wage;break;C+case 7:printf(住址改为: );scanf(%s,addr);strcpy(employeei-1.addr,addr);break;case 8:printf(电话改为: );scanf(%s,tel);strcpy(employeei-1.tel,tel);break;printf(n);printf(n是否确定所修改的信息?n 是 请按1; 不,重新修改 请按2: n);scanf(%d,&b);while(b=2);printf(n浏览修改后的所有职工信息:n);
29、C+printf(n);save(m);display();printf(n 不在修改请按0, 返回修改函数请按1, 继续修改职工号码请按2n);scanf(%d,&t);switch(t)case 0:main();break;case 1:modify();break;case 2:break;default :break;void modify_name() /按姓名修改函数C+int num;char name20;char sex;int age;char xueli30;int wage;char addr30;char tel20;int b,c,i,n,t,flag;int m=load();printf(n原来的职工信息:n);display(); /调用浏览函数printf(n);printf(请输入要修改的职工的姓名:n);scanf(%s,name)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 32015-2026丝绸练减率及残胶率试验方法
- 2026化工磁力泵厂家哪家好?靠谱的生产厂家选型指南
- 3KW馈能型电力电子负载的研制:技术、设计与应用探索
- 3DOM含铁尖晶石催化剂:合成路径、催化特性及应用潜力探究
- 3-DES算法赋能列控系统车地安全通信的深度剖析与实践
- 2195铝锂合金焊接工艺与接头组织性能的深度剖析
- 2006年度我国上市公司资产减值准备行为的特征剖析与深度洞察
- 2026年药店验收人员试题及答案
- 某工程防护地面沉降制度
- 输血技术考试题及答案
- 2026年甘肃庆阳宁县直事业单位选聘24人笔试模拟试题及答案详解
- 2026年压力容器考试题库及答案
- 2026年山西省运城市重点学校初一入学数学分班考试试题及答案
- 2026年高校教师资格证之高等教育学考试题库(各地真题)
- TCS-营养健康产品循证研发技术规范
- 全科医学科高血压患者自我管理培训教程
- 行政检察优化法治化营商环境问题研究
- 楼宇对讲系统培训
- 架子鼓乐理考试题目及答案
- 第12课《答谢中书书》公开课一等奖创新教学设计-统编版语文八年级上册
- 中医门诊部验收管理制度
评论
0/150
提交评论