1、职工信息管理系统C语言课程设计+源代码 课程设计报告 (本科) 课程: 高级语言课程设计 学号: 姓名: 班级: 教师: 时间: 计算机科学与技术系 设计名称: 职工信息管理系统设计内容、目的与要求: 语言的基本知识和编辑技能。基本掌握结构化程序C目的:要求熟练掌握语言职工信息管理系统,便于对职C设计的基本思路和方法。通过编写学生的语言信息管理系统设计,训练综合运用函数C工的信息进行管理。通过对职工 的自定义,数组,结构体等,并提高程序设计的能力。 要求:设计一个职工信息管理系统,使之能提供以下功能:调用界面和各个功能的操作界面应,1、应提供一个界面来调用各个功能! 尽可能清晰美观、输入功能:
2、职工信息录入(职工信息用文件保存),可以一次完成若2 干条记录的输入。 :完成对全部职工信息的显示。3、浏览功能 :完成按职工的职工号查询职工的相关信息,并显示。4、查找功能 完成按职工的学历查询职工的相关信息,并显示。 完成按职工的电话号码查询职工的相关信息,并显示。 :通过输入职工的姓名完成对该名职工的信息进行删除。5、删除功能 通过输入职工号完成对该名职工的信息进行删除。 :完成添加新职工的信息的任务。6、添加功能 通过输入职工的姓名完成对该名职工的信息进行修改。7、修改功能: 通过输入职工号完成对该名职工的信息进行修改。 、退出职工信息管理系统8 。 计划与进度安排: 通过上网查仔细看
3、数据库相关知识,日 2012年12月152012年12月8日至 资料找思路。把主函数 完成设计思路并作出草稿,月20日20122012年12月16日至年12 和各调用函数模块编出来。把整个程逐步实现各模块的功能化,日 2013年1月1日至年201212月21 序大体功能都实现。写好电子实验报修改并完善各功能, 1日至2013年月6日212013年月 并准备提交验收。告, 设计过程、步骤(可加页): 一功能结构 1 统管理系职工信息 开始 菜单择选入的值根据菜单输 序程7 6 5 4 3 1 2 修改添加查询删除录入浏览退出 职工职工职工职工职工职工 信息信息信息 信息 信息 信息 221213
4、1按按按按按按按职职号职职职学工工码历工工工姓查查号号姓号名查询删修询 名修询除改 删 除 改 二、设计说明. 这个程序要用到结构体1. ;struct employee 函数的声明和调用:2. 菜单函数 / void menu(); 录入函数 void input(); / 2 保存文件函数 / 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(); 是进行循环的,do.while语句和switch,3.选择功能,用到了do.while 是用来选择的switchdo if(n=1&n=7) flag=1; break; else flag=0; !); ,请重新选择 牰湩晴尨您输入有误 while(
6、flag=0); switch(n) );printf();input();break; 输入职工信息case 1:printf( );printf();display();break; 浏览职工信息case 2:printf( );printf();search();break; 查询职工信息 case 3:printf( );printf();del();break; 删除职工信息 case 4:printf( );printf();add();break; 添加职工信息case 5:printf( );printf();modify();break; 修改职工信息 case 6:prin
7、tf( case 7:exit(0);break; default :break; 定义的函数完成功能的实现:录入职工信息,浏览职工信息,查询职工信4. 息,修改职工信息,添加职工信息,删除职工信息。 执行程序。5. 3 :结果与分析(可以加页) . 功能上有对职工信息的增加,删除,浏览,查询,修改等简单的功能 使用说明及运行实例:单的主菜统职工信息管理系入程1.运行序,进 图1:进入主菜单界 :”进行录入职工信息2.输入数字“1 :录入职工信息图2 。y3.输入“”返回主菜单(界面同图1):职浏2入4.输“”览工息信 4 3:浏览职工信息图 3输入“y”后继续,输入“”进行查询职工信息:5.
8、 :按职工号查询职工信息图4 5 :按学历查询职工信息5 :按电话号码查询职工信息图6:信息除进行删职工”输主6.进入菜单,入“4 7图:按姓名删除职工信息 :按职工号删除职工信息图8:职添进5入单主进7.入菜输“”行加工息信 6 :添加职工信息图9:工信息”进行修改职6单进8.入主菜输入“ :按姓名修改职工信息10图 :按职工号修改职工信息图11 :息工出”输菜入9.进主单入7退职信管统理系 7 退出系统图12:优点是:基本实现了程序的多功能,对与查询职工信息提供了三种方法,对与修改和删除职工信息提供了两种方法,功能多种多样。旗帜变量的使用也 是优点之一;这个程序用到了的结构体,整个程序简单
9、,易懂。 缺点是:保存职工信息有限,程序段比较臃长。 设计体会与建议: 语言函数调语言,学会更好的使用C通过这次的课程设计,我更加了解C用和结构体等,把学过的知识运用于实践中,而不仅仅停留于对课本的单纯理要学习的东西还有很多。想完成一项功能解;这次设计也让我知道我懂的太少,就要用很复杂的语句去实现,所以整个程序变的很长,复杂,但是结构体,数组,指针等的灵活运用又可使程序变的易懂。另外,团队的合作也是成功的一 部分!结果找起来和修改,在编写代码时一开始没有运用有意义的函数名和变量我认为最重要的就是耐心和细心。,也使别人看不懂。在整个课程设计中,好麻烦细心,就是在编写过程中注意拼写,仔细编写程序;
10、耐心,就是程序编译中出 现很多错误的时候能够耐心去修改,只有这样,才能很好的完成程序。虽然在整个过程中出现了不少错误,但最终还是圆满完成了,此次程序设以前好多不懂的也都理解了。也学会了作为大学生我,计的经历让我学到了太多 们也应该学会不仅从课堂上学习知识,还应该学会自学。 8 附录: #include /标准输入输出函数库 #include /字符串函数库 #include struct employee int num; /职工号 姓名 / char name20; 性别 / char sex; 年龄 / int age; 学历 / char xueli30; 工资 / int wage;
11、家庭住址 / char addr30; 联系电话 / char tel20; 定义一个结构体 / employee100; /函数主体 int main() /菜单函数 void menu(); / 录入函数 void input(); /保存文件函数 void save(int m); / 浏览函数 void display(); 删除函数 / void del(); /按姓名删除函数 void del_name(); 按职工号删除函数 / void del_num(); 添加函数 / void add(); 查询函数 / void search(); /按职工号码查询函数 void sea
12、rch_num(); /按学历查询函数 void search_xueli(); /按号码查询函数 void search_tel(); 修改函数 / void modify(); 按员工号修改函数 / void modify_num(); 按姓名修改函数/ void modify_name(); int n,flag; char a; menu(); (1-7):n); 请选择你需要操作的步骤牰湩晴尨 scanf(%d,&n); do 9 if(n=1&n=7) flag=1; break; else flag=0; 牰湩晴尨您输入有误,请重新选择!); while(flag=0); whi
13、le(flag=1) switch(n) case 1:printf( 输入职工信息 n);printf();input();break; 息览职工信 浏 case 2:printf( n);printf();display();break; 信息职 查 询工 case 3:printf( n);printf();search();break; 职删除工 case 4:printf( 信息 n);printf();del();break; 信息职 添 case 5:printf( 加工 n);printf();add();break; 改 信职工息修 6:printf( case n);pri
14、ntf();modify();break; case 7:exit(0);break; default :break; getchar(); printf(); (y or n):n); 牰湩晴尨是否继续进行scanf(%c,&a); if(a=y) flag=1; /清屏 system(cls); menu(); 调用菜单函数/ (1-7):n); 请再次选择你需要操作的步骤牰湩晴尨scanf(%d,&n); printf(); 10 else exit(0); void menu() /菜单函数 printf( *欢迎进入职工信息管理系统*n); printf( 1.录入职工信息); pr
15、intf( 2.浏览职工信息n); printf( 3.查询职工信息); printf( 4.删除职工信息n); printf( 5.添加职工信息); printf( 6.修改职工信息n); printf( 7.退出n); printf( *谢谢使用*n); printf(); printf(); void input() /录入函数 int i,m; 牰湩晴尨请输入需要创建信息的职工人数(1-100):n); scanf(%d,&m); for (i=0;im;i+) 牰湩晴尨请输入职工号: ); scanf(%d,&employeei.num); 牰湩晴尨请输入姓名: ); scanf(%
16、s,employeei.name); getchar(); 牰湩晴尨请输入性别(f-女 m-男): ); scanf(%c,&employeei.sex); 牰湩晴尨请输入年龄: ); scanf(%d,&employeei.age); 牰湩晴尨请输入学历: ); scanf(%s,employeei.xueli); 牰湩晴尨请输入工资: ); scanf(%d,&employeei.wage); 牰湩晴尨请输入住址: ); scanf(%s,employeei.addr); 11 牰湩晴尨请输入电话: ); scanf(%s,employeei.tel); printf(); printf(
17、创建完毕!n); save(m); void 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+) /将内存中职工的信息输出到磁盘文件中去 if (fwrite(&employeei,sizeof(struct employee),1,fp)!=1) printf(ile write errorn); fclose(fp); 导入函数 /int load() FILE*fp; int i=0
18、; if(fp=fopen(employee_list.txt,b)=NULL) printf (cannot open filen); exit(0); else do fread(&employeei,sizeof(struct employee),1,fp); i+; while(feof(fp)=0); fclose(fp); 12 return(i-1);/循环过程中跳出循环时i自动加一,所以要减去一 void display() /浏览函数 int i; int m=load(); printf( 职工号 姓名 性别 年龄 学历 工资 住址 电话 n); for(i=0;i=1&t
19、=3) flag=1; break; else flag=0; 牰湩晴尨您输入有误,请重新选择!); while(flag=0); while(flag=1) switch(t) 慣敳瀺楲瑮?按职工号删除n);del_num();break; 慣敳瀺楲瑮?按姓名删除n);del_name();break; case 3:main();break; 13 default:break; void del_name() /按姓名删除函数 int m=load(); int i,j,n,t,flag; char name20; printf( 原来的职工信息:n); display(); /调用浏览函
20、数 printf(); 牰湩晴尨请输入要删除的职工的姓名:n); scanf(%s,name); for(flag=1,i=0;flag&im;i+) if(strcmp(employeei.name,name)=0) printf(已找到此人,原始记录为:n); printf( 职工号 姓名 性别 年龄 学历 工资 住址 电话 n); printf( %d %s %c %d %s %d %s %sn,employeei.num,employeei.name,employeei.sex, employeei.age,employeei.xueli,employeei.wage,employee
21、i.addr,employeei.tel); printf(确实要删除此人信息请按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=employeej+1.num; employeej.sex=employeej+1.sex; employeej.age=employeej+1.age; strcpy(employeej.xueli,employeej+1.x
22、ueli); employeej.wage=employeej+1.wage; strcpy(employeej.addr,employeej+1.addr); strcpy(employeej.tel,employeej+1.tel);/把下一员工的信息复制到上一个员工信息的位置中去 flag=0; 14 if(!flag) /flag取逻辑反,及flag=0 m=m-1; else printf(对不起,查无此人!n); printf( 浏览删除后的所有职工信息:n); save(m); /调用保存函数 display(); /调用浏览函数 printf(不在删除请按0, 返回删除菜单请按
23、1,继续按姓名删除请按2n); scanf(%d,&t); switch(t) case 0:main();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); display(); /调用浏览函数 printf(); 牰湩晴尨请输入要删除的职工的职工号:n); scanf(%d,&num); for(flag=1,i=0;flag&im;i+) if(employ
24、eei.num=num) printf(已找到此人,原始记录为: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(确实要删除此人信息请按1,不删除请按0n); scanf(%d,&n); 15 if(n=1) for(j=i;jm-1;j+) st
25、rcpy(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.tel,employeej+1.tel);/把下一员工的信息复制到上一个员工信息的位置中去 flag=0; if(!flag) /flag取逻辑反,及flag=0 m=m-1; else printf(对不起,查无此人!n); printf( 浏览删除后的所有职工信息:n); save(m); /调用保存函数 display(); /调用浏览函数 printf(不在删除请按0,返回删除菜单请按1,继续按职工号删除请按2n); scanf(%d,&t);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1