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

合集下载

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

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

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

c语言职工信息管理系统设计C语言职工信息管理系统是一种方便、高效的职工信息管理工具,设计该系统主要是为了提高人力资源管理效率,减轻人事部门的工作量。

下面将从系统设计流程,系统功能和系统操作流程三个方面来详细介绍该系统的设计。

一、系统设计流程1.需求分析:系统的需求分析是设计中非常关键的一步,必须充分考虑到职工管理的基本需求和功能要求,以适应各种企业规模和管理水平的要求。

系统需要提供职工个人信息和考勤、绩效管理查询和修改、新员工入职登记等基本功能。

2.系统设计:系统需要根据需求来设计相应的数据结构和数据库。

需要设计合适的数据表,包括职工基本信息表、考勤记录表、工资记录表等。

3.系统实现:实现系统的功能,包括录入人员信息、修改人员信息、考勤登记、绩效考评、新员工入职登记等操作。

4.系统维护:制定系统的维护计划,保证系统正常、稳定的运行。

二、系统功能1.基本信息管理:包括职工基本信息的录入和修改,如姓名、性别、出生年月、联系方式等。

2.考勤管理:包括考勤记录的登记和查询,如请假、加班、迟到、早退等记录。

3.工资管理:包括工资记录的录入和查询,能够根据考勤和绩效等因素计算职工应发工资和实际发放工资。

4.绩效管理:包括绩效考核的记录和查询,能够根据职工绩效考核记录、已发工资等因素,生成人员绩效考核报表。

三、系统操作流程1.登录系统:用户登录系统,输入用户名和密码。

2.菜单:系统进入主菜单,包括基本信息管理、考勤管理、工资管理、绩效管理、系统设置等功能。

3.信息录入:在基本信息管理中,根据职工基本信息表的格式,输入职工的个人信息。

4.考勤登记:在考勤管理中,根据考勤记录表的格式,输入职工的考勤记录,包括请假、加班、迟到、早退等情况。

5.工资录入:在工资管理中,根据工资记录表的格式,输入职工的实际工资和应发工资情况。

6.绩效评估:在绩效管理中,根据绩效考核表的格式,输入职工绩效考核情况,系统将自动生成用于绩效考评的报表。

c语言职工信息管理系统设计报告

c语言职工信息管理系统设计报告

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++;四、系统测试与评估我们采用黑盒测试,使用不同的测试用例进行测试。

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

C语言课程设计职工信息管理系统源程序
福利等
系统管理:包 括用户管理、 权限管理、系
统设置等
系统开发背景
企业信息化需求:提高工作效率,降低管理成本 技术发展:云计算、大数据等技术的成熟 市场竞争:提高企业竞争力,满足客户需求 企业内部管理:优化人力资源管理,提高员工满意度
系统目标
提高工作效率
简化工作流程
提高数据准确性
加强信息安全管理
Part Five
系统实现
数据库连接实现
连接方式:使用JDBC(Java Database Connectivity)进行 数据库连接
连接参数:包括数据库地址、用户 名、密码等
添加标题
添加标题
添加标题
添加标题
数据库类型:支持MySQL、 Oracle、SQL Server等多种数据 库
连接过程:通过JDBC驱动程序建 立与数据库的连接,执行SQL语句 进行数据操作
数据需求分析
员工信息:包括姓名、性别、年龄、职位、部门等信息 考勤信息:包括上下班时间、请假、加班等信息
薪资信息:包括基本工资、绩效工资、奖金等信息 培训信息:包括培训课程、培训时间、培训效果等信息
绩效评估信息:包括绩效考核标准、绩效考核结果等信息 系统管理信息:包括用户管理、权限管理、系统日志等信

性能需求分析
系统响应时间:要求系统响应时间不超过3秒 数据处理速度:要求系统数据处理速度不低于每秒1000条记录 系统稳定性:要求系统在连续运行72小时后,仍能保持稳定运行 系统安全性:要求系统具备防病毒、防黑客等安全措施,确保数据安全
Part Four
系统设计
系统架构设计
架构设计原则:高 内聚、低耦合、可 扩展、可维护
系统维护
定期备份数据:确保数据安全,防止数据丢失 定期更新系统:确保系统安全,防止病毒攻击 定期检查硬件:确保硬件正常运行,防止硬件故障 定期培训员工:确保员工熟练掌握系统操作,提高工作效率

职工信息管理系统c语言

职工信息管理系统c语言

职工信息管理系统c语言职工信息管理系统C语言职工信息管理系统是一种用于管理企业职工信息的软件系统。

它可以帮助企业管理者更好地管理职工信息,包括职工的个人信息、工作信息、薪资信息等。

C语言是一种广泛应用于系统开发的编程语言,因此在开发职工信息管理系统时,C语言是一种非常适合的编程语言。

职工信息管理系统的开发需要考虑以下几个方面:1. 界面设计职工信息管理系统需要有一个良好的界面设计,使得用户可以方便地使用系统。

界面设计需要考虑到用户的使用习惯和操作习惯,使得用户可以快速地完成各种操作。

2. 数据库设计职工信息管理系统需要有一个数据库来存储职工信息。

数据库设计需要考虑到数据的完整性和安全性,以及数据的查询和统计功能。

3. 功能设计职工信息管理系统需要具备一些基本的功能,如添加、删除、修改、查询职工信息等。

此外,还需要具备一些高级功能,如薪资计算、考勤管理等。

4. 安全性设计职工信息管理系统需要具备一定的安全性,以防止数据泄露和非法操作。

安全性设计需要考虑到用户权限管理、数据备份和恢复等方面。

在使用C语言开发职工信息管理系统时,需要注意以下几个方面:1. 代码规范C语言是一种底层语言,代码的规范性对于系统的稳定性和可维护性非常重要。

因此,在开发过程中需要遵循一定的代码规范,如变量命名规范、代码缩进规范等。

2. 内存管理C语言需要手动管理内存,因此在开发过程中需要注意内存的分配和释放,以防止内存泄露和内存溢出等问题。

3. 错误处理C语言开发过程中可能会出现各种错误,如语法错误、运行时错误等。

因此,在开发过程中需要注意错误的处理,以保证系统的稳定性和可靠性。

总之,职工信息管理系统是一种非常实用的软件系统,可以帮助企业管理者更好地管理职工信息。

C语言是一种非常适合开发职工信息管理系统的编程语言,但在开发过程中需要注意代码规范、内存管理和错误处理等方面。

c语言-职工信息管理系统

c语言-职工信息管理系统

1.设计目的设计目的是:1) 为了能够方便的对职工的信息进行管理,对职工信息进行输入、排序、查找、删除、修改等功能的实现。

2) 基本掌握面向过程程序设计的基本思路和方法,达到熟练掌握C语言的基本知识和技能,能够利用所学的基本知识和技能,解决简单的程序设计问题。

3) 培养了上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,掌握如何使用面向过程的计算机语言进行程序设计的基本方法,强化上机动手能力,闯过编程关,为后续各门计算机课程的学习打下坚实基础。

2.总体设计该系统包括数据录入、排序、删除、查询、修改等功能模块,每个模块在程序系统中用一个函数来实现,系统总体框图如图1所示。

图1 系统框图3.详细设计1)结构体数组struct staff:建立结构体数组来存放职工号、姓名、年龄、学历等;2)数据输出函数output:输出所输入的数据;3)数据输入函数intput:输入相关的数据;4)修改函数modify:对职工信息进行修改,然后输出;5)查询函数search:输入一个工号,输出其信息;6)删除函数delete:按输入的工号删除该职工,然后输出剩余职工的信息;7)主函数main:编辑出菜单,对各个函数进行调用,实现各项功能;4.程序调试程序调试正常。

5.源程序清单(1)源程序:#include<stdio.h>struct staff{char name[8];char num[10];char sex[10];char age[10];char record[10];char position[15];char wanges[10];char tel[15];char addr[50];}worker; /*定义一个结构体*/char filename[20]; /*文件名*/ FILE *fp;void creat(); /*定义一个创建函数*/void output(); /*定义一个输出信息的函数*/ void search(); /*定义一个查询的函数*/void append(); /*定义一个添加函数*/void modify(); /*定义一个修改函数*/void delete(); /*定义一个删除函数*/void exit();/*定义一个输出函数*/void main() /*主函数*/{int m;creat(); /*先调用creat函数*/while(1){printf("\n\n添加,请按1");printf("\n查找,请按2");printf("\n修改,请按3");printf("\n删除,请按4");printf("\n输出,请按5");printf("\n退出,请按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选择错误,请再次选择!");}}void creat() /*被调用的creat函数*/{struct staff one;printf(" ———————《职工信息管理系统》———————");printf("∣☆☆管理工程系电子商务专业☆☆∣");printf("∣→☆☆☆Maxwei☆☆☆←∣");printf(" -————————————————————————");printf("\n请输入保存员工信息的文件名:");scanf("%s",filename); /*创建一个文件的名字*/if((fp=fopen(filename,"w"))==NULL) /*打开文件,实现向文件输入数据*/{printf("\n不能建立!");exit();}fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n","姓名","工号","性别","年龄","学历","职位","工资","电话号码","住址");printf("\n请输入职工信息(以0结束)\n");printf("姓名:\n");scanf("%s",);while(strcmp(,"0")){printf("工号:\n");scanf("%s",one.num);printf("性别:\n");scanf("%s",one.sex);printf("年龄:\n");scanf("%s",one.age);printf("学历:\n");scanf("%s",one.record);printf("职位:\n");scanf("%s",one.position);printf("工资:\n");scanf("%s",one.wanges);printf("电话:\n");scanf("%s",one.tel);printf("住址:\n");scanf("%s",one.addr); /*输出职工的相关信息*/fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.num,one.sex,one.age,on e.record,one.position,one.wanges,one.tel,one.addr);scanf("%s",);}fclose(fp); /*关闭文件*/}void output() /*输出函数*/{struct staff one;if((fp=fopen(filename,"r"))==NULL) /*打开文件*/{printf("\n不能打开该文件!");exit();}printf("\n\n%20s\n","职工信息管理系统");/*向文件输入数据*/while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",,one.num,one.sex,one.age,one.record,one.position,o ne.wanges,one.tel,one.addr);printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.num,one.sex,one.age,one.re cord,one.position,one.wanges,one.tel,one.addr);}fclose(fp);/*关闭文件*/}void append() /*添加函数*/{struct staff one;if((fp=fopen(filename,"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.position,one.wan ges,one.tel,one.addr);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.num,one.sex,one.age,on e.record,one.position,one.wanges,one.tel,one.addr);fclose(fp); /*关闭文件*/}void search() /*查询函数*/{int k=0;char namekey[8];struct staff one;printf("\n请输入您要查找的职工姓名:");scanf("%s",namekey);if((fp=fopen(filename,"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.position,o ne.wanges,one.tel,one.addr);if(!strcmp(namekey,)){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)printf("\n\n对不起,查无此人!。

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

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

南京工程学院程序设计课程设计报告职工信息管理系统设计专业学生姓名班级学号指导教师完成日期职工信息管理系统设计目录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对不起,查无此人!。

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

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

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

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

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

(3)职工浏览功能。

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

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

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

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

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

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

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、概要设计
1、方案设计
对系统进行分析,给出结构图
分析:系统要现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计
结构图如下:
2.模块功能说明
对各个模块进行功能的描述
(1).输入模块:
录入需要管理的员工信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
这次编程中我感觉程序中最满意的地方有两点:1、程序的操作界面美观大方。2、我给程序上加上了密码修改这一模块,可以说密码函数花费了大量时间,需要重新建立一个文件来写入密码保存密码。下次登陆时需要打开密码文件,判断密码是否正确。已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。如:录入错误数据时,系统没有设计输出错误操作的提示。
实验题目:员工信息管理系统
一、实验目的
1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if语句及switch语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while、 do-while.、for 的使用。
5.掌握函数的定义方法和调用方法。
本次实习中遇到了很多以前没有遇到过的问题,也曾感到比较浮躁,但想到以前都是作为用户用各种程序,而这次自己是编程者,可以让程序按自己的想法运行,给了我继续的兴趣和信心。在老师的指导下和同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰。
七.参考文献
《C语言程序设计》 王曙燕 锰 科学 2005年2月
2、在设计过程中的感受。
本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中使我在课堂上十几周学到的知识得到了巩固,有很多以前理解不了的课本知识在这次上机实习后,再回头看一下感觉豁然开朗。学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。
5.最后输出员工信息,供需要时打印。
二、需求分析
1.该程序可用于对企业员工情况基本信息的存储、更新、查询、输出等操作,以实现对企业员工的管理。
2.其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多个员工信息,也可对个别员工信息进行适当的删除或修改。以便随时更新员工信息。
3.程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据两种不同的方法查询:按工作证号查询和按查询。以满足不同的需要。
6.能够采用模块化思想调试程序。
二.实验容
1.编写程序并进行调试运行。
2.输入员工资料,并保存于文件。每个员工包含信息如:工作证号、、性别、工龄、学历、职务、、工资等。
3.对已存个员工信息和修改某个员工信息。
4.通过输入、工作证号的方式查询员工信息。
(2).添加模块:
可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。
(3).删除模块:
可对辞职或休假的员工信息做删除处理。
(4).修改模块:
可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。
(5).查询模块:
可对已建立的员工信息进行查询,并且可根据需要选择按查询或按工作证号查询。
(6).保存模块:
用于对信息进行保存。
(7).输出模块:
将所有员工信息或想要查询的员工信息显示于屏幕,用于打印员工信息或查找某些员工信息。
(8). 修改密码:
对系统的密码可以进行修改,确保信息的安全。
(9) . 关于系统:
对系统的简介,以及操作时的注意事项。
(10).退出系统:
选择该项,自动退出该系统。
五、详细设计及运行结果
流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。
密码错误
i=0
i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8
六. 调试情况及运行结果
1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。
此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,对数据的输出格式也有较高要求,这次编程让自己对许多平时不注意的小的知识点有了新的巩固;我先编的主函数,调试后我又一个一个模块的往上加,每加上一个调试一下;虽然在编程过程中有些模块也出现了一些小问题,但在翻阅课本和同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。可这毕竟是第一次独立完成这样的大程序,虽然并不是非常健壮,但程序中没有错误和警告,各项功能都能完成,因此我对两周的实习结果还是理想的。
《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
相关文档
最新文档