(完整版)C语言程序设计-职工信息管理系统[1]

合集下载

C语言程序设计—职工信息管理系统设计.doc

C语言程序设计—职工信息管理系统设计.doc

C语言程序设计—职工信息管理系统设计1 南京工程学院程序设计课程设计报告职工信息管理系统设计专业学生姓名班级学号指导教师完成日期职工信息管理系统设计目录1课程设计目的(1)2课程设计内容(1)3设计流程图(1)4源程序清单(2)5小结(27)程序设计课程设计报告(2011)职工信息管理系统的设计1课程设计目的1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;2.进一步掌握和利用C语言进行程序设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会跳是一个较长程序的基本方法;6.学会利用流程图火N-S图表示算法;7.掌握书写长须设计开发文档的能力(书写课程设计报告)2 课程设计内容设计职工信息管理系统,要求职工心想包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

设计一职工信息管理系统,使之能提供以下功能:(6)系统以菜单方式工作(7)职工信息录入功能(职工信息用文件保存)--输入(8)职工信息浏览功能--输出(9)查询和排序功能(至少一种查询方式)--算法(10)按工资查询(11)按学历查询等(12)职工信息删除、修改功能(任选项)3设计流程图职工信息管理系统的设计程序设计课程设计报告(2011)(1)菜单函数void menu() /*菜单函数*/{printf(" ☆☆☆计算机科学与技术软件技术☆☆☆\n");printf("\n");printf(" ∮1010704422 杨婷婷∮\n");printf("\n");printf(" ******************职工信息管理****************\n");printf(" 1.录入职工信息");printf(" 2.浏览职工信息\n");printf(" 3.查询职工信息");printf(" 4.删除职工信息\n");printf(" 5.添加职工信息");printf(" 6.修改职工信息\n");printf(" 7.退出\n");printf(" ********************谢谢使用******************\n");printf("\n");printf("\n");}(2)录入职工信息void append(){if((fp=fopen("worker.xls","a"))==NULL){printf("\n不能打开该文件!");exit();}printf("\n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)\n"); scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one. age,one.record,one.positio n,one.wanges,one.tel,one.addr);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n ",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);fclose(fp);}(3)查询职工信息数据查找共分为职工号、姓名等方式查找void search(){int l;printf("\t\t\t\t*姓名查找按:1*\n");printf("\t\t\t\t*学历查找按:2*\n");printf("\t\t\t\t*职工号查按:3*\n");scanf("%d",&l);if(l>0&&l{switch(l) {。

c语言职工信息管理系统

c语言职工信息管理系统

目录一、课程设计目的 (3)二、设计题目分析 (3)2.1题目简介 (3)2.2设计要求 (3)三、课程设计内容 (3)3.1总体设计 (3)3.2详细设计 (4)3.3调试与测试 (12)四、设计心得与总结: (13)五、附录(完整源程序清单) (14)一、课程设计目的通过亲自设计程序,可以令我们熟悉c语言操作,更熟练的掌握c语句。

初步体会编程的过程,为将来的程序深入学习打下基础和培养兴趣。

二、设计题目分析2.1 题目简介可以向文件中写入、删除、添加职工信息,也可以从文件中导出来浏览2.2 设计要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计职工信息管理系统,使之能提供以下功能:系统以菜单方式工作。

职工信息录入功能(职工信息用文件保存)--输入职工信息浏览功能--输出查询和排序功能:(至少一种查询方式) --算法按职工号查询按学历查询等职工信息删除、添加功能三、课程设计内容3.2 详细设计:1、主函数:main()显示系统工作菜单,罗列该系统所有功能。

先声明所有将会调用到的函数名。

再运用选择函数switch即可根据使用者所输入的功能代号进入对应的功能程序。

亮点:定义一个全局指针变量*p和全局变量a。

其中a表示当前系统中职工人数,p指向a的地址,追踪人数变化,这样在添加或者删除导致人数变化后,浏览函数display()能够正确显示出当前人数的职工信息。

宏定义define N指定首次输入的职工人数,可根据不同需要随时更改。

3、保存函数:void save(int m)定义文件指针fp,用fopen"只写"打开指定在D盘的“d://bbb.txt”文本文件。

首先用if语句判断文件是否打开成功,若fopen返回值不为0,则可继续下面操作。

用for循环通过fprintf语句将结构数组em中的内容写入保存在D盘的文本文件里面。

形参m指需要写入文件的职工人数。

C语言课程设计职工管理系统

C语言课程设计职工管理系统

洛阳理工学院课程设计说明书课程名称C语言程序设计设计课题职工管理系统专业计算机科学与技术班级B140501学号姓名完成日期2015-7-1课程设计任务书设计题目:职工信息管理系统设计内容与要求:1.1问题描述对职工信息进行管理,职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

1.2基本要求(1) 系统以菜单方式工作(2) 职工信息录入功能(职工信息用文件保存) 。

(3) 输出职工信息、浏览职工信息功能。

(4) 查询和排序功能:(至少一种查询方式) ,如按工资查询、按学历查询等。

(5) 职工信息删除、修改功能(任选项)。

指导教师:_______________年月日课程设计评语成绩:指导教师:_______________年月日目录1.设计概述2.总体设计3.功能模块图3.1录入员工数据3.2输出员工数据3.3查找员工数据3.4修改员工数据4.测试5.设计总结6.源代码概述设计的目标是建立一个可以录入,浏览,查找以及修改员工所有数据的职工管理同,在不知道有多少职工的情况下我采用了动态链表的方式来使员工的信息录入的更加简单方便。

实现浏览员工信息的过程中我选择了用循环的方式输出每一个节点信息,同样用循环的方法通过每一个节点中的工号所要查找的工号的对比,实现了员工数据的查找,然后将printf改成scanf从而实现了修改员工信息。

这五个功能均在一个不停循环的系统中,每完成一种操作就会返回主界面重新选择要进行的操作,实现退出系统的功能时用break直接跳出五个功能的循环,从而结束整个信息管理系统。

录入员工数据输出员工数据查找员工数据修改员工数据测试录入员工数据输出员工数据查找员工数据修改员工数据退出系统设计总结在程序还没有开始写之前,我一直在想用什么方式来写这个程序,使用一直使用的循环还是用刚学的自己并不熟悉的链表,因为用循环的写法许久没有头绪,最后我选择了写起来难度高但是代码比较简洁的链表。

C语言课程设计报告:职工信息管理系统程序设计

C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。

(2)职工信息录入功能(职工信息用文件保存)。

(3)职工浏览功能。

(4)职工信息查询功能,查询方式可按学历查询或者工号查询。

(5)职工信息的删除、修改功能(可选项)。

2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。

3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。

流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。

显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。

流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");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();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>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:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。

《c语言程序设计报告》-职工信息管理系统

《c语言程序设计报告》-职工信息管理系统

《c语言程序设计报告》一、设计题目:职工信息管理系统二、设计任务:职工信息包括:职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之难提供以下功能:(1)系统以菜单方式工作。

任一功能能执行完毕后均要求返回主菜单。

(2)职工信息录入功能——输入。

(3)职工信息浏览功能——输出。

(4)查询或排序功能(至少一种查询方式)——算法(5)按工资查询(6)按学历查询等(7)职工信息删除、修改功能(任选项)(8)退出:包括返回主界面和退出系统等功能。

3.课程设计要求:模块化程序设计上机调试通过较好的完成程序的主体设计,界面友好,功能齐全:程序思路清晰易懂,充分利用所学工具实现各项操作。

4、应用程序的模块示意图及流程图流程图5、程序设计与调试的体会:在这二周里,我觉得我学到了书上没有的知识。

刚开始盒到《C语言程序设计》课程设计任务与指导书时发现该程序特别难。

没有一点头绪,根本不知道从那里开始。

之后仔细看了设计方法及步骤时总算有了一点发现。

在调试的过程中有很多的语法错误,自己根本看不懂,即使这样我也没有放弃还是努力寻找错误,最终还是被我找到了并改正。

最难的是函数的调用,程序大体上编译成功,但是在调用函数时总是无法连接。

这是我编程序的最大难点。

程序编译完全成功后,我发现了C语言的强大的功能,C语言语言简洁、紧凑、使用方便、灵活、远算符丰富、数据结构丰富、具有良好的结构化,符合现代编程风格。

语法限制不太严格,程序设计自由度大。

程序设计是一门实践性很强的课程不可能只靠听课和看书就掌握C语言程序设计,应当十分重视自己的动手写程序和上机远行程序。

6、主要故障;(1)、在一个函数调用结束完后回不到主菜单排除方法:在该函数调用后加上bioskey()函数(2)、缺少函数的声名排除方法:在主程序里声名调用函数(3)、在写主程序的时候发现光标定位不准确,排除方法:在老师的指点下完成了这项7、源程序:#include <graphics.h>#include <conio.h>#include <stdio.h>#include <ctype.h>struct zhigong{int zhigonghao;char xingming[50];char xingbie[2];long birthday;char xueli[50]; /*定义结构体*/char zhiwu[50];long gongzi;char address[50];long phone;} workers[30];int n;main(){void input();void browse();void sortwage();void sortxl(); /*函数声名*/void del();void zhigonghao();int k;textcolor(RED); /*字体颜色*/textbackground(GREEN); /*背景颜色*/clrscr();gotoxy(1,10);{do{clrscr();printf("\n\t\t ************************************ ");printf("\n\t\t * welcome to coming * ");printf("\n\t\t ************************************ ");printf("\n\t\t * (1) input information * \n");printf("\n\t\t * (2) print information *\n");printf("\n\t\t * (3) search information *\n");printf("\n\t\t * (4) sort-wage *\n");printf("\n\t\t * (5) sort-xl *\n");printf("\n\t\t * (6) delete information *\n");printf("\n\t\t * (0) exit *\n");gotoxy(77,50);printf("\n\t\t please choose the service: (0~6)");scanf("%d",&k);switch(k){case 1:input();break;case 2:browse();bioskey(0);break;case 3:zhigonghao();bioskey(0);break;case 4:sortwage();bioskey(0);break;case 5:sortxl();bioskey(0);break;case 6:del();bioskey(0);break;case 0:exit(0);} }while(1);}}void input() /*函数调用*/{ char c;do{clrscr();gotoxy(91,27);printf("\nnumber:");scanf("%d",&workers[n].zhigonghao);gotoxy(94,25);printf("\nname:");scanf("%s",workers[n].xingming);gotoxy(97,24);printf("\nsex:");scanf("%s",workers[n].xingbie);gotoxy(100,29);printf("\nbirthday:");scanf("%ld",&workers[n].birthday);gotoxy(103,26);printf("\nxueli:");scanf("%s",workers[n].xueli);gotoxy(106,28);printf("\nzhiwu:");scanf("%s",workers[n].zhiwu);gotoxy(109,26);printf("\nwage:");scanf("%ld",&workers[n].gongzi);gotoxy(112,28);printf("\naddress:");scanf("%s",workers[n].address);gotoxy(115,26);printf("\nphone:");scanf("%ld",&workers[n].phone);n=n+1;gotoxy(25,20);printf(" you have added %d work,go on? (Y/N)\n",n);do{gotoxy(60,20);scanf("%c",&c);if (c!='y'&&c!='Y'&&c!='N'&&c!='n'){gotoxy(64,20);printf(" ");gotoxy(1,21);continue;}else break;}while (1);}while (c=='Y'||c=='y');}void browse() /*输出函数调用*/{ int i;clrscr();gotoxy(10,1);printf("\n\t***********browse all workers'information************");printf("\n\n");printf("********************************************************************************");printf("zhigonghao xingming xingbie birthday xueli zhiwu gongzi adress phone");printf("********************************************************************** **********");for(i=0;i<n;i++){ printf("%d,%13s,%8s,%13ld,%6s, %5s, %3ld, %6s, %ld\n",workers[i].zhigon ghao,workers[i].xingming,workers[i].xingbie,workers[i].birthday,workers[i].xueli,workers[i].zh iwu,workers[i].gongzi,workers[i].address,workers[i].phone);}}void zhigonghao() /*函数调用————职工号查询*/{int i,zgh;char c;do{ clrscr();gotoxy(1,5);printf("\t\t\t*****************************\n");printf("\t\t\t welcome to coming\n");printf("\t\t\t*****************************\n");printf("\t\t\tinput the zgh:");scanf("%d",&zgh);for (i=0;i<=n;i++){if (workers[i].zhigonghao==zgh){clrscr();printf("number:%d\n",workers[i].zhigonghao);printf("name:%s\n",workers[i].xingming);printf("sex:%s\n",workers[i].xingbie);printf("birthday:%ld\n",workers[i].birthday);printf("xueli:%s\n",workers[i].xueli); /*输出查找出的职工*/ printf("zhiwu:%s\n",workers[i].zhiwu);printf("wage:%ld\n",workers[i].gongzi);printf("address:%s\n",workers[i].address);printf("phone:%ld\n",workers[i].phone);getchar();gotoxy(1,20);printf("\t\t return the mune? (Y/N)\n");break;}else{clrscr();gotoxy(1,5);printf("\n\t\t****************************************");printf("\n\t\t** welcome to coming **");printf("\n\t\t****************************************");gotoxy(25,16);printf("no information");gotoxy(3,20);printf("\t\treturn the mune? (Y/N)\n");}}do{gotoxy(45,20);scanf("%c",&c);if (c!='y'&&c!='Y'&&c!='N'&&c!='n'){gotoxy(45,20);printf(" ");gotoxy(1,21);continue;}else break;}while(1);}while(c=='N'||c=='n');}void sortwage( ) /*函数调用————工资查询*/{int i,gongzi,p=0;char c;{ clrscr();gotoxy(1,5);printf("\t\t\t*****************************\n");printf("\t\t\t welcome to coming\n");printf("\t\t\t*****************************\n");printf("\t\t\tinput the gongzi:");scanf("%d",&gongzi);printf("********************************************************************** **********");printf("zhigonghao xingming xingbie birthday xueli zhiwu gongzi adress phone");printf("********************************************************************** **********");for (i=0;i<n;i++)if (workers[i].gongzi==gongzi){printf("%d,%13s,%8s,%13ld,%6s, %5s, %3ld, %6s, %ld\n",workers[i].zhigonghao,wor kers[i].xingming,workers[i].xingbie,workers[i].birthday,workers[i].xueli,workers[i].zhiwu,wor kers[i].gongzi,workers[i].address,workers[i].phone);p=p+1;}if(p==0)printf("\t\t\tno information");}}void sortxl( ) /*函数调用————学历查询*/{int i,p=0;char c,xueli[30];{ clrscr( );gotoxy(1,5);printf("\t\t\t******************************\n");printf("\t\t\t welcome to coming \n");printf("\t\t\t******************************\n");printf("\t\t\tinput the xueli:");scanf("%s",xueli);printf("********************************************************************** **********");printf("zhigonghao xingming xingbie birthday xueli zhiwu gongzi adress phone");printf("********************************************************************** **********");for (i=0;i<n;i++)if (strcmp(workers[i].xueli,xueli)==0){printf("%d,%13s,%8s,%13ld,%6s, %5s, %3ld, %6s, %ld\n",workers[i].zhigonghao,work ers[i].xingming,workers[i].xingbie,workers[i].birthday,workers[i].xueli,workers[i].zhiwu,worke rs[i].gongzi,workers[i].address,workers[i].phone);p=p+1;}if(p==0)printf("\t\t\tno information"); } }void del() /*函数调用————删除*/{int i,zhigonghao,j;char c;do{ clrscr();gotoxy(1,5);printf("\t\t\t******************************\n");printf("\t\t\t welcome to coming \n");printf("\t\t\t******************************\n");printf("\t\t\t input the zhigonghao:");scanf("%d",&zhigonghao);for (i=0;i<n;i++)if (workers[i].zhigonghao==zhigonghao){for(j=i;j<n;j++){workers[j].zhigonghao=workers[j+1].zhigonghao;strcpy(workers[j].xingming,workers[j+1].xingming);strcpy(workers[j].xingbie,workers[j+1].xingbie);workers[j].birthday=workers[j+1].birthday;strcpy(workers[j].xueli,workers[j+1].xueli);strcpy(workers[j].zhiwu,workers[j+1].zhiwu);workers[j].gongzi=workers[j+1].gongzi;strcpy(workers[j].address,workers[i+1].address);workers[j].phone=workers[j+1].phone;}n=n-1;getchar();printf("\n\n\n\n");printf("\t\t\tyou have deleted worker");gotoxy(1,20);printf("\t\t\t return the mune? (Y/N)\n");break;}else{clrscr();gotoxy(1,5);printf("\n\t\t****************************************");printf("\n\t\t** welcome to comging **");printf("\n\t\t****************************************");gotoxy(25,16);printf("no information");gotoxy(3,20);printf("\t\t\treturn the mune? (Y/N)\n");}do{gotoxy(45,20);scanf("%c",&c);if (c!='y'&&c!='Y'&&c!='N'&&c!='n'){gotoxy(45,20);printf(" ");gotoxy(1,21);continue;}else break;}while(1);}while(c=='N'||c=='n');}2005-6-12。

C语言课程设计职工信息管理系统设计

C语言课程设计职工信息管理系统设计

C语言课程设计职工信息管理系统设计The latest revision on November 22, 20201.设计目的在今天这个高速信息时代,许多繁杂的办公事务都由计算机代劳,例如职工信息管理等重复劳动越来越需要计算机来处理。

本系统就是为提高企业管理职工信息的效率而设计的,现在职工信息管理系统发挥无可取代的作用。

职工信息管理系统是一个可以用来进行职工工号、姓名等自然信息以及各项工资构成进行录入、查询、修改、删除、增加和排序浏览等操作的应用软件。

2.设计的总体思想本系统是用Visual C进行设计与开发,总体思想是结构化、模块化的程序设计。

由于主要实现的是管理系统的增、删、改、查和排序等功能,因此应用到程序设计中的基本控制结构,如循环和选择,还使用到C语言最具特色的语言成分——指针,高效地使用数组、字符串和结构体,采用经典的排序方法——冒泡法进行排序,并且包含对文件的读、写等基本操作。

3.功能模块描述职工信息管理系统是为企业进行职工信息管理提供辅助而设计的,需要为用户提供一个简单的人机界面以便操作,各功能模块如下。

1)登录模块:根据输入的登录密码判断是否允许该用户使用本系统,输入密码正确才能进入管理界面,管理职工信息。

2)创建模块:当第一次使用本系统时,根据提示输入职工的工号、姓名、性别、年龄、学历、职位、工资、电话和住址,可一次性输入多条职工的信息记录。

浏览模块:可以浏览经输入、修改、删除、添加、排序、读取后的职工信息。

3)查询模块:分为根据工号、姓名、电话、工资查询的四个具体需求,分别提示管理员要查询的职工信息的的工号、姓名、电话或工资。

4)修改模块:分为根据工号、姓名修改的两个具体需求,分别提示管理员要修改的职工信息的工号和姓名,如果有对应职工的信息记录存在,则逐项列出对应职工的信息。

5)删除模块:分为根据工号、姓名删除的两个具体需求,分别提示管理员要删除的职工信息的工号和姓名,如果有则删除此职工对应的信息记录。

C语言课程设计——职工信息管理系统设计

C语言课程设计——职工信息管理系统设计

1.设计目的在今天这个高速信息时代,许多繁杂的办公事务都由计算机代劳,例如职工信息管理等重复劳动越来越需要计算机来处理。

本系统就是为提高企业管理职工信息的效率而设计的,现在职工信息管理系统发挥无可取代的作用。

职工信息管理系统是一个可以用来进行职工工号、姓名等自然信息以及各项工资构成进行录入、查询、修改、删除、增加和排序浏览等操作的应用软件。

2.设计的总体思想本系统是用Visual C进行设计与开发,总体思想是结构化、模块化的程序设计。

由于主要实现的是管理系统的增、删、改、查和排序等功能,因此应用到程序设计中的基本控制结构,如循环和选择,还使用到C语言最具特色的语言成分——指针,高效地使用数组、字符串和结构体,采用经典的排序方法——冒泡法进行排序,并且包含对文件的读、写等基本操作。

3.功能模块描述职工信息管理系统是为企业进行职工信息管理提供辅助而设计的,需要为用户提供一个简单的人机界面以便操作,各功能模块如下。

1)登录模块:根据输入的登录密码判断是否允许该用户使用本系统,输入密码正确才能进入管理界面,管理职工信息。

2)创建模块:当第一次使用本系统时,根据提示输入职工的工号、姓名、性别、年龄、学历、职位、工资、电话和住址,可一次性输入多条职工的信息记录。

浏览模块:可以浏览经输入、修改、删除、添加、排序、读取后的职工信息。

3)查询模块:分为根据工号、姓名、电话、工资查询的四个具体需求,分别提示管理员要查询的职工信息的的工号、姓名、电话或工资。

4)修改模块:分为根据工号、姓名修改的两个具体需求,分别提示管理员要修改的职工信息的工号和姓名,如果有对应职工的信息记录存在,则逐项列出对应职工的信息。

5)删除模块:分为根据工号、姓名删除的两个具体需求,分别提示管理员要删除的职工信息的工号和姓名,如果有则删除此职工对应的信息记录。

6)添加模块:可在原有职工信息记录的基础上增加新的职工信息记录,并保存至磁盘中。

7)排序模块:分为根据姓名、年龄、工资排序的三个具体需求,分别提示管理员选择排序的方式。

(整理)C语言程序设计-职工信息管理系统.

(整理)C语言程序设计-职工信息管理系统.

C语言课程设计报告职工信息管理系统设计班级:0346502姓名:杨鸣学号:20081003456指导老师:谷老师职工信息管理系统一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。

(2)职工信息录入功能(职工信息用文件保存)。

(3)职工浏览功能。

(4)职工信息查询功能,查询方式可按学历查询或者工号查询。

(5)职工信息的删除、修改功能(可选项)。

二、具体要求1、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。

2、浏览功能:完成对全部职工信息的显示。

3、查找功能:①完成按职工的职工号查询职工的相关信息,并显示。

②完成按职工的学历查询职工的相关信息,并显示。

4、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。

5、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。

6、退出职工信息管理系统。

三、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。

确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的流程图来描述模块的详细过程。

确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。

四、写课程设计总结课程设计报告要求总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容等。

总设计方案一.系统的总体流程图图1.系统的总体流程图菜单开始根据菜单输入n 的值选择程序保存结束是否继续进行NY5 修改职工信息 2 浏览职工信息 3 查询职工信息 4 删除职工信息6 退出1 录入职工信息二. 为了方便使用结构此系统结构均为全局类型定义struct employee //定义一个职工信息的结构体//{int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];}em[100];三.各模块的功能及实现步骤1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。

职工信息管理系统C语言源代码

职工信息管理系统C语言源代码

#include <stdio.h>#include <windows.h>#include <string.h>#define N 100struct employee{int num;char name[20];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];}em[100]; /*定义一个结构体*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定义各函数*/void main(){menu();int n,flag;char a;do{ printf("请选择你需要操作的步骤(1--7):\n");scanf("%d",&n);if(n>=1 && n<=7){f lag=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(" ◆◆◆按职工号查询职工信息◆◆◆\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"); /*清屏*/menu(); /*调用菜单函数*/printf("请再次选择你需要操作的步骤(1--7):\n");scanf("%d",&n);printf("\n");}elseexit(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");printf("\n");}void input() /*录入函数*/{ int i,m;printf("请输入需要创建信息的职工人数(1--100):\n");scanf("%d",&m);for (i=0;i<m;i++){printf("请输入职工号:");scanf("%d",&em[i].num);printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女m--男): ");scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");}printf("\n创建完毕!\n");save(m);}void save(int m) /*保存文件函数*/{int i;FILE*fp;if ((fp=fopen("employee_list","wb"))==NULL){printf ("cannot open file\n");exit(0);}for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() /*导入函数*/{FILE*fp;int i=0;if((fp=fopen("employee_list","rb"))==NULL){printf ("cannot open file\n");exit(0);}else{do{fread(&em[i],sizeof(struct employee),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}void display() /*浏览函数*/{int i;int m=load();printf(" 职工号姓名性别年龄\n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/printf("\n %-8d%-6s%-6c%-6d\n",em[i].num,em[i].name,em[i].sex,em[i].age); printf("\n 学历工资住址电话\n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/printf("\n %-6s%-6d%-6s%-6s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel); }void del() /*删除函数*/{int m=load();int i,j,n,t,flag;char name[20];printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要删除的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf(" 职工号姓名性别年龄\n");printf("\n %-8d%-6s%-6c%-6d\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n 学历工资住址电话\n");printf("\n %-6s%-6d%-6s%-6s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf("\n确实要删除此人信息请按1,不删除请按0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++){strcpy(em[j].name,em[j+1].name);em[j].num=em[j+1].num;em[j].sex=em[j+1].sex;em[j].age=em[j+1].age;strcpy(em[j].xueli,em[j+1].xueli);em[j].wage=em[j+1].wage;strcpy(em[j].addr,em[j+1].addr);strcpy(em[j].tel,em[j+1].tel);}flag=0;}}}if(!flag)m=m-1;elseprintf("\n对不起,查无此人!\n");printf("\n 浏览删除后的所有职工信息:\n");save(m); /*调用保存函数*/display(); /*调用浏览函数*/printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t){case 1:del();break;case 0: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_list","a");printf("请输入想增加的职工数:\n");scanf("%d",&n);for (i=m;i<(m+n);i++){printf("\n 请输入新增加职工的信息:\n");printf("请输入职工号: ");scanf("%d",&em[i].num);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女m--男): ");scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");count=count+1;printf("已增加的人数:\n");printf("%d\n",count);}printf("\n添加完毕!\n");m=m+count;printf("\n浏览增加后的所有职工信息:\n"); printf("\n");save(m);display();fclose(fp);}void search()/*查询函数*/{int t,flag;do{ printf("\n按职工号查询请按1; 按学历查询请按2; 按电话号码查询请按3;进入主函数请按4\n");scanf("%d",&t);if(t>=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: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;i<m;i++)if(num==em[i].num){ printf("\n已找到此人,其记录为:\n");printf(" 职工号姓名性别年龄\n");printf("\n %-8d%-6s%-6c%-6d\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n 学历工资住址电话\n");printf("\n %-6s%-6d%-6s%-6s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询职工号请按2\n");scanf("%d",&t);switch(t){ case 1:search();break;case 2: break;default:break;}}void search_xueli(){ char xueli[30];int i,t;int m=load();printf("请输入要查找的学历:\n");scanf("%s",xueli);for(i=0;i<m;i++)if(strcmp(em[i].xueli,xueli)==0){printf ("\n已找到,其记录为:\n");printf(" 职工号姓名性别年龄\n");printf("\n %-8d%-6s%-6c%-6d\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n 学历工资住址电话\n");printf("\n %-6s%-6d%-6s%-6s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel); }if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询学历请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void search_tel(){ char tel[20];int i, t;printf("请输入要查找的电话号码:\n");scanf("%s",tel);for(i=0;i<m;i++)if(strcmp(tel,em[i].tel)==0){printf("\n已找到此人,其记录为:\n");printf(" 职工号姓名性别年龄\n");printf("\n %-8d%-6s%-6c%-6d\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n 学历工资住址电话\n");printf("\n %-6s%-6d%-6s%-6s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询电话号码请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void modify() /*修改函数*/{int num;char name[20];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];int b,c,i,n,t,flag;int m=load();printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf(" 职工号姓名性别年龄\n");printf("\n %-8d%-6s%-6c%-6d\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n 学历工资住址电话\n");printf("\n %-6s%-6d%-6s%-6s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf("\n确实要修改此人信息请按1 ; 不修改请按0\n");scanf("%d",&n);if(n==1){printf("\n需要进行修改的选项\n 1.职工号2.姓名3.性别4.年龄5.学历 6.工资7.住址8.电话\n");printf("请输入你想修改的那一项序号:\n");scanf("%d",&c);if(c>8||c<1)printf("\n选择错误,请重新选择!\n");}flag=0;}}if(flag==1)printf("\n对不起,查无此人!\n");do{switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/{case 1:printf("职工号改为: ");scanf("%d",&num);em[i-1].num=num;break;case 2:printf("姓名改为: ");scanf("%s",name);strcpy(em[i-1].name,name);break;case 3:printf("性别改为: ");getchar();scanf("%c",&sex);em[i-1].sex=sex;break;DP05b_205_215TC005 092-661解决方案case 4:printf("年龄改为: ");scanf("%d",&age);em[i-1].age=age;break;case 5:printf("学历改为: ");scanf("%s",xueli);strcpy(em[i-1].xueli,xueli);break;case 6:printf("工资改为: ");scanf("%d",wage);break;case 7:printf("住址改为: ");scanf("%s",addr);strcpy(em[i-1].addr,addr);break;case 8:printf("电话改为: ");scanf("%s",tel);strcpy(em[i-1].tel,tel);break;}printf("\n");printf("\n是否确定所修改的信息?\n 是请按1 ; 不,重新修改请按2: \n");scanf("%d",&b);}while(b==2);printf("\n浏览修改后的所有职工信息:\n");printf("\n");save(m);display();printf("\n继续修改请按1,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break; }} 雨滴穿石,不是靠蛮力,而是靠持之以恒。

c程序设计源程序—职工信息管理系统.doc

c程序设计源程序—职工信息管理系统.doc

c++程序设计源程序—职工信息管理系统1#include#include#include#define N 100 /*宏定义N*/struct clerk /*定义结构型clerk*/{char num[12];/*职工号*/char name[9];/*职工姓名*/char sex[3];/*职工性别*/char xl[11];/*职工学历*/char adr[60];/*职工住址*/char tell[13];/*职工电话号码*/int age; /*职工年龄*/int salary; /*职工工资*/}c[N];void menu()/*定义菜单函数并显示菜单*/{printf("\n");printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");printf("\t┃************************************************************┃\n");printf("\t┃************************************************************┃\n");printf("\t┃***************1.输入记录 2.浏览记录***************┃\n");printf("\t┃************** **************┃\n");printf("\t┃***************3.查询记录 4.添加记录***************┃\n");printf("\t┃************** **************┃\n");printf("\t┃***************5.删除记录 6.修改记录***************┃\n");printf("\t┃************** **************┃\n");printf("\t┃*************** 7.退出系统*****************┃\n");printf("\t┃************************************************************┃\n");printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"); }int enter(int n) /*录入职工信息*/{ int i;char judge;for(i=0;i{printf("开始输入记录!\n"); printf("职工号: ");scanf("%s",c[i].num); printf("姓名: ");scanf("%s",c[i].name); printf("性别: ");scanf("%s",c[i].sex); printf("学历: ");scanf("%s",c[i].xl);printf("住址: ");scanf("%s",c[i].adr); printf("电话: ");scanf("%s",c[i].tell); printf("年龄: ");scanf("%d",&c[i].age);printf("工资: ");scanf("%d",&c[i].salary);printf("\n");getchar();printf("是否继续输入(Y/N)?");/*是否继续输入数据*/ judge=getchar();if(judge=='Y'||judge=='y')continue;elseif(judge=='N'||judge=='n')break;}printf("输入成功,按任意键返回...");getchar();getchar();return i+1;}void display(int a) /*浏览职工信息*/{int i;printf("开始浏览记录!\n");printf(" 职工号姓名性别学历住址电话年龄工资\n"); for(i=0;i{printf("%-12s",c[i].num);printf("%-9s",c[i].name);printf("%-6s",c[i].sex);printf("%-6s",c[i].xl);printf("%-14s",c[i].adr);printf("%-13s",c[i].tell);printf("%-5d",c[i].age);printf("%-6d",c[i].salary);printf("\n");}printf("按任意键返回.......");getchar();getchar();}void locate(int a) /*查询职工信息*/{int choice,i,flag=0;char ch[11];printf("开始查询记录!\n");printf("请选择查找方式:(1.按学历 2.按职工号):"); scanf("%d",&choice); /*输入查找方式*/getchar();switch(choice){case 1:printf("请输入要查职工学历:");/*按职工学历查询*/ gets(ch);printf(" 职工号姓名性别学历住址电话年龄工资\n");for(i=0;i{if(strcmp(ch,c[i].xl)==0) /*比较两个字符串的大小*/{printf("%-12s",c[i].num);printf("%-9s",c[i].name);printf("%-6s",c[i].sex);printf("%-6s",c[i].xl);printf("%-14s",c[i].adr);printf("%-13s",c[i].tell);printf("%-5d",c[i].age);printf("%-6d",c[i].salary);printf("\n");flag=1;}}if(flag==0)printf("无此职工的相关信息!\n"); break;case 2:printf("请输入要查找的职工的职工号:"); /*按职工工号查询*/ gets(ch);printf(" 职工号姓名性别学历住址电话年龄工资\n");for(i=0;i{if(strcmp(ch,c[i].num)==0)/*比较两个字符串的大小*/{printf("%-12s",c[i].num);printf("%-9s",c[i].name);printf("%-6s",c[i].sex);printf("%-6s",c[i].xl);printf("%-14s",c[i].adr);printf("%-13s",c[i].tell);printf("%-5d",c[i].age);printf("%-6d",c[i].salary);printf("\n");flag=1;}}if(flag==0)printf("无此职工的相关信息!\n");break;default:printf("输入错误!");}printf("\n按任意键返回.......");getchar();}int add(int a,int *f) /*插入职工信息*/{int po,i;printf("请输入你在插入的位置(1-%d):",a+1); scanf("%d",&po);if(po>a+1){printf("输入位置有误,按任意键返回.......");return a;}else{printf("开始插入记录!\n"); for(i=a-1;i>=po-1;i--){strcpy(c[i+1].num,c[i].num); strcpy(c[i+1].name,c[i].name); strcpy(c[i+1].sex,c[i].sex); strcpy(c[i+1].xl,c[i].xl);strcpy(c[i+1].adr,c[i].adr); strcpy(c[i+1].tell,c[i].tell);c[i+1].age=c[i].age;c[i+1].salary=c[i].salary;} printf("请输入职工号: "); scanf("%s",c[po].num);getchar();printf("姓名: ");scanf("%s",c[po-1].name); printf("性别: ");scanf("%s",c[po-1].sex); printf("学历: ");scanf("%s",c[po-1].xl); printf("住址: ");scanf("%s",c[po-1].adr); printf("电话: ");scanf("%s",c[po-1].tell); printf("年龄: ");scanf("%d",&c[po-1].age); printf("工资: ");scanf("%d",&c[po-1].salary); printf("\n");*f=1;}if(* f==1){printf("添加成功,按任意键返回......."); getchar();getchar();return a+1;}else{printf("添加失败,按任意键返回......."); getchar();getchar();return a;}}int delet(int a,int *f) /*删除职工信息*/ {int i,po,flag=0;char nu[20];printf("开始删除记录!\n");printf("请输入要删除职工的工号:");/*按职工号删除职工信息*/ getchar(); scanf("%s",nu);/*输入职工号*/for(i=0;i{if(strcmp(nu,c[i].num)==0)/*比较两个字符串的大小*/。

C语言课程设计——职工信息管理系统设计

C语言课程设计——职工信息管理系统设计

1.设计目的在今天这个高速信息时代,许多繁杂的办公事务都由计算机代劳,例如职工信息管理等重复劳动越来越需要计算机来处理。

本系统就是为提高企业管理职工信息的效率而设计的,现在职工信息管理系统发挥无可取代的作用。

职工信息管理系统是一个可以用来进行职工工号、姓名等自然信息以及各项工资构成进行录入、查询、修改、删除、增加和排序浏览等操作的应用软件。

2.设计的总体思想本系统是用Visual C进行设计与开发,总体思想是结构化、模块化的程序设计。

由于主要实现的是管理系统的增、删、改、查和排序等功能,因此应用到程序设计中的基本控制结构,如循环和选择,还使用到C语言最具特色的语言成分——指针,高效地使用数组、字符串和结构体,采用经典的排序方法——冒泡法进行排序,并且包含对文件的读、写等基本操作。

3.功能模块描述职工信息管理系统是为企业进行职工信息管理提供辅助而设计的,需要为用户提供一个简单的人机界面以便操作,各功能模块如下。

1)登录模块:根据输入的登录密码判断是否允许该用户使用本系统,输入密码正确才能进入管理界面,管理职工信息。

2)创建模块:当第一次使用本系统时,根据提示输入职工的工号、姓名、性别、年龄、学历、职位、工资、电话和住址,可一次性输入多条职工的信息记录。

浏览模块:可以浏览经输入、修改、删除、添加、排序、读取后的职工信息。

3)查询模块:分为根据工号、姓名、电话、工资查询的四个具体需求,分别提示管理员要查询的职工信息的的工号、姓名、电话或工资。

4)修改模块:分为根据工号、姓名修改的两个具体需求,分别提示管理员要修改的职工信息的工号和姓名,如果有对应职工的信息记录存在,则逐项列出对应职工的信息。

5)删除模块:分为根据工号、姓名删除的两个具体需求,分别提示管理员要删除的职工信息的工号和姓名,如果有则删除此职工对应的信息记录。

6)添加模块:可在原有职工信息记录的基础上增加新的职工信息记录,并保存至磁盘中。

7)排序模块:分为根据姓名、年龄、工资排序的三个具体需求,分别提示管理员选择排序的方式。

自己用C语言做的职工信息管理系统

自己用C语言做的职工信息管理系统

这是主函数部分是个头文件#include <string.h>#include <malloc.h>#include <stdlib.h>#include <stdio.h>#define ALLMAX 100#include "zhigong.h"int main(){char key[100]="xxyyzz";char s[100];int count=0;while (true){if (count>2) return(0);printf("请输入登录口令:\n");gets(s)if(!strcmp(key,s)){printf("你是合法用户!\n");break;}else{printf("你是非法用户!\n");count++;}}DataType x;SLNode *head;int i,n;FILE *fp;ListInitiate(&head);printf("请输入职工人数n:\n");scanf("%d",&n);printf("请输入职工信息:姓名、性别、出生年、工作年、学历、职务、住址、电话\n"); for(i=0;i<n;i++){scanf("%s %s %d %d %s %s %s %d",,&x.sex,&x.chusheng,&x.gongzuo,x.xueli,x.zhiwu,x .zhuzhi,&x.dianhua);head=ListInsert(head,x);}if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}printf("0.结束系统\n1.新增一名职工\n2.删除一名职工\n3.查询职工信息\n4.修改职工信息\n5.对职工信息进行排序\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){printf("请输入职工信息:姓名、性别、出生年、工作年、学历、职务、住址、电话\n");scanf("%s %s %d %d %s %s %s %d",,&x.sex,&x.chusheng,&x.gongzuo,x.xueli,x.zhiwu,x .zhuzhi,&x.dianhua);head=ListInsert(head,x);printf("新增成功!请继续操作!\n");put(head,fp);}if(i==2){ListDelete(head);if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}if(i==3)Listfind(*head);if(i==4){Listxiugai(head);if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}if(i==5){SLNode *p=head;Listpaixu(p);}if(i!=0 && i!=1 && i!=2 && i!=3 && i!=4 && i!=5)printf("输入出错!请再次输入!\n");}}还要个头文件zhigong.h这个要另外写成个头文件typedef struct Node{int chusheng,gongzuo,dianhua;charsex,name[ALLMAX],xueli[ALLMAX],zh iwu[ALLMAX],zhuzhi[ALLMAX]; struct Node *next;}SLNode;typedef struct{int chusheng,gongzuo,dianhua;charname[ALLMAX],sex,xueli[ALLMAX],zhiwu[ALLMAX],zhuzhi[ALLMAX];}DataType;void ListInitiate(SLNode **head){if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);(*head)->next=NULL;}SLNode *ListInsert(SLNode *head,DataType x){SLNode *p,*q,*s;p=head->next;if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);q->chusheng=x.chusheng;q->gongzuo=x.gongzuo;q->dianhua=x.dianhua;strcpy(q->name,);q->sex=x.sex; strcpy(q->xueli,x.xueli);strcpy(q->zhiwu,x.zhiwu);strcpy(q->zhuzhi,x.zhuzhi);if(head->next==NULL){head->next=q;head->next->next=NULL;}else{for(;p;p=p->next){if(p->next!=NULL){if(strcmp(p->name,)<0&&strcmp(p ->next->name,)>0){s=p->next;p->next=q;q->next=s;break;}}elseif(strcmp(p->name,)<0&&p->next ==NULL){p->next=q;q->next=NULL;break;}if(strcmp(p->name,)>0){s=head->next;head->next=q;q->next=s;break;}}}return head;}void ListDelete(SLNode *head){SLNode *p,*s;char x[20];s=head;p=head->next;if(head->next==NULL){printf("名单中无职工信息,无须删除!\n");return;}printf("请输入要删除职工的姓名:\n"); scanf("%s",x);for(p;p;p=p->next){if(strcmp(p->name,x)==0){s->next=p->next;free(p);printf("删除成功!请继续操作!\n");break;}s=p;}if(p==NULL){printf("名单中无职工信息,无须删除!\n");}}void Listxiugai(SLNode *head){DataType x;SLNode *p;p=head->next;if(p==NULL){printf("职工名单无职工信息,无须修改!\n");return;}printf("请输入要修改的职工姓名:\n"); scanf("%s",);printf("依次写入该职工的信息:\n"); for(;p;p=p->next){if(strcmp(,p->name)==0){ scanf("%s %c %d %d %s %s %s %d",p-> name,&p->sex,&p->chusheng,&p->gongz uo,p->xueli,p->zhiwu,p->zhuzhi,&p->dian hua);break;}}if(p==NULL)printf("此职工不存在,无法修改其信息!\n");printf("修改成功!请继续操作!\n"); }void put(SLNode *head,FILE *fp){SLNode *p;if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n"); exit(0);}for(p=head->next;p;p=p->next){fprintf(fp,"%s %c %d %d %s %s %s %d\n ",p->name,p->sex,p->chusheng,p->gongzu o,p->xueli,p->zhiwu,p->zhuzhi,p->dianhu a);}if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}void Listfind(SLNode head){int i;SLNode *p;DataType x;if(head.next==NULL){printf("名单中无职工信息,无法查询!\n");return;}printf("0.退出查询系统,回到主菜单\n1.对姓名进行查询\n2.对出生年月进行查询\n3.对工作年月进行查询\n4.对学历进行查询\n5.对职务进行查询\n6.对住址进行查询\n7.对电话号码进行查询\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){p=head.next;printf("请输入姓名:");scanf("%s",);i=0;for(p;p;p=p->next){if(strcmp(p->name,)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中不存在此人!\n");else printf("查询成功!请继续操作!\n");}if(i==2){p=head.next;printf("请输入出生年月:");scanf("%d",&x.chusheng);i=0;for(p;p;p=p->next){if(p->chusheng==x.chusheng){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这个时间出生的!\n");else printf("查询成功!请继续操作!\n");}if(i==3){p=head.next;printf("请输入工作年月:");scanf("%d",&x.gongzuo);i=0;for(p;p;p=p->next){if(p->gongzuo==x.gongzuo){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这个时间工作的!\n");else printf("查询成功!请继续操作!\n");}if(i==4){p=head.next;printf("请输入学历:");scanf("%s",x.xueli);i=0;for(p;p;p=p->next){if(strcmp(p->xueli,x.xueli)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这种学历的!\n");else printf("查询成功!请继续操作!\n");}if(i==5){p=head.next;printf("请输入职务:");scanf("%s",x.zhiwu);i=0;for(p;p;p=p->next){if(strcmp(p->zhiwu,x.zhiwu)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这种职务的!\n");else printf("查询成功!请继续操作!\n");}if(i==6){p=head.next;printf("请输入住址:");scanf("%s",x.zhuzhi);i=0;for(p;p;p=p->next){if(strcmp(p->zhuzhi,x.zhuzhi)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有住这的!\n");else printf("查询成功!请继续操作!\n");}if(i==7){p=head.next;printf("请输入电话:");scanf("%d",&x.dianhua);i=0;for(p;p;p=p->next){if(p->dianhua==x.dianhua){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没人用这个号码!\n");else printf("查询成功!请继续操作!\n");}if(i!=0 && i!=1 && i!=2 && i!=3 && i!=4 && i!=5 && i!=6 && i!=7)printf("输入出错!请再次输入!\n"); }}void print(SLNode *head){for(SLNode *p=head->next;p;p=p->next) printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua); }void Listpaixu(SLNode *head){int i,n=0,m,flag=1;SLNode *p,*q,*s;if(head->next==NULL){printf("名单中无职工信息,无法排序!\n");return;}printf("0.退出排序系统,回到主菜单\n1.对性别进行排序\n2.对出生年月进行排序\n3.对工作年月进行排序\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->sex>q->sex){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n");print(head);}if(i==2){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->chusheng>q->chusheng){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n"); print(head);}if(i==3){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->gongzuo>q->gongzuo){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n");print(head);}if(i!=0&&i!=1&&i!=2&&i!=3)printf("输入出错!请再次输入!\n"); }}。

C语言程序设计职工信息管理系统1.doc

C语言程序设计职工信息管理系统1.doc

C语言程序设计职工信息管理系统1 程序设计工程训练报告职工信息管理系统课程名称C语言程序设计工程训练姓名院(系)专业班级学号指导教师目录1 需求分析(1)2 系统总框图和功能模块说明(1)2.1 系统总框图(1)2.2 功能模块说明(2)3 系统设计(2)3.1 主要结构体(2)3.2主要功能函数(2)3.3 关键函数的流程图(3)4 系统调试(5)5 总结(8)6 源程序清单(10)1 需求分析实验设备信息包括:设备编号,设备名称,设备种类(如:微机、打印机、扫描仪等等),设备价格,设备购入日期,是否报废,报废日期等。

系统以菜单方式工作,需要实现以下主要功能:1,能够完成对设备的录入;2,能够查询设备的信息;3,能够对设备信息进行修改;4,能够对设备进行分类统计2 系统总框图和功能模块说明2.1 系统总框图图1 系统总框图2.2 功能模块说明录入实验设备信息模块:完成设备信息的录入;查询实验设备信息模块:完成设备信息的查询;修改实验设备信息模块:完成设备信息的修改;分类统计设备信息模块:完成设备信息的分类与统计;退出实验设备信息管理系统:完成管理系统的退出。

3 系统设计3.1 主要结构体设备编号、名称、类型、价格、购入日期、报废情况、报废日期typedef struct information{int no; /*设备编号*/char name[20]; /*设备名称*/char type[20]; /*设备类型*/int price; /*设备价格*/struct Date buy; /*购入日期*/char ifbroken; /*是否报废*/struct Date broken; /*报废日期*/} information;struct Date{int year;int month;int day;};3.2主要功能函数void Startwork(); /*实验设备管理系统开始*/void Endwork(); /*实验设备管理系统结束*/void initiSystem(); /*系统初始化*/void addequipment(); /*录入实验设备信息*/void inquireequipment(); /*查询实验设备信息*/ void recomposeequipment(); /*修改实验设备信息*/ void classifyequipment(); /*实验设备分类统计*/ 3.3 关键函数的流程图1、主函数:begin(算法开始)输出"请选择功能(1-5):"输入数字=chif ch等于5输出"您将退出管理系统!是否继续退出?break;elseswitch(ch){case'1':录入设备信息;break;case'2':查询设备信息;break;case'3':修改设备信息;break;case'4':分类设备信息;break;default:出错;break;}end (算法结束)输出"按任意键退出。

C语言课程设计报告职工信息管理系统设计范文

C语言课程设计报告职工信息管理系统设计范文
3
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
分析:我认为链表的使 用正是本程序的最精 彩的地方所在,较数组 而言它的使用带来了 很多优点: (1)空间的 灵活分配,虽然地址不 是连续的,但只要找到 链表的头所有数据都 可以迅速找到( 2 )可 以灵活的插入或删除 元素而不会像数组那 样带来较多数据的移 动
4
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
分析:周密地考虑 到了内存不足以及 职工号已存在导致 的录入失败,给予 用户适当的提示使 得设计更加人性化
ACkNxIzB dirconf90°18;wugplbySvqOW thesam 命 族 民 、 家 系 心 们 我 匆 急 临 光 富 远 久 越 间 时 的 去 离 子 日 苦 : 念 一 作 化 感 ,百 昔 追 今 .抚 运 思 当 耻 国 忘 勿
二、系统设计方案
1.程序采用模块化设计,主函数为程序的入口,各模块独立,可分块调试,各 模块由主函数控制调用。主函数的控制功能通过循环执行一个开关语句来实现。 该开关语句的条件值为调用主菜单函数得到的返回值,根据该值,调用相应的各 功能函数。 2.应用高级语言程序设计中的基本控制结构,如选择和循环等,并且包含对文 件的读、写等基本操作,在软件开发过程中应用了软件工程的基本理论。因此, 系统的设计方法是结构化设计方法,开发手段是 C 语言。 3.源程序运用多个函数,开头先进行函数声明,然后分别定义、调用各函数。

C语言课程设计报告职工信息管理系统[1] (1)

C语言课程设计报告职工信息管理系统[1] (1)

课程设计报告一C语言课程设计的目的设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)职工信息录入功能(职工信息用文件保存)(3)职工信息浏览功能(4)职工信息查询功能,查询方式可按学历查询或按职工号查询(5)职工信息删除修改功能(可选项)二课程设计报告正文1题目要求设计职工信息管理系统,要求职工心想包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

设计一职工信息管理系统,使之能提供以下功能:(6)系统以菜单方式工作(7)职工信息录入功能(职工信息用文件保存)(8)职工信息浏览功能(9)职工信息查询功能,查询方式可按学历查询或按职工号查询(10)职工信息删除修改功能(可选项)2需求分析根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览职工的信息,应提供显示、查找、排序等操作;另外还应提供键盘式选择菜单实现功能选择。

3总体设计根据上面的需求分析,可以将这个系统设计分为以下模块:数据添加、数据查找、数据修改、数据删除、数据输出.系统功能模块如下:4详细设计1 主函数主函数设计要简洁,只提供部分函数的调用。

其中各功能模块用菜单方式选择。

【程序】void main(){int m;while(1){ printf(”\n\n\n\t\t ______________________________________\n");printf("\t\t 欢迎进入内蒙古科技大学员工信息系统\n”);printf(”\t\t 设计者:计算机—3班学号1076807334\n”);printf("\t\t ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf(”\n\t\t\t\t添加,请按1");printf(”\n\t\t\t\t查找,请按2”);printf("\n\t\t\t\t修改,请按3");printf("\n\t\t\t\t删除,请按4");printf("\n\t\t\t\t输出,请按5”);printf("\n\t\t\t\t退出,请按0\n");scanf("%d”,&m);if(m>=0&&m<=5){switch(m){case 1:append();break;case 2:search();break;case 3:modify();break;case 4:delete();break;case 5: output();break;case 0: exit();}printf(”\n\n操作完毕,请再次选择!");}elseprintf("\n\n选择错误,请再次选择!");}}2 数据添加【程序】void append(){if((fp=fopen(”worker.xls","a"))==NULL){printf("\n不能打开该文件!”);exit();}printf(”\n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)\n”);scanf(”%s%s%s%s%s%s%s%s%s",one。

C语言课程设计报告职工信息管理系统设计

C语言课程设计报告职工信息管理系统设计
2。应用高级语言程序设计中的基本控制结构,如选择和循环等,并且包含对 文件的读、写等基本操作,在软件开发过程中应用了软件工程的基本理论。因此,
1
系统的设计方法是结构化设计方法,开发手段是 C 语言。 3。源程序运用多个函数,开头先进行函数声明,然后分别定义、调用各函数。
开始 程序流程图
主函数
三、程序主要代码分析 载入模块
while(NULL!=p-〉next)
查找定位。

值得注意的
if(0==strcmp(p—〉next->,name))
是判断两字
{
符串内容是
printf(”%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
否相同时需
p—>next->w。id,p—>next—>,p-〉next->w。sex,p—〉next—>w用。a到dr,strcmp
按按按 姓工学 名号历
typedef struct link

WORKER w;
struct link *next; 保存数据模块
}LINK, *PLINK;
//typedef struct LINK *PLINK;
/*创建职工信息链表*/ PLINK create()
结束
{ PLINK p=(PLINK)malloc(sizeof(LINK)); if(NULL!=p) {
p—>next—〉w。edu,p-〉next—>w.wages,p—〉next->w.adr,p->next—>w。函ph数on!e);
return p;

4
p=p—〉next; } printf("。^_^.查询结束!。^_^。\n"); return NULL; } /*按职工号删除职工信息*/ int del(PLINK p,int id) { message(); printf(”按职工号删除职工信息\n”); while(NULL!=p->next) { if(p-〉next—>w.id==id) { PLINK q=p->next; p-〉next=p—>next->next; free(q); printf("。^_^.删除成功!.^_^。\n"); return 1; } p=p-〉next; } printf("没有你输入的职工号!\n"); return -1; }

c程序设计报告职工信息管理系统精品文档21页

c程序设计报告职工信息管理系统精品文档21页

职工信息管理系统题目要求 (2)设计目的 (2)总体设计 (2)详细设计 (2)调试与测试 (12)源程序 (14)总结 (27)职工信息管理程序一.题目要求1.问题描述:设计一个系统来管理职工的信息。

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)2.要求:•系统需要提供一下功能:–1、以菜单方式工作–2、职工信息浏览功能–3、职工信息查询功能•查询方式:按学历查询和按职工号查询–4、职工信息删除–5、职工信息修改–6、职工信息的输入–职工信息存储在文本中。

.二.设计目的根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览职工的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.三.总体设计根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.1、职工信息管理系统1、1输入信息1、2查询信息1、3删除信息1、4修改信息四.详细设计1.主函数:主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择.menu();int a;char b;printf("选择要进行的项目\n");scanf("%d",&a);exa: switch(a){case 1:printf("输入职工信息\n");printf("\n");input();break;case 2:printf("浏览职工信息\n");printf("\n");display();break;case 3:printf("查询职工信息\n");printf("\n");search();break;case 4:printf("修改职工信息\n");printf("\n");xiugai();break;case 5:printf("删除职工信息\n");printf("\n");del();break;/* case 6:printf("添加职工信息\n");printf("\n");add();break; */case 6:exit(0);break;default :break;getchar();printf("是否继续进行(y or n):\n");scanf("%c",&b);if(b=='y'){menu();printf("再次选择操作:\n");scanf("%d",&a);goto exa;else exit(0);void input(){int n;printf("输入职工个数:\n");scanf("%d",&m);for(n=0;n<m;n++){printf("输入职工号");scanf("%d",&peo[n].num);printf("输入姓名: ");scanf("%s",peo[n].name);getchar();printf("输入性别:");scanf("%c",&peo[n].sex);printf("输入工资: ");scanf("%d",&peo[n].money);printf("输入地址: ");scanf("%s",peo[n].addr);printf("输入号码: ");scanf("%d",&peo[n].phone);printf("输入年龄: ");scanf("%d",&peo[n].age);printf("输入学历: ");scanf("%s",peo[n].xueli);}save(m);2.}修改模块:[分析]:用户输入要修改职工的职工号,根据职工号等信息查找学生记录,并提示用户修改该记录的哪部分信息.根据用户选择修改相应的信息.[流程图]:1、输入要修改的职工的职工号2、查询其信息3、使用函数删除其信息4、对其进行信息的重新输入[程序]:void xiugai(){int t,i,j;printf("输入要修改职工的职工号:\n"); scanf("%d",&t);printf("oo");for(i=0;i<100;i++){if(peo[i].num==t)j=i;break;printf("ww");//clear(peo,j);printf("qq");printf("输入职工号:");scanf("%d",&peo[j].num);printf("输入姓名: ");scanf("%s",peo[j].name);getchar();printf("输入性别:");scanf("%c",&peo[j].sex);printf("输入工资: ");scanf("%d",&peo[j].money);printf("输入地址: ");scanf("%s",peo[j].addr);printf("输入号码: ");scanf("%d",&peo[j].phone);printf("输入年龄: ");scanf("%d",&peo[j].age);printf("输入学历: ");scanf("%s",peo[j].xueli);save(::m);3.删除模块:[分析]:该模块的功能是,用户输入要删除的学生的学号,根据学生学号查找记录并删除.[流程图]:1、找到要删除的职工的信息2、对其使用写的功能,删除其中的值3、完成删除后浏览剩余信息[程序]:void del(){FILE *fp;int m=load();int s,n,j,i,l=0;printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要删除的职工的职工号:\n");scanf("%d",&s);for(n=0;n<100;n++)if(peo[n].num==s)j=n;l=1;if(l==1)fp=fopen("D:\\data.txt","w");clear(peo,j);for(i=0;i<::m;i++)if(i==j)continue;fprintf(fp,"%d %s %d %c %d %d %s %s\n",peo[i].num,peo[i].name,peo[i].age,peo[i].s ex,peo[i].phone,peo[i].money,peo[i].addr,peo[i].xueli);printf("删除成功!");fclose(fp);return;elseprintf("没有找到!\n");display();4.查询模块[需求分析]:该模块的功能是根据输入的职工号查找对应的记录,找到以后,显示相应的职工信息.[流程图]:1、根据对应的提示查找信息2、运用循环比较的方法进行查找3、分别是按照职工号和学历程序:void search(){int d;printf("你选择的查询方法:1.按职工号2.按学历");scanf("%d",&d);switch(d){case 1:search_num();break;case 2:search_xueli();break;default :break;void search_num(){ int num;int i,h=1;int m=load();printf("请输入要查找的职工号:\n");scanf("%d",&num);for(i=0;i<m;i++)if(num==peo[i].num)printf(" 职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");printf("\n %d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[i].num,peo[i].name,peo[i].sex,peo[i]. age,peo[i].xueli,peo[i].money,peo[i].addr,peo[i].phone);else ;}void search_xueli(){char xueli[30];int i,h=1;int m=load();printf("请输入要查找的学历:\n");scanf("%s",xueli);for(i=0;i<m;i++)if(strcmp(peo[i].xueli,xueli)==0) {printf(" 职工号姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");printf("\n %d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[i].num,peo[i].name,peo[i].sex,peo[i]. age,peo[i].xueli,peo[i].money,peo[i].addr,peo[i].phone);else ;void xiugai(){int t,i,j;printf("输入要修改职工的职工号:\n");scanf("%d",&t);printf("oo");for(i=0;i<100;i++){if(peo[i].num==t)j=i;break;printf("ww");//clear(peo,j);printf("qq");printf("输入职工号:");scanf("%d",&peo[j].num);printf("输入姓名: "); scanf("%s",peo[j].name); getchar();printf("输入性别:");scanf("%c",&peo[j].sex);printf("输入工资: "); scanf("%d",&peo[j].money); printf("输入地址: ");scanf("%s",peo[j].addr); printf("输入号码: ");scanf("%d",&peo[j].phone); printf("输入年龄: ");scanf("%d",&peo[j].age); printf("输入学历: ");scanf("%s",peo[j].xueli);save(::m);5.输出模块:[需求分析]:该模块的功能是显示所有职工记录信息.[程序]:我void display(){int t;//int m=load();printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");for(t=0;t<::m;t++)printf("\n %d\t%s\t%c\t%d\t%s\t%d\t%s\t%d\n",peo[t].num,peo[t].name, peo[t].sex,peo[t].age,peo[t].xueli,peo[t].money,peo[t].addr,peo[t].ph one);四调试与测试在这次课程设计中,程序编写过程中遇到了很多的问题,各种函数的运用也让人头疼,在上机编译运行过程中出现了很多的错误,例如:各种数据类型的定义,函数的调用等等。

(完整版)C语言程序设计-职工信息管理系统[1]

(完整版)C语言程序设计-职工信息管理系统[1]

C语言课程设计C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法.要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入.3、浏览功能:完成对全部职工信息的显示。

4、查找功能:①完成按职工的职工号查询职工的相关信息,并显示。

②完成按职工的学历查询职工的相关信息,并显示。

③完成按职工的电话号码查询职工的相关信息,并显示。

5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。

6、添加功能:完成添加新职工的信息的任务。

7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。

8、退出职工信息管理系统.三、信息描述职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等.四、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。

确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。

确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。

五、进度安排课程设计时间为两周,分为五个阶段完成:1、分析设计阶段。

在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。

按照需求分析、总体设计、详细设计几个步骤进行.这一阶段前1-2天完成;2、编码调试阶段。

根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。

这一阶段在3-7天完成;3、总结报告阶段.总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法。

要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。

3、浏览功能:完成对全部职工信息的显示。

4、查找功能:①完成按职工的职工号查询职工的相关信息,并显示。

②完成按职工的学历查询职工的相关信息,并显示。

③完成按职工的电话号码查询职工的相关信息,并显示。

5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。

6、添加功能:完成添加新职工的信息的任务。

7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。

8、退出职工信息管理系统。

三、信息描述职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等。

四、解决方案1、首先进行需求分析,搞清楚系统功能和任务;2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。

确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。

确定每一模块采用的数据结构和模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口;4、根据分析编写C语言代码。

五、进度安排课程设计时间为两周,分为五个阶段完成:1、分析设计阶段。

在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。

按照需求分析、总体设计、详细设计几个步骤进行。

这一阶段前1-2天完成;2、编码调试阶段。

根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。

这一阶段在3-7天完成;3、总结报告阶段。

总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。

这一阶段在8-9天完成;4、考核阶段。

六、写课程设计总结课程设计报告要求总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结和参考资料等。

七、参考资料《C程序设计》(第三版)谭浩强著清华大学出版社《C程序设计题解与上机指导》(第三版)谭浩强编著清华大学出版社目录1.总体设计方案 (3)2.使用说明及运行实例 (5)3.项目源程序代码 (10)4.课程设计心得 (23)总体设计方案一.系统的总体流程图图1.系统的总体流程图二. 为了方便使用结构此系统结构均为全局类型定义struct employee //定义一个职工信息的结构体{int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];}em[100];三.各模块的功能和实现1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。

2.输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void input()函数来实现。

3.保存模块:将内存中职工的信息输出到磁盘文件中,可以通过自己定义的void save(int)函数来实现。

4.浏览模块:浏览所有职工的相关信息,通过自己定义的void display()函数来实现。

5.删除模块:删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。

6.添加模块:添加需要添加的职工的相关信息,通过自己定义的void add()函数来实现。

7.按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的void search_num()函数来实现。

8.按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的void search_xuelil函数来实现。

9.按职工的电话号码查询模块:可以按职工的电话来查询职工的相关信息,通过自己定义的void search_tel函数来实现。

10.修改模块:可以修改需要修改的职工的相关信息,通过自己定义的void modify()函数来实现。

11.退出系统模块:退出职工信息管理系统,通过头文件windows.h中的exit(0)函数来实现。

使用说明及运行实例1.运行程序,进入职工信息管理系统的主菜单:图1:进入主菜单界面2.输入数字“1”进行录入职工信息:图2:录入职工信息3.输入“y”返回主菜单(界面同图1)。

4.输入“2”浏览职工信息:图3:浏览职工信息5.输入“y”后继续,输入“3”进行查询职工信息:图4:按职工号及学历查询职工信息图5:按电话号码查询职工信息6.进入主菜单,输入“4”进行删除职工信息:图6:删除职工信息7.进入主菜单输入“5”进行添加职工信息:图7:添加职工信息8.进入主菜单输入“6”进行修改职工信息:图8:修改职工信息9.进入主菜单输入”7”退出职工信息管理系统。

职工信息管理系统源程序代码#include <stdio.h>#include <windows.h>#include <string.h>#define N 100struct employee{int num;char name[20];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];}em[100]; /*定义一个结构体*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify(); /*定义各函数*/void main(){menu();int n,flag;char a;do{printf("请选择你需要操作的步骤(1--7):\n");scanf("%d",&n);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(" ◆◆◆按职工号查询职工信息◆◆◆\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"); /*清屏*/menu(); /*调用菜单函数*/printf("请再次选择你需要操作的步骤(1--7):\n");scanf("%d",&n);printf("\n");}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");printf("\n");}void input() /*录入函数*/{int i,m;printf("请输入需要创建信息的职工人数(1--100):\n");scanf("%d",&m);for (i=0;i<m;i++){printf("请输入职工号: ");scanf("%d",&em[i].num);printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女 m--男): ");scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");}printf("\n创建完毕!\n");save(m);}void save(int m) /*保存文件函数*/{int i;FILE*fp;if ((fp=fopen("employee_list","wb"))==NULL){printf ("cannot open file\n");exit(0);}for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/ if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() /*导入函数*/{FILE*fp;int i=0;if((fp=fopen("employee_list","rb"))==NULL){printf ("cannot open file\n");exit(0);}else{do{fread(&em[i],sizeof(struct employee),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}void display() /*浏览函数*/{int i;int m=load();printf(" 职工号\t姓名\t\t性别\t\t年龄 \n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); printf("\n 学历\t\t工资\t\t住址\t\t电话 \n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}void del() /*删除函数*/{int m=load();int i,j,n,t,flag;char name[20];printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要删除的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄 \n");printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); printf("\n 学历\t\t工资\t\t住址\t\t电话 \n");printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel); printf("\n确实要删除此人信息请按1,不删除请按0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++){strcpy(em[j].name,em[j+1].name);em[j].num=em[j+1].num;em[j].sex=em[j+1].sex;em[j].age=em[j+1].age;strcpy(em[j].xueli,em[j+1].xueli); em[j].wage=em[j+1].wage;strcpy(em[j].addr,em[j+1].addr); strcpy(em[j].tel,em[j+1].tel);}flag=0;}}}if(!flag)m=m-1;elseprintf("\n对不起,查无此人!\n");printf("\n 浏览删除后的所有职工信息:\n");save(m); /*调用保存函数*/display(); /*调用浏览函数*/printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t){case 1:del();break;case 0: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_list","a");printf("请输入想增加的职工数:\n");scanf("%d",&n);for (i=m;i<(m+n);i++){printf("\n 请输入新增加职工的信息:\n");printf("请输入职工号: ");scanf("%d",&em[i].num);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女 m--男): ");scanf("%c",&em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");count=count+1;printf("已增加的人数:\n");printf("%d\n",count);}printf("\n添加完毕!\n");m=m+count;printf("\n浏览增加后的所有职工信息:\n");printf("\n");save(m);display();fclose(fp);}void search()/*查询函数*/{int t,flag;do{printf("\n按职工号查询请按1; 按学历查询请按2; 按电话号码查询请按3;进入主函数请按4\n");scanf("%d",&t);if(t>=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: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;i<m;i++)if(num==em[i].num){printf("\n已找到此人,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄 \n");printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); printf("\n 学历\t\t工资\t\t住址\t\t电话 \n");printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询职工号请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2: break;default:break;}}void search_xueli(){char xueli[30];int i,t;int m=load();printf("请输入要查找的学历:\n");scanf("%s",xueli);for(i=0;i<m;i++)if(strcmp(em[i].xueli,xueli)==0){printf("\n已找到,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄 \n");printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); printf("\n 学历\t\t工资\t\t住址\t\t电话 \n");printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel); }if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询学历请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void search_tel(){char tel[20];int i, t;int m=load();printf("请输入要查找的电话号码:\n");scanf("%s",tel);for(i=0;i<m;i++)if(strcmp(tel,em[i].tel)==0){printf("\n已找到此人,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄 \n");printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age); printf("\n 学历\t\t工资\t\t住址\t\t电话 \n");printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询电话号码请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void modify() /*修改函数*/{int num;char name[20];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];int b,c,i,n,t,flag;int m=load();printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n已找到此人,原始记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄 \n");printf("\n %d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n 学历\t\t工资\t\t住址\t\t电话 \n");printf("\n %s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel); printf("\n确实要修改此人信息请按1 ; 不修改请按0\n");scanf("%d",&n);if(n==1){printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.性别 4.年龄 5.学历 6.工资 7.住址 8.电话\n");printf("请输入你想修改的那一项序号:\n");scanf("%d",&c);if(c>8||c<1)printf("\n选择错误,请重新选择!\n");}flag=0;}}if(flag==1)printf("\n对不起,查无此人!\n");do{switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/{case 1:printf("职工号改为: ");scanf("%d",&num);em[i-1].num=num;break;case 2:printf("姓名改为: ");scanf("%s",name);strcpy(em[i-1].name,name);break;case 3:printf("性别改为: ");getchar();scanf("%c",&sex);em[i-1].sex=sex;break;case 4:printf("年龄改为: ");scanf("%d",&age);em[i-1].age=age;break;case 5:printf("学历改为: ");scanf("%s",xueli);strcpy(em[i-1].xueli,xueli);break;case 6:printf("工资改为: ");scanf("%d",wage);break;case 7:printf("住址改为: ");scanf("%s",addr);strcpy(em[i-1].addr,addr);break;case 8:printf("电话改为: ");scanf("%s",tel);strcpy(em[i-1].tel,tel);break;}printf("\n");printf("\n是否确定所修改的信息?\n 是请按1 ; 不,重新修改请按2: \n"); scanf("%d",&b);}while(b==2);printf("\n浏览修改后的所有职工信息:\n");printf("\n");save(m);display();printf("\n继续修改请按1,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break;}}C语言课程设计心得通过这次课程设计,增加了我们对软件技术的了解,虽然还不明确软件技术包含的具体内容,但从学习C语言这门课程开始,已发现程序设计的好处,它对我们数学的学习也有很大的帮助。

相关文档
最新文档