课程设计工资管理系统设计
工资管理系统课程设计

工资管理系统 课程设计一、课程目标知识目标:1. 理解工资管理系统的基本概念、功能及重要性;2. 掌握工资管理系统中的数据结构、算法及数据库操作;3. 学会分析企业工资管理的需求,设计合理的工资管理系统。
技能目标:1. 能够运用所学知识,独立完成工资管理系统的模块划分与功能设计;2. 能够运用数据库技术,实现工资数据的存储、查询、统计和输出;3. 能够运用编程语言,开发简单的工资管理系统,解决实际问题。
情感态度价值观目标:1. 培养学生对企业信息化管理的认识,提高对信息技术的兴趣和热情;2. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题;3. 培养学生具备良好的职业道德,关注企业员工薪酬权益,树立公平、公正的价值观。
课程性质:本课程为信息技术与学科实践相结合的课程,以实践操作为主,理论学习为辅。
学生特点:六年级学生具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,以任务驱动、案例教学为主,培养学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 工资管理系统的定义与作用- 工资管理系统的基本功能模块2. 数据库基础- 数据库的基本概念- 数据表的设计与创建- 数据的增、删、改、查操作3. 工资管理系统的设计与实现- 系统需求分析- 模块划分与功能设计- 数据库设计与实现- 系统界面设计4. 编程实现工资管理系统- 选择合适的编程语言(如Python、Java等)- 编程实现各功能模块- 调试与测试5. 案例分析与实操- 分析实际企业工资管理案例- 结合所学知识,进行实操演练6. 课程总结与拓展- 总结课程重点知识- 探讨工资管理系统的发展趋势和新技术教学内容安排和进度:第1-2周:工资管理系统概述与数据库基础第3-4周:工资管理系统的设计与实现第5-6周:编程实现工资管理系统第7-8周:案例分析与实操第9-10周:课程总结与拓展教材章节及内容关联:《信息技术》六年级下册:第三章 数据库与数据处理第四章 管理信息系统第五章 编程解决问题教学内容确保科学性和系统性,注重理论与实践相结合,以培养学生的实际操作能力和解决问题的能力。
c课程设计工资管理系统

c 课程设计工资管理系统一、教学目标本课程旨在通过学习工资管理系统的设计与实现,使学生掌握以下知识目标:1.理解工资管理的基本概念和流程。
2.掌握常用的编程语言和数据库管理系统。
3.学习软件工程的基本原则和方法。
学生将具备以下技能目标:1.能够使用编程语言实现简单的工资管理功能。
2.能够使用数据库管理系统进行工资数据的存储和管理。
3.能够运用软件工程的方法进行工资管理系统的开发和维护。
通过本课程的学习,学生将培养以下情感态度价值观目标:1.培养对计算机科学和软件工程的兴趣和热情。
2.培养解决问题的能力和团队合作精神。
3.培养对工作的敬业精神和对工资管理的重视。
二、教学内容本课程的教学内容将按照以下大纲进行和安排:1.工资管理系统的概述:介绍工资管理的基本概念和流程。
2.编程语言和数据库管理系统的学习:学习常用的编程语言和数据库管理系统,并进行相关的实践操作。
3.软件工程的原则和方法:学习软件工程的基本原则和方法,并将其应用到工资管理系统的设计和实现中。
4.工资管理系统的实现:通过编程实践,实现工资管理系统的基本功能。
5.工资管理系统的测试和优化:对实现的工资管理系统进行测试和优化,以确保其正确性和效率。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法进行教学,包括:1.讲授法:通过讲解和演示,向学生传授工资管理系统的相关知识和技能。
2.讨论法:学生进行小组讨论,促进学生之间的交流和合作。
3.案例分析法:通过分析实际的工资管理案例,帮助学生理解和应用所学的知识和技能。
4.实验法:安排学生进行实验操作,实践和巩固所学的知识和技能。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备以下教学资源:1.教材:选择适合学生年级和知识水平的工资管理系统相关教材。
2.参考书:提供相关的参考书籍,供学生进行深入学习和参考。
3.多媒体资料:制作和收集与工资管理系统相关的多媒体资料,如演示文稿、视频等。
公司员工工资管理系统课程设计

公司员工工资管理系统课程设计公司员工工资管理系统课程设计一、课程设计概述本课程设计旨在帮助学生深入了解公司员工工资管理系统的运作原理和实现过程,掌握相关的技术和工具,能够设计和开发出简单实用的工资管理系统。
课程设计分为两个部分,第一部分为理论学习,第二部分为实践操作。
二、理论学习1.公司员工工资管理系统概述:介绍工资管理系统的基本概念、应用场景、功能特点和思想原则,学生需要理解员工工资管理系统在企业内部的位置和作用。
2.需求分析:从设计和使用的角度出发,了解员工的工资管理的主要需求和问题,并掌握如何进行需求分析和需求定义。
3.系统设计:学生需要掌握如何进行系统设计,包括系统的整体架构设计、数据库设计和界面设计等。
4.系统开发:学生需要掌握基本的程序开发技术,如Java、Python等主流编程语言,掌握数据库使用和连接等技术,实现一个简单可用的员工工资管理系统。
三、实践操作1.系统构建:学生参考所学习的理论知识,设计并实现一个简单的员工工资管理系统,包括员工信息管理、工资计算、工资结算等功能。
2.系统测试:学生对所设计的员工工资管理系统进行测试和修复,包括功能测试、性能测试、兼容性测试等环节,确保系统的稳定性和可用性。
四、课程设计要求1.按时完成理论学习和实践操作任务。
2.以小组形式完成线上线下协作。
3.撰写课程设计报告,包括系统需求分析、系统设计和实现、测试和修复等环节的具体过程和结果。
4.课堂展示和答辩,展示所设计的员工工资管理系统,并回答审评师的问题及提出的建议。
五、评分标准1.理论知识掌握情况(占20%)。
2.系统设计和实现的质量与复杂度(占30%)。
3.系统测试和修复的质量(占20%)。
4.课程设计报告质量(占20%)。
5.课堂展示和答辩表现(占10%)。
六、结语公司员工工资管理系统课程设计旨在培养学生的系统设计和开发能力,掌握实践技能,培养解决问题的能力。
课程设计不仅是理论学习,还注重实践操作和团队协作,以实现培养学生综合素质的目标。
工资管理系统课程设计目标

工资管理系统课程设计目标一、课程目标知识目标:1. 理解工资管理系统的基本概念和功能,掌握其在我国企业中的应用情况。
2. 学会使用数据库管理软件进行工资数据的录入、查询、修改和删除等操作。
3. 掌握工资计算的相关知识,如基本工资、加班工资、奖金、个人所得税等计算方法。
技能目标:1. 能够独立操作工资管理系统,完成员工工资的核算、发放和报表生成。
2. 培养学生运用信息技术解决实际问题的能力,提高数据处理和分析的技巧。
3. 提高学生的团队协作能力,通过小组讨论和项目实践,学会与他人共同解决问题。
情感态度价值观目标:1. 培养学生对工资管理系统工作的兴趣,激发学习热情,提高学习积极性。
2. 增强学生的职业责任感,使其认识到工资管理工作的严谨性和重要性。
3. 培养学生尊重劳动、尊重他人劳动成果的良好品质,树立正确的价值观。
分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能够独立完成工资管理系统的基本操作,达到熟练运用水平。
2. 学生能够运用所学知识解决实际工资管理问题,提高解决问题的能力。
3. 学生通过课程学习,增强团队协作意识,提高沟通能力。
4. 学生树立正确的劳动观念,提高职业素养,为将来从事相关工作打下坚实基础。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 工资管理系统概述- 工资管理系统的基本概念与功能- 工资管理系统在我国企业中的应用2. 工资管理系统操作- 数据库管理软件的基本操作- 工资数据的录入、查询、修改和删除3. 工资计算方法- 基本工资计算- 加班工资、奖金计算- 个人所得税计算4. 工资发放与报表生成- 工资发放流程- 工资报表的种类与生成方法5. 案例分析与项目实践- 分析实际工资管理案例- 小组项目实践,完成工资管理操作教学内容按照以下教学大纲安排和进度:第一周:工资管理系统概述、数据库管理软件基本操作第二周:工资数据录入、查询、修改和删除第三周:工资计算方法第四周:工资发放与报表生成第五周:案例分析与项目实践本章节内容与教材相关章节紧密关联,确保科学性和系统性,旨在帮助学生掌握工资管理系统的相关知识,提高实际操作能力。
工资管理系统课程设计

工资管理系统课程设计工资管理系统是一种高效的、安全的、自动化的工资支付管理方式,它可以大大减轻企业的负担,为公司节省了大量的时间、精力和人力资源,也节省了公司的成本。
本课程的目的是教会学生如何通过对工资管理系统的深入研究和设计,来使企业的财务管理得以极大的提升。
一、课程介绍本课程的主要内容系统地介绍了工资管理系统的概念、原理及它的重要作用。
另外,还将介绍工资管理系统的架构原理,以及它在企业财务管理中的应用,为学生提供建立系统的基本方法。
二、课程内容(1)全面介绍工资管理系统的概念、原理和重要作用,引导学生明确工资管理的具体要求;(2)探讨工资管理系统的架构原理,阐述其在企业财务管理中的应用;(3)分析各类软件产品特点,指导学生对分析以及选择合适工资管理系统的程序;(4)结合实际情况,介绍建立工资管理系统的主要步骤及其具体方法,如配置软件和硬件设备、收集和处理系统信息等;(5)实施、维护和测试工资管理系统的基本方法;(6)研究和分析工资管理系统各类模型,对不同类型的工资管理方法及其优劣进行比较,指导学生在工资管理系统的实施中的正确选择;(7)实践实验,通过实践仿真模拟实验,让学生熟悉工资管理系统的设计及技术细节,加强学生实践应用能力。
三、授课方法本课程采用以讲授为主,结合实际情况分析及实验实践的教学方法。
(1) 以讲授为主,结合案例分析及研究讨论,从理论上指导学生学习工资管理系统的相关知识;(2)讲解具体工资管理系统模型的同时,结合实际情况,指导学生掌握正确的选择策略和处理技巧;(3)导学生进行实际仿真模拟实验,加深理论知识的掌握,并培养学生熟练操作软件系统的能力;(4) 以课上讨论、实验报告为主,引导学生开展自主研究,尽可能将工资管理系统的理论知识付诸实施。
四、课程考核本课程的考核将包括课堂出勤、考试、实验报告及课程论文,其考核方式如下:(1)课堂出勤考核,占20%;(2)考试,占30%;(3)实验报告,占30%;(4)课程论文,占20%。
工资管理系统课程设计c语言

工资管理系统课程设计c语言一、课程目标知识目标:1. 学生能够理解工资管理系统的基本功能需求,掌握C语言实现工资管理系统所需的基本语法和结构;2. 学生能够运用结构体、数组、文件操作等C语言知识模块,实现工资管理系统中数据的存储、查询、修改和删除等功能;3. 学生了解并掌握C语言中的模块化编程思想,将工资管理系统划分为独立的功能模块,提高代码的可读性和可维护性。
技能目标:1. 学生能够运用所学知识,独立完成一个简单的工资管理系统的设计、编码和调试;2. 学生掌握利用C语言进行系统分析、设计和实现的基本方法,具备基本的编程实践能力;3. 学生能够运用调试工具和技巧,对程序进行调试和优化,提高程序运行的稳定性和效率。
情感态度价值观目标:1. 学生通过本课程的学习,培养对编程的兴趣,提高问题解决能力和创新意识;2. 学生在团队协作中,学会沟通、分享和合作,培养良好的团队精神和职业素养;3. 学生认识到编程在工资管理系统等实际应用中的重要性,激发其学习热情,培养积极的学习态度。
课程性质:本课程为高年级C语言程序设计课程的实践环节,旨在让学生通过实际项目的开发,巩固所学知识,提高编程能力。
学生特点:学生已经具备一定的C语言基础,了解基本语法和编程技巧,但实际项目经验不足。
教学要求:结合学生特点,课程设计应注重实践性、实用性和综合性,引导学生运用所学知识解决实际问题,提高编程实践能力。
在教学过程中,关注学生的个体差异,提供适当的指导和帮助,确保学生能够达到预定的学习目标。
通过课程目标的分解,为后续教学设计和评估提供明确的方向。
二、教学内容1. 工资管理系统需求分析:介绍工资管理系统的基本功能,如员工信息管理、工资计算、数据存储与查询等。
教材章节:《C语言程序设计》第十章——文件。
2. C语言基础知识回顾:回顾结构体、数组、指针等基本概念及其在工资管理系统中的应用。
教材章节:《C语言程序设计》第三章——结构体与联合;《C语言程序设计》第四章——数组与字符串;《C语言程序设计》第五章——指针。
C课程设计《工资管理系统》

C 课程设计《工资管理系统》一、教学目标本课程的目标是让学生掌握工资管理系统的开发和应用。
通过本课程的学习,学生将能够理解工资管理系统的原理,熟悉工资管理系统的开发流程,掌握工资管理系统的操作方法,并能够运用工资管理系统解决实际问题。
具体来说,知识目标包括掌握工资管理系统的概念、特点和应用领域;技能目标包括能够使用工资管理系统进行工资计算、工资条发放和管理;情感态度价值观目标包括培养学生对工资管理系统的兴趣,提高学生对信息化管理的重要性的认识。
二、教学内容本课程的教学内容主要包括工资管理系统的原理、开发流程和操作方法。
首先,将介绍工资管理系统的概念、特点和应用领域,使学生了解工资管理系统的基本情况。
然后,将讲解工资管理系统的开发流程,包括需求分析、系统设计、编码实现和测试等步骤,使学生掌握工资管理系统的开发方法。
接下来,将介绍工资管理系统的操作方法,包括工资计算、工资条发放和管理等功能,使学生能够熟练使用工资管理系统。
三、教学方法为了实现教学目标,将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授工资管理系统的相关知识,使学生掌握基本概念和原理。
然后,通过讨论法引导学生进行思考和讨论,提高学生对工资管理系统的理解和应用能力。
接着,通过案例分析法让学生分析实际案例,培养学生解决实际问题的能力。
最后,通过实验法让学生动手实践,熟练掌握工资管理系统的操作方法。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。
教材方面,将选用权威、实用的工资管理系统教材,为学生提供系统的理论知识。
参考书方面,将推荐一些与工资管理系统相关的书籍,供学生深入学习和参考。
多媒体资料方面,将制作课件、演示文稿等,以图文并茂的形式展示工资管理系统的原理和操作方法。
实验设备方面,将准备计算机、投影仪等设备,为学生提供良好的学习环境和实践条件。
五、教学评估本课程的评估方式将包括平时表现、作业和考试等。
数据库课程设计-工资管理系统

采用模块化设计,降低系统复 杂度,方便后期维护和升级。
用户需求
员工
能够查看自己的工资条和考勤记录, 了解自己的收入情况和出勤状况。
人力资源部门
企业管理层
通过系统报表了解企业整体薪资状况 、人力成本及员工绩效等情况,为企 业战略制定和人力资源管理提供依据 。
能够管理员工信息、工资信息和考勤 信息,生成各类报表,为企业管理层 提供决策支持。
问题解决能力
在项目设计和实现过程中,遇到了很多问题和挑战,通过 不断思考和尝试,我逐渐提高了自己的问题解决能力。
对未来研究的展望
数据库新技术研究
随着大数据、云计算等技术的不断发展,数据库技术也在不断演进。未来可以关注和研究 分布式数据库、图数据库等新技术,以满足不同应用场景的需求。
数据库应用拓展
除了传统的企业级应用外,数据库在物联网、人工智能等领域也有广泛的应用前景。未来 可以探索和研究数据库在这些领域的应用和拓展。
系统评估
功能完整性
评估系统是否实现了所有预定的功能,如工 资录入、查询、统计、分析等。
性能稳定性
测试系统在不同负载下的性能表现,如响应 时间、数据处理速度等。
易用性
评估系统的用户界面是否友好,操作是否简 便易懂。
安全性
检查系统的安全机制,如用户权限管理、数 据加密等是否完善。
改进意见与建议
增加数据校验机制
数据库设计
1 2 3
数据库选型
选用关系型数据库管理系统(RDBMS),如 MySQL、Oracle或SQL Server等,确保数据的 完整性和安全性。
数据表设计
根据业务需求设计合理的数据表结构,包括员工 信息表、工资明细表、部门信息表等,定义主键 、外键和索引等约束条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《高级语言程序设计》课程设计设计题目:工资管理系统设计目录1设计任务 (1)2正文需求分析 (1)系统模块图 (1)模块说明 (1)用户使用说明 (2)测试结果 (3)3设计小结 (4)4参考文献 (5)5附录(源程序) (6)设计任务做一个工资管理系统,要能按照姓名和卡号查找员工的工资信息,以及员工工资信息的插入,删除。
同时这些信息要存储在TXT文件中…还要可以按照一定顺序输出所有员工工资的信息分析工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。
系统模块图2、总体设计:整个系统可以分为信息输入、信息添加、信息浏览、信息排序、信息查询和信息统计模块。
3、详细设计工资信息采用结构体数组:struct mygz /*m每月工资*/{int yuefen;float yfgz;float sf;float df;float sj;float sfgz;};struct worker /*工人信息*/{int kahao;char xingming[20];struct mygz m[12];float zsfgz;};模块说明(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
(2)输入模块按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息。
(3)添加模块增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式。
(4)浏览模块通过菜单选择按照工资卡号还是姓名浏览。
如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。
(5)排序模块排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。
排序方法可以选择冒泡排序、插入排序、选择排序等。
(6)查询模块实现按照工资卡号和姓名的查询,采用基本的查找方法即可。
用户使用说明启动后屏幕上显示下面菜单1查询个人工资情况2录入工资信息3删除个人工资情况4浏览员工工资信息5个人工资排序情况6退出系统如果你要执行某一功能,就按下该功能所对应的数字即可。
查询个人工资情况:在主菜单中输入1 则进入查询子菜单界面,。
系统会提示你选择菜单。
输入1后则进入按姓名查询职工信息,此时系统会自动提示你输入要查询的职工姓名。
输入职工号后会出现该职工的信息。
输入错误职工号,要求重新输入;输入2后则进入按卡号查询职工信息,此时系统会自动提示你输入要查询的职工卡号。
输入0则返回主菜单录入工资信息:在主菜单中输入2则系统会进入新界面并自动提示你输入建立的月份,输入完成后按回车键系统会逐一提示输入卡号,如没有记录,根据提示按1 新建,系统会逐一提示出入姓名,工资,水费,电费,输入完成后会继续提示输入下一个职工的职工号。
删除个人工资情况:在主菜单中输入3系统界面是删除菜单。
系统会提示你选择(0-1)。
输入1则按职工号删除记录,系统会自动提示你输入要删除的职工信息,进入新界面后系统会提示你删除前该职工的卡号。
输入错误职工号,显示没有该职工号的职工一个记录已经删除了时系统会提示删除后的职工信息。
根据菜单提示,输入1继续删除,输入2则返回主菜单。
浏览员工工资信息:在主菜单中输入4系统界面是输出菜单界面,按照输入格式:职工号、姓名、性别、年龄、工资,逐个的输出职工的信息,输出所有职工信息后系统自动退出。
个人工资排序情况:在主菜单中输入5系统界面是统计菜单界面,输入工资数,显示大于该工资的职工的所有信息。
关闭文件。
退出系统:在使用各个功能后输入6则返回主菜单。
在主菜单中输入6则退出系统。
测试结果浏览界面排序界面设计小结通过这段时间的实习, 我收获颇多。
这次实习是真正意义上的将所学知识运用到实际中去。
我进一步理解和运用了结构化程序的思想和方法,初步掌握了开发一个小型实用系统的基本方法,学会了调试一个较长程序的基本方法,学会利用流程图表示算法,进一步掌握和提高了利用C语言进行程序设计的能力.具备了一定的编程能力.接到C语言课程设计的作业我十分高兴,终于学到的东西可以运用了。
在老师的指导和大家的共同努力下,我们终于完成了程序的大体编制。
程序中包括主函数、输入模块、查询模块、修改模块、删除模块、统计模块、输出模块、追加模块。
其中在输入模块中指针文件运用的比较好,因为指针是C的一个特色,它能有效的表示复杂的数据结构,动态的分配内存,方便的使用字符串、数组,可谓是C的精华。
在程序设计中我们最大的收获就是:我们真正从实践的角度体会到了C语言在实际生活中的作用,也深刻体会到了它带来的方便快捷。
不但使我们对C语言有更进一步的巩固和认识还使我们懂得了团队协作的重要!让我们将一年所学的C语言知识学为所用,让我们感觉到了它的神奇魅力。
美中不足的就是:由于我们知识的不足以及条件的限制,本系统还有许多漏洞与不足,希望老师给以批评与帮助,我们会积极改正。
而且本程序还处于初级阶段的职工工资管理功能中,只实现了对职工工资的录入、删除、修改、查询、统计、显示等简单功能,功能较简单,不一定在实际中有大的用途,程序编排中可能有烦琐之处有待进一步简化。
参考文献姜灵芝著.C语言课程设计案例精编.清华大学出版社,2008《C语言程序设计教程》第3版谭浩强百度文库百度贴吧:C语言吧附录(源程序)#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100struct mygz /*m 每月工资*/ {int yuefen; float yfgz; float sf; float df; float sj; float sfgz; };struct worker /*工人信息*/ {int kahao; char xingming[20]; struct mygz m[12]; float zsfgz; }; int sm;struct worker a[N]; float shuijin(float m)//___________个人所得税____________________________________*/ {float shui1,shui2; float tmp; shui1=0;shui2=0; if(m>=4500){shui1=(m-4500)*0.1;shui2=50;}else{if(m>=3500 && m<4500){shui2=(m-3500)*0.05;}}tmp=shui1+shui2;return(tmp);}float shifazsfgz(float a,float b,float c,float d){float e=a-b-c-d;return(e);}/*______________读取模块_______________________________*/ void duqu(){FILE *fp;if((fp=fopen("D:工资信息.txt","r"))==NULL){printf("无法读取文件");;return;}while(!feof(fp)){fread(&a[sm],sizeof(struct worker),1,fp);sm++;}}/*_______________排序模块_________________________________*/typedef struct worker stu;sortbykahao(const void *,const void *); sortbyxingming(const void *,const void *);void paixu(){int i;int choice;int (*p)(const void * ,const void *);printf("choice_1: 按卡号排序\n");printf("choice_2: 按姓名排序\n");printf("choice_3: 按工资排序\n");printf("choice_4: 返回主菜单\n");scanf("%d",&choice);while(choice!=0){if(choice==1)p=sortbykahao;if(choice==2)p=sortbyxingming;if(choice==3){int j;float temp;for(j=0;j<sm-2;j++){for(i=0;i<=sm-j-i;i++)if(a[i].zsfgz>a[i+1].zsfgz){temp=a[i].zsfgz;a[i].zsfgz=a[i+1].zsfgz;a[i+1].zsfgz=temp;} }for(i=0;i<=sm-1;i++)printf("%10f %-10d %-20s \n",a[i].zsfgz,a[i].kahao,a[i].xingming); }if(choice==4)return;qsort(a,sm,sizeof(stu),p);if(choice==1)for(i=0;i<sm;i++)printf("\n%d\t%s\t%d",a[i].kahao,a[i].xingming,a[i].zsfgz);if(choice==2)for(i=0;i<sm;i++)printf("\n%s\t%d\t%d",a[i].xingming,a[i].kahao,a[i].zsfgz);printf("\n");scanf("%d",&choice);}}sortbykahao(const void *p,const void *q){stu *x,*y;x=(stu*)p;y=(stu*)q;return ((*x).kahao-(*y).kahao);}sortbyxingming(const void *p,const void *q){stu *x,*y;x=(stu*)p;y=(stu*)q;return strcmp((*x).xingming,(*y).xingming);}/*_______________查询模块__________________________________*/void chaxun()int b,i,j;system("cls");label_3:b=0;while(b!=1&&b!=2){printf("1,选择姓名查询.\n2,scanf("%d",&b);}if(b==1){char c[20];printf("请输入您的姓名:\n");scanf("%s",c);i=0;while(!(strcmp(a[i].xingming,c)==0)&&i<sm){ i++; }if(i==sm){ printf("您查找的名字不存在,请正确输入您的名字或用卡号查询\n");return;}printf("%-10d %-20s \n",a[i].kahao,a[i].xingming);for(j=0;a[i].m[j].yuefen!=NULL;j++){printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\n",a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);}printf("总实发工资:%10f\n",a[i].zsfgz);b=0;while(b!=1&&b!=2){printf("1,继续查询.\n2,返回主菜单.\n");scanf("%d",&b);}if(b==1){ goto label_3; }else{ ;return; }}else{int d=0;while(!(d>=10001&&d<=32767)){ printf("请输入您的卡号(五位数字),例如:10001\n");scanf("%d",&d); }i=0;while(a[i].kahao!=d&&i<sm){ i++; }if(i==sm){ printf("您查找的名字不存在,请正确输入您的名字或用卡号查询\n");return; }printf("%-10d %-20s \n",d,a[i].xingming);for(j=0;a[i].m[j].yuefen!=NULL;j++){printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\n", a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);}printf("总实发工资:%10f\n",a[i].zsfgz);b=0;while(b!=1&&b!=2){printf("1,继续查询.\n2,返回主菜单.\n");scanf("%d",&b);}if(b==1){ goto label_3; }else{ ;return; }}}/*______________浏览模块___________________________________*/void liulan(){struct worker x;int c;float d;int i,j,k;system("cls");for(i=0;i<sm;i++){c=a[i].kahao;k=i;for(j=i+1;j<sm;j++){if(c>a[j].kahao){ c=a[j].kahao;k=j; }}x=a[i];a[i]=a[k];a[k]=x;}for(i=0;i<sm;i++){printf("%-10d %-20s \n",a[i].kahao,a[i].xingming);for(j=0;a[i].m[j].yuefen!=NULL;j++){printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\n", a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);}printf("总实发工资:%10f\n",a[i].zsfgz);}for(i=0;i<40;i++){ printf("\n"); }for(i=0;i<sm;i++){d=a[i].zsfgz;k=i;for(j=i+1;j<sm;j++){if(d<a[j].zsfgz){ d=a[j].zsfgz;k=j; }}x=a[i];a[i]=a[k];a[k]=x;}for(i=0;i<sm;i++){printf("%-20s %-10d \n",a[i].xingming,a[i].kahao);for(j=0;a[i].m[j].yuefen!=NULL;j++){printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\n", a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz);}printf("总实发工资:%10f\n",a[i].zsfgz);}}/*__________________删除模块_______________________________*/void shanchu(){FILE *fp;int b,c,i,j;system("cls");label_4:printf("请输入要删除信息的卡号:\n");scanf("%d",&b);for(i=0;i<sm;i++){if(a[i].kahao==b){ j=i; }}for(i=j+1;i<sm;i++){ a[i-1]=a[i]; }sm--;fp=fopen("D:工资信息.txt","w");for(i=0;i<sm;i++){ fwrite(&a[i],sizeof(struct worker),1,fp); }fclose(fp);c=0;while(c!=1&&c!=2){ printf("1.继续删除\n2 返回主菜单\n");scanf("%d",&c); }if(c==1){ goto label_4; }else{return; }}/*__________________录入模块_______________________________*/ void luru(){FILE *fp;int k,i,j,b,c,d;system("cls");if((fp=fopen("D:工资信息.txt","w"))==NULL){ printf("无法找到目标文件\n");return; }label_1:b=0;while(!(b>=1&&b<=12)){ printf("请您输入您要建立的月份\n");scanf("%d",&b); }b=b-1;d=0;while(!(d>=10001&&d<=32767)){printf("请输入您要录入工资的卡号(五位数字),例如:10001\n");scanf("%d",&d); }for(i=0;i<sm&&a[i].kahao!=d;i++);if(a[i].kahao!=d){c=0;while(c!=1&&c!=2){ printf("没有该卡号记录.\n1 新建\n2 返回上一级\n");scanf("%d",&c); }if(c==2){ goto label_1; }if(c==1){a[i].kahao=d;printf("请输入姓名:\n");scanf("%s",a[i].xingming);printf("请输入此人该月的应发工资,水费,电费(空格分开):\n");scanf("%f%f%f",&a[i].m[b].yfgz,&a[i].m[b].sf,&a[i].m[b].df);a[i].m[b].yuefen=b+1;a[i].m[b].sj=shuijin(a[i].m[b].yfgz);a[i].m[b].sfgz=shifazsfgz(a[i].m[b].yfgz,a[i].m[b].sf,a[i].m[b].df,a[i].m[b].sj);a[i].zsfgz=0;for(k=0;k<12;k++){a[i].zsfgz+=a[i].m[k].sfgz;}sm++;c=0;while(c!=1 && c!=2){printf("1 继续\n2 返回主菜单\n");scanf("%d",&c);}if(c==1){ goto label_1; }if(c==2){ goto label_2; }}}else{if(a[i].m[b].yuefen==b+1){c=0;while(c!=1 && c!=2){printf("已有该月记录\n1 覆盖原有记录\n2 返回上级\n");scanf("%d",&c);}if(c==1){printf("请输入此人该月的应发工资,水费,电费:\n");scanf("%d%d%d",&a[i].m[b].yfgz,&a[i].m[b].sf,&a[i].m[b].df);a[i].m[b].sj=shuijin(a[i].m[b].yfgz);a[i].m[b].sfgz=shifazsfgz(a[i].m[b].yfgz,a[i].m[b].sf,a[i].m[b].df,a[i].m[b].sj);a[i].zsfgz=0;for(k=0;k<12;k++){a[i].zsfgz+=a[i].m[k].sfgz;}while(c!=1 && c!=2){printf("1 继续\n2 返回主菜单\n");scanf("%d",&c);}if(c==1){ goto label_1; }if(c==2){ goto label_2; }}else{ goto label_1; }}if(a[i].m[b].yuefen==NULL){a[i].m[b].yuefen=b+1;printf("请输入此人该月的应发工资:\n");scanf("%f",&a[i].m[b].yfgz);printf("请输入此人该月所用水费:\n");scanf("%f",&a[i].m[b].sf);printf("请输入此人该月所用电费\n");scanf("%f",&a[i].m[b].df);a[i].m[b].sj=shuijin(a[i].m[b].yfgz);a[i].m[b].sfgz=shifazsfgz(a[i].m[b].yfgz,a[i].m[b].sf,a[i].m[b].df,a[i].m[b].sj);a[i].zsfgz=0;for(k=0;k<12;k++){a[i].zsfgz+=a[i].m[k].sfgz;}c=0;while(c!=1 && c!=2){printf("1 继续\n2 返主主菜单\n");scanf("%d",&c);}if(c==1){ goto label_1; }if(c==2){goto label_2; }}c=0;while(c!=1 && c!=2){printf("1 继续\n2返回主菜单\n");scanf("%d",&c);}if(c==1){goto label_1; }if(c==2){goto label_2; }}label_2:fp=fopen("D:工资信息.txt","r+");for(j=0;j<sm;j++);{ fwrite(&a[i],sizeof(struct worker),1,fp); }fclose(fp);}/*__________________主函数_______________________________*/void main(){int a=0;duqu();while(a!=6){printf("/*******************欢迎使用*********************/\n");printf("/************* 请按菜单选项进行选择*************/\n");printf("/************* 1.查询个人工资情况*************/\n");printf("/************* 2.录入工资信息*************/\n");printf("/************* 3.删除个人工资信息*************/\n");printf("/************* 4.浏览员工工资信息*************/\n");printf("/************* 5.个人工资排序信息*************/\n");printf("/************* 6.退出工资管理系统*************/\n");printf("/******************^_^ ^_^ ^_^*******************/\n");scanf("%d",&a);switch(a){case 1:chaxun();break;case 2:luru();break;case 3:shanchu();break;case 4:liulan();break;case 5:paixu();break;default :break;}}}。