程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)
职工工资管理系统C程序设计报告

一、课程设计目的和要求(一)设计目的1、通过这次专题实习,巩固和加深对所学相关知识点的理解。
2、进一步熟悉基本流程控制结构——实现分支的if…else语句、switch语句和实现循环的for、while…、do…while语句、break、continue等。
3、基本数据类型、数组、结构体、自定义类、函数的应用。
4、加强对模块化程序设计和面向对象程序设计的理解。
5、掌握C\C++语言程序设计的基本思想,了解简单的系统分析和设计方法。
(二)设计要求1、启动软件时,进行密码校验。
若出错三次,则自动退出系统。
2、实现简易的提示菜单界面,刚运行时应显示版本信息。
用所学的知识尽量实现良好的、美观的“人机界面”,便于软件的操作使用。
3、要求把所有录入的数据以文件的形式,保存在硬盘上。
4、系统包含以下基本功能:登陆功能、显示主菜单功能、职工信息输入、职工信息输出、职工信息查询、职工信息修改、工资排序、工资统计、导出数据、导入数据、退出等。
二课程设计任务内容1、设计登陆功能:用户输入口令,如果与系统内保存的密码相一致,则成功;否则重新输入口令,直至输入口令正确才可登陆系统。
若出错三次,则自动退出该系统。
2、显示菜单:用户登录成功,系统显示界面,显示系统功能的提示信息。
3、职工信息输入:用户输入要添加的职工工号,姓名,年龄,性别,基本工资,岗位工资,总工资信息等。
当职工工号为0时输入结束。
输入数据时,须验证数据的输入格式正确,保证职工号的唯一性。
4、职工信息输出:将结构体中的职工信息输出到屏幕上。
5、职工信息查询:1按职工号查询;2按职工姓名查询。
查到则显示他全部信息,否则输出“not found”。
6、职工信息修改:修改职工信息并保存(工号不能修改)。
7、工资排序:对结构体数组中的所有职工按基本工资降序排序,用选择法实现;对结构体数组中的所有职工按岗位工资降序排序,用冒泡法实现;对结构体数组中的所有职工总工资降序排序,用插入法实现。
c语言工资管理系统课程设计报告

程序设计课程设计报告工资管理系统院系:地质工程系班级:地质工程班组员:欣永胡世俊积荣海俊马小成目录一、............................................. 设计目的1二、........................................ 设计容与要求21. 设计容 (3)2. 设计要求 (4)三、......................................... 总流程图设计5四、..................................... 程序详细功能设计6五、............................................. 程序调试7六、............................................. 设计小结8七、............................................. 参考文献9附录 (10)一、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用 c 语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规化和自动化,为企业提高工作效率。
二、设计容与要求1.设计容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
工资管理系统c语言课程设计

工资管理系统c语言课程设计工资管理系统是一种用于管理和计算员工工资的软件系统。
对于企业而言,工资管理是一个重要的管理环节,直接关系到员工福利和企业的正常运行。
因此,开发一个功能完善、稳定可靠的工资管理系统对企业来说至关重要。
工资管理系统应具备以下基本功能:员工信息管理、工资计算、工资发放、报表生成等。
员工信息管理包括员工个人信息、职位信息、工资信息等的录入、修改、查询、删除等操作。
工资计算是根据员工的工作情况和薪资政策进行工资计算,包括基本工资的计算、加班工资的计算、奖金的计算等。
工资发放则是按照企业规定的发放时间和方式进行工资发放。
报表生成是将工资统计数据进行汇总和统计,并以表格、图形等形式生成相应的报表,以便管理人员进行分析和决策。
工资管理系统的实现需要采用结构化程序设计的方法。
首先,需要设计员工信息的数据结构,包括员工编号、姓名、性别、年龄、部门、职位、基本工资等字段。
然后,需要设计工资计算的算法,按照薪资政策进行计算,并将计算结果保存在员工的工资信息中。
接下来,需要设计工资发放的算法,根据发放时间和方式进行工资发放,并更新员工的工资信息。
最后,需要设计报表生成的算法,将工资统计数据汇总并以表格、图形等形式生成相应的报表。
在具体的实现过程中,可以采用C语言作为编程语言,并结合相关的开发工具进行开发。
在编程实现时,需要合理使用各种数据结构和算法,提高程序的效率和稳定性。
此外,需要注意进行错误处理和异常处理,保证程序运行的稳定性和安全性。
另外,还可以加入一些附加功能,如权限管理、数据备份、数据导入导出等,增加系统的灵活性和实用性。
综上所述,工资管理系统是一个重要的软件系统,对于企业来说具有重要的意义。
通过规范的员工信息管理、工资计算、工资发放和报表生成等功能,可以提高企业的管理效率和质量,实现人力资源的合理配置和有效利用。
同时,在日常的使用和维护过程中,需要注意保证系统的稳定性和安全性,提高系统的可靠性和可用性。
员工工资管理系统(c语言编程)6页

员工工资管理系统(c语言编程)6页一、设计目标1、完成一个员工工资管理系统,包括对员工信息的添加、删除、修改和查询、员工工资管理和统计等功能。
2、程序必须具备易用性、可靠性、安全性和稳定性等特点。
二、程序结构设计员工工资管理系统是由若干模块构成的一个整体,它们之间相互联系,共同完成对员工信息的处理和管理。
程序分为主界面模块、添加模块、删除模块、修改模块、查询模块、统计模块、退出模块。
三、模块功能设计1、主界面模块主界面包括菜单栏和功能栏,菜单栏包括添加、删除、修改、查询、统计和退出功能,功能栏是对主界面菜单的补充,包括一些快捷操作按钮。
2、添加模块添加模块是用来录入员工信息的,可以录入的信息有员工编号、员工姓名、员工部门、员工工作年限、员工基本工资、员工奖金等。
添加模块会对信息进行一系列的校验,要求信息必须完整正确才能录入。
3、删除模块删除模块是用来删除员工信息的,输入员工编号就可以删除该员工的信息。
5、查询模块查询模块提供了多种查询方式,包括按部门查询、按姓名查询、按工作年限查询、按基本工资查询、按奖金查询等。
查询结果会按照员工编号的顺序进行排序。
6、统计模块统计模块会根据查询结果进行工资统计,包括总工资、平均工资、最高工资和最低工资等。
7、退出模块退出模块是用来关闭程序的,保证程序的安全性和稳定性。
四、程序流程设计1、主界面程序启动后,会显示主界面界面,包括菜单栏和功能栏。
2、录入信息点击添加功能或者添加按钮,会进入添加模块,要求用户输入员工信息,录入完成后数据将保存到文件中。
4、修改信息点击修改功能或者修改按钮,会进入修改模块,输入员工编号,然后修改员工信息。
5、查询信息点击查询功能或者查询按钮,会进入查询模块,选择查询方式,输入查询条件,系统将显示符合条件的员工信息。
6、工资统计当查询完成后,点击统计功能或者统计按钮,会进入统计模块,系统将根据查询结果进行统计。
7、程序退出当操作完成后,点击退出功能或者退出按钮,会关闭程序。
c语言课程设计报告职工工资管理系统1.doc

c语言课程设计报告职工工资管理系统1 课程设计报告课程设计报告题目:职工工资管理系统设计者:专业班级:学号:指导教师:所属院系:2011年6月29日一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8个)。
二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
工资管理系统课程设计C语言

工资管理系统 课程设计 C语言一、课程目标知识目标:1. 理解工资管理系统的基本概念和功能需求;2. 掌握C语言中的基本数据类型、运算符、控制结构等编程知识点;3. 学会使用C语言设计并实现一个简单的工资管理系统。
技能目标:1. 能够运用C语言编写出结构清晰、逻辑合理的程序代码;2. 能够运用数组、结构体等数据结构存储和管理工资数据;3. 能够运用文件操作实现工资数据的持久化存储。
情感态度价值观目标:1. 培养学生解决问题的能力和团队协作精神,激发学生对编程的兴趣;2. 增强学生对信息技术的认识,使其意识到信息技术在现实生活中的应用价值;3. 培养学生严谨、认真的学习态度,提高学生的编程素养。
课程性质:本课程为C语言编程实践课,旨在让学生通过动手实践,掌握C语言编程的基本技能,并能够运用所学知识解决实际问题。
学生特点:学生为高年级学生,已具备一定的C语言基础,有较强的逻辑思维能力,但对实际应用场景的编程经验不足。
教学要求:结合学生特点,注重实践操作,引导学生从实际问题出发,逐步培养编程思维,提高编程能力。
课程目标分解为具体学习成果,便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 系统需求分析- 功能模块划分2. C语言基础知识回顾- 数据类型- 运算符与表达式- 控制结构(顺序、分支、循环)3. 数据结构设计- 数组- 结构体4. 函数与模块化编程- 函数定义与调用- 模块化设计5. 文件操作- 文件打开与关闭- 文件读写操作6. 工资管理系统功能实现- 员工信息管理- 工资计算- 工资查询- 数据存储与读取7. 测试与调试- 功能测试- 性能测试- 代码调试教学内容安排与进度:第1周:工资管理系统概述及需求分析第2周:C语言基础知识回顾第3周:数据结构设计第4周:函数与模块化编程第5周:文件操作第6周:工资管理系统功能实现(1)第7周:工资管理系统功能实现(2)第8周:测试与调试教材章节及内容:《C语言程序设计》第3章:数据类型、运算符与表达式第4章:控制结构第6章:函数与模块化编程第7章:数组和字符串第8章:结构体与共同体第9章:文件操作教学内容紧密结合课程目标,注重科学性和系统性,通过以上教学内容,使学生能够掌握C语言编程的核心知识,并能够将其应用于工资管理系统的设计与实现。
C语言-课程设计-教师工资管理系统(职工工资管理系统)
课程设计教师工资管理系统运行平台:VC6.0(其他平台未经测试,不一定保证有效)制作者:弓箭中南大学信息科学与工程学院源代码如下:#include 〈stdio.h>#include 〈stdlib。
h〉#include 〈string.h>#include <conio。
h>#define LEN sizeof(struct teacher)struct teacher{int num;char name[20];char sex[20];char workplace[50];char address[50];long phone;double de_salary;double de_jintie;double de_shenghuobutie;double yingfa_salary;double cost_phone;double cost_water_elec;double cost_rent;double cost_tax;double cost_weisheng;double cost_gongjijin;double cost_all;double shifa_salary;struct teacher *next;};/***********************************读取函数************************************/struct teacher *load(){struct teacher *p1,*p2,*head;FILE *fp;int i=1;if((fp=fopen(”save",”rb"))==NULL){printf(" 文件不存在!按下任意键返回主菜单。
.。
”);getch();return (NULL);}else{head=NULL;p1=(struct teacher *)malloc(LEN);while (fread(p1,LEN—4,1,fp)==1){if(i==1){head=p1;p2=p1;i=2;}else{p2—〉next=p1;p2=p2->next;}p1=(struct teacher *)malloc(LEN);}p2->next=NULL;free(p1);fclose(fp);return(head);}}/**********************************欢迎菜单函数*************************************/void welcome(){printf(”\n\n\n 〉>>>>欢迎使用教师工资管理系统Beta1.2〈<<〈<\n”);printf(” *******************************************************\n”);printf(”* C语言课程设计教师工资管理系统*\n”);printf(”*班级: 电气信息类1001班学号:0909100119 *\n”);printf(”*姓名:弓箭*\n");printf(" *******************************************************\n”);printf(”\n\n 按下任意键进入系统..。
C语言课程设计---职工工资管理系统
C语言程序设计课程设计题目:职工工资管理系统院(系):专业班级:学号:学生姓名:指导教师:教师职称:起止时间:课程设计(报告)任务及评语目录第1章课程设计的目的与要求 (1)1.1 课程设计目的 (1)1.2 课程设计的实验环境 (1)1.3 课程设计的预备知识 (1)1.4 课程设计要求 (1)第2章课程设计内容 (2)2.1程序功能介绍 (2)2.2程序整体设计说明 (2)2.2.1设计思路 (2)2.2.2数据结构设计及用法说明 (3)2.2.3程序结构(流程图) (5)2.2.4各模块的功能及程序说明 (6)2.2.5程序结果 (6)2.3程序源代码及注释 (7)第3章课程设计总结 (16)参考资料 (17)第1章课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行Windows 2000/XP操作系统的微机系统。
C语言程序设计及相应的开发环境。
1.3 课程设计的预备知识熟悉C语言及C语言开发工具。
1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章课程设计内容2.1程序功能介绍该系统能够实现工资信息管理。
系统包括录入,浏览,查询,统计等功能。
其中录入功能要求能够添加新的工资信息到文件;浏览功能要求能按照工资卡号,姓名分类浏览,提供分屏显示;有排序功能,排序后按照工资卡号升序或实发工资降序输出;查询功能要求能够按照工资卡号,姓名查询;统计功能要求能够按照月份累计统计某职工在某时间段实发工资总金额。
c语言课程设计报告职工工资管理系统.doc
课程设计报告课程设计报告题目:职工工资管理系统设计者:专业班级:学号:指导教师:所属院系:2011年6月29日一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐2个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8 个)。
3二.模块设计分析系统功能模块图:4工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
c语言课程设计报告-工资管理系统 精品
课程设计报告商贸学院课程设计任务书5 设计题目:工资管理系统学生姓名课程名称C程序设计课程设计专业班级自普本20XX-1 自应本20XX-1地点I302/304 起止时间20XX.6.30-20XX.7.11设计内容及要求主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。
操作界面要符合用户的一般习惯,图形或文本界面都可以。
要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
设计参数文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。
进度要求1. 布置设计题目,讲解要求和说明 20XX.6.302. 确定设计任务,确定具体的功能,熟悉相关知识 20XX.7.13. 按功能需求确定程序的主要模块 20XX.7.24. 编程实现程序的功能 20XX.7.3 - 20XX.7.45. 调试并完善程序 20XX.7.7 - 20XX.7.86. 撰写课程设计报告 20XX.7.97. 提交课程设计报告并答辩 20XX.7.10- 20XX.7.11参考资料《C程序设计经典教程》清华大学出版社 20XX.3 《C陷阱与缺陷》人民邮电出版社 20XX.2其它说明1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
目录摘要 (1)1设计内容、任务及具体要求 (2)1.1设计内容 (2)1.2设计任务及具体要求 (2)2概要设计 (3)2.1该系统的功能简介 (3)2.2 总体程序框图 (3)2.3各个模块之间的主要关系 (4)3系统功能模块的具体设计 (5)3.1各个模块的程序流程图及运行界面 (5)3.2对关键代码加以分析说明 (15)4程序调试分析 (23)5程序使用说明 (24)6总结 (25)致谢 (26)参考文献 (27)附:源程序 (28)1 设计内容、任务及具体要求1.1设计内容《工资管理查询系统》主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:1)职工个人说得税的计算模块,根据工资多余5000,在1000—5000之间,少余1000三种情况进行计算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计基础》课程设计报告题目: 员工工资管理系统院(系): 信息科学与工程学院专业班级:学生姓名:学号:指导教师:20 16 年 12 月 12 日至20 16 年 12 月 23 日武昌首义学院制程序设计基础课程设计任务书目录1需求与总体设计 (1)2详细设计 (1)3编码实现 (4)4运行结果 (21)总结 (24)1需求与总体设计1.1需求描述设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组文件的功能。
1。
2总体设计先以登陆函数登陆,再进入主菜单,菜单中显示各个要实现的操作,以菜单将各个函数联系起来,对菜单操作以实现系统的目的.1。
3数据结构struct user //登陆者信息{char un[10];char up[10];}us[3] = { "aaa","111",”bbb”,”222",”ccc",”333" };struct yg //员工结构体{short zt; //数据状态long bh; //编号char name[20]; //名字char time[11]; //时间long money; //基本工资long jj; //奖金long kk; //扣款long sf; //实发工资};整个程序只运用了结构体的数据结构,结构体运用于登陆者信息和员工信息,将员工信息封装在一个结构体里,再创建结构体数组,将多个员工信息储存在结构体数组中。
2详细设计2.1 系统功能设计主函数和子函数:系统包含一个主函数,和子函数,分别有登陆子函数,菜单子函数,增加数据子函数,更新数据子函数,查询数据子函数,删除数据子函数,统计数据子函数,重组文件子函数,排序数据子函数,最后两个分别是读取文件和写入文件子函数。
各个函数的功能:主函数是一个入口程序从这里进入,再进入登陆函数,实现登陆操作.登陆函数,只有拥有正确账号密码,正确的操作才可以进入菜单界面进行下一步的操作,并且输入错误三次后将会提示并强制退出.菜单界面利用switch()函数将各个函数联系起来实现真正的菜单,输入正确的序号可以进行后续的各个操作.读取函数,将特定文件中的信息,以特定的方式读取到正在运行的程序中,实现读写操作。
写入函数,在添加、更新、删除、重组操作过后进行写入操作,将变换后的数据重新写入文件中。
注:每次写入都是将程序中的所有数据重新写入文件。
增加函数,可以新添员工,并将员工的数据输入,并利用写入函数,写入文件中。
在增加后会提示是否继续增加,提供了方便。
并且如果原数据中有相同编号的员工,会在输入编号后提示有相同的编号的员工,并重新输入编号。
增加了程序的健全性。
更新数据函数,以编号来确定更新的员工,更新将重新输入该编号员工的信息,并在更新后执行写入。
删除函数,执行该函数后,将有两种选择,按编号删除,或按名字删除,正确输入后将会将该编号或姓名的数据中的一项zt的值更改为1,使其在其他操作时不被识别,以达到不删除数据,但达到相同的效果的逻辑删除。
显示函数,有两种显示方式,按学号显示或按名字显示,学号显示为从小到大显示。
重组函数,将文件中逻辑删除的数据物理删除,用来节省储存空间,并可以加快运算速度.统计数据,将文件中的数据统计、计算,并输出,给人以直观的方式显示数据。
排序函数,将数据以实发工资从大到小排序.2.2 系统流程设计3编码实现#define MAX 100#include〈stdio.h〉#include〈string.h>#include<stdlib.h>struct user //登陆者信息{char un[10];char up[10];}us[3] = {”aaa”,"111”,"bbb","222",”ccc”,"333” };struct yg //员工结构体{short zt; //数据状态long bh; //编号char name[20]; //名字char time[11]; //时间long money; //基本工资long jj; //奖金long kk; //扣款long sf; //实发工资};yg y[MAX]; //定义数据体数组int r = 0; //全局变量,人数,包括逻辑删除人数int p = 0; //登陆的次数,用全局变量能在登陆三次失败时退出程序void read() //读取文件函数{FILE *fp;char b;int i;b = ’0';printf(”即将读取文件员工信息.dat\n");if ((fp = fopen(”员工信息.dat",”rb”)) == NULL) //读取文件{printf(”员工信息.dat 文件不存在\n”);printf("是否重新创建该文件?\n");printf(”创建(y) 员工信息.dat 或退出(n)\n");getchar();b = getchar();while (getchar() != ’\n’)if (b == ’Y’ || b == 'N’)b += 32;while (b != ’y’&&b != ’n’){printf(”输入错误!请重新输入!\n");b = getchar();while (getchar()!= ’\n')if (b == ’Y' || b == ’N’)b += 32;}if (b == ’y’)if ((fp = fopen(”员工信息。
dat”, ”wb")) == NULL) //文件不存在则创建文件{printf(”创建文件失败!\n");printf("按下任意键以退出程序!\n");getchar();exit(1);}}if (b == '0’){fread(&r, 4, 1, fp);printf(”读取成功!\n”);}elseprintf(”创建文件成功!\n");if (r != 0)for (i = 0; i 〈 r; i++)fread(&y[i], sizeof(yg), 1, fp);fclose(fp);}void save() //保存文件函数{FILE *fp;int i;if ((fp = fopen(”员工信息.dat”, "wb”)) == NULL){printf("保存文件失败!\n");printf("按下任意键以退出程序!\n");getchar();exit(1);}else{fwrite(&r, 4, 1, fp);if (r != 0)for (i = 0; i 〈 r; i++)fwrite(&y[i], sizeof(yg), 1, fp);}fclose(fp);}void zj_data() //增加数据函数{yg yuangong;char b;int i;int k = 0;yuangong。
zt = 0; //新建员工信息时,状态为0 do //用循环来寻找、避免相同编号的员工{printf("编号:(例如:123456)\n”);scanf("%d",&yuangong。
bh);for (i = 0; i 〈 r; i++)if (y[i]。
bh == yuangong.bh&&y[i]。
zt==0){printf("已有同编号员工无法添加!\n”);printf(”请重新输入!\n");k = 1;break;}else if (i == r — 1)k = 0;} while (k == 1);printf(”姓名:(例如:张三(or tom))\n");scanf(”%s”, yuangong。
name);printf("年月:(例如:2015.11。
11)\n”);scanf("%s”, yuangong.time);printf("岗位工资:(例如:50000)\n");scanf(”%d",&yuangong。
money);printf("奖金:(例如:2000)\n”);scanf(”%d", &yuangong.jj);printf("扣款:(例如:100)\n");scanf("%d”, &yuangong.kk);printf("实发工资为:(岗位工资+奖金-扣款)\n");yuangong。
sf = yuangong.money + yuangong.jj - yuangong。
kk;printf(”%d\n”, yuangong。
sf);y[r] = yuangong;r++; //新建员工信息时人数r++save();printf("添加成功!\n");getchar(); //防止下面一个%c读取到上一个的回车printf("是否继续添加员工?(y/n)\n");b = getchar();while (getchar()!= ’\n’);if (b == ’Y' ||b == 'N’)b += 32;while (b != ’y’&&b != ’n’){printf("输入错误!请重新输入!\n");b = getchar();while (getchar()!= ’\n’)if (b == ’Y’ || b == ’N’)b += 32;}if (b == 'y’)zj_data();}void gx_data() //更新数据{yg yuangong;long num;int i;printf("\n请输入要更新的员工的编号!\n");scanf(”%d",&num);for (i = 0; i 〈 r; i++)if (y[i]。
bh == num&&y[i].zt == 0){yuangong = y[i];printf(”当前该员工信息为:\n”);printf(”编号:%d\n", yuangong.bh);printf("姓名:%s\n”, );printf(”年月:%s\n", yuangong。