c语言程序设计 员工信息管理系统

合集下载

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

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

C语言课程设计设计题目:职工信息管理系统设计目的当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息系统的环境。

计算机的最到好处的于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

本系统就是为了管理好学生选课信息而设计的。

数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。

基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。

二、题目说明:系统功能简介:系统以菜单方式工作1)职工信息录入(文件保存职工信息)2)输出职工信息、浏览职工信息3)查询职工信息4)根据员工号查找职工信息5)根据工资、年龄、性别对职工信息进行排序6)删除职工信息3. 设计实施:#include <>#include <>#include <>typedef struct Empk{int EmpNum; /* staff number */char EmpName[12]; /* name*/int Sex; /*sex 1- woman 2- man*/int Old; /* old*/int Cult; /*education background 1-specilist 2-doctor 3-others*/ int Salary; /*salary*/char Address[12]; /* address*/int Tell; /*telephone number*/}Emp;Emp emp[100];void open(){int i;FILE *fp;if((fp=fopen("wyl","rb+"))==NULL){printf("can not do it! Because of no file of information\n");exit(0);}for(i=0;i<100;i++){if(fread(&emp[i],sizeof(Emp),1,fp)==0){printf("Fail to output\n");exit(0);}}fclose(fp);}void close() /*跳出*/{int i;FILE *fp;if((fp=fopen("wyl","wr+"))==NULL){printf("can not do it!\n");exit(0);}for(i=0;i<100;i++)fwrite(&emp[i],sizeof(Emp),1,fp);fclose(fp);}void inputEmpInfo() /*输入信息*/{int i,k;for(i=0;i<100;i++){printf("Please enter the staff's :\nnumber:");scanf("%d",&emp[i].EmpNum);printf("\nname:");scanf("%s",emp[i].EmpName);printf("\nsex : 1- woman 2- man:");scanf("%d",&emp[i].Sex);printf("\nold:");scanf("%d",&emp[i].Old);printf("\nEducation background:1-specialist 2-doctor 3-others");scanf("%d",&emp[i].Cult);printf("\nsalary:");scanf("%d",&emp[i].Salary);printf("\naddress:");scanf("%s",emp[i].Address);printf("\ntellphone:");scanf("%d",&emp[i].Tell);printf("continue ");scanf("%d",&k);if(k==2) break;}close();}void reorder() /*修改*/{int i,s,j,k,l;Emp temp;open();printf("\nChoose which category would you want to use\n1---sex \n2---salary(from maximum to minimum) \n3--old (from maximum to minimum) \n ( enter the corresponding nember) \n)");scanf("%d",&i);switch(i){case 1:printf("\nchoose which sex do you want to inquire 1--woman 2 --man ");scanf("%d",&s);for(j=0;emp[j].EmpNum!=0;j++){if(emp[j].Sex==s){printf(" number:%d\n",emp[j].EmpNum);printf("name:%s", emp[j].EmpName);printf("\nsex 1- woman 2- man:%d", emp[j].Sex);printf("\nold:%d", emp[j].Old);printf("\neducation background:%d\t\t\t 1-specialist 2-doctor 3-others ",emp[j].Cult);printf("\nsalary:%d", emp[j].Salary);printf("\naddress:%s", emp[j].Address);printf("\ntelephone nember :%d", emp[j].Tell);}}break;case 2:for(k=0;emp[k].EmpNum!=0;j++ ){for(l=k;emp[l].EmpNum!=0;l++){if(emp[l].Salary<emp[l+1].Salary){temp=emp[l];emp[l]=emp[l+1];emp[l+1]=temp;}}printf(" number:%d\n",emp[k].EmpNum);printf("name:%s",emp[k].EmpName);printf("\nsex 1- woman 2- man:%d",emp[k].Sex);printf("\nold:%d",emp[k].Old);printf("\neducation background:%d\t\t\t 1-specialist 2-doctor 3-others ",emp[k].Cult);printf("\nsalary:%d",emp[k].Salary);printf("\nadress:%s",emp[k].Address);printf("\ntelephone nember :%d",emp[k].Tell);}break;case 3:for(k=0;emp[k].EmpNum!=0;j++ ){for(l=k;emp[l].EmpNum!=0;l++){if(emp[l].Old<emp[l+1].Old){temp=emp[l];emp[l]=emp[l+1];emp[l+1]=temp;}}printf(" number:%d\n",emp[k].EmpNum);printf("name:%s",emp[k].EmpName);printf("\nsex 1- woman 2- man:%d",emp[k].Sex);printf("\nold:%d",emp[k].Old);printf("\neducation background:%d\t\t\t 1-specialist 2-doctor 3-others",emp[k].Cult);printf("\nsalary:%d",emp[k].Salary);printf("\naddress:%s",emp[k].Address);printf("\ntelephone nember :%d",emp[k].Tell);}break;}}void show(){int j;open();printf("\n-------------------------informations of sraffs---------------------------\n");for(j=0;emp[j].EmpNum!=0;j++){printf("number:%d\n",emp[j].EmpNum);printf("name:%s",emp[j].EmpName);printf("\nsex 1- woman 2- man:%d",emp[j].Sex);printf("\nold:%d",emp[j].Old);printf("\neducation background:%d 1-specialist 2-doctor 3-others ",emp[j].Cult);printf("\nsalary:%d",emp[j].Salary);printf("\nadress:%s",emp[j].Address);printf("\ntelephone nember :%d",emp[j].Tell);}}void deleteEmp(){int j,k,m=1,d,i=0;open();printf("Enter the number whose date you want to delete:\n");scanf("%d",&d);for(j=0;emp[j].EmpNum!=0;j++){if(emp[j].EmpNum==d){for(k=j;emp[j].EmpNum!=0;k++)emp[k]=emp[k+1];i++;}}if(i==0)printf("The staffs informations manage systerm has no date of the number your entered!!!\n");close();printf("succeeed to delete\n");}void findByEmpName() /*查询*/{int j,i,k=0;open();printf("Please enter the number :\n");scanf("%d",&i);for(j=0;emp[j].EmpNum!=0;j++){if(emp[j].EmpNum==i){printf("\n-------------------------information of your want---------------------------\n");printf("number:%d\n",emp[j].EmpNum);printf("name:%s",emp[j].EmpName);printf("\nsex 1- woman 2- man:%d",emp[j].Sex);printf("\nold:%d",emp[j].Old);printf("\neducation background:%d\t\t\t\t 1-specialist 2-doctor 3-others",emp[j].Cult);printf("\nsalary:%d",emp[j].Salary);printf("\nadress:%s",emp[j].Address);printf("\ntelephone number:%d",emp[j].Tell);k++;}}if(k==0)printf("\nHave no date of the number!!!\n");}void menu(){printf("\n--------------------------------------------------------------------------\n");printf("\n Wellcome to the staff manage styterm \n");printf("\n-------------------------------------------------------------------------\n");printf("Please choose number for what are you want to do:\n\n");printf("\n 1 ---- input: Complete inputing workers' information.");printf("\n 2 ---- reorder: Make the new order of the information.");printf("\n 3 ---- delete: Delete the information of the staff.");printf("\n 4 ---- output: Display all worker of information.");printf("\n 5 ---- inquire.");printf("\n 0 ---- exit\n");}void main(){int op,choice=1;while(choice==1){menu();printf("\nPlease enter your order:\n");scanf("%d",&op);switch(op){case 1: inputEmpInfo();break;case 2: reorder();break;case 3: deleteEmp();break;case 4: show();break;case 5: findByEmpName();break;case 0: {printf("Welcome to use worker management system, goodbye!!!"); exit(0);}getchar();}printf("\n-------------------------------------------------------------------------\n");printf("\nWhether continue Yes-1 No--2\n");scanf("%d",choice);}}。

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

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

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语言职工信息管理系统课程设计

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

c语言职工信息管理系统课程设计一、课程目标知识目标:1. 理解C语言中数组、结构体和文件操作的基本概念;2. 学会使用C语言编写职工信息管理系统的基本功能,如增加、删除、修改和查询职工信息;3. 掌握利用C语言进行简单的数据处理和分析。

技能目标:1. 能够运用结构体数组管理职工信息;2. 独立编写代码实现职工信息的增加、删除、修改和查询功能;3. 学会使用文件操作将职工信息存储到文件中,并从文件中读取数据;4. 通过编程实践,培养解决问题的能力和逻辑思维能力。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养良好的编程习惯;2. 培养学生的团队协作意识和沟通能力,通过分组讨论和实践,共同完成职工信息管理系统的开发;3. 强化学生的责任感和使命感,认识到信息技术在现实生活中的应用和价值。

课程性质:本课程为实践性较强的课程,结合课本知识,让学生通过实际操作,掌握C语言编程的基本方法和技巧。

学生特点:学生已具备一定的C语言基础,熟悉基本语法和简单程序设计,但缺乏实际项目经验。

教学要求:注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决问题的能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 理论知识:- 复习C语言基础:数据类型、运算符、控制语句等;- 数组与字符串:数组的使用,字符串操作;- 结构体:定义结构体,结构体数组,结构体指针;- 文件操作:文件的打开、关闭、读写,以及文件存储职工信息。

2. 实践操作:- 设计职工信息结构体,创建职工信息数组;- 编写增加、删除、修改和查询职工信息的功能函数;- 利用文件操作存储和读取职工信息;- 集成职工信息管理系统,实现用户界面。

3. 教学大纲:- 第一周:复习C语言基础知识,讲解数组与字符串;- 第二周:学习结构体,设计职工信息结构体;- 第三周:文件操作学习,实现职工信息的存储与读取;- 第四周:编写职工信息管理系统的功能函数;- 第五周:集成系统,测试与优化。

c语言课程设计员工管理系统

c语言课程设计员工管理系统

c语言课程设计员工管理系统一、教学目标本节课的教学目标是让学生掌握C语言编程的基本方法,通过构建一个简单的员工管理系统,使学生能够理解并运用C语言进行程序设计。

具体的教学目标如下:1.知识目标:使学生了解C语言的基本语法和数据结构,掌握函数的定义和调用方法,理解面向对象编程的基本概念。

2.技能目标:培养学生使用C语言进行程序设计的能力,能够独立完成一个简单的员工管理系统的设计和实现。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,使其认识到计算机技术在现代社会中的重要性,培养学生的创新精神和团队合作意识。

二、教学内容本节课的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用、面向对象编程等。

具体的教学内容如下:1.C语言的基本语法:介绍C语言的基本语法规则,包括数据类型、运算符、表达式等。

2.数据结构:介绍常用的数据结构,如数组、链表、栈和队列等,并讲解如何在C语言中实现这些数据结构。

3.函数的定义和调用:讲解函数的定义方法和调用方式,介绍函数的参数传递和返回值等概念。

4.面向对象编程:介绍面向对象编程的基本概念,包括类和对象、封装、继承和多态等。

5.员工管理系统的设计和实现:通过构建一个简单的员工管理系统,使学生能够将所学的知识运用到实际编程中。

三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本语法、数据结构、函数的定义和调用、面向对象编程等知识,使学生掌握基本概念和理论。

2.案例分析法:通过分析员工管理系统的案例,使学生能够理解并运用所学的知识进行程序设计。

3.实验法:安排课堂实验,使学生在实践中掌握C语言的编程技巧,培养学生的动手能力。

4.讨论法:学生进行分组讨论,培养学生的团队合作意识和创新精神。

四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用合适的C语言教材,为学生提供系统的学习资料。

员工管理系统c语言课程设计

员工管理系统c语言课程设计

员工管理系统c语言课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握员工管理系统的基本概念、设计方法和实现技巧。

技能目标要求学生能够运用C语言进行程序设计,熟练使用员工管理系统相关的开发工具。

情感态度价值观目标要求学生培养团队合作意识,提高问题解决能力,增强创新精神。

通过对本章内容的学习,学生应该能够:1.描述员工管理系统的基本概念和应用场景;2.解释C语言在员工管理系统中的作用和重要性;3.运用C语言编写简单的员工管理系统程序;4.分析和解决员工管理系统中出现的问题;5.表达对团队合作的认识和价值观。

二、教学内容本课程的教学内容主要包括员工管理系统的基本概念、C语言编程基础、员工管理系统的程序设计方法和技巧。

1.员工管理系统的基本概念:介绍员工管理系统的定义、功能和应用场景,使学生了解员工管理系统在实际工作中的重要性。

2.C语言编程基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生编写员工管理系统程序奠定基础。

3.员工管理系统的程序设计方法:介绍员工管理系统的模块划分、界面设计、数据结构设计等方法,引导学生学会如何设计一个完整的员工管理系统。

4.员工管理系统的实现技巧:讲解如何在C语言中实现员工管理系统的功能,如数据输入、输出、查询、修改等,并引导学生掌握调试和优化程序的方法。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解员工管理系统的基本概念、C语言编程基础等内容,为学生提供系统的知识体系。

2.讨论法:学生就员工管理系统的设计方法和实现技巧进行讨论,培养学生的思考和表达能力。

3.案例分析法:分析实际工作中的员工管理系统案例,让学生了解员工管理系统在现实中的应用,提高学生的实践能力。

4.实验法:安排实验课程,让学生动手编写员工管理系统程序,培养学生的实际操作能力和问题解决能力。

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

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

XXXXXXX大学课程设计说明书名称计算机语言C课程设计——职工信息管理系统设计2011 年 6月20 日至 2011年6 月26 日共1 周院系 .班级 .姓名 .学号 .系主任 .教研室主任 .指导教师 .目录一、课程设计的目的和要求 (3)1.1目的 (3)1.2 要求 (3)二、题目说明 (4)2.1程序开发背景 (4)2.2开发工具介绍 (4)三、总体设计 (5)3.1总体思想 (5)3.2软件模块结构图 (5)3.3系统流程图 (6)3.3.1主函数 (6)3.3.2显示函数 (7)3.3.3录入函数 (7)3.3.4查询函数 (8)3.3.5删除函数 (9)3.3.6排序函数 (10)四、详细设计和系统实施 (11)4.1数据结构设计 (11)4.1.1定义数组 (11)4.1.2定义结构体 (11)4.1.3函数功能描述 (11)4.2界面设计 (12)4.2.1用户登录界面 (12)4.2.2 主界面 (13)4.2.3显示界面 (15)4.2.4录入界面 (16)4.2.5信息查询界面 (17)4.2.6删除界面 (19)五、遇到的问题及解决办法 (20)六、课程设计总结 (21)七、参考文献 (22)附录(源程序代码) (23)一、课程设计的目的和要求1.1目的1.掌握C语言编程的基础知识较熟练的编写C语言使用程序。

2.能够利用所学的基本知识和技能,解决简单的程序设计问题,增强独立完成工作的能力。

3.通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

1.2 要求1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3.画出功能模块图;4. 进行简单界面设计,能够实现友好的交互;5. 具有清晰的程序流程图和数据结构的详细定义;6. 熟练掌握C语言对文件的各种操作。

员工信息管理系统c语言

员工信息管理系统c语言

员工信息管理系统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语言课程设计职工信息管理系统

集成测试
集成测试的定义:将各个模块组合起来进行测试,验证模块间的接口和交互是否正确 集成测试的目的:发现模块间的接口和交互问题,保证系统的稳定性和可靠性 集成测试的方法:自顶向下、自底向上、混合策略等 集成测试的步骤:模块划分、模块集成、集成测试、回归测试等
系统调试与优化
优化方法:优化算法、数据 结构、代码结构等
据库进行数据 存储和管理
接口:使用 RESTful API 进行前后端数
据交互
安全:使用 HTTPS进行数 据传输加密, 使用身份验证 和授权机制进 行用户身份验 证和权限控制
性能优化:使 用缓存、异步 处理等技术进
行性能优化
系统需求分析
用户需求
员工信息管理:包括员工 基本信息、职位、薪资等
员工考勤管理:记录员工 上下班时间、请假、加班 等信息
系统部署与维护
系统部署方案
硬件需求:服务器、网络设备、存储设备等 软件需求:操作系统、数据库管理系统、应用服务器等 部署步骤:安装操作系统、安装数据库管理系统、安装应用服务器、部署应用系统等 维护方案:定期备份数据、定期检查系统运行情况、定期更新系统软件等
系统运行环境配置
操作系统:Windows、Linux、Mac OS等
技术需求
编程语言:C语言
数据库:SQL Server或MySQL
用户界面:Windows Forms或Web Forms
功能模块:员工信息管理、考勤管理、 薪资管理等
性能要求:响应速度快,数据安全可靠
兼容性:支持Windows操作系统,兼 容主流浏览器
系统设计
数据结构设计
数据类型:包括职工信息、 部门信息、职位信息等
员工绩效管理:记录员工 工作表现、绩效考核等信 息

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

青岛理工大学《C语言程序实习》题目职工信息管理系统指导教师:姓名:学号:班级:专业:地点:时间:一、职工信息管理系统本系统主要功能是实现职工信息的管理,主要有三个功能:1、建立职工信息2、查询职工信息;3、修改职工信息。

4.输出职工信息二、上机环境:操作系统:windowsXP开发工具:VC6.0三、函数调用关系:四、各函数功能说明1.main()函数:主函数,通过调用各个函数实现职工信息管理2.creat()函数:新建职工信息3.search()函数:按编号查询某员工信息4.alter()函数:修改员工信息5.output()函数:按文件名输出员工信息五、各个函数算法描述或流程图六、程序运行效果图1.运行主界面stablish 开始switchalter search output结束2、建立文件界面3.职工信息查询界面4.输出信息七、体会在本学期学习中,通过学习C程序设计课,我懂得了C语言是计算机语言的基础,必须学好它,才能更进一步的发展自己,我现在只是初学者,还有很多的不足,需要改正和完善。

在以后的学习中我会更加端正我的学习态度,认真学好每一个细节,努力学好这门课程。

此次所编程序尚有很多漏洞,有待完善。

八、参考文献[1] 谭浩强 .C程序设计(第三版).清华大学出版社,2005[2] 谭浩强 .C程序设计题解与上机指导(第三版).清华大学出版社,2005[3] 湛为芳.C语言程序设计技术.清华大学出版社,2006[4] 《电脑编程技巧与维护》杂志社. 电脑编程技巧与维护.人民邮电出版社,2007[5] 杨开城.C语言程序设计教程、实验与练习(第二版). 人民邮电出版社,2006九、程序清单#include<iostream> #include<string.h>#include<process.h> #define A "%-8s %-10s %-7s %-7s %-15s %-8s %-10s %-10s \n" #definejilu cle[q].num,cle[q].name,cle[q].sex,cle[q].age,cle[q].add r,cle[q].salary,cle[q].health,cle[q].bach,cle[q].more using namespace std; struct clerk/*定义结构体*/ { char num[12]; char name[15]; char sex[6]; char age[6]; char addr[20]; char salary[8]; char health[10]; char bach[10]; char more[30];}cle[30];char filename[20];/*文件名*/FILE *fp;/*文件指针*/ int p; void main() { voidstablish(); /* 函数声明*/ void alter(); void search(); void output(); int q;/* 设置变量i 为功能选择变量*/printf("Please choose the number of the operating:\n 1 Information Enrollment\n 2 Information Searching\n 3 Information Altering\n 4 Information Output\n 5 close the system\n");printf("If it's the first time for you to use the program ,please regist the clerks' information. \n");scanf("%d",&q);switch(q){case 1:stablish();break;/*函数调用:选择创建功能*/ case 2:search();break;/*用break 跳出*/ case 3:alter();break; case 4:output();break;case 5: cout<<"正在关闭系统..."<<endl;exit(0); default:cout<<"您的输入有误,请重新输入"<<endl;main();}}void stablish()/*职工登记函数*/ {int q;printf("\n 请输入文件名: "); scanf("%s",filename);/*创建一个文件的名字*/if((fp=fopen(filename,"w"))==NULL)/*打开文件,实现向文件输入数据*/ { printf("\n 不能建立!");exit(0);}fprintf(fp,A,"编号","姓名","性别","年龄","地址","工资","健康状况","学历","备注");printf("Please input the summary number of the clerks:"); scanf("%d",&p);printf("Please input the clerk's information:\n"); for(q=0;q<p;q++){ printf("编号: ");/*将数据写入文件*/ scanf("%s",cle[q].num);printf("姓名: ");scanf("%s",cle[q].name); printf("性别: ");scanf("%s",cle[q].sex);printf("年龄: "); scanf("%s",cle[q].age); printf("地址: "); scanf("%s",cle[q].addr); printf("工资: "); scanf("%s",cle[q].salary); printf("健康状况: "); scanf("%s",cle[q].health); printf("学历: "); scanf("%s",cle[q].bach); printf("备注: "); scanf("%s",cle[q].more);printf("…………………………………………………………………………………………………\n");fprintf(fp,A,cle[q].num,cle[q].name,cle[q].sex,cle[q].age,cle[q].addr, cle[q].salary,cle[q].health,cle[q].bach, cle[q].more); }fclose(fp);printf("Regist end!\n"); main(); } void search() /*查询函数*/ { int t=0,q; char namestr[15]; printf("Please input the file you want to search:"); scanf("%s",filename);printf("\nPlease input the clerk's name:"); scanf("%s",namestr); if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/{ printf("\nCan't open the file!"); exit(0);}for(q=0;q<30;q++) {fscanf(fp,"%s%s%s%s%s%s%s%s\n",jilu);if(strcmp(namestr,cle[q].name)==0) {printf("\n Successfully search ,theinformation is :\n");printf("%-8s %-10s %-7s %-7s %-15s %-8s %-10s %-10s\n","编号","姓名","性别","年龄","地址","工资","健康状况","学历","备注"); printf(A,jilu); t=1;}} if(t==0)printf("\n\nSorry,can'tfoundrelatedinformation,please review it!");fclose(fp);}void alter() { int q; char name[15];printf("please input the file's name where the information is."); scanf("%s",filename);if((fp=fopen(filename,"r+"))==NULL) {printf("can't open this file\n");}printf("please input the clerk's name"); scanf("%s",name); for(q=0;q<p;q) {fread(&cle[q],sizeof(struct clerk),1,fp);if(strcmp(name,cle[q].name)==0) /* 调用字符串比较函数*/printf("have found the related information :");break; }printf("please input the new information.\n"); printf("编号: ");/*将数据写入文件*/printf("%s",cle[q].num); printf("姓名: "); scanf("%s",cle[q].name); printf("性别: "); scanf("%s",cle[q].sex); printf("年龄: "); scanf("%s",cle[q].age); printf("地址: "); scanf("%s",cle[q].addr); printf("工资: "); scanf("%s",cle[q].salary); printf("健康状况: "); scanf("%s",cle[q].health); printf("学历: "); scanf("%s",cle[q].bach); printf("备注: "); scanf("%s",cle[q].more);fwrite(&cle[q],sizeof(struct clerk),1,fp); printf("The altered information is :"); printf(A,jilu);printf(" Altering ended!");}void output() {int q=0;printf("please input the file you want to put out."); scanf("%s",filename); if((fp=fopen(filename,"r"))==NULL) /*打开文件*/{ printf("\nCan't find the file!"); exit(0);}printf("…………………………………………职工信息统计表…………………………………………\n");while(feof(fp)==0) /* */ {fscanf(fp,"%s%s%s%s%s%s%s%s\n",cle[q].num,cle[q].n ame,cle[q].sex,cle[q].age,cle[q].addr,cle[q].salary,cle [q].health,cle[q].bach); printf(A,jilu); q++;}fclose(fp); }. ..。

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

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

职工信息管理系统C语言课程设计+源代码课程设计报告课程:高级语言课程设计学号:姓名:班级:教师:时间:设计名称:职工信息管理系统设计内容、目的与要求:本设计旨在熟练掌握C语言的基本知识和编辑技能,基本掌握结构化程序设计的基本思路和方法。

通过编写职工信息管理系统,便于对职工的信息进行管理,训练综合运用函数的自定义,数组,结构体等,并提高程序设计的能力。

要求:设计一个职工信息管理系统,提供以下功能:1.提供一个清晰美观的界面来调用各个功能。

2.录入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。

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

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

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

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

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

②通过输入职工号完成对该名职工的信息进行删除。

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

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

②通过输入职工号完成对该名职工的信息进行修改。

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

计划与进度安排:2012年12月8日至2012年12月15日:仔细研究数据库相关知识,通过上网查资料找思路。

2012年12月16日至2012年12月20日:完成设计思路并作出草稿,编写主函数和各调用函数模块。

2012年12月21日至2013年1月1日:逐步实现各模块的功能化,实现整个程序大体功能。

2013年1月2日至2013年1月6日:修改并完善各功能,编写电子实验报告,并准备提交验收。

设计过程、步骤:一、功能结构1.职工信息管理系统开始菜单根据菜单输入的值选择程序1.录入职工信息2.浏览职工信息3.查询职工信息5.添加职工信息4.删除职工信息6.修改职工信息7.退出1.按职工号查询2.按学历查询3.按号码查询1.按职工号删除2.按职工姓名删除1.按职工号修改2.按职工姓名修改二、设计说明1.这个程序需要使用结构体来存储职工信息。

c语言员工管理系统课程设计

c语言员工管理系统课程设计

c语言员工管理系统课程设计一、课程目标知识目标:1. 学生能够掌握C语言基础,包括数据类型、运算符、控制结构等,并能够运用到员工管理系统的开发中。

2. 学生能够理解结构体在C语言中的应用,并能够使用结构体创建员工信息数据结构。

3. 学生能够掌握文件操作在C语言中的使用,实现对员工信息的存储和读取。

技能目标:1. 学生能够运用C语言编写程序,实现员工管理系统的基本功能,如添加、删除、修改和查询员工信息。

2. 学生能够使用函数对程序进行模块化设计,提高代码的可读性和可维护性。

3. 学生能够通过调试和优化,解决程序中的错误和性能问题。

情感态度价值观目标:1. 学生培养编程兴趣,树立良好的编程习惯,提高问题解决能力和逻辑思维能力。

2. 学生通过团队协作,培养沟通与协作能力,增强团队精神。

3. 学生能够认识到编程在现实生活中的应用,激发学习动力,树立正确的价值观。

课程性质:本课程为实践性较强的课程,结合C语言知识,培养学生实际编程能力和团队协作能力。

学生特点:学生为高年级学生,已具备一定的C语言基础,具有较强的学习能力和独立思考能力。

教学要求:注重实践操作,引导学生主动探究,培养编程兴趣和实际应用能力,将理论知识与实际操作相结合,提高学生的综合素养。

通过对课程目标的分解,使学生在完成学习成果的过程中,达到课程目标的预期效果。

二、教学内容1. C语言基础回顾:数据类型、变量、运算符、控制结构(条件语句、循环语句)。

相关教材章节:第1章-第4章2. 结构体与数组:结构体的定义和使用、结构体数组、结构体指针。

相关教材章节:第5章3. 文件操作:文件打开与关闭、读写操作、文件定位。

相关教材章节:第6章4. 函数:函数定义、调用、参数传递、模块化设计。

相关教材章节:第7章5. 员工管理系统功能实现:- 添加员工信息- 删除员工信息- 修改员工信息- 查询员工信息- 员工信息存储和读取(文件操作)6. 程序调试与优化:调试技巧、性能优化、代码规范。

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

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

c语言职工信息管理系统课程设计一、课程目标知识目标:1. 理解C语言编程基础,掌握数据类型、变量、运算符、控制结构等基本概念;2. 学会使用C语言进行数组、字符串和结构体的操作;3. 掌握文件操作和内存分配在C语言中的应用;4. 了解职工信息管理系统的基本功能需求。

技能目标:1. 能够运用C语言编写职工信息管理系统的基本模块,如增加、删除、修改、查询等功能;2. 能够对程序进行调试和优化,解决常见错误和异常;3. 能够独立设计简单的职工信息管理系统界面,并进行用户交互;4. 学会运用结构体数组管理大量职工数据。

情感态度价值观目标:1. 培养学生严谨、细致的编程习惯,提高问题分析和解决能力;2. 增强学生的团队合作意识,学会与他人协作完成项目;3. 培养学生对信息管理系统实际应用的兴趣,激发创新思维;4. 引导学生关注社会实际问题,理解职工信息管理在企业运营中的重要性。

课程性质:本课程为实践性较强的课程,结合C语言编程和职工信息管理系统的实际应用,注重培养学生的编程能力和实际操作能力。

学生特点:学生已具备一定的C语言基础,对编程有初步了解,但实践经验不足,需要通过实际项目提高动手能力。

教学要求:教师需结合学生特点,采用项目驱动教学,分解课程目标为具体学习成果,注重理论与实践相结合,提高学生的编程技能和实际应用能力。

同时,关注学生情感态度价值观的培养,激发学生学习兴趣,培养团队合作精神。

二、教学内容1. C语言基础知识回顾:数据类型、变量、常量、运算符、表达式、控制结构(条件语句、循环语句)。

相关教材章节:第一章至第三章。

2. 数组、字符串与结构体:一维数组、二维数组、字符串处理、结构体的定义和使用。

相关教材章节:第四章、第五章。

3. 文件操作与内存分配:文件读写、文件定位、内存分配与释放。

相关教材章节:第八章、第十章。

4. 职工信息管理系统功能模块设计:a. 职工信息录入:设计界面,实现职工信息的录入功能;b. 职工信息查询:实现按不同条件(如姓名、工号等)查询职工信息;c. 职工信息修改:实现对职工信息的修改功能;d. 职工信息删除:实现对特定职工信息的删除功能;e. 职工信息统计:实现职工信息统计功能,如总数、平均工资等。

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

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

c语言职工信息管理系统 课程设计一、课程目标知识目标:1. 学生能理解C语言中结构体的概念,掌握结构体在职工信息管理中的运用。

2. 学生能掌握文件操作的基本方法,实现对职工信息数据的存储与读取。

3. 学生了解并掌握C语言中字符串处理、数据排序等基本算法。

技能目标:1. 学生能够运用C语言编写简单的职工信息管理系统,实现职工信息的增加、删除、修改和查询功能。

2. 学生能够利用结构体和文件操作,实现数据的持久化存储。

3. 学生能够运用所学知识解决实际问题,提高编程实践能力。

情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,激发创新精神。

2. 学生能够认识到编程在现实生活中的应用价值,提高对信息技术的认识。

3. 学生在课程实践过程中,培养团队合作意识,提高沟通与协作能力。

课程性质:本课程为C语言编程实践课程,旨在让学生通过职工信息管理系统的设计与实现,掌握C语言的基本知识和编程技能。

学生特点:本课程面向高中生,学生对C语言有一定了解,具备基本的编程能力,但实践经验不足。

教学要求:结合学生特点和课程性质,教师需注重理论与实践相结合,引导学生通过动手实践,提高编程能力和解决实际问题的能力。

教学过程中,注重培养学生的自主学习能力和团队合作精神。

通过本课程的学习,使学生能够达到上述课程目标,为后续课程打下坚实基础。

二、教学内容1. 结构体的定义和使用:以职工信息管理系统为例,讲解结构体的定义方法,如何定义职工信息结构体,以及结构体在程序中的使用。

相关教材章节:C语言基础,结构体与共用体。

2. 文件操作:介绍文件的基本操作,如文件的打开、关闭、读写等,结合职工信息管理系统,实现数据的持久化存储。

相关教材章节:文件操作,数据存储。

3. 字符串处理:讲解字符串的基本操作,如字符串的连接、比较、查找等,应用于职工信息管理系统中的输入输出处理。

相关教材章节:字符串处理。

4. 数据排序算法:介绍一种简单的排序算法,如冒泡排序、选择排序等,应用于职工信息的排序显示。

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语言程序设计职工信息管理系统演示

C语言程序设计职工信息管理系统演示
7
程序整体结构导图
开始
用户登录
失败三次
退出系统
成功
登陆成功
主菜单
选择 N 值







退






































2021/4/24
保存
8
密码校验函数 void check() 2021/4/24
用户名:123 密 码:4567
9
录入职工信息 void input() 开始输入

由于自己目前能力有限,该程序还有诸多不足,感谢指正。感谢老师的悉心教导与细致的帮助。虽然c语言的课程
与课程设计都已结束,但通过这次课程设计我也发现了差距,并将在未来努力学习,积极实践,使自己能真正的掌握运
用c语言。

在编写程序的这两周时间里,我们遇到了很多的困难,发现了很多问题。尤其是在自己一个上午都在调试一个错误
11
查询职工信息函数 void search()
1.按工号查询 2.按学历查询 3.按电话号码查询 4.返回主界面
查询 选项
输入工号 输入学历 输入电话号码
1 返回函 数
2 继续查 询
2021/4/24
12
删除职工信息 void del()
请输入要删除职工的姓名 删除按1,取消按0. 继续删除按1,不再删除按0 保存到文件 是否继续进行

c语言程序设计 员工信息管理系统精品资料.doc

c语言程序设计 员工信息管理系统精品资料.doc

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).修改模块:可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。

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

实验题目:员工信息管理系统一、实验目的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).退出系统:选择该项,自动退出该系统。

五、详细设计及运行结果六.调试情况及运行结果Array1它要大得多,不注意的小的知识点有了新的巩固;我先编的主函数,调试后我又一个一个模块的往上加,每加上一个调试一下;虽然在编程过程中有些模块也出现了一些小问题,但在翻阅课本和同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。

可这毕竟是第一次独立完成这样的大程序,虽然并不是非常健壮,但程序中没有错误和警告,各项功能都能完成,因此我对两周的实习结果还是理想的。

这次编程中我感觉程序中最满意的地方有两点:1、程序的操作界面美观大方。

2、我给程序上加上了密码修改这一模块,可以说密码函数花费了大量时间,需要重新建立一个文件来写入密码保存密码。

下次登陆时需要打开密码文件,判断密码是否正确。

已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。

如:录入错误数据时,系统没有设计输出错误操作的提示。

2、在设计过程中的感受。

本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中使我在课堂上十几周学到的知识得到了巩固,有很多以前理解不了的课本知识在这次上机实习后,再回头看一下感觉豁然开朗。

学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。

本次实习中遇到了很多以前没有遇到过的问题,也曾感到比较浮躁,但想到以前都是作为用户用各种程序,而这次自己是编程者,可以让程序按自己的想法运行,给了我继续的兴趣和信心。

在老师的指导下和同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰。

七.参考文献《C语言程序设计》王曙燕曹锰科学出版社2005年2月《C语言程序设计》谭浩强清华大学出版社1999年12月八。

附录:#include<stdio.h>#include<string.h>#define MAX 5#define PAGE 4#define PRINTF1 printf("-------------------------------------------------------------------\n")#define PRINTF2 printf("工作号\t姓名\t性别\t工龄(年月日)\t学历\t职务\t电话\t工资\n")#define PRINTF3 printf("\n%d\t%s\t%s\t%d-%d-%d\t%s\t%s\t%s\t%d\n",workers[i].num,workers[i].name,workers[ i].sex,workers[i].worktime.year, workers[i].worktime.month, workers[i].worktime.day,workers[i].degree,workers[i].position,workers[i].tel,workers[i].salary)int sum;/*用来记录员工人数*//*日期结构体类型*/struct date{int year;int month;int day;};/*员工结构体类型*/struct workers_type{int num;struct date worktime;char name[10];char sex[2];char degree[5];char position[5];char tel[12];int salary;}workers[MAX];/*存放MAX个员工信息记录的结构体数组*//*保存基本信息*/save_message(int sum){ FILE *fp;int i;if((fp=fopen("worker information.txt","wt"))==NULL){ printf("该文件错误!\n");return;}for(i=0;i<sum;i++)if(fwrite(&workers[i],sizeof(struct workers_type),1,fp)!=1)printf("写文件错误!\n");fclose(fp);}/*第一:输入模块*/input_message()int i=0,x;clrscr();printf("\n\n 请输入要录入的员工数量: ");scanf("%d",&x);printf("\n\n 录入员工信息(最多%d个员工)\n",x);printf(" ----------------------------------------------------------------------\n");do{printf("第%d个员工信息",i+1);printf("\n员工的工作证号:");scanf("%d",&workers[i].num);printf("\n姓名:");scanf("%s",workers[i].name);printf("\n性别(男=m,女=f):");scanf("%s",&workers[i].sex);printf("\n工龄(yy--mm--dd):");fflush(stdin);scanf("%d-%d-%d",&workers[i].worktime.year, &workers[i].worktime.month, &workers[i].worktime.day);printf("\n学历:");scanf("%s",workers[i].degree);printf("\n职务:");fflush(stdin);scanf("%s",workers[i].position);printf("\n电话:");scanf("%s",workers[i].tel);printf("\n工资:");scanf("%d",&workers[i].salary);i++;}while(i<x);printf("\n --%d员工信息输入完毕!--\n",i);sum=i;printf("\n 按任意键返回主菜单!");bioskey(0);}/*读取信息*/read_message(){ FILE *fp;int i=0;if((fp=fopen("worker information.txt","rt"))==NULL){ printf("\n\n*****暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入!*****\n");return(0);while(feof(fp)!=1){ fread(&workers[i],sizeof(struct workers_type),1,fp);if(workers[i].num==0) break;else i++;}fclose(fp);return(i);}/*第二:输出模块*/output_message(){ int i=0,j=0,count,page=1;clrscr();printf("\n\n ----------员工信息表--------- 第%d页\n\n",page); PRINTF2;PRINTF1;do{ if(workers[i].num!=0){ j++;if(j%PAGE!=0){ PRINTF3;PRINTF1;}else{ PRINTF3;PRINTF1;if(workers[i+1].num!=0){ printf("按任意键继续!");bioskey(0);clrscr();printf("\n\n --员工信息表-- 第%d页\n\n",++page);PRINTF2;PRINTF1;}}}i++;}while(workers[i].num!=0);printf("按任意键返回主菜单!");bioskey(0);}/*增加员工信息*/insert_message(){ int i=sum,j,flag=0;char choice;clrscr();printf("\n\n 增加一个新员工\n");printf(" ----------------------------------------------------------------------\n");do{printf("\n 新员工的工作证号:");scanf("%d",&workers[i].num);printf("\n 新员工姓名:");scanf("%s",workers[i].name);printf("\n 新员工性别(男=m,女=f):");fflush(stdin);scanf("%s",workers[i].sex);printf("\n 新员工工龄(yy-mm-dd):");fflush(stdin);scanf("%d-%d-%d",&workers[i].worktime.year, &workers[i].worktime.month, &workers[i].worktime.day);printf("\n 新员工学历:");fflush(stdin);scanf("%s",workers[i].degree);printf("\n 新员工职务:");fflush(stdin);scanf("%s",workers[i].position);printf("\n 新员工电话:");fflush(stdin);scanf("%s",&workers[i].tel);printf("\n 新员工工资:");scanf("%d",&workers[i].salary);i++;sum=i;printf("\n 要继续吗?(Y/N)");choice=getch();if (choice=='y'||choice=='Y'){ printf("\n 继续!\n");flag=1;}else flag=0;}while(flag==1);printf("\n 按任意键返回主菜单!");bioskey(0);}/*删除员工信息*/del_message(){ int i,k,flag,del_num;char choice;do{ clrscr();printf("\n 输入要删除的员工的工作证号:");scanf("%d",&del_num);for(i=0;i<sum;i++)if(workers[i].num==del_num){ for(k=i;k<sum;k++)workers[k]=workers[k+1];break;}if(i==sum){ printf("\n 该员工不存在");bioskey(0);}printf("\n\n 继续修改吗?(Y/N)");choice=getch();if (choice=='Y'||choice=='y'){ flag=1;printf("\n 继续!\n");}else flag=0;}while(flag==1);printf("\n 按任意键返回主菜单!");bioskey(0);}/*修改信息*/resive_message(){ int i=0,choice,revise_num,flag;do{ clrscr();printf("\n 输入要修改的员工的工作证号"); scanf("%d",&revise_num);for(i=0;i<sum;i++)if(workers[i].num==revise_num){ printf("\n --员工信息--\n");PRINTF1;PRINTF2;PRINTF3;printf("\n 您要修改哪一项?\n");printf("\n 1.工作证号\n");printf("\n 2.姓名\n");printf("\n 3.性别\n");printf("\n 4.工龄\n");printf("\n 5.学历\n");printf("\n 6.职务\n");printf("\n 7.电话\n");printf("\n 8.工资\n");printf("\n 请输入(1-8):"); scanf("%d",&choice);switch(choice){ case 1: printf("\n 输入修改后的工作证号:");scanf("%d",&workers[i].num);break;case 2: printf("\n 输入修改后的姓名:");scanf("%s",workers[i].name);break;case 3: printf("\n 输入修改后的性别:");scanf("%s",workers[i].sex);break;case 4: printf("\n 输入修改后的工龄(yy-mm-dd):");scanf("%d-%d-%d",&workers[i].worktime.year, &workers[i].worktime.month, &workers[i].worktime.day);break;case 5: printf("\n 输入修改后的学历:");scanf("%s",workers[i].degree);break;case 6: printf("\n 输入修改后的职务:");scanf("%s",workers[i].position);break;case 7: printf("\n 输入修改后的电话:");scanf("%s",&workers[i].tel);break;case 8: printf("\n 输入修改后的工资:");scanf("%d",&workers[i].salary);break;}PRINTF1;PRINTF2;PRINTF3;break;}if(i==sum){ printf("\n 该员工不存在");bioskey(0);}printf("\n\n 继续修改吗?(Y/N)");choice=getch();if (choice=='Y'||choice=='y'){ flag=1;printf("\n 继续!\n");}else flag=0;}while(flag==1);printf("\n 按任意键返回主菜单!");bioskey(0);}/*第三:更新模块*/renew_message(){ int choice;do{ clrscr();printf("\n\n\n **********更新员工信息*********\n\n"); printf(" 1.添加员工信息\n\n");printf(" 2.删除员工信息\n\n");printf(" 3.修改员工信息\n\n");printf(" 0.返回主菜单\n\n");printf(" 请选择(0-3):");scanf("%d",&choice);switch(choice){ case 1: insert_message();break;case 2: del_message();break;case 3: resive_message();break;case 0: break;}}while(choice!=0);}/*按姓名查询*/inquire_name(){ int i,choice,j=0;char inquire_name[10];clrscr();printf("\n 输入要查询的员工姓名:");scanf("%s",inquire_name);for(i=0;i<sum;i++)if(strcmp(workers[i].name,inquire_name)==0&&workers[i].num!=0){ printf("\n --员工信息--\n");PRINTF1;PRINTF2;PRINTF3;}else j++;if(j==sum) printf("\n 该员工不存在!");bioskey(0);}/*按工作证号查询*/inquire_num(){ int i,choice,j=0,inquire_num;clrscr();printf("\n 输入要查询的员工的工作证号:"); scanf("%d",&inquire_num);for(i=0;i<sum;i++)if(workers[i].num==inquire_num&&workers[i].num!=0){ printf("\n --员工信息--\n");PRINTF1;PRINTF2;PRINTF3;}else j++;if(j==sum) printf("\n 该员工不存在!");bioskey(0);}/*按学历查询*/inquire_degree(){ int i,choice,j=0;char inquire_degree[5];clrscr();printf("\n 输入要查询的员工学历:");scanf("%s",inquire_degree);for(i=0;i<sum;i++)if(strcmp(workers[i].degree,inquire_degree)==0&&workers[i].num!=0){ printf("\n --员工信息--\n");PRINTF1;PRINTF2;PRINTF3;}else j++;if(j==sum) printf("\n 该员工不存在!");bioskey(0);}/*第四:查询模块*/inquire_message(){ int choice;do{ clrscr();printf("\n\n\n ******查询员工信息******\n\n");printf(" 1.按员工姓名查询\n\n");printf(" 2.按员工的工作证号查询\n\n");printf(" 3.按员工的学历查询\n\n");printf(" 0.返回主菜单\n\n");printf(" 请选择(0-3):");scanf("%d",&choice);switch(choice){ case 1:inquire_name();break;case 2:inquire_num();break;case 3:inquire_degree();break;case 0:break;}}while(choice!=0);}/*工作证号排行*/sort_num(){ struct workers_type *p, *q[MAX];int i,j,k;clrscr();printf("\n 工作证号排行\n");printf("---------------------------------------------------------------------\n");printf("排行\t工作号\t姓名\t性别\t学历\t职务\t电话\t工资\n");p=workers;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i<i++){ k=i;for(j=i+1;j<sum;j++)if(q[k]->num>q[j]->num) k=j;if(k!=i){ p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i++)printf("\n%d\t%d\t%s\t%s\t%s\t%s\t%s\t%d\n",i+1,q[i]->num,q[i]->name,q[i]->sex,q[i]->degree, q[i]->position,q[i]->tel,q[i]->salary);bioskey(0);}/*工资排行*/sort_salary(){ struct workers_type *p, *q[MAX];int i,j,k;clrscr();printf("\n --工资排行--\n");printf("--------------------------------------------------------------\n");printf("排行\t工作号\t姓名\t性别\t学历\t职务\t电话\t工资\n");p=workers;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i<i++){ k=i;for(j=i+1;j<sum;j++)if(q[k]->salary<q[j]->salary) k=j;if(k!=i){ p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i++)printf("\n%d\t%d\t%s\t%s\t%s\t%s\t%s\t%d\n",i+1,q[i]->num,q[i]->name,q[i]->sex,q[i]->degree, q[i]->position,q[i]->tel,q[i]->salary);bioskey(0);}/*第五:排序模块*/sort_message(){ int choice;do{ clrscr();printf("\n\n\n **********员工排行信息**********\n\n");printf(" 1.工作证号排行\n\n");printf(" 2.工资排行\n\n");printf(" 0.返回主菜单\n\n");printf(" 请选择(0-2):");scanf("%d", &choice);switch(choice){ case 1: sort_num();break;case 2: sort_salary();break;case 0: break;}}while(choice!=0);}/*学历统计*/count_degree(){ int i,choice,j=0;char count_degree[5];clrscr();printf(" 输入要统计的员工学历:\n"); scanf("%s",&count_degree);for(i=0;i<sum;i++)if(strcmp(count_degree,workers[i].degree)==0&&workers[i].num!=0)j++;if(j==0) printf("\n 没有相关信息!");else printf("\n 要统计的员工总数%d",j);bioskey(0);}/*性别统计*/count_sex(){ int i,choice,j=0;char count_sex[2];clrscr();printf(" 输入要统计的员工性别\n:");scanf("%s",&count_sex);for(i=0;i<sum;i++)if(strcmp(count_sex,workers[i].sex)==0&&workers[i].num!=0)j++; printf("\n 要统计的员工总数%d",j);if(j==0) printf("\n 没有相关信息!");elsebioskey(0);}/*第六:统计模块*/count_message(){ int choice;do{ clrscr();printf("\n\n\n **********统计员工信息**********\n\n"); printf(" 1.统计员工学历\n\n");printf(" 2.统计员工性别\n\n");printf(" 0.返回主菜单\n\n");printf(" 请选择(0-2):");scanf("%d",&choice);switch(choice){ case 1: count_degree();break;case 2: count_sex();break;case 0: break;}}while(choice!=0);}/*修改密码*/void resive_password(){int flag; char ch[10],ch1[10];FILE *fp;clrscr(); fp=fopen("password","rb"); fgets(ch1,7,fp); fclose(fp);printf("\n\n\n\n\t 请输入六位数旧密码:");scanf("%s",ch);if(strcmp(ch,ch1)==0){ flag=1; fp=fopen("password","wb");printf("\n 请输入六位数新密码:");scanf("%s",ch);fputs(ch,fp);fclose(fp);}else flag=0;switch(flag){ case 0:printf("\n 原密码不正确");getch();break;case 1:printf("\n 密码修改成功");getch();}}/*第七:密码模块*/password(){int flag;char ch[10];FILE *fp; char ch1[10]="000000";clrscr();if((fp=fopen("password","rb"))==NULL){ fp=fopen("password","wb");fputs(ch1,fp);fclose(fp); }else {fgets(ch1,7,fp);fclose(fp);}printf("\n\n\n\n\t 请输入六位数密码:");gets(ch);if(strcmp(ch,ch1)==0)flag=1;else flag=0;switch(flag){ case 0:printf("\n\n\t 密码不正确\n");password();case 1:printf("\n\n\t 密码正确\n");}}/*第八:说明模块*/introduce_message(){ clrscr();printf("\n\n\n *1. 为使系统正常运行请按系统提示输入\n\n");printf("\n\n\n *2 .若使用中存在问题请联系我们,谢谢使用本系统\n"); printf("\n\n\n\n\n\n\n\n 制作人:韩承玺\n");printf("\n q q : 755528319\n"); getch();}/*主程序*/main(){int choice;sum=read_message();printf("\n\n\n\n*********************************************************\n");printf(" ******************** 欢迎进入********************\n");printf(" ****************西安创天集团员工信息管理系统*************\n");printf(" ** **\n");printf(" ** **\n");printf(" ** **\n");printf(" ** **\n");printf(" ** **\n");printf(" ** **\n");printf(" ** **\n");printf(" ** **\n");printf(" ** 请按任意健进入**\n");printf(" ** **\n");printf(" ** **\n");printf("*********************************************************\n");bioskey(0);clrscr();password();do{ clrscr();printf("\n\n ^****************员工信息管理系统*****************^\n");printf(" ^* *^\n");printf(" ^* * 1.录入员工信息*^\n");printf(" ^* *^\n");printf(" ^* * 2.打印员工信息*^\n");printf(" ^* *^\n");printf(" ^* * 3.更新员工信息*^\n");printf(" ^* *^\n");printf(" ^* * 4.查询员工信息*^\n");printf(" ^* *^\n");printf(" ^* * 5.统计员工信息*^\n");printf(" ^* *^\n");printf(" ^* * 6.排行员工信息*^\n");printf(" ^* *^\n");printf(" ^* * 7.修改系统密码*^\n");printf(" ^* *^\n");printf(" ^* * 8.关于本系统*^\n");printf(" ^* *^\n");printf(" ^* * 0.退出员工信息管理系统*^\n");printf(" ^* *^\n");printf(" ^* 请选择(0-8): *^\n");printf("^********************************************************^\n");scanf("%d",&choice);switch(choice){case 1:input_message();break;case 2:output_message();break;case 3:renew_message();break;case 4:inquire_message();break;case 5:count_message();break;case 6:sort_message();break;case 7:resive_password();break;case 8:introduce_message();break;case 0:break;}}while(choice!=0);save_message(sum);printf("\n-以上员工信息已保存!-(文件名:worker information.txt)\n");}。

相关文档
最新文档