C _C语言_程序设计_简单的职工信息管理系统
- 格式:doc
- 大小:48.50 KB
- 文档页数:21
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语言课程设计职工信息管理系统一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握基本数据类型、运算符、控制语句的使用;2. 学会使用C语言进行模块化编程,了解函数的定义、调用和参数传递;3. 了解结构体类型及其应用,掌握结构体数组的创建和使用;4. 理解文件操作的基本概念,掌握文件的读写方法。
技能目标:1. 能够运用C语言设计并实现一个职工信息管理系统,具备基本的编程能力;2. 能够运用结构体和文件操作,实现数据的存储和读取;3. 能够通过模块化编程,提高代码的可读性和可维护性;4. 学会使用调试工具,分析和解决程序中的错误。
情感态度价值观目标:1. 培养学生主动探究、积极思考的学习态度,增强解决问题的信心和兴趣;2. 培养学生的团队合作意识,学会与他人共同分析和解决问题;3. 通过编程实践,使学生认识到计算机编程在现实生活中的应用价值,激发学习计算机科学的兴趣。
本课程针对高年级学生,他们已具备一定的编程基础,能理解较为复杂的概念。
课程性质为实践性较强的学科,要求学生通过动手实践,将理论知识应用于实际项目中。
课程目标旨在培养学生具备独立设计、编程和调试程序的能力,提高学生的编程水平和实际问题解决能力。
通过本章节学习,学生将能够掌握C语言在实际项目中的应用,为后续深入学习计算机科学奠定基础。
二、教学内容1. C语言基本语法与结构复习:回顾数据类型、变量、常量、运算符、控制语句(包括循环和分支)等基本概念,巩固学生的语法基础。
相关教材章节:第一章至第四章2. 函数与模块化编程:介绍函数的定义、声明、调用,参数传递,以及模块化编程思想。
相关教材章节:第五章3. 结构体与结构体数组:讲解结构体的定义和使用,结构体数组的创建和管理。
相关教材章节:第六章4. 文件操作:阐述文件的概念,文件的打开、读写、关闭等基本操作。
相关教材章节:第十章5. 职工信息管理系统设计:a. 需求分析:明确系统功能,包括职工信息的增加、删除、修改和查询等。
原创C语言职工管理系统课程设计报告1. 引言职工管理系统是一个可以对职工信息进行录入、查询、修改和删除的软件系统。
在这个项目中,我们将使用C语言来实现这个系统。
通过设计这个项目,我们旨在提高学生们对C语言的理解和应用能力。
2. 项目背景和目的职工管理系统是一个常见的实际应用场景,他在许多企事业单位中都有使用。
通过设计和实现这个系统,我们可以帮助管理人员更有效地管理职工信息,提高管理效率。
我们的目标是设计一个简单易用、功能完善的职工管理系统,可以实现以下功能:职工信息录入、职工信息查询、职工信息修改和职工信息删除。
3. 系统设计我们将使用C语言来实现职工管理系统。
系统设计主要包括以下几个方面的功能模块:3.1 菜单功能模块在这个模块中,我们将设计一个菜单来显示系统的功能选项。
用户可以通过输入相应的选项来进入不同的功能模块。
3.2 职工信息录入功能模块在这个模块中,用户可以输入职工的信息,包括职工编号、职工姓名、职工性别、职工年龄等。
系统将会将这些信息保存到一个文件中以后的查询和修改操作。
3.3 职工信息查询功能模块在这个模块中,用户可以输入职工的编号或者姓名来查询职工的信息。
系统将会根据用户输入的信息在文件中查找相应的职工信息并显示出来。
3.4 职工信息修改功能模块在这个模块中,用户可以输入职工的编号来修改职工的信息。
用户需要输入修改后的信息,并将更新后的信息保存到文件中。
3.5 职工信息删除功能模块在这个模块中,用户可以输入职工的编号来删除职工的信息。
系统将会在文件中查找相应的职工信息并删除。
4. 系统实现系统实现主要有以下几个步骤:4.1 设计程序结构首先,我们需要设计系统的程序结构。
我们将使用函数来实现不同功能模块,通过调用不同的函数来实现系统不同的功能。
4.2 实现菜单功能模块我们将使用printf函数来输出菜单,并使用scanf函数来获取用户的输入。
根据用户的输入,我们将使用switch语句来进入相应的功能模块。
南京工程学院程序设计课程设计报告职工信息管理系统设计专业学生姓名班级学号指导教师完成日期职工信息管理系统设计目录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,o ne.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<4){switch(l){职工信息管理系统的设计case 1:nameway();break;case 2:xueliway();break;case 3:numway();break;}printf("\n\n操作完毕!!!");}else printf("\t\t\t\t输入有误!!!");}void nameway(){int k=0;char nam[8];printf("\n请输入您要查找的职工姓名:");scanf("%s",nam);if((fp=fopen("worker.xls","rb"))==NULL){printf("\n不能打开文件!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",,one.num,one.sex,one.age,one.record,one.p osition,one.wanges,one.tel,one.addr);if(strcmp(nam,)==0){printf("\n\n已查到,记录为:");printf("\n%-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);k=1;}}if(k==0)printf("\n\n对不起,查无此人!。
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语言程序设计报告》一、设计题目:职工信息管理系统二、设计任务:职工信息包括:职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之难提供以下功能:(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语言设计一个简单的职工信息管理系统。
具体目标如下:1.知识目标:使学生掌握C语言的基本语法、数据类型、运算符、控制结构等基本知识。
2.技能目标:使学生能够使用C语言编写程序,实现对职工信息的增删改查功能。
3.情感态度价值观目标:培养学生对计算机编程的兴趣,使学生认识到计算机编程在实际生活中的重要性。
二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型。
2.运算符和控制结构。
3.职工信息管理系统的设计与实现。
4.程序调试和优化。
三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符和控制结构。
2.案例分析法:通过分析职工信息管理系统的案例,使学生掌握系统设计的方法。
3.实验法:让学生动手编写程序,实现职工信息的管理。
4.讨论法:分组讨论,引导学生思考如何优化程序。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》。
2.参考书:《C语言编程实践》。
3.多媒体资料:讲解C语言语法和程序设计的视频教程。
4.实验设备:计算机、编程环境。
5.在线编程平台:用于学生在线编写和调试程序。
五、教学评估本节课的教学评估将采取多元化评价方式,全面公正地评价学生的学习成果。
评估方式包括:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。
2.作业:布置相关的编程作业,评估学生的编程能力和对知识的掌握程度。
3.考试:安排一次课程结束考试,测试学生对C语言和职工信息管理系统设计的全面理解。
4.项目展示:学生分组设计并展示自己的职工信息管理系统,评估学生的实际操作能力和团队协作能力。
评估标准将根据课程目标和教学内容制定,确保评估的客观性和公正性。
六、教学安排本节课的教学安排将根据课程目标和学生的实际情况进行设计,确保在有限的时间内达到最佳教学效果。
c语言职工信息管理系统课程设计一、课程目标知识目标:1. 理解C语言中数组、结构体和文件操作的基本概念;2. 学会使用C语言编写职工信息管理系统的基本功能,如增加、删除、修改和查询职工信息;3. 掌握利用C语言进行简单的数据处理和分析。
技能目标:1. 能够运用结构体数组管理职工信息;2. 独立编写代码实现职工信息的增加、删除、修改和查询功能;3. 学会使用文件操作将职工信息存储到文件中,并从文件中读取数据;4. 通过编程实践,培养解决问题的能力和逻辑思维能力。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养良好的编程习惯;2. 培养学生的团队协作意识和沟通能力,通过分组讨论和实践,共同完成职工信息管理系统的开发;3. 强化学生的责任感和使命感,认识到信息技术在现实生活中的应用和价值。
课程性质:本课程为实践性较强的课程,结合课本知识,让学生通过实际操作,掌握C语言编程的基本方法和技巧。
学生特点:学生已具备一定的C语言基础,熟悉基本语法和简单程序设计,但缺乏实际项目经验。
教学要求:注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决问题的能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 理论知识:- 复习C语言基础:数据类型、运算符、控制语句等;- 数组与字符串:数组的使用,字符串操作;- 结构体:定义结构体,结构体数组,结构体指针;- 文件操作:文件的打开、关闭、读写,以及文件存储职工信息。
2. 实践操作:- 设计职工信息结构体,创建职工信息数组;- 编写增加、删除、修改和查询职工信息的功能函数;- 利用文件操作存储和读取职工信息;- 集成职工信息管理系统,实现用户界面。
3. 教学大纲:- 第一周:复习C语言基础知识,讲解数组与字符串;- 第二周:学习结构体,设计职工信息结构体;- 第三周:文件操作学习,实现职工信息的存储与读取;- 第四周:编写职工信息管理系统的功能函数;- 第五周:集成系统,测试与优化。
1.设计目的在今天这个高速信息时代,许多繁杂的办公事务都由计算机代劳,例如职工信息管理等重复劳动越来越需要计算机来处理。
本系统就是为提高企业管理职工信息的效率而设计的,现在职工信息管理系统发挥无可取代的作用。
职工信息管理系统是一个可以用来进行职工工号、姓名等自然信息以及各项工资构成进行录入、查询、修改、删除、增加和排序浏览等操作的应用软件。
2.设计的总体思想本系统是用Visual C进行设计与开发,总体思想是结构化、模块化的程序设计。
由于主要实现的是管理系统的增、删、改、查和排序等功能,因此应用到程序设计中的基本控制结构,如循环和选择,还使用到C语言最具特色的语言成分——指针,高效地使用数组、字符串和结构体,采用经典的排序方法——冒泡法进行排序,并且包含对文件的读、写等基本操作。
3.功能模块描述职工信息管理系统是为企业进行职工信息管理提供辅助而设计的,需要为用户提供一个简单的人机界面以便操作,各功能模块如下。
1)登录模块:根据输入的登录密码判断是否允许该用户使用本系统,输入密码正确才能进入管理界面,管理职工信息。
2)创建模块:当第一次使用本系统时,根据提示输入职工的工号、姓名、性别、年龄、学历、职位、工资、电话和住址,可一次性输入多条职工的信息记录。
浏览模块:可以浏览经输入、修改、删除、添加、排序、读取后的职工信息。
3)查询模块:分为根据工号、姓名、电话、工资查询的四个具体需求,分别提示管理员要查询的职工信息的的工号、姓名、电话或工资。
4)修改模块:分为根据工号、姓名修改的两个具体需求,分别提示管理员要修改的职工信息的工号和姓名,如果有对应职工的信息记录存在,则逐项列出对应职工的信息。
5)删除模块:分为根据工号、姓名删除的两个具体需求,分别提示管理员要删除的职工信息的工号和姓名,如果有则删除此职工对应的信息记录。
6)添加模块:可在原有职工信息记录的基础上增加新的职工信息记录,并保存至磁盘中。
7)排序模块:分为根据姓名、年龄、工资排序的三个具体需求,分别提示管理员选择排序的方式。
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语言实现一个简单的员工信息管理系统。
二、功能需求1. 添加员工信息:包括姓名、性别、年龄、职务和薪资等基本信息。
2. 删除员工信息:根据员工编号或姓名删除指定员工的信息。
3. 修改员工信息:根据员工编号或姓名修改指定员工的信息。
4. 查询员工信息:根据员工编号或姓名查询指定员工的详细信息。
5. 显示所有员工信息:显示所有已经录入的员工的详细信息。
三、设计思路1. 数据结构设计为了存储和操作多个不同类型的数据,我们需要使用结构体来定义一个包含所有字段的数据类型。
以下是一个示例:```struct Employee {int id;char name[50];char gender[10];int age;char position[50];float salary;};```2. 数据存储方式我们可以选择将所有数据保存在一个文件中,也可以使用内存中的数组来保存数据。
在这里,我们选择使用内存中的数组来保存数据。
以下是一个示例:#define MAX_EMPLOYEES 100struct Employee employees[MAX_EMPLOYEES];int numEmployees = 0;```3. 主菜单设计我们需要设计一个主菜单,让用户可以选择要进行的操作。
以下是一个示例:```void showMenu() {printf("员工信息管理系统\n");printf("--------------------\n");printf("1. 添加员工信息\n");printf("2. 删除员工信息\n");printf("3. 修改员工信息\n");printf("4. 查询员工信息\n");printf("5. 显示所有员工信息\n");printf("6. 退出系统\n");}```4. 功能实现根据以上需求,我们需要实现以下功能:(1)添加员工信息```void addEmployee() {struct Employee employee;// 获取用户输入printf("请输入新员工的编号:");scanf("%d", &employee.id);// 判断编号是否已经存在for (int i = 0; i < numEmployees; i++) {if (employees[i].id == employee.id) {printf("该编号已经存在,请重新输入!\n"); return;}}// 获取用户输入printf("请输入新员工的姓名:");scanf("%s", );// 获取用户输入printf("请输入新员工的性别:");scanf("%s", employee.gender);// 获取用户输入printf("请输入新员工的年龄:");scanf("%d", &employee.age);// 获取用户输入printf("请输入新员工的职务:");scanf("%s", employee.position);// 获取用户输入printf("请输入新员工的薪资:");scanf("%f", &employee.salary);// 将新员工添加到数组中employees[numEmployees] = employee; numEmployees++;printf("添加成功!\n");}```(2)删除员工信息```void deleteEmployee() {int id;char name[50];// 获取用户输入printf("请输入要删除的员工编号或姓名:");scanf("%s", name);// 查找要删除的员工int index = -1;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0 || employees[i].id == atoi(name)) {index = i;break;}}if (index == -1) {printf("没有找到该员工,请重新输入!\n"); return;}// 删除员工for (int i = index; i < numEmployees - 1; i++) { employees[i] = employees[i + 1];}numEmployees--;printf("删除成功!\n");}```(3)修改员工信息```void modifyEmployee() {int id;char name[50];// 获取用户输入printf("请输入要修改的员工编号或姓名:");scanf("%s", name);// 查找要修改的员工int index = -1;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0 || employees[i].id == atoi(name)) {index = i;break;}}if (index == -1) {printf("没有找到该员工,请重新输入!\n"); return;}// 获取用户输入printf("请输入新的姓名(原姓名:%s):", employees[index].name);scanf("%s", employees[index].name);// 获取用户输入printf("请输入新的性别(原性别:%s):", employees[index].gender);scanf("%s", employees[index].gender);// 获取用户输入printf("请输入新的年龄(原年龄:%d):", employees[index].age);scanf("%d", &employees[index].age);// 获取用户输入printf("请输入新的职务(原职务:%s):", employees[index].position);scanf("%s", employees[index].position);// 获取用户输入printf("请输入新的薪资(原薪资:%f):", employees[index].salary);scanf("%f", &employees[index].salary);printf("修改成功!\n");}```(4)查询员工信息```void queryEmployee() {int id;char name[50];// 获取用户输入printf("请输入要查询的员工编号或姓名:");scanf("%s", name);// 查找要查询的员工int index = -1;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0 || employees[i].id == atoi(name)) {index = i;break;}}if (index == -1) {printf("没有找到该员工,请重新输入!\n");return;}// 显示员工信息printf("编号:%d\n", employees[index].id);printf("姓名:%s\n", employees[index].name); printf("性别:%s\n", employees[index].gender); printf("年龄:%d\n", employees[index].age);printf("职务:%s\n", employees[index].position); printf("薪资:%f\n", employees[index].salary); }```(5)显示所有员工信息```void showAllEmployees() {if (numEmployees == 0) {printf("没有任何员工信息!\n");return;}for (int i = 0; i < numEmployees; i++) {// 显示员工信息printf("--------------------\n");printf("编号:%d\n", employees[i].id);printf("姓名:%s\n", employees[i].name); printf("性别:%s\n", employees[i].gender); printf("年龄:%d\n", employees[i].age);printf("职务:%s\n", employees[i].position); printf("薪资:%f\n", employees[i].salary); }}```四、完整代码以下是一个完整的员工信息管理系统的代码:```#include <stdio.h>#include <string.h>#define MAX_EMPLOYEES 100struct Employee {int id;char name[50];char gender[10];int age;char position[50];float salary;};struct Employee employees[MAX_EMPLOYEES]; int numEmployees = 0;void showMenu() {printf("员工信息管理系统\n");printf("--------------------\n");printf("1. 添加员工信息\n");printf("2. 删除员工信息\n");printf("3. 修改员工信息\n");printf("4. 查询员工信息\n");printf("5. 显示所有员工信息\n");printf("6. 退出系统\n");}void addEmployee() {struct Employee employee;// 获取用户输入printf("请输入新员工的编号:");scanf("%d", &employee.id);// 判断编号是否已经存在for (int i = 0; i < numEmployees; i++) {if (employees[i].id == employee.id) {printf("该编号已经存在,请重新输入!\n"); return;}}// 获取用户输入printf("请输入新员工的姓名:");scanf("%s", );// 获取用户输入printf("请输入新员工的性别:");scanf("%s", employee.gender);// 获取用户输入printf("请输入新员工的年龄:");scanf("%d", &employee.age);// 获取用户输入printf("请输入新员工的职务:");scanf("%s", employee.position);// 获取用户输入printf("请输入新员工的薪资:");scanf("%f", &employee.salary);// 将新员工添加到数组中employees[numEmployees] = employee; numEmployees++;printf("添加成功!\n");}void deleteEmployee() {int id;char name[50];// 获取用户输入printf("请输入要删除的员工编号或姓名:");scanf("%s", name);// 查找要删除的员工int index = -1;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0 || employees[i].id == atoi(name)) {index = i;break;}}if (index == -1) {printf("没有找到该员工,请重新输入!\n");return;}// 删除员工for (int i = index; i < numEmployees - 1; i++) {employees[i] = employees[i + 1];}numEmployees--;printf("删除成功!\n");}void modifyEmployee() {int id;char name[50];// 获取用户输入printf("请输入要修改的员工编号或姓名:");scanf("%s", name);// 查找要修改的员工int index = -1;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0 || employees[i].id == atoi(name)) {index = i;break;}}if (index == -1) {printf("没有找到该员工,请重新输入!\n"); return;}// 获取用户输入printf("请输入新的姓名(原姓名:%s):", employees[index].name);scanf("%s", employees[index].name);// 获取用户输入printf("请输入新的性别(原性别:%s):", employees[index].gender);scanf("%s", employees[index].gender);// 获取用户输入printf("请输入新的年龄(原年龄:%d):", employees[index].age);scanf("%d", &employees[index].age);// 获取用户输入printf("请输入新的职务(原职务:%s):", employees[index].position);scanf("%s", employees[index].position);// 获取用户输入printf("请输入新的薪资(原薪资:%f):", employees[index].salary);scanf("%f", &employees[index].salary);printf("修改成功!\n");}void queryEmployee() {int id;char name[50];// 获取用户输入printf("请输入要查询的员工编号或姓名:"); scanf("%s", name);// 查找要查询的员工int index = -1;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0 || employees[i].id == atoi(name)) {index = i;break;}}if (index == -1) {printf("没有找到该员工,请重新输入!\n");return;}// 显示员工信息printf("编号:%d\n", employees[index].id);printf("姓名:%s\n", employees[index].name);printf("性别:%s\n", employees[index].gender);printf("年龄:%d\n", employees[index].age);printf("职务:%s\n", employees[index].position);printf("薪资:%f\n", employees[index].salary);}void showAllEmployees() {if (numEmployees == 0) {printf("没有任何员工信息!\n");return;}for (int i = 0; i < numEmployees; i++) {// 显示员工信息printf("--------------------\n");printf("编号:%d\n", employees[i].id);printf("姓名:%s\n", employees[i].name); printf("性别:%s\n", employees[i].gender); printf("年龄:%d\n", employees[i].age);printf("职务:%s\n", employees[i].position); printf("薪资:%f\n", employees[i].salary); }}int main() {int choice;while (1) {showMenu();// 获取用户选择printf("请选择要进行的操作:"); scanf("%d", &choice);switch (choice) {case 1:addEmployee();break;case 2:deleteEmployee();break;case 3:modifyEmployee();break;case 4:queryEmployee();break;case 5:showAllEmployees();break;case 6:return 0;default:printf("无效的选择,请重新输入!\n");}}}```五、总结本文介绍了如何使用C语言实现一个简单的员工信息管理系统。
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)/*比较两个字符串的大小*/。
这是主函数部分是个头文件#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语言职工信息管理系统附代码一、引言职工信息管理系统是一个在组织、单位等企业中经常使用的系统,用于对组织中的职工信息进行管理。
随着计算机技术的发展,职工信息管理系统的应用非常广泛,不仅可以提高信息处理效率,还可以大大简化管理流程。
本文将介绍基于C语言的职工信息管理系统的设计与实现。
二、需求分析1. 系统功能需求职工信息管理系统的主要功能包括:职工信息的录入、查看、修改、删除、保存与加载。
这些功能需要界面友好、操作简便并且具有直观性。
2. 数据需求职工信息管理系统中需要有职工编号、姓名、性别、出生年月、单位和职务等信息,这些信息需要用数据结构来存储。
3. 界面设计界面设计要符合用户的使用习惯,简单、易懂、美观,提高系统的易用性和用户体验。
三、系统设计本系统采用了面向对象的思想,采用“职工信息类”的概念来将职工信息进行封装。
职工信息类包含了职工编号、姓名、性别、出生年月、单位和职务信息等。
使用职工信息类来存储职工信息可以方便的进行增删改查等操作。
1. 主菜单设计主菜单设计中包括了录入、查看、修改、删除、保存与加载等功能。
2. 录入功能设计录入功能中需要输入职工编号、姓名、性别、出生年月、单位和职务等信息。
输入完成后,需要将信息存储到数据结构中。
3. 查看功能设计查看功能中需要实现对职工信息的查看,显示出详细的职工信息。
4. 修改功能设计修改功能中需要实现对职工信息的修改,用户可以通过输入职工编号或者其他信息来查找需要修改的职工信息,并进行修改。
5. 删除功能设计删除功能中需要实现对职工信息的删除,用户可以通过输入职工编号或者其他信息来查找需要删除的职工信息,并进行删除。
6. 保存与加载功能设计保存功能中需要将职工信息保存到文件中,而加载功能需要从文件中读取职工信息并加载到数据结构中。
四、系统实现在实现过程中,需要注意数据的合法性,例如输入的职工编号需要是唯一的、姓名不能为非法字符等等。
具体的实现方法可以参考以下代码示例:1. 定义职工信息类typedef struct _Worker {int workerID; // 职工编号,唯一标识符char name[20]; // 职工姓名char gender[10]; // 职工性别char birthday[20]; // 职工出生年月char department[50]; // 职工单位char position[20]; // 职工职务} Worker;2. 实现录入功能void addWorker(Worker *worker, int count) {printf("请输入职工编号:");scanf("%d", &worker[count].workerID);printf("请输入职工姓名:");scanf("%s", worker[count].name);printf("请输入职工性别:");scanf("%s", worker[count].gender);printf("请输入职工出生年月(格式:yyyy-mm-dd):"); scanf("%s", worker[count].birthday);printf("请输入职工单位:");scanf("%s", worker[count].department);printf("请输入职工职务:");scanf("%s", worker[count].position);printf("录入成功!\n");}3. 实现查看功能void showWorkerInfo(Worker *worker, int count) {for (int i = 0; i < count; i++) {printf("职工编号:%d\n", worker[i].workerID);printf("职工姓名:%s\n", worker[i].name);printf("职工性别:%s\n", worker[i].gender);printf("职工出生年月:%s\n", worker[i].birthday);printf("职工单位:%s\n", worker[i].department);printf("职工职务:%s\n", worker[i].position);printf("--------------------\n");}}4. 实现修改功能void modifyWorker(Worker *worker, int count, int workerID) { int index = -1;for (int i = 0; i < count; i++) {if (worker[i].workerID == workerID) {index = i;break;}}if (index == -1) {printf("没有找到要修改的职工信息!\n");return;}printf("请输入职工编号:");scanf("%d", &worker[index].workerID);printf("请输入职工姓名:");scanf("%s", worker[index].name);printf("请输入职工性别:");scanf("%s", worker[index].gender);printf("请输入职工出生年月(格式:yyyy-mm-dd):"); scanf("%s", worker[index].birthday);printf("请输入职工单位:");scanf("%s", worker[index].department);printf("请输入职工职务:");scanf("%s", worker[index].position);printf("修改成功!\n");}5. 实现删除功能void deleteWorker(Worker *worker, int count, int workerID) { int index = -1;for (int i = 0; i < count; i++) {if (worker[i].workerID == workerID) {index = i;break;}}if (index == -1) {printf("没有找到要删除的职工信息!\n");return;}for (int i = index + 1; i < count; i++) {worker[i - 1] = worker[i];}printf("删除成功!\n");}五、总结本文介绍了基于C语言的职工信息管理系统的设计与实现。
职工管理系统课程设计报告c语言一、引言职工管理系统是一个针对公司或组织内部职工信息管理的软件系统,主要用于记录职工的基本信息、工作情况、考勤记录等,方便管理人员进行数据统计和分析。
本文将介绍一个基于C语言的职工管理系统的设计与实现。
二、系统设计1. 系统功能职工管理系统主要包括以下功能模块:•添加新职工信息•修改职工信息•删除职工信息•查询职工信息•统计各部门职工人数•统计各职工职务人数2. 数据结构为了有效地存储和管理职工信息,系统采用了以下数据结构:•职工信息结构体•部门信息结构体3. 主要算法系统主要采用以下算法实现各功能模块:•添加职工信息:通过链表添加新结点•修改职工信息:更新结点中的字段信息•删除职工信息:在链表中删除指定结点•查询职工信息:根据输入的关键词在链表中查找•统计职工人数:遍历链表统计人数•统计职务人数:遍历链表统计各职务人数三、系统实现系统采用C语言编写,通过文件读写实现数据的持久化存储。
程序运行时,首先读取保存在文件中的职工信息并加载到内存中,用户可以通过交互式界面选择相应功能进行操作。
操作完成后,系统会将数据写回文件,保证数据的持久性。
四、系统优化与改进为了提高系统的性能和用户体验,可以考虑以下改进方案:•引入数据库存储,提高数据读写效率•添加更多的查询条件,提供更灵活的查询功能•增加权限管理模块,限制不同用户的操作权限•完善异常处理机制,提高系统的稳定性和可靠性五、总结通过本次课程设计,我们深入学习了C语言的应用,掌握了职工管理系统的设计与实现方法。
未来可以基于此系统进行更多功能的扩展和优化,提高系统的实用性和适用性。
以上是本文对职工管理系统课程设计报告的详细介绍,希望能对读者有所帮助。
c语言程序设计员工信息管理系统实验题目:员工信息管理系统一、实验目的1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型, 熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if语句及switch语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while、do-while.、for 的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
二.实验内容1.编写程序并进行调试运行。
2.输入员工资料,并保存于文件。
每个员工包含信息如: 工作证号、姓名、性别、工龄、学历、职务、电话、工资等。
3.对已存入的员工信息进行更新操作,包括添加一个员工信息、删除某个员工信息和修改某个员工信息。
4.经过输入姓名、工作证号的方式查询员工信息。
5.最后输出员工信息, 供需要时打印。
二、需求分析1.该程序可用于对企业员工情况基本信息的存储、更新、查询、输出等操作,以实现对企业员工的管理。
2.其中更新功能包括: 添加信息、删除信息、修改信息、可根据需要添加一个或多个员工信息,也可对个别员工信息进行适当的删除或修改。
以便随时更新员工信息。
3.程序中设计的查询功能可根据需要从若干数据中查询某个员工信息, 而且可根据两种不同的方法查询: 按工作证号查询和按姓名查询。
以满足不同的需要。
四、概要设计1、方案设计对系统进行分析, 给出结构图分析: 系统要求实现许多的功能, 因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化, 将系统设计任务分解出许多子功能模块进行设计结构图如下:2.模块功能说明对各个模块进行功能的描述(1).输入模块:录入需要管理的员工信息并将信息保存于文件中,以方便日后进行打印、 读取、 更新等操作。
(2).添加模块:可添加一个或多个员工信息, 并将所添加员工信息保存, 方便查找。
(3).删除模块:可对辞职或休假的员工信息做删除处理。
(4).修改模块:可根据需要对多个员工信息进行修改, 也可随时对个别项进行修改。
c语言职工信息管理系统 课程设计一、课程目标知识目标:1. 学生能理解C语言中结构体的概念,掌握结构体在职工信息管理中的运用。
2. 学生能掌握文件操作的基本方法,实现对职工信息数据的存储与读取。
3. 学生了解并掌握C语言中字符串处理、数据排序等基本算法。
技能目标:1. 学生能够运用C语言编写简单的职工信息管理系统,实现职工信息的增加、删除、修改和查询功能。
2. 学生能够利用结构体和文件操作,实现数据的持久化存储。
3. 学生能够运用所学知识解决实际问题,提高编程实践能力。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,激发创新精神。
2. 学生能够认识到编程在现实生活中的应用价值,提高对信息技术的认识。
3. 学生在课程实践过程中,培养团队合作意识,提高沟通与协作能力。
课程性质:本课程为C语言编程实践课程,旨在让学生通过职工信息管理系统的设计与实现,掌握C语言的基本知识和编程技能。
学生特点:本课程面向高中生,学生对C语言有一定了解,具备基本的编程能力,但实践经验不足。
教学要求:结合学生特点和课程性质,教师需注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决实际问题的能力。
教学过程中,注重培养学生的自主学习能力和团队合作精神。
通过本课程的学习,使学生能够达到上述课程目标,为后续课程打下坚实基础。
二、教学内容1. 结构体的定义和使用:以职工信息管理系统为例,讲解结构体的定义方法,如何定义职工信息结构体,以及结构体在程序中的使用。
相关教材章节:C语言基础,结构体与共用体。
2. 文件操作:介绍文件的基本操作,如文件的打开、关闭、读写等,结合职工信息管理系统,实现数据的持久化存储。
相关教材章节:文件操作,数据存储。
3. 字符串处理:讲解字符串的基本操作,如字符串的连接、比较、查找等,应用于职工信息管理系统中的输入输出处理。
相关教材章节:字符串处理。
4. 数据排序算法:介绍一种简单的排序算法,如冒泡排序、选择排序等,应用于职工信息的排序显示。
C _C语言_程序设计_简单的职工信息管理系统C++_C语言_程序设计_简单的职工信息管理系统传媒工程系成绩C++程序设计语言结业报告课程名称:C++程序设计语言班级: B1101学号:姓名: 指导教师: 报告完成时间:_ 2013-10-28制定C++程序设计语言结业报告课程名称 C++程序设计语言班级 B1101 实验日期 2013.12 姓名学号实验成绩名称 C++程序设计语言实验目的及要求掌握 Visual C++集成环境下调试标准C++程序的方法实验环境 Visual C++集成环境、Windows XP 操作系统实验内容用C++语言开发“简单的学生成绩管理系统”。
算法描述及实验步骤 (用适当的形式表达算法设计思想与算法实现步骤)Switch 开始开退出其中:主菜单模块完成用户命令的接受,此模块也是职工信息管理的入口,用户所要进行的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。
信息添加模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别,出生年月、学历、职务、工资、住址、电话等。
信息显示模块完成已录入职工信息的显示。
信息查询模块完成职工信息的查询,查询时对应有按编号查询和按姓名查询两种方式。
信息修改模块完成职工信息的修改功能。
信息删除功能模块完成职工信息的删除功能。
信息排序模块完成对职工信息的排序,排序内容包括工号,工资等。
信息保存模块完成对职工信息的保存。
4.数据结构本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理。
5.程序流程系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如图所示:调试过程及实验结果总结在本系统的开发过程中,由于组是初次开发软件,在知识、经验方面都存在着不足。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为职工信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。
通过开发这个系统,我组掌握了的项目基本开发过程,用到的知识巩固了我组对C语言的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
附录 (源程序等)#include#include"string"#include#include#include#define N 100//N作为最大职工总数int f0;//f作为开关using namespace std;string p;//p作为接收菜单选项的字符串void menu;//显示菜单class workerpublic:worker void show;//职工信息显示~workerfriend class WorkerList; private:string num,name,sex,edu,address,tel;int age,salary;;class WorkerListprivate:worker w[N];int NUM;//用来计算职工数目int count;//用来暂时记录当前操作第几个职工public:void add;//职工信息录入void sort;//职工信息排序void search;//职工信息查找void dele;//职工信息删除void modify;//职工信息修改 void save;//职工信息以文件形式保存void showworker;//显示职工信息在屏幕上 WorkerListNUM0;count0;;void menucoutendl;cout"***********************************************"endl;cout"** **"endl; cout"** 职工信息管理系统主菜单**"endl; cout"****"endl; cout"**1.职工信息添加 **"endl; cout"**2.职工信息修改 **"endl; cout"**3.职工信息删除 **"endl; cout"**4.职工信息排序 **"endl; cout"**5.职工信息查找 **"endl; cout"**6.职工信息显示 **"endl; cout"**7.职工信息保存 **"endl; cout"**0.退出**"endl;cout"** **"endl;cout"***********************************************"endl;coutendl;void domain//主菜单函数实现WorkerList wl;while1system"cls";menu;cout"请选择数字编号~7"endl;int i1;cini1;while!i10&&i17 cout"输入有误,请重新输入:"endl; cini1; switchi1case 1:wl.add;break; case 2:wl.modify;break; case 3:wl.dele;break; case 4:wl.sort;break; case 5:wl.search;break; case 7:wl.save;break; case 6:wl.showworker;break;case 0:cout"系统退出!!"endl;exit0;default:break;cout"是否返回主菜单Y/N"endl; cinp;ifp"n"||p"N" cout"系统退出!!"endl;exit0;//getchar;void WorkerList::add//职工信息添加函数实现 cout"请输入职工信息:"endl; cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;string num;cinnum;forint i0;iNUM;i++ whilenumw[i].numcout"此职工编号已存在,请重新输入:"endl; cinnum;w[NUM].numnum;cinw[NUM].namew[NUM].sexw[NUM].eduw[NUM].agew[NUM].salaryw[NUM].addressw[NUM].tel;++NUM;countNUM;void worker::show//显示职工信息函数实现cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutnum'\t'name'\t'sex'\t'edu'\t'age'\t'salary'\t'address'\t'tele ndl;coutendl;void WorkerList::modify//职工信息修改函数实现ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl;menu;elsecout"职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;cout"请输入需要修改信息职工的工号:"endl;string num1;cinnum1;int j0,k;int flag1;whileflagfor;jcount;j++ifnum1w[j].numflag0;kj;break;ifflagcout"不存在此员工,请重新输入:"endl;j0;cinnum1;cout"你选择的职工的信息为:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutw[k].num'\t'w[k].name'\t'w[k].sex'\t'w[k].edu'\t'w[k].age'\t'w[k].salary'\t'w[k].address'\t'w[k].telendl;coutendl;cout"***********************************************"endl;cout"**1.修改工号 **"endl;cout"**2.修改姓名 **"endl;cout"**3.修改性别 **"endl;cout"**4.修改学历 **"endl;cout"**5.修改年龄 **"endl;cout"**6.修改工资 **"endl;cout"**7.修改地址 **"endl;cout"**8.修改电话 **"endl;cout"**0.返回主菜单**"endl;cout"***********************************************"endl;coutendl;cout"请选择数字编号~8"endl; int i3;cini3;whilei30||i38cout"输入有误,请重新输入:"endl; cini3;switchi3case 1:cout"请输入新的职工工号:";cinw[k].num;cout"修改信息已保存,现返回主菜单:"endl; menu;break;case 2:cout"请输入新的职工姓名:";cinw[k].name;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 3:cout"请输入新的职工性别:";cinw[k].sex;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 4:cout"请输入新的职工学历:";cinw[k].edu;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 5:cout"请输入新的职工年龄:";cinw[k].age;cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 6:cout"请输入新的职工工资:";cinw[k].salary; cout"修改信息已保存,现返回主菜单:"endl; menu; break;case 7:cout"请输入新的职工地址:";cinw[k].address;cout"修改信息已保存,现返回主菜单:"endl; menu;break;case 8:cout"请输入新的职工电话:";cinw[k].tel;cout"修改信息已保存,现返回主菜单:"endl; menu;break;case 0:menu;default:break;void WorkerList::showworker//职工信息显示函数实现 ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"已保存的职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;/*cout"是否返回主菜单Y/N"endl;cinp;while1ifp"y"||p"Y"menu;else ifp"n"||p"N"cout"系统退出!!"endl;exit0;elsecout"输入有误,请重新输入:";cinp;*/void WorkerList::search ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"请选择查找方式:"endl;cout"***********************************************"endl;cout"**1.按工号查找**"endl; cout"**2.按姓名查找**"endl; cout"**3.按工资查找**"endl; cout"**4.按学历查找**"endl; cout"**0.返回主菜单**"endl; cout"***********************************************"endl;coutendl;cout"请选择数字编号~4"endl; int i4;cini4;whilei40||i44cout"输入有误,请重新输入:"endl; cini4;ifi41string num2;cout"请输入要查询的职工的工号:"endl; cinnum2;int j0,k;int flag1;whileflagfor;jcount;j++ifnum2w[j].numflag0;kj;cout"查询的职工信息如下:"endl; cout"工号\t姓名\t性别\t学历\t年龄\t 工资\t地址\t电话"endl;coutw[k].num'\t'w[k].name'\t'w[k].sex'\t'w[k].edu'\t'w[k].age'\t' w[k].salary'\t'w[k].address'\t'w[k].telendl;break;ifflagflag0;cout"不存在此职工!!\n返回主菜单"endl; break;else ifi42string name2;cout"请输入要查询的职工的姓名:"endl; cinname2;int j20,k2;int flag21;whileflag2for;j2count;j2++ifname2w[j2].nameflag20;k2j2;cout"查询的职工信息如下:"endl; cout"工号\t姓名\t性别\t学历\t年龄\t 工资\t地址\t电话"endl;coutw[k2].num'\t'w[k2].name'\t'w[k2].sex'\t'w[k2].edu'\t'w[k2].ag e'\t'w[k2].salary'\t'w[k2].address'\t'w[k2].telendl;break;ifflag2flag20;cout"不存在此职工!!\n返回主菜单"endl; break;else ifi43int salary2;cout"请输入要查询的职工的工资:"endl; cinsalary2;int j30,k3;int flag31;whileflag3for;j3count;j3++ifsalary2w[j3].salary flag30;k3j3;cout"查询的职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutw[k3].num'\t'w[k3].name'\t'w[k3].sex'\t'w[k3].edu'\t'w[k3].ag e'\t'w[k3].salary'\t'w[k3].address'\t'w[k3].telendl;break;ifflag3flag30;cout"不存在此职工!!\n返回主菜单"endl;break;else ifi44string edu2;cout"请输入要查询的职工的学历:"endl;cinedu2;int j40,k4;int flag41;whileflag4for;j4count;j4++ifedu2w[j4].eduflag40;k4j4;cout"查询的职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; coutw[k4].num'\t'w[k4].name'\t'w[k4].sex'\t'w[k4].edu'\t'w[k4].ag e'\t'w[k4].salary'\t'w[k4].address'\t'w[k4].telendl;break;ifflag4flag40;cout"不存在此职工!!\n返回主菜单"endl; break;else ifi40menu;void WorkerList::sort//职工信息排序功能实现 ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"请选择排序方式:"endl;cout"***********************************************"endl;cout"**1.按工号排序(升序)**"endl; cout"**2.按工号排序(降序) **"endl; cout"**3.按姓名排序(升序) **"endl; cout"**4.按姓名排序(降序) **"endl; cout"**5.按工资排序(升序) **"endl; cout"**6.按工资排序(降序) **"endl; cout"**0.返回主菜单**"endl;cout"***********************************************"endl;coutendl;cout"请选择数字编号~6"endl;int i5;cini5;whilei50||i56cout"输入有误,请重新输入:"endl;cini5;ifi51forint i0;icount-1;i++forint j0;jcount-1-i;j++ifw[j].numw[j+1].numstring temp;tempw[j].num;w[j].numw[j+1].num;w[j+1].numtemp;cout"按工号升序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;else ifi52forint i0;icount-1;i++forint j0;jcount-1-i;j++ifw[j].numw[j+1].numstring temp;tempw[j].num;w[j].numw[j+1].num;w[j+1].numtemp;cout"按工号降序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;else ifi53forint i0;icount-1;i++forint j0;jcount-1-i;j++ifw[j].namew[j+1].namestring temp;tempw[j].name;w[j].namew[j+1].name;w[j+1].nametemp;cout"按姓名升序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi54forint i0;icount-1;i++forint j0;jcount-i-1;j++ifw[j].namew[j+1].namestring temp;tempw[j].name;w[j].namew[j+1].name;w[j+1].nametemp;cout"按姓名降序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi55forint i0;icount-1;i++forint j0;jcount-i-1;j++ifw[j].salaryw[j+1].salaryint temp;tempw[j].salary;w[j].salaryw[j+1].salary;w[j+1].salarytemp;cout"按工资升序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi56forint i0;icount-1;i++forint j0;jcount-i-1;j++ifw[j].salaryw[j+1].salaryint temp;tempw[j].salary;w[j].salaryw[j+1].salary;w[j+1].salarytemp;cout"按工资降序后的信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl; else ifi50menu;void WorkerList::dele//职工信息删除功能实现 ifNUM0cout"没有职工信息存入,系统将返回主菜单"endl; menu;elsecout"职工信息如下:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;forint i0;icount;i++coutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[i].age'\t' w[i].salary'\t'w[i].address'\t'w[i].telendl;cout"请输入需要删除信息职工的工号:"endl; string num3;cinnum3;int j0,k;int flag1;whileflagfor;jcount;j++ifnum3w[j].numflag0;kj;break;ifflagcout"不存在此员工,请重新输入:"endl;j0;cinnum3;cout"你选择的职工的信息为:"endl;cout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl;coutw[k].num'\t'w[k].name'\t'w[k].sex'\t'w[k].edu'\t'w[k].age'\t' w[k].salary'\t'w[k].address'\t'w[k].telendl;/*cout"确认请输入Y\t返回主菜单请输入N "endl; string p; cinp;while1ifp"y"||p"Y"cout"员工信息已删除!"endl;forint i0;icount;i++ifw[i].numnum3int ji;for;jcount-1;j++w[j]w[j+1];count--;break;else ifp"n"||p"N"menu;elsecout"输入有误,请重新输入:";cinp;*/void WorkerList::saveifNUM0cout"没有职工信息存入,系统将返回主菜单"endl;menu;elseofstream fout;fout.open"D:\\worker.txt",ios::out; cout"文件正在保存请稍候!!"endl;cout"数据保存成功!!!"endl;fout"已保存员工信息如下:"endl;fout"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"endl; forint i0;icount;i++foutw[i].num'\t'w[i].name'\t'w[i].sex'\t'w[i].edu'\t'w[ i].age'\t'w[i].salary'\t'w[i].address'\t'w[i].telendl;cout"系统返回主菜单:"endl;menu;fout.close;int maindomain;return 0;。