c语言程序设计员工信息管理系统
- 格式:doc
- 大小:112.00 KB
- 文档页数:36
c语言课程设计职工信息管理系统一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握基本数据类型、运算符、控制语句的使用;2. 学会使用C语言进行模块化编程,了解函数的定义、调用和参数传递;3. 了解结构体类型及其应用,掌握结构体数组的创建和使用;4. 理解文件操作的基本概念,掌握文件的读写方法。
技能目标:1. 能够运用C语言设计并实现一个职工信息管理系统,具备基本的编程能力;2. 能够运用结构体和文件操作,实现数据的存储和读取;3. 能够通过模块化编程,提高代码的可读性和可维护性;4. 学会使用调试工具,分析和解决程序中的错误。
情感态度价值观目标:1. 培养学生主动探究、积极思考的学习态度,增强解决问题的信心和兴趣;2. 培养学生的团队合作意识,学会与他人共同分析和解决问题;3. 通过编程实践,使学生认识到计算机编程在现实生活中的应用价值,激发学习计算机科学的兴趣。
本课程针对高年级学生,他们已具备一定的编程基础,能理解较为复杂的概念。
课程性质为实践性较强的学科,要求学生通过动手实践,将理论知识应用于实际项目中。
课程目标旨在培养学生具备独立设计、编程和调试程序的能力,提高学生的编程水平和实际问题解决能力。
通过本章节学习,学生将能够掌握C语言在实际项目中的应用,为后续深入学习计算机科学奠定基础。
二、教学内容1. C语言基本语法与结构复习:回顾数据类型、变量、常量、运算符、控制语句(包括循环和分支)等基本概念,巩固学生的语法基础。
相关教材章节:第一章至第四章2. 函数与模块化编程:介绍函数的定义、声明、调用,参数传递,以及模块化编程思想。
相关教材章节:第五章3. 结构体与结构体数组:讲解结构体的定义和使用,结构体数组的创建和管理。
相关教材章节:第六章4. 文件操作:阐述文件的概念,文件的打开、读写、关闭等基本操作。
相关教材章节:第十章5. 职工信息管理系统设计:a. 需求分析:明确系统功能,包括职工信息的增加、删除、修改和查询等。
c语言职工信息管理系统设计C语言职工信息管理系统是一种方便、高效的职工信息管理工具,设计该系统主要是为了提高人力资源管理效率,减轻人事部门的工作量。
下面将从系统设计流程,系统功能和系统操作流程三个方面来详细介绍该系统的设计。
一、系统设计流程1.需求分析:系统的需求分析是设计中非常关键的一步,必须充分考虑到职工管理的基本需求和功能要求,以适应各种企业规模和管理水平的要求。
系统需要提供职工个人信息和考勤、绩效管理查询和修改、新员工入职登记等基本功能。
2.系统设计:系统需要根据需求来设计相应的数据结构和数据库。
需要设计合适的数据表,包括职工基本信息表、考勤记录表、工资记录表等。
3.系统实现:实现系统的功能,包括录入人员信息、修改人员信息、考勤登记、绩效考评、新员工入职登记等操作。
4.系统维护:制定系统的维护计划,保证系统正常、稳定的运行。
二、系统功能1.基本信息管理:包括职工基本信息的录入和修改,如姓名、性别、出生年月、联系方式等。
2.考勤管理:包括考勤记录的登记和查询,如请假、加班、迟到、早退等记录。
3.工资管理:包括工资记录的录入和查询,能够根据考勤和绩效等因素计算职工应发工资和实际发放工资。
4.绩效管理:包括绩效考核的记录和查询,能够根据职工绩效考核记录、已发工资等因素,生成人员绩效考核报表。
三、系统操作流程1.登录系统:用户登录系统,输入用户名和密码。
2.菜单:系统进入主菜单,包括基本信息管理、考勤管理、工资管理、绩效管理、系统设置等功能。
3.信息录入:在基本信息管理中,根据职工基本信息表的格式,输入职工的个人信息。
4.考勤登记:在考勤管理中,根据考勤记录表的格式,输入职工的考勤记录,包括请假、加班、迟到、早退等情况。
5.工资录入:在工资管理中,根据工资记录表的格式,输入职工的实际工资和应发工资情况。
6.绩效评估:在绩效管理中,根据绩效考核表的格式,输入职工绩效考核情况,系统将自动生成用于绩效考评的报表。
目录一、课程设计目的 (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语言的职工信息管理系统的设计与实现。
二、系统需求分析1.系统功能(1)员工信息录入:可以录入员工的个人信息,包括姓名、性别、出生日期、身份证号码、联系电话、职务等信息。
(3)员工信息修改:可以修改员工的个人信息。
(5)员工信息统计:可以对员工的信息进行统计分析,统计人数、性别比例等。
2.系统开发环境本系统需要运行在Windows 7及以上操作系统上,开发工具使用Dev-C++。
三、系统设计与实现2.系统模块设计(1)员工信息录入模块:1)输入员工的各项信息;2)自动生成员工编号;3)将员工信息写入文件保存。
1)按照不同的条件进行查询;2)查询后输出符合条件的员工信息。
2)修改员工信息;1)对员工信息进行统计分析;2)输出统计结果。
(6)系统菜单模块:1)显示系统功能菜单;2)接收用户输入进行相应操作。
3.代码实现(1)主函数模块:{system("color 3f"); //设置控制台颜色menu(); //调用主菜单函数return 0;}void insert()employee emp;ofstream fout("employee.txt", ios::app);cout << "请输入员工姓名:";cin >> ;emp.no = rand() % 1000 + 1;fout << emp.no << " " << << " " << emp.gender << " " << emp.birthday << " " << emp.id << " " << emp.phone << " " << emp.job << endl;cout << "添加成功!" << endl;fout.close();int choice;cout << "请选择查询条件(1.姓名 2.性别 3.出生日期 4.身份证号码 5.联系电话 6.职务):";case 1:break;default:cout << "编号\t\t姓名\t性别\t出生日期\t身份证号码\t\t联系电话\t职务" << endl;if (choice == 1 && == ) //按照姓名查询if (no == emp.no)elseint manCount = 0;womanCount++;四、系统测试与评估我们采用黑盒测试,使用不同的测试用例进行测试。
南京工程学院程序设计课程设计报告职工信息管理系统设计专业学生姓名班级学号指导教师完成日期职工信息管理系统设计目录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语言课程设计职工信息管理系统一、教学目标本课程的教学目标是使学生掌握C语言职工信息管理系统的基本概念、设计和实现方法。
通过本课程的学习,学生应能理解职工信息管理系统的需求分析、系统设计、编码实现和测试评估等环节,掌握C语言编程的基本技能,并培养解决实际问题的能力。
具体来说,知识目标包括:掌握职工信息管理系统的功能模块及其相互关系;理解C语言的数据类型、运算符、控制结构、函数等基本语法;了解软件工程的基本原理和方法。
技能目标包括:能够使用C语言独立完成职工信息管理系统的设计和实现;具备基本的调试和优化代码的能力;能够进行团队合作,合理分工,共同完成项目。
情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情,提高他们对编程学习的自信心;培养学生具备良好的编程习惯和团队协作精神,增强他们的责任感和使命感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.职工信息管理系统的基本概念和架构:介绍职工信息管理系统的功能模块,如职工信息录入、查询、修改和删除等,以及各模块之间的关系。
2.C语言基础知识:讲解C语言的数据类型、运算符、控制结构、函数等基本语法。
3.软件工程方法:介绍需求分析、系统设计、编码实现、测试评估等软件工程基本原理和方法。
4.职工信息管理系统的实现:通过实际编码,讲解如何使用C语言实现职工信息管理系统的各个功能模块。
5.调试与优化:教授如何使用调试工具对代码进行调试,以及如何对代码进行优化,提高系统性能。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:讲解C语言的基本语法和职工信息管理系统的设计原理。
2.案例分析法:分析实际案例,使学生更好地理解职工信息管理系统的实现过程。
3.实验法:安排实验课程,让学生亲自动手编写代码,实现职工信息管理系统。
4.小组讨论法:学生进行小组讨论,分享学习心得,互相答疑解惑。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《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语言程序设计员工信息管理系统精品资料1实验题目:员工信息管理系统一、实验目的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语言课程设计职工信息管理系统一、教学目标本节课的教学目标是使学生掌握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语言职工信息管理系统课程设计一、教学目标本课程的教学目标是使学生掌握C语言职工信息管理系统的基本概念、设计与实现。
通过本课程的学习,学生应达到以下知识目标:1.理解C语言的基本语法和数据结构。
2.掌握职工信息管理系统的需求分析和系统设计。
3.学会使用C语言实现职工信息管理系统的功能。
4.能够使用C语言进行程序设计。
5.能够独立完成职工信息管理系统的需求分析和系统设计。
6.能够使用C语言实现职工信息管理系统的功能并调试程序。
情感态度价值观目标:1.培养学生对计算机科学的兴趣和热情。
2.培养学生独立思考、解决问题的能力。
3.培养学生团队协作、沟通的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、职工信息管理系统的需求分析和系统设计,以及C语言实现职工信息管理系统的方法。
1.C语言的基本语法:数据类型、变量、运算符、表达式、语句等。
2.数据结构:数组、链表、栈、队列等。
3.职工信息管理系统的需求分析:系统功能、数据流图、实体关系图等。
4.职工信息管理系统的系统设计:模块划分、模块功能、接口设计等。
5.C语言实现职工信息管理系统:代码编写、调试与优化。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法、数据结构和职工信息管理系统的相关知识,使学生掌握基本概念。
2.案例分析法:分析实际案例,使学生了解职工信息管理系统的需求分析和系统设计的过程。
3.实验法:让学生动手编写C语言代码,实现职工信息管理系统的功能,培养学生的实际操作能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、视频等多媒体资料,提高课堂教学效果。
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语言员工信息管理系统是一个使用C语言编写的程序,旨在帮助企业或组织管理员工的相关信息。
这个系统可以有效地记录和管理员工的基本信息、职位、工资、考勤等。
它能够提供一种便捷、高效的方式来管理员工信息,提高工作效率和准确性。
以下是一个简单的员工信息管理系统的参考代码,以展示一些基本功能:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_EMPLOYEES 100struct Employee {char name[50];int id;char position[50];float salary;};struct Employee employees[MAX_EMPLOYEES];int numEmployees = 0;void addEmployee() {if (numEmployees >= MAX_EMPLOYEES) {printf("无法添加新员工,员工数量已达上限。
\n");return;}struct Employee newEmployee;printf("请输入员工姓名: ");scanf("%s", );printf("请输入员工编号: ");scanf("%d", &newEmployee.id);printf("请输入员工职位: ");scanf("%s", newEmployee.position);printf("请输入员工工资: ");scanf("%f", &newEmployee.salary);employees[numEmployees++] = newEmployee;printf("员工添加成功!\n");}void searchEmployee() {char name[50];printf("请输入要查询的员工姓名: ");scanf("%s", name);int found = 0;for (int i = 0; i < numEmployees; i++) {if (strcmp(employees[i].name, name) == 0) {printf("员工姓名: %s\n", employees[i].name); printf("员工编号: %d\n", employees[i].id);printf("员工职位: %s\n", employees[i].position); printf("员工工资: %.2f\n", employees[i].salary);found = 1;break;}}if (!found) {printf("未找到该员工!\n");}}void printAllEmployees() {if (numEmployees == 0) {printf("没有员工信息可打印。
河南理工大学计算机科学与技术学院课程设计报告20 12 — 20 13 学年第二学期设计名称职工信息管理系统设计上机地点上机日期学生姓名学号专业班级指导教师年月日一.设计目的:通过亲自设计程序,可以令我们熟悉c语言操作,更熟练的掌握c语句。
初步体会编程的过程,为将来的程序深入学习打下基础和培养兴趣。
二.总体设计:三.详细设计:(一). 为了方便使用结构此系统结构均为全局类型定义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函数来实现。
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).修改模块:
可根据需要对多个员工信息进行修改, 也可随时对
个别项进行修改。
(5).查询模块:
可对已建立的员工信息进行查询, 而且可根据需要选择按姓名查询或按工作证号查询。
(6).保存模块:
用于对信息进行保存。
(7).输出模块:
将所有员工信息或想要查询的员工信息显示于屏幕, 用于打印员工信息或查找某些员工信息。
(8). 修改密码:
对系统的密码能够进行修改, 确保信息的安全。
(9) . 关于系统:
对系统的简介, 以及操作时的注意事项。
(10).退出系统:
选择该项, 自动退出该系统。
五、详细设计及运行结果
流程图, 函数之间相互调用的图示, 程序设计及编码, 运行结果。