收藏 分销(赏)

职工信息管理系统C语言课程设计+源代码.doc

上传人:精**** 文档编号:1282859 上传时间:2024-04-20 格式:DOC 页数:27 大小:561.04KB
下载 相关 举报
职工信息管理系统C语言课程设计+源代码.doc_第1页
第1页 / 共27页
职工信息管理系统C语言课程设计+源代码.doc_第2页
第2页 / 共27页
职工信息管理系统C语言课程设计+源代码.doc_第3页
第3页 / 共27页
职工信息管理系统C语言课程设计+源代码.doc_第4页
第4页 / 共27页
职工信息管理系统C语言课程设计+源代码.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、课程设计报告(本科)课程:高级语言课程设计学号:姓名:班级:教师:时间:计算机科学与技术系设计名称:职工信息管理系统设计内容、目的与要求:目的:要求熟练掌握C语言的基本知识和编辑技能。基本掌握结构化程序设计的基本思路和方法。通过编写学生的C语言职工信息管理系统,便于对职工的信息进行管理。通过对职工C语言信息管理系统设计,训练综合运用函数的自定义,数组,结构体等,并提高程序设计的能力。要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。3

2、、浏览功能:完成对全部职工信息的显示。4、查找功能:完成按职工的职工号查询职工的相关信息,并显示。 完成按职工的学历查询职工的相关信息,并显示。 完成按职工的电话号码查询职工的相关信息,并显示。5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。 通过输入职工号完成对该名职工的信息进行删除。6、添加功能:完成添加新职工的信息的任务。7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。 通过输入职工号完成对该名职工的信息进行修改。8、退出职工信息管理系统。计划与进度安排:2012年12月8日至2012年12月15日 仔细看数据库相关知识,通过上网查资料找思路。2012年12月

3、16日至2012年12月20日 完成设计思路并作出草稿,把主函数和各调用函数模块编出来。2012年12月21日至2013年1月1日 逐步实现各模块的功能化,把整个程序大体功能都实现。2013年1月2日至2013年1月6日 修改并完善各功能,写好电子实验报告,并准备提交验收。设计过程、步骤(可加页):一功能结构职工信息管理系统开始1按职工号查询2按学历查询3按号码查询2按职工姓名删除1按职工号删除2按职工姓名修改1按职工号修改菜单根据菜单输入的值选择程序1录入职工信息2浏览职工信息3查询职工信息5添加职工信息4删除职工信息6修改职工信息7退出二、设计说明1.这个程序要用到结构体.struct e

4、mployee;2.函数的声明和调用:void menu(); /菜单函数 void input(); / 录入函数 void save(int m); /保存文件函数 void display(); /浏览函数 void del(); / 删除函数 void del_name(); /按姓名删除函数 void del_num(); /按职工号删除函数 void add(); /添加函数 void search(); /查询函数 void search_num(); /按职工号码查询函数 void search_xueli(); /按学历查询函数 void search_tel(); /按号码

5、查询函数 void modify(); / 修改函数 void modify_num(); /按员工号修改函数 void modify_name(); /按姓名修改函数3.选择功能,用到了do.while语句和switch,do.while是进行循环的,switch是用来选择的do if(n=1&n=7) flag=1; break; else flag=0; printf(您输入有误,请重新选择!); while(flag=0);switch(n) case 1:printf( 输入职工信息);printf(n);input();break; case 2:printf( 浏览职工信息);p

6、rintf(n);display();break; case 3:printf( 查询职工信息);printf(n);search();break; case 4:printf( 删除职工信息);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.定义的函数完成功能的实现:录入职工信息,浏览职工信息,查询职工信息,修改职工信息,添加职

7、工信息,删除职工信息。5.执行程序。结果与分析(可以加页):功能上有对职工信息的增加,删除,浏览,查询,修改等简单的功能.使用说明及运行实例1.运行程序,进入职工信息管理系统的主菜单:图1:进入主菜单界2.输入数字“1”进行录入职工信息: 图2:录入职工信息3.输入“y”返回主菜单(界面同图1)。4.输入“2”浏览职工信息:图3:浏览职工信息5.输入“y”后继续,输入“3”进行查询职工信息:图4:按职工号查询职工信息5:按学历查询职工信息图6:按电话号码查询职工信息6.进入主菜单,输入“4”进行删除职工信息:图7:按姓名删除职工信息图8:按职工号删除职工信息7.进入主菜单输入“5”进行添加职工

8、信息:图9:添加职工信息8.进入主菜单输入“6”进行修改职工信息:图10:按姓名修改职工信息图11:按职工号修改职工信息9.进入主菜单输入”7”退出职工信息管理系统: 图12:退出系统优点是:基本实现了程序的多功能,对与查询职工信息提供了三种方法,对与修改和删除职工信息提供了两种方法,功能多种多样。旗帜变量的使用也是优点之一;这个程序用到了的结构体,整个程序简单,易懂。缺点是:保存职工信息有限,程序段比较臃长。设计体会与建议: 通过这次的课程设计,我更加了解C语言,学会更好的使用C语言函数调用和结构体等,把学过的知识运用于实践中,而不仅仅停留于对课本的单纯理解;这次设计也让我知道我懂的太少,要

9、学习的东西还有很多。想完成一项功能就要用很复杂的语句去实现,所以整个程序变的很长,复杂,但是结构体,数组,指针等的灵活运用又可使程序变的易懂。另外,团队的合作也是成功的一部分!在编写代码时一开始没有运用有意义的函数名和变量,结果找起来和修改好麻烦,也使别人看不懂。在整个课程设计中,我认为最重要的就是耐心和细心。细心,就是在编写过程中注意拼写,仔细编写程序;耐心,就是程序编译中出现很多错误的时候能够耐心去修改,只有这样,才能很好的完成程序。虽然在整个过程中出现了不少错误,但最终还是圆满完成了,此次程序设计的经历让我学到了太多,以前好多不懂的也都理解了。也学会了作为大学生我们也应该学会不仅从课堂上

10、学习知识,还应该学会自学。 附录:#include /标准输入输出函数库#include /字符串函数库#includestruct employee int num; /职工号 char name20; /姓名 char sex; /性别 int age; /年龄 char xueli30; /学历 int wage; /工资 char addr30; /家庭住址 char tel20; /联系电话employee100; /定义一个结构体int main() /函数主体 void menu(); /菜单函数 void input(); / 录入函数 void save(int m); /保

11、存文件函数 void display(); /浏览函数 void del(); / 删除函数 void del_name(); /按姓名删除函数 void del_num(); /按职工号删除函数 void add(); /添加函数 void search(); /查询函数 void search_num(); /按职工号码查询函数 void search_xueli(); /按学历查询函数 void search_tel(); /按号码查询函数 void modify(); / 修改函数 void modify_num(); /按员工号修改函数 void modify_name(); /按姓

12、名修改函数 int n,flag; char a; menu(); printf(请选择你需要操作的步骤(1-7):n); scanf(%d,&n); do if(n=1&n=7) flag=1; break; else flag=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( 查询职工信

13、息n);printf(n);search();break; case 4:printf( 删除职工信息n);printf(n);del();break; case 5:printf( 添加职工信息n);printf(n);add();break; case 6:printf( 修改职工信息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

14、); /清屏 menu(); /调用菜单函数 printf(请再次选择你需要操作的步骤(1-7):n); scanf(%d,&n); printf(n); else exit(0); 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(n); pr

15、intf(n);void input() /录入函数 int i,m; printf(请输入需要创建信息的职工人数(1-100):n); scanf(%d,&m); for (i=0;im;i+) printf(请输入职工号: ); scanf(%d,&employeei.num); printf(请输入姓名: ); scanf(%s,employeei.name); getchar(); printf(请输入性别(f-女 m-男): ); scanf(%c,&employeei.sex); printf(请输入年龄: ); scanf(%d,&employeei.age); printf(请

16、输入学历: ); scanf(%s,employeei.xueli); printf(请输入工资: ); scanf(%d,&employeei.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)=NULL) printf (cannot op

17、en filen); exit(0); for (i=0;im;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,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&employeei,sizeof(struct

18、 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=1&t=3) flag=1; break; else flag=0; printf(您输入有误,请重新选择!); while(flag=0); while(flag=1) switch(t) case 1:printf(按职工号删除n);del_

19、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(); /调用浏览函数 printf(n); printf(请输入要删除的职工的姓名:n); scanf(%s,name); for(flag=1,i=0;flag&im;i+) if(strcmp(employeei.nam

20、e,name)=0) printf(n已找到此人,原始记录为:n); printf( 职工号 姓名 性别 年龄 学历 工资 住址 电话 n); printf( %d %s %c %d %s %d %s %sn,employeei.num,employeei.name,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+) strcp

21、y(employeej.name,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

22、.tel,employeej+1.tel);/把下一员工的信息复制到上一个员工信息的位置中去 flag=0; if(!flag) /flag取逻辑反,及flag=0 m=m-1; else printf(n对不起,查无此人!n); printf(n 浏览删除后的所有职工信息:n); save(m); /调用保存函数 display(); /调用浏览函数 printf(n不在删除请按0, 返回删除菜单请按1,继续按姓名删除请按2n); scanf(%d,&t); switch(t) case 0:main();break; case 1:del();break; case 2:break; de

23、fault :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+) if(employeei.num=num) printf(n已找到此人,原始记录为:n); printf( 职工号 姓名 性别 年龄 学历 工资 住址 电话 n); printf( %d %s %c %

24、d %s %d %s %sn,employeei.num,employeei.name,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.name,employeej+1.name);/strcpy(str1,str2)把str2指向的字符串复制到str1中去 employeej.num=em

25、ployeej+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.tel);/把下一员工的信息复制到上一个员工信息的位置中去 flag=0; if(!flag) /flag取逻辑反,及flag=0 m=m-1;

26、else printf(n对不起,查无此人!n); printf(n 浏览删除后的所有职工信息:n); save(m); /调用保存函数 display(); /调用浏览函数 printf(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

27、原来的职工信息:n); display(); printf(n); fp=fopen(emploee_list.txt,a); printf(请输入想增加的职工数:n); scanf(%d,&n); for (i=m;i=1&t=4) flag=1; break; else flag=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

28、:printf(按电话号码查询n);search_tel();break; case 4:main();break; default:break; 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); printf( %d %s %c %d %s %d %s %

29、sn,employeei.num,employeei.name,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); scanf(%d,&t); switch(t) case 0:main();break; case 1:search();break; case 2: break; default:b

30、reak; void search_xueli() /按职工号码查询函数 char xueli30; int i,t,n=0; int m=load(); printf(请输入要查找的学历:n); scanf(%s,xueli); for(i=0;im;i+) if(strcmp(employeei.xueli,xueli)=0) printf(n已找到,其记录为:n); printf( 职工号 姓名 性别 年龄 学历 工资 住址 电话 n); printf( %d %s %c %d %s %d %s %sn,employeei.num,employeei.name,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,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服