职工信息管理系统C语言课程设计+源代码_第1页
职工信息管理系统C语言课程设计+源代码_第2页
职工信息管理系统C语言课程设计+源代码_第3页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WORD格式课程设计报告本科课程:高级语言课程设计学号:*:班级:教师:时间:专业资料整理WORD格式计算机科学与技术系专业资料整理WORD格式设计名称:职工信息管理系统设计内容、目的与要求:目的:要求熟练掌握 C 语言的根本知识和编辑技能。根本掌握构造化程序设计的根本思路和方法。通过编写学生的 C 语言职工信息管理系统,便于对职工的信息进展管理。通过对职工 C 语言信息管理系统设计,训练综合运用函数的自定义,数组,构造体等,并提高程序设计的能力。要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能 , 调用界面和各个功能的操作界面应尽可能清晰美观 !2、输入功

2、能:职工信息录入职工信息用文件保存,可以一次完成假设干条记录的输入。3、浏览功能 : 完成对全部职工信息的显示。4、查找功能 : 完成按职工的职工号查询职工的相关信息,并显示。完成按职工的学历查询职工的相关信息,并显示。完成按职工的查询职工的相关信息,并显示。5、删除功能 : 通过输入职工的*完成对该名职工的信息进展删除。通过输入职工号完成对该名职工的信息进展删除。6、添加功能 : 完成添加新职工的信息的任务。7、修改功能 : 通过输入职工的*完成对该名职工的信息进展修改。通过输入职工号完成对该名职工的信息进展修改。8、退出职工信息管理系统。方案与进度安排:2021年 12月8日至2021年

3、12月 15日仔细看数据库相关知识, 通过上网查资料找思路。2021年 12月16日至2021年12月 20日完成设计思路并作出草稿, 把主函数和各调用函数模块编出来。2021年 12月21日至2021年1月1日逐步实现各模块的功能化, 把整个程序大体功能都实现。2021年 1月 2日至2021年1月 6日修改并完善各功能 , 写好电子实验报告 , 并准备提交验收。设计过程、步骤可加页 :一功能构造专业资料整理WORD格式1专业资料整理WORD格式职工信息管理系统开场菜单根据菜单输入的值选择程 序1235467录入浏览查询添加删除修改退出职工职工职工职工职工职工信息信息信息信息信息信息1231

4、212按按按按按按按职学号职职职职工历码工工工工号查查号姓号姓查询询删名修名询除删改修除改二、设计说明1. 这个程序要用到构造体 .struct employee ;2. 函数的声明和调用:void menu();/ 菜单函数专业资料整理WORD格式2专业资料整理WORD格式void input();/ 录入函数void save(int m);/ 保存文件函数void display();/ 浏览函数void del();/ 删除函数void del_name();/ 按*删除函数void del_num();/按职工号删除函数void add();/ 添加函数void search();/

5、 查询函数void search_num();/ 按职工查询函数void search_xueli();/ 按学历查询函数void search_tel();/ 按查询函数void modify();/ 修改函数void modify_num();/ 按员工号修改函数void modify_name();/ 按*修改函数3. 选择功能,用到了 do.while 语句和 switch ,do.while 是进展循环的, switch 是用来选择的doif(n>=1&&n<=7)flag=1;break;elseflag=0;printf(" 您输入有误 ,请

6、重新选择 !");专业资料整理WORD格式3专业资料整理WORD格式while(flag=0);switch(n)case 1:printf("输入职工信息 ");printf("n");input();break;case 2:printf("浏览职工信息 ");printf("n");display();break;case 3:printf("查询职工信息 ");printf("n");search();break;case 4:printf("删除

7、职工信息 ");printf("n");del();break;case 5:printf("添加职工信息 ");printf("n");add();break;case 6:printf("修改职工信息 ");printf("n");modify();break;case 7:exit(0);break;default :break;4. 定义的函数完成功能的实现:录入职工信息,浏览职工信息,查询职工信息,修改职工信息,添加职工信息,删除职工信息。5. 执行程序。结果与分析可以加页

8、:功能上有对职工信息的增加,删除,浏览,查询,修改等简单的功能.使用说明及运行实例1. 运行程序,进入职工信息管理系统的主菜单:图 1:进入主菜单界专业资料整理WORD格式4专业资料整理WORD格式2. 输入数字“ 1进展录入职工信息:图 2:录入职工信息3. 输入“ y返回主菜单界面同图 1。4.输入“2浏览职工信息:图 3 :浏览职工信息5. 输入“ y后继续,输入“ 3进展查询职工信息:专业资料整理WORD格式5专业资料整理WORD格式图 4 :按职工号查询职工信息专业资料整理WORD格式5:按学历查询职工信息专业资料整理WORD格式6专业资料整理WORD格式图 6:按查询职工信息6.

9、进入主菜单,输入“4进展删除职工信息:图 7 :按*删除职工信息图 8 :按职工号删除职工信息7. 进入主菜单输入“5进展添加职工信息:专业资料整理WORD格式7专业资料整理WORD格式图 9 :添加职工信息8. 进入主菜单输入“6进展修改职工信息:图 10 :按*修改职工信息专业资料整理WORD格式8专业资料整理WORD格式图 11:按职工号修改职工信息9. 进入主菜单输入7退出职工信息管理系统:图 12: 退出系统优点是:根本实现了程序的多功能,对与查询职工信息提供了三种方法,对与修改和删除职工信息提供了两种方法,功能多种多样。旗帜变量的使用也是优点之一;这个程序用到了的构造体,整个程序简

10、单,易懂。缺点是:保存职工信息有限,程序段比较臃长。设计体会与建议:通过这次的课程设计,我更加了解 C 语言,学会更好的使用 C 语言函数调用和构造体等,把学过的知识运用于实践中,而不仅仅停留于对课本的单纯理解;这次设计也让我知道我懂的太少 , 要学习的东西还有很多。想完成一项功能就要用很复杂的语句去实现,所以整个程序变的很长,复杂,但是构造体,数组,指针等的灵活运用又可使程序变的易懂。另外,团队的合作也是成功的一局部!在编写代码时一开场没有运用有意义的函数名和变量 , 结果找起来和修改好麻烦 , 也使别人看不懂。 在整个课程设计中, 我认为最重要的就是耐心和细心。细心,就是在编写过程中注意拼

11、写,仔细编写程序;耐心,就是程序编译中出现很多错误的时候能够耐心去修改,只有这样,才能很好的完成程序。虽然在整个过程中出现了不少错误,但最终还是圆满完成了,此次程序设计的经历让我学到了太多 , 以前好多不懂的也都理解了。也学会了作为大学生我们也应该学会不仅从课堂上学习知识,还应该学会自学。专业资料整理WORD格式9专业资料整理WORD格式附录:#include<stdio.h>/ 标准输入输出函数库#include<string.h>/ 字符串函数库#include<stdlib.h>struct employeeint num;/ 职工号char name

12、20;/*char sex;/性别int age;/ 年龄char xueli30;/ 学历int wage;/工资char addr30;/ 家庭住址char tel20;/ 联系employee100;/ 定义一个构造体int main()/ 函数主体专业资料整理WORD格式10专业资料整理WORD格式void menu();/ 菜单函数void input();/ 录入函数void save(int m);/ 保存文件函数void display();/ 浏览函数void del();/ 删除函数void del_name();/ 按*删除函数void del_num();/按职工号删除

13、函数void add();/ 添加函数void search();/ 查询函数void search_num();/ 按职工查询函数void search_xueli();/ 按学历查询函数void search_tel();/按查询函数void modify();/ 修改函数void modify_num();/ 按员工号修改函数void modify_name();/ 按*修改函数int n,flag;char a;menu();printf(" 请选择你需要操作的步骤(1-7):n");scanf("%d",&n);doif(n>=1

14、&&n<=7)flag=1;break;专业资料整理WORD格式11专业资料整理WORD格式elseflag=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(&qu

15、ot; 查询职工信息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;case 7:exit(0);break;default :brea

16、k;getchar();printf("n");printf(" 是否继续进展 (y or n):n");scanf("%c",&a);if(a='y')flag=1;system("cls");/ 清屏menu();/ 调用菜单函数专业资料整理WORD格式12专业资料整理WORD格式printf(" 请再次选择你需要操作的步骤(1-7):n");scanf("%d",&n);printf("n");elseexit(0);

17、void menu()/ 菜单函数printf("*欢迎进入职工信息管理系统 *n");printf("1.录入职工信息 ");printf("2.浏览职工信息 n");printf("3.查询职工信息 ");printf("4.删除职工信息 n");printf("5.添加职工信息 ");printf("6.修改职工信息 n");printf("7.退出 n");printf("*谢谢使用 *n");printf(

18、"n");printf("n");void input()/录入函数int i,m;printf(" 请输入需要创立信息的职工人数(1-100):n");scanf("%d",&m);for (i=0;i<m;i+)专业资料整理WORD格式13专业资料整理WORD格式printf(" 请输入职工号:");scanf("%d",&employeei.num);printf(" 请输入* :");scanf("%s",

19、);getchar();printf(" 请输入性别 (f- 女m- 男 ):");scanf("%c",&employeei.sex);printf(" 请输入年龄 :");scanf("%d",&employeei.age);printf(" 请输入学历 :");scanf("%s",employeei.xueli);printf(" 请输入工资 :");scanf("%d",&e

20、mployeei.wage);printf(" 请输入住址 :");scanf("%s",employeei.addr);printf(" 请输入 :");scanf("%s",employeei.tel);printf("n");printf("n创立完毕 !n");save(m);void save(int m)/ 保存文件函数int i;FILE*fp;if (fp=fopen("employee_list.txt","wb")=

21、NULL)printf ("cannot open filen");exit(0);专业资料整理WORD格式14专业资料整理WORD格式for (i=0;i<m;i+) / 将内存中职工的信息输出到磁盘文件中去if (fwrite(&employeei,sizeof(struct employee),1,fp)!=1)printf("file write errorn");fclose(fp);int load()/ 导入函数FILE*fp;int i=0;if(fp=fopen("employee_list.txt",

22、"rb")=NULL)printf ("cannot open filen");exit(0);elsedofread(&employeei,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);/ 循环过程中跳出循环时i 自动加一,所以要减去一void display()/浏览函数int i;int m=load();printf("职工号*性别年龄学历工资住址n");for(i=0;i<m;i+) /m为输入局部的职工人数p

23、rintf("%d%s%c%d%s%d%s%sn",employeei.num,empl专业资料整理WORD格式15专业资料整理WORD格式,employeei.sex,employeei.age,employeei.xueli,employeei.wage,employeei.addr,employeei.tel);void del()/删除函数int t,flag;doprintf("n 按职工号删除请按1;按*删除请按2; 进入主函数请按3n");scanf("%d",&t);if(t>=1&a

24、mp;&t<=3)flag=1;break;elseflag=0;printf(" 您输入有误,请重新选择!");while(flag=0);while(flag=1)switch(t)case 1:printf(" 按职工号删除n");del_num();break;case 2:printf(" 按*删除 n");del_name();break;case 3:main();break;default:break;void del_name()/ 按*删除函数专业资料整理WORD格式16专业资料整理WORD格式int

25、 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(,name)=0)printf("n已找到此人,原始记录为:n");printf("职工号*性别年龄学

26、历工资住址n");printf(" %d %s %c %d %s %d %s %sn",employeei.num,empl ,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;j<m-1;j+)strcpy(employeej.nam

27、e,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.addr);strcpy(employeej.tel,employeej+1.

28、tel);/ 把下一员工的信息复制到上一个员工信息的位置中去专业资料整理WORD格式17专业资料整理WORD格式flag=0;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:mai

29、n();break;case 1:del();break;case 2:break;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);专业资料整理WORD格式18专业资料整理WORD格式for(flag=1,i=0;fl

30、ag&&i<m;i+)if(employeei.num=num)printf("n已找到此人,原始记录为:n");printf("职工号*性别年龄学历工资住址n");printf(" %d %s %c %d %s %d %s %sn",employeei.num,empl ,employeei.sex,employeei.age,employeei.xueli,employeei.wage,employeei.addr,employeei.tel);printf("n确实要删除此人信

31、息请按1,不删除请按0n");scanf("%d",&n);if(n=1)for(j=i;j<m-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

32、.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;elseprintf("n 对不起,查无此人!n");专业资料整理WORD格式19专业资料整理WORD格式printf("n浏览删除后的所有职工信息:n");save(m);/调用保存函数display();/调用浏览函数pri

33、ntf("n不在删除请按0,返回删除菜单请按1,继续按职工号删除请按2n");scanf("%d",&t);switch(t)case 0:main();break;case 1:del();break;case 2:break;default :break;void add()/ 添加函数FILE*fp;int n;int count=0;int i;int m=load();printf("n原来的职工信息:n");display();printf("n");fp=fopen("emploee

34、_list.txt","a");printf(" 请输入想增加的职工数:n");scanf("%d",&n);for (i=m;i<(m+n);i+)printf("n请输入新增加职工的信息:n");printf(" 请输入职工号 :");scanf("%d",&employeei.num);printf("n");printf(" 请输入* :");专业资料整理WORD格式20专业资料整理WORD格式s

35、canf("%s",);getchar();printf(" 请输入性别 (f- 女m-男 ):");scanf("%c",&employeei.sex);printf(" 请输入年龄 :");scanf("%d",&employeei.age);printf(" 请输入学历 :");scanf("%s",employeei.xueli);printf(" 请输入工资 :");scanf(&q

36、uot;%d",&employeei.wage);printf(" 请输入住址 :");scanf("%s",employeei.addr);printf(" 请输入 :");scanf("%s",employeei.tel);printf("n");count=count+1;printf(" 已增加的人数:n");printf("%dn",count);printf("n 添加完毕 !n");m=m+count;p

37、rintf("n浏览增加后的所有职工信息:n");printf("n");save(m);display();fclose(fp);void search()/查询函数int t,flag;do专业资料整理WORD格式21专业资料整理WORD格式printf("n 按职工号查询请按1;按学历查询请按2;按查询请按3; 进入主函数请按4n");scanf("%d",&t);if(t>=1&&t<=4)flag=1;break;elseflag=0;printf(" 您输入

38、有误,请重新选择!");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() /按职工查询函数int num;int i,t;int m=l

39、oad();专业资料整理WORD格式22专业资料整理WORD格式printf(" 请输入要查找的职工号:n");scanf("%d",&num);for(i=0;i<m;i+)if(num=employeei.num)printf("n 已找到此人,其记录为:n");printf("职工号*性别年龄学历工资住址n");printf(" %d %s %c %d %s %d %s %sn",employeei.num,empl ,employeei.sex,empl

40、oyeei.age,employeei.xueli,employeei.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;default:break;voi

41、d search_xueli()/按职工查询函数char xueli30;int i,t,n=0;int m=load();printf(" 请输入要查找的学历:n");scanf("%s",xueli);for(i=0;i<m;i+)if(strcmp(employeei.xueli,xueli)=0)专业资料整理WORD格式23专业资料整理WORD格式printf("n 已找到,其记录为:n");printf("职工号*性别年龄学历工资住址n");printf(" %d %s %c %d %s

42、%d %s %sn",employeei.num,empl ,employeei.sex,employeei.age,employeei.xueli,employeei.wage,employeei.addr,employeei.tel); n+;if(i=m&&n=m)printf("n对不起,查无此人n");printf("n");printf(" 不在查询请按0,返回查询函数请按1,继续查询学历请按2n");scanf("%d",&t);switch(t)

43、case 0:main();break;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<m;i+)if(strcmp(tel,employeei.tel)=0)printf("n 已找到此人,其记录为:n");printf("职工号*性别年龄学历工资住址n"

44、;);专业资料整理WORD格式24专业资料整理WORD格式printf(" %d %s %c %d %s %d %s %sn",employeei.num,empl ,employeei.sex,employeei.age,employeei.xueli,employeei.wage,employeei.addr,employeei.tel); break;if(i=m)printf("n对不起,查无此人n");printf("n");printf(" 不在查询请按0;返回查询函数请按1,继续查询请按2n

45、");scanf("%d",&t);switch(t)case 0:main();break;case 1:search();break;case 2:break;default :break;void modify() / 修改函数int t,flag;doprintf("n 按职工号修改请按1;按*修改请按2;进入主函数请按3n");scanf("%d",&t);if(t>=1&&t<=3)flag=1;break;elseflag=0;printf(" 您输入有误,

46、请重新选择!");专业资料整理WORD格式25专业资料整理WORD格式while(flag=0);while(flag=1)switch(t)case 1:printf(" 按职工号修改n");modify_num();break;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;char tel20;int b,c,i,n,t,flag;int m=load();printf("n原来的职工信息:n");display();/调用浏览函数printf("n");printf(" 请输入要修改的职工的员工号:n");scanf("%d",&num);for(flag=1,i=0;flag&&

温馨提示

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

评论

0/150

提交评论