工资管理系统C++课程设计
c++工资管理系统课程设计
c++工资管理系统课程设计
摘要:
一、引言
- 介绍工资管理系统的背景和意义
- 阐述课程设计的目的和任务
二、系统需求分析
- 功能需求
1.员工信息管理
2.工资计算
3.工资查询
4.工资统计
- 性能需求
1.响应速度
2.数据处理能力
3.系统稳定性
三、系统设计
- 系统架构设计
1.前端界面设计
2.后端功能实现
3.数据库设计
- 模块划分
1.员工信息管理模块
2.工资计算模块
3.工资查询模块
4.工资统计模块
四、系统实现
- 开发环境与工具
- 编程语言与框架
- 关键技术与实现方法
1.数据库操作
2.工资计算算法
3.界面设计
五、系统测试与优化
- 测试用例设计
- 测试环境与工具
- 测试结果分析与优化
六、总结与展望
- 总结课程设计的收获与经验
- 展望未来优化与扩展的方向
正文:
随着企业规模的扩大和管理需求的提高,工资管理系统成为企事业单位不可或缺的一部分。
本文以C++为开发语言,设计并实现了一个简单易用的工资管理系统。
首先,从需求分析出发,梳理了系统的功能需求和性能需求。
其
次,采用系统设计的方法,对系统架构、模块划分、数据库设计等方面进行了详细设计。
接着,介绍了系统实现的详细过程,包括开发环境与工具、编程语言与框架、关键技术与实现方法等。
然后,通过系统测试与优化,对系统进行了严格的测试,并对测试结果进行了分析与优化。
c课程设计工资管理系统
c 课程设计工资管理系统一、教学目标本课程旨在通过学习工资管理系统的设计与实现,使学生掌握以下知识目标:1.理解工资管理的基本概念和流程。
2.掌握常用的编程语言和数据库管理系统。
3.学习软件工程的基本原则和方法。
学生将具备以下技能目标:1.能够使用编程语言实现简单的工资管理功能。
2.能够使用数据库管理系统进行工资数据的存储和管理。
3.能够运用软件工程的方法进行工资管理系统的开发和维护。
通过本课程的学习,学生将培养以下情感态度价值观目标:1.培养对计算机科学和软件工程的兴趣和热情。
2.培养解决问题的能力和团队合作精神。
3.培养对工作的敬业精神和对工资管理的重视。
二、教学内容本课程的教学内容将按照以下大纲进行和安排:1.工资管理系统的概述:介绍工资管理的基本概念和流程。
2.编程语言和数据库管理系统的学习:学习常用的编程语言和数据库管理系统,并进行相关的实践操作。
3.软件工程的原则和方法:学习软件工程的基本原则和方法,并将其应用到工资管理系统的设计和实现中。
4.工资管理系统的实现:通过编程实践,实现工资管理系统的基本功能。
5.工资管理系统的测试和优化:对实现的工资管理系统进行测试和优化,以确保其正确性和效率。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法进行教学,包括:1.讲授法:通过讲解和演示,向学生传授工资管理系统的相关知识和技能。
2.讨论法:学生进行小组讨论,促进学生之间的交流和合作。
3.案例分析法:通过分析实际的工资管理案例,帮助学生理解和应用所学的知识和技能。
4.实验法:安排学生进行实验操作,实践和巩固所学的知识和技能。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备以下教学资源:1.教材:选择适合学生年级和知识水平的工资管理系统相关教材。
2.参考书:提供相关的参考书籍,供学生进行深入学习和参考。
3.多媒体资料:制作和收集与工资管理系统相关的多媒体资料,如演示文稿、视频等。
工资管理c语言课程设计
工资管理c语言课程设计一、课程目标知识目标:1. 掌握C语言中数据类型、运算符、控制流程等基本语法知识;2. 学会使用C语言进行结构体定义,实现工资管理系统中数据的结构化存储;3. 理解文件操作的基本方法,实现对工资数据的读写和存储;4. 掌握模块化编程思想,将工资管理系统拆分为多个功能模块,提高代码可读性和可维护性。
技能目标:1. 能够运用所学C语言知识,独立完成工资管理系统的设计与编码;2. 能够通过调试和修改代码,解决工资管理系统中出现的常见问题;3. 学会运用结构化分析和设计方法,对工资管理系统进行模块划分和功能设计;4. 培养良好的编程习惯,写出简洁、高效、可维护的代码。
情感态度价值观目标:1. 培养学生严谨、细心的编程态度,树立良好的编程习惯;2. 增强学生对C语言编程的兴趣,激发主动学习和探究的热情;3. 培养学生团队协作意识,提高沟通与协作能力;4. 使学生认识到编程在解决实际问题中的价值,增强实践操作能力。
本课程针对高年级学生,在已有C语言基础之上,通过工资管理系统的课程设计,让学生将理论知识与实践相结合,提高编程能力和解决实际问题的能力。
课程注重培养学生严谨的编程思维、良好的编程习惯和团队协作精神,使学生在完成课程学习的同时,具备一定的实际项目经验。
二、教学内容1. C语言基础知识复习:数据类型、变量、常量、运算符、控制流程(选择、循环);2. 结构体与共用体:工资管理系统中的员工信息结构定义,掌握结构体成员访问方法;3. 文件操作:文件读写、文件打开与关闭、文件定位,实现对工资数据的持久化存储;4. 函数与模块化编程:功能模块划分,掌握函数定义、调用、参数传递和返回值;5. 工资管理系统功能设计:需求分析,功能模块划分,模块间接口设计;6. 工资管理系统编码实现:根据设计,编写各模块代码,实现工资管理系统的各项功能;7. 系统测试与调试:编写测试用例,进行功能测试,发现问题并进行调试;8. 代码优化与维护:提高代码可读性、可维护性,培养良好的编程习惯。
c语言工资管理系统课程设计
c语言工资管理系统课程设计一、课程目标知识目标:1. 掌握C语言中数据类型、变量、运算符、控制结构等基本知识;2. 学会使用数组、结构体等C语言高级特性;3. 理解文件操作在C语言中的应用;4. 掌握工资管理系统的基本功能模块及其实现方法。
技能目标:1. 能够运用C语言编写简单的工资管理系统程序;2. 学会分析工资管理系统的需求,设计合理的程序结构;3. 掌握调试程序、解决常见编译错误和逻辑错误的方法;4. 提高学生的编程实践能力和问题解决能力。
情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发自主学习C语言的积极性;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 增强学生的信息安全意识,注重保护用户隐私;4. 培养学生遵循编程规范,养成良好的编程习惯。
课程性质分析:本课程为C语言高级应用课程,以实现工资管理系统为项目驱动,结合实际应用场景,让学生在实践中掌握C语言编程技能。
学生特点分析:学生已具备C语言基础知识,具有一定的编程能力,但对复杂程序设计、模块化编程尚需进一步锻炼。
教学要求:结合课程性质和学生特点,注重实践操作,引导学生自主学习,培养编程思维和问题解决能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. C语言基础回顾:数据类型、变量、常量、运算符、控制结构(条件语句、循环语句);2. 函数:函数定义、调用、参数传递、返回值;3. 数组与字符串:一维数组、二维数组、字符串操作;4. 指针:指针概念、指针运算、指针与数组、指针与函数;5. 结构体:结构体定义、结构体变量创建、结构体数组、结构体指针;6. 文件操作:文件打开与关闭、读写文件、文件定位;7. 工资管理系统功能模块设计:需求分析、模块划分、数据结构设计;8. 编程实践:编写工资管理系统各功能模块代码,如员工信息管理、工资计算、工资查询等;9. 系统调试与优化:编译错误处理、逻辑错误调试、性能优化;10. 代码规范与编程习惯:命名规范、代码组织、注释使用。
工资管理系统c语言课程设计
工资管理系统c语言课程设计工资管理系统是一种用于管理和计算员工工资的软件系统。
对于企业而言,工资管理是一个重要的管理环节,直接关系到员工福利和企业的正常运行。
因此,开发一个功能完善、稳定可靠的工资管理系统对企业来说至关重要。
工资管理系统应具备以下基本功能:员工信息管理、工资计算、工资发放、报表生成等。
员工信息管理包括员工个人信息、职位信息、工资信息等的录入、修改、查询、删除等操作。
工资计算是根据员工的工作情况和薪资政策进行工资计算,包括基本工资的计算、加班工资的计算、奖金的计算等。
工资发放则是按照企业规定的发放时间和方式进行工资发放。
报表生成是将工资统计数据进行汇总和统计,并以表格、图形等形式生成相应的报表,以便管理人员进行分析和决策。
工资管理系统的实现需要采用结构化程序设计的方法。
首先,需要设计员工信息的数据结构,包括员工编号、姓名、性别、年龄、部门、职位、基本工资等字段。
然后,需要设计工资计算的算法,按照薪资政策进行计算,并将计算结果保存在员工的工资信息中。
接下来,需要设计工资发放的算法,根据发放时间和方式进行工资发放,并更新员工的工资信息。
最后,需要设计报表生成的算法,将工资统计数据汇总并以表格、图形等形式生成相应的报表。
在具体的实现过程中,可以采用C语言作为编程语言,并结合相关的开发工具进行开发。
在编程实现时,需要合理使用各种数据结构和算法,提高程序的效率和稳定性。
此外,需要注意进行错误处理和异常处理,保证程序运行的稳定性和安全性。
另外,还可以加入一些附加功能,如权限管理、数据备份、数据导入导出等,增加系统的灵活性和实用性。
综上所述,工资管理系统是一个重要的软件系统,对于企业来说具有重要的意义。
通过规范的员工信息管理、工资计算、工资发放和报表生成等功能,可以提高企业的管理效率和质量,实现人力资源的合理配置和有效利用。
同时,在日常的使用和维护过程中,需要注意保证系统的稳定性和安全性,提高系统的可靠性和可用性。
c++工资管理系统课程设计
c++工资管理系统课程设计一、课程设计背景及要求随着现代企业管理的日益规范,工资管理系统已成为企业必不可少的一部分。
本课程设计旨在实现一个简单的C++工资管理系统,用于计算职工当月工资、存储档案信息,并满足不同职位工资差异的需求。
系统主要涉及五种职位:技术人员、销售人员、文秘、技术经理和销售经理。
二、系统功能概述1.职工信息管理:存储职工的职工号、姓名、月工资、年龄、性别等信息。
2.工资计算:根据不同职位和业绩,计算职工的工资。
- 技术人员:按小时计算,每小时工资为40元。
- 销售人员:按销售总额的5%计算提成。
- 文秘:设有4000元底薪,奖金根据当月工作情况而定。
- 技术经理:固定月薪为5000元,根据工作业绩分为三个等级,每级有1000元奖金。
- 销售经理:固定月薪为5000元,按团队销售总额的0.3%计算奖金。
3.查询与统计:提供职工信息的查询、统计功能,如按条件筛选、显示员工数目、工资总数等。
4.数据保存与加载:利用文件系统保存职工信息,以便在系统下次运行时继续使用。
三、设计思路与实现1.设计合适的数据结构,如结构体数组、链表等,用于存储职工信息和计算工资。
2.确定文件存储格式(如文本或二进制)和文件名,实现数据的读写操作。
3.采用自顶向下的设计方法,划分模块,编写函数,实现各项功能。
四、程序清单及运行结果1.程序清单:列举程序中涉及的主要函数和关键代码。
2.运行结果:展示程序运行时的输出,如职工信息显示、工资计算结果等。
五、程序使用说明1.管理员登录:输入密码进入系统。
2.录入职工信息:按照提示录入职工信息,包括职工号、姓名、月工资、年龄、性别等。
3.查询职工信息:根据工号或姓名查询职工信息。
4.计算工资:根据职工类型和业绩,计算工资并显示。
5.统计信息:显示职工总数、工资总数等。
6.退出系统:完成操作后,选择退出系统。
六、总结与心得体会1.掌握C++语言的基本语法和编程技巧,提高编程能力。
c工资管理课程设计
c工资管理课程设计一、课程目标知识目标:1. 学生理解工资管理的基本概念,掌握工资的计算方法和流程。
2. 学生掌握工资表的制作和解读,了解个人所得税的相关知识。
3. 学生了解我国工资管理的相关法律法规,知晓劳动者的权益保护。
技能目标:1. 学生能够运用所学知识进行工资的计算,准确地完成工资表的制作。
2. 学生能够运用电子表格软件进行工资管理,提高数据处理和分析能力。
3. 学生通过案例分析,提高解决实际工资管理问题的能力。
情感态度价值观目标:1. 学生通过学习工资管理,培养对劳动者的尊重和关爱,增强社会责任感。
2. 学生在小组合作学习中,培养团队协作精神和沟通能力。
3. 学生通过了解工资管理的法律法规,增强法治观念,提高法律意识。
课程性质:本课程为实践性较强的课程,结合实际工资管理案例,让学生在理论学习的基础上,提高实际操作能力。
学生特点:学生具备一定的电子表格操作基础,对工资管理有一定的认知,但缺乏系统学习和实际操作经验。
教学要求:教师需结合实际案例,引导学生运用所学知识解决工资管理问题,注重培养学生的实际操作能力和法律意识。
通过课堂讲解、案例分析、小组讨论等多种教学手段,确保学生达到预设的课程目标。
教学过程中,关注学生的学习反馈,及时调整教学方法和节奏,提高教学效果。
二、教学内容1. 工资管理基本概念:工资的定义、工资构成要素、工资制度分类。
2. 工资计算方法:计时工资、计件工资、绩效工资的计算方法,各类奖金的计算。
3. 工资表的制作与解读:工资表的组成、填写方法、工资条的解读。
4. 个人所得税知识:个人所得税的基本概念、税率、计税方法、扣除标准。
5. 工资管理的法律法规:我国工资管理的相关法律法规,如《劳动法》、《劳动合同法》等。
6. 劳动者权益保护:工资支付保障、加班工资、社会保险等方面的权益保护。
教学大纲安排:第一课时:工资管理基本概念及工资计算方法介绍。
第二课时:工资表的制作与解读,个人所得税知识讲解。
c语言工资管理系统课程设计
c语言工资管理系统课程设计一、课程目标知识目标:1. 让学生掌握C语言中数组、结构体、文件操作等基本知识,并能将其应用于工资管理系统。
2. 使学生了解工资管理系统的基本功能需求,如员工信息录入、查询、修改和删除等。
3. 帮助学生理解工资计算方法,包括基本工资、加班工资、税金和实发工资等。
技能目标:1. 培养学生运用C语言设计、编写和调试工资管理系统的能力。
2. 提高学生分析问题、解决问题的能力,使其能够根据实际需求,优化系统功能。
3. 培养学生团队协作和沟通能力,通过分组完成任务,共同完成课程设计。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神。
2. 培养学生认真负责的态度,对待课程设计任务,养成良好的编程习惯。
3. 引导学生关注实际应用,理解计算机技术在企业管理中的重要性,提高职业素养。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为C语言课程设计,旨在帮助学生将所学知识应用于实际项目中,提高编程能力和解决实际问题的能力。
2. 学生特点:学生已经掌握了C语言的基本知识,具有一定的编程基础,但对实际项目开发尚缺乏经验。
3. 教学要求:结合教材内容,以实用性为导向,注重培养学生的实际操作能力和团队协作能力。
二、教学内容1. 教学大纲:a. C语言数组、结构体和文件操作复习b. 工资管理系统功能需求分析c. 工资计算方法及实现d. 系统设计、编码与调试e. 团队协作与项目展示2. 教学内容安排与进度:a. 第一周:复习C语言数组、结构体和文件操作相关知识,讲解工资管理系统项目背景和功能需求。
b. 第二周:分析工资计算方法,引导学生设计系统功能模块,编写系统设计文档。
c. 第三周:根据设计文档,分组进行编码,实现工资管理系统的基础功能。
d. 第四周:优化系统功能,进行系统调试,确保系统稳定运行。
e. 第五周:团队协作,整理项目文档,准备项目展示。
3. 教材章节与内容:a. 数组、结构体和文件操作:教材第3章、第4章、第6章b. 工资管理系统功能需求分析:教材第10章 实践项目案例c. 工资计算方法及实现:教材第7章 循环与分支结构d. 系统设计、编码与调试:教材第8章 函数与模块化编程e. 团队协作与项目展示:教材第12章 软件工程实践4. 教学内容列举:a. 数组、结构体和文件操作:数组的使用、结构体定义和操作、文件读写。
工资管理系统课程设计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 课程设计《工资管理系统》一、教学目标本课程的目标是让学生掌握工资管理系统的开发和应用。
通过本课程的学习,学生将能够理解工资管理系统的原理,熟悉工资管理系统的开发流程,掌握工资管理系统的操作方法,并能够运用工资管理系统解决实际问题。
具体来说,知识目标包括掌握工资管理系统的概念、特点和应用领域;技能目标包括能够使用工资管理系统进行工资计算、工资条发放和管理;情感态度价值观目标包括培养学生对工资管理系统的兴趣,提高学生对信息化管理的重要性的认识。
二、教学内容本课程的教学内容主要包括工资管理系统的原理、开发流程和操作方法。
首先,将介绍工资管理系统的概念、特点和应用领域,使学生了解工资管理系统的基本情况。
然后,将讲解工资管理系统的开发流程,包括需求分析、系统设计、编码实现和测试等步骤,使学生掌握工资管理系统的开发方法。
接下来,将介绍工资管理系统的操作方法,包括工资计算、工资条发放和管理等功能,使学生能够熟练使用工资管理系统。
三、教学方法为了实现教学目标,将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授工资管理系统的相关知识,使学生掌握基本概念和原理。
然后,通过讨论法引导学生进行思考和讨论,提高学生对工资管理系统的理解和应用能力。
接着,通过案例分析法让学生分析实际案例,培养学生解决实际问题的能力。
最后,通过实验法让学生动手实践,熟练掌握工资管理系统的操作方法。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。
教材方面,将选用权威、实用的工资管理系统教材,为学生提供系统的理论知识。
参考书方面,将推荐一些与工资管理系统相关的书籍,供学生深入学习和参考。
多媒体资料方面,将制作课件、演示文稿等,以图文并茂的形式展示工资管理系统的原理和操作方法。
实验设备方面,将准备计算机、投影仪等设备,为学生提供良好的学习环境和实践条件。
五、教学评估本课程的评估方式将包括平时表现、作业和考试等。
工资管理系统课程设计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语言工资管理系统课程设计
c语言工资管理系统课程设计一、教学目标本课程的目标是使学生掌握C语言在工资管理系统开发中的应用。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用。
3.学习模块化编程思想。
4.能够使用C语言编写简单的程序。
5.学会使用C语言进行文件操作。
6.能够独立完成工资管理系统的开发。
情感态度价值观目标:1.培养学生对计算机编程的兴趣。
2.培养学生解决问题的能力。
3.培养学生团队合作的意识。
二、教学内容教学内容以《C程序设计语言》为基础,结合实际情况进行调整。
教学大纲如下:1.C语言概述:介绍C语言的历史和发展,理解C语言的特点。
2.基本语法:学习数据类型、运算符、表达式等基本语法知识。
3.控制结构:学习顺序结构、分支结构和循环结构。
4.函数:学习函数的定义、调用和返回值。
5.数组和字符串:学习一维、二维数组的使用,字符串的基本操作。
6.指针:学习指针的概念和应用。
7.结构体和文件:学习结构体的定义和使用,文件的基本操作。
8.模块化编程:学习模块的划分和调用。
9.工资管理系统实例:以实际项目为例,讲解工资管理系统的开发过程。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本语法和理论知识。
2.案例分析法:分析实际项目,理解工资管理系统的开发过程。
3.实验法:动手编写程序,巩固所学知识。
4.讨论法:分组讨论问题,培养团队合作能力。
四、教学资源教学资源包括:1.教材:《C程序设计语言》。
2.参考书:提供相关的参考书籍,以便学生深入理解C语言。
3.多媒体资料:制作PPT等教学课件,辅助讲解。
4.实验设备:提供计算机实验室,方便学生动手实践。
五、教学评估教学评估是检验学生学习成果的重要手段。
本课程的评估方式包括以下几个方面:1.平时表现:评估学生的出勤、课堂表现、参与讨论等情况,占总评的20%。
2.作业:布置课后作业,评估学生的编程能力和理解程度,占总评的30%。
c工资管理系统课程设计
c工资管理系统课程设计一、课程目标知识目标:1. 让学生理解工资管理系统的基本概念、功能模块及其在实际企业中的应用。
2. 掌握工资管理系统中工资计算、税费扣除、工资发放等基本流程。
3. 学会运用数据库技术进行工资数据的存储、查询和更新。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的工资管理系统的能力。
2. 提高学生分析实际问题时运用工资管理系统进行数据处理的技能。
3. 培养学生团队协作、沟通表达的能力。
情感态度价值观目标:1. 激发学生对信息技术在企业中的应用产生兴趣,提高其学习积极性。
2. 培养学生具备良好的信息素养,认识到信息安全、保护隐私的重要性。
3. 增强学生对于企业人力资源管理的认识,提高其职业素养。
课程性质分析:本课程为信息技术与学科整合的实践性课程,旨在让学生将所学知识应用于实际问题的解决,提高其信息技术素养。
学生特点分析:学生为高年级学生,具备一定的信息技术基础,具有较强的学习能力和实践操作能力。
教学要求:1. 结合实际案例,引导学生运用所学知识分析、解决工资管理系统相关问题。
2. 创设情境,鼓励学生进行自主学习、协作探究,培养学生的创新精神和实践能力。
3. 注重过程评价,关注学生的学习成果,提高教学质量。
二、教学内容1. 工资管理系统概述- 了解工资管理系统的定义、作用及其在企业中的应用。
- 分析工资管理系统的主要功能模块。
2. 工资管理系统的基本流程- 学习工资计算、税费扣除、工资发放等基本流程。
- 掌握工资管理系统中涉及的算法和业务规则。
3. 数据库技术在工资管理系统中的应用- 学习数据库的基本概念、设计方法及其在工资管理系统中的作用。
- 掌握工资管理系统中数据库的建立、查询、更新等操作。
4. 工资管理系统的设计与实现- 学习系统分析与设计的基本方法,明确工资管理系统的需求。
- 掌握运用编程语言和数据库技术实现工资管理系统功能。
5. 案例分析与实战演练- 分析典型工资管理系统案例,了解实际应用中的解决方案。
C语言课程设计工资管理系统
界面布局:检查界面布局是否合理,是否符合用户习惯 功能测试:测试各个功能模块是否正常工作,是否有错误提示 性能测试:测试系统的响应速度和稳定性,是否有卡顿现象
兼容性测试:测试系统在不同操作系统和浏览器上的兼容性,是否有显示异常
员工信息录入:包括姓名、性别、年龄、 职位、薪资等信息
员工信息删除:删除不再需要的员工信 息
测试目的:验 证系统功能是 否符合设计要
求
测试内容:功 能测试、性能 测试、安全性
测试等
测试方法:黑 盒测试、白盒 测试、灰盒测
试等
测试结果:列 出测试过程中 发现的问题及
解决方案
测试结论:对 系统的整体性 能和稳定性进
行评估
测试建议:针 对测试中发现 的问题提出改
进建议
硬件要求:服务器、网络设备、存 储设备等
部署步骤:安装操作系统、安装数 据库管理系统、安装Web服务器、 部署工资管理系统等
添加标题
添加标题
添加标题
添加标题
软件要求:操作系统、数据库管理 系统、Web服务器等
维护方案:定期备份数据、定期检 查系统运行情况、定期更新系统软 件等
系统运行环境:Windows、Linux等操作系统 硬件要求:CPU、内存、硬盘等 软件安装:安装C语言编译器、数据库管理系统等 系统维护:定期备份数据、更新软件、修复漏洞等
升级方式:自动升级或手动升级 升级内容:功能升级、性能升级、安全升级等 扩展方式:插件扩展、模块扩展、功能扩展等 扩展内容:增加新功能、优化性能、提高安全性等
汇报人:
排序算法:快速排序、归并排序、 堆排序等
图算法:最短路径、最小生成树等
添加标题
添加标题
添加标题
添加标题
工资管理系统c语言课程设计
工资管理系统c语言课程设计一、引言工资管理系统是企业管理中的重要组成部分,它负责实现对员工工资数据的管理和计算。
本文将探讨在C语言课程设计中,如何设计和开发一个工资管理系统。
二、需求分析工资管理系统的主要功能要求如下: 1. 员工信息管理:包括添加员工、删除员工和修改员工信息。
2. 工资计算:根据员工的工作时长和工资标准计算当月工资。
3. 工资查询:根据员工姓名或编号查询某员工的基本信息和工资信息。
4. 工资统计:统计当月全体员工的工资总额和平均工资。
三、系统设计3.1 数据结构设计在设计工资管理系统时,我们需要定义适当的数据结构来存储员工信息和工资信息。
以下是一种可能的设计:typedef struct {char name[20];int id;float hours_worked;float hourly_wage;float salary;} Employee;在这个设计中,我们将每个员工的姓名、编号、工作时长、时薪和工资存储在一个结构体变量中。
3.2 功能模块设计基于需求分析,我们可以将工资管理系统分为以下几个功能模块: 1. 添加员工模块:实现向系统中添加新员工的功能。
2. 删除员工模块:实现从系统中删除某员工的功能。
3. 修改员工信息模块:实现修改某员工信息的功能。
4. 工资计算模块:根据员工的工作时长和工资标准计算当月工资。
5. 工资查询模块:根据员工姓名或编号查询某员工的基本信息和工资信息。
6. 工资统计模块:统计当月全体员工的工资总额和平均工资。
四、系统实现4.1 添加员工模块添加员工模块实现员工信息的录入。
void addEmployee(Employee *employee_list, int *num_employees) { // 输入员工信息// 将员工信息添加到employee_list中// 员工数量加一(*num_employees)++;}4.2 删除员工模块删除员工模块实现对某员工信息的删除。
工资管理c语言课程设计
工资管理c语言课程设计一、教学目标本课程的教学目标是使学生掌握工资管理C语言的基本概念、原理和方法,培养学生运用C语言进行工资管理的实际操作能力,提高学生在工资管理领域的科学素养。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,了解结构体、文件操作等相关概念,并能够运用这些知识解决工资管理中的实际问题。
2.技能目标:学生需要能够使用C语言编写工资管理系统,包括员工信息的增删改查、工资的计算和统计等功能,培养学生的编程能力和解决实际问题的能力。
3.情感态度价值观目标:通过本课程的学习,使学生认识到计算机技术在工资管理领域的重要性,增强学生对计算机技术的兴趣和信心,培养学生严谨的科学态度和良好的职业道德。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言基础知识:介绍C语言的基本语法、数据类型、运算符、控制结构等,使学生掌握C语言编程的基本方法。
2.函数与模块化编程:讲解函数的定义、声明和调用,培养学生模块化编程的思想,提高代码的可读性和可维护性。
3.结构体与文件操作:介绍结构体的定义和使用,讲解文件的基本操作,如文件的打开、关闭、读写等,为工资管理系统的开发打下基础。
4.工资管理系统实现:通过实际案例,引导学生运用所学知识编写工资管理系统,包括员工信息的增删改查、工资的计算和统计等功能。
5.调试与优化:讲解调试工具的使用,培养学生发现和解决问题的能力,并对代码进行优化,提高程序的性能。
三、教学方法为了达到本课程的教学目标,我们将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构等知识,使学生掌握基本概念。
2.案例分析法:通过分析实际案例,使学生了解结构体、文件操作在工资管理中的应用,培养学生解决实际问题的能力。
3.实验法:让学生动手编写工资管理系统,培养学生的编程能力和团队协作能力。
4.讨论法:学生进行课堂讨论,分享学习心得和解决问题的方法,提高学生的沟通能力和合作精神。
C课程设计《工资管理系统》
C 课程设计《工资管理系统》一、教学目标本课程的教学目标是使学生掌握工资管理系统的核心概念、设计和实现方法。
通过本课程的学习,学生应能够理解工资管理的基本流程,熟悉工资管理系统的关键组成部分,如员工信息管理、工资计算、税款扣除等,并能够运用面向对象的设计方法,独立设计和实现一个简单的工资管理系统。
具体来说,知识目标包括:掌握工资管理的基本概念和流程;了解工资管理系统的主要组成部分及其功能;熟悉面向对象的设计方法和原则。
技能目标包括:能够使用面向对象的语言进行编程;能够根据实际需求设计和实现一个简单的工资管理系统。
情感态度价值观目标包括:培养学生的团队协作意识,使其能够积极参与团队项目;培养学生的问题解决能力,使其能够通过分析和设计解决实际问题。
二、教学内容本课程的教学内容主要包括工资管理系统的核心概念、设计和实现方法。
具体包括以下几个部分:1.工资管理的基本概念和流程:介绍工资管理的基本概念,如工资、奖金、扣款等,以及工资管理的基本流程,如员工信息管理、工资计算、税款扣除等。
2.工资管理系统的主要组成部分及其功能:介绍工资管理系统的主要组成部分,如员工信息管理模块、工资计算模块、税款扣除模块等,以及各部分的功能和作用。
3.面向对象的设计方法:介绍面向对象的设计方法,包括类的设计、对象的创建和使用、继承和多态等概念和方法。
4.工资管理系统的实现:通过实际案例,引导学生运用面向对象的设计方法,独立设计和实现一个简单的工资管理系统。
三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法,如讲授法、案例分析法、实验法等。
具体来说:1.讲授法:通过讲解工资管理的基本概念、流程和面向对象的设计方法,使学生掌握相关知识。
2.案例分析法:通过分析实际案例,使学生了解工资管理系统的设计和实现过程,提高学生的实际操作能力。
3.实验法:让学生亲自动手设计和实现一个简单的工资管理系统,培养学生的实际编程能力和问题解决能力。
工资管理c课程设计
工资管理c 课程设计一、课程目标知识目标:1. 学生理解工资管理的基本概念,掌握工资核算的相关计算方法。
2. 学生掌握运用电子表格软件进行工资数据录入、修改和管理的操作步骤。
3. 学生能够解读和分析工资单,理解各项工资项目的含义及其计算方式。
技能目标:1. 学生能够独立操作电子表格软件,完成工资的录入、计算和汇总。
2. 学生通过案例分析和问题解决,培养数据处理和财务管理的实际操作能力。
3. 学生通过小组合作,提高沟通协调和团队协作能力。
情感态度价值观目标:1. 学生培养对财务管理和财经知识学习的兴趣,树立正确的消费观和金钱观。
2. 学生通过工资管理的学习,增强对劳动价值的尊重,理解公平正义的原则。
3. 学生在学习过程中,养成严谨细致的工作态度,提升自我管理和自主学习的意识。
课程性质分析:本课程为会计电算化或商务管理类课程的一部分,侧重于应用与实践,结合当前信息技术,强化学生的动手能力和解决实际问题的能力。
学生特点分析:考虑到学生处于高年级阶段,具备一定的信息处理能力和逻辑思维能力,能够较快掌握新软件的使用方法,但需注意个别差异,进行差异化教学。
教学要求:1. 教学内容与实际应用紧密结合,注重培养学生的实践技能。
2. 教学过程中注重启发式教学,引导学生主动探索和思考。
3. 教学评估应侧重过程和结果相结合,关注每位学生的学习成果。
二、教学内容1. 工资管理概述:工资管理的基本概念、原则和法律法规,介绍工资管理的现实意义。
- 教材章节:第1章 工资管理导论2. 工资核算方法:基本工资、加班费、奖金、扣款等计算方法,个人所得税计算。
- 教材章节:第2章 工资核算方法3. 电子表格软件在工资管理中的应用:Excel等软件的基本操作,工资表格的制作和公式运用。
- 教材章节:第3章 电子表格与工资管理4. 工资数据管理:工资数据的收集、录入、修改和存储,数据的安全与保密。
- 教材章节:第4章 工资数据管理5. 工资单解读与分析:工资单各项内容的含义,如何分析工资单,识别工资发放中的问题。
c语言课程设计报告 职工工资管理系统
一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8 个)。
二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。
若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》课程设计报告姓名:叶小波姚旺富李成班级:信管082信息工程学院信息管理系二〇一一年一月题目:建立企业工资计算及管理系统一、题目要求:采用面向对象程序设计思想,利用文本文件来存储数据,实现数据的输入,处理,查询(按姓名,编号,职业,对应员工工资分布情况查询)等功能,并自动计算出工资。
二、需求分析:实现数据的输入及处理、编辑、管理、查询(按姓名,编号,职业,对应员工工资分布情况查询)数据输入的-------根据题意,输入员工的信息,包括职业,姓名,编号及对应的工资处理数据,系统会进行处理。
查询-------根据题意,按照姓名、编号、职业、对应员工工资分布情况进行查询三、设计思路:1、对象设计:抽象类employee,对应产生3个派生类technician, salesman, manager, 再把salesman,manager,salesman与manager作为虚基类派生出一个salesmanager类,从而避免二义性问题。
2、Technician,salesman,manager,salesmanager都用将用到pay()与display()两个函数,而且都是派生得到,于是在基类中设置了虚函数pay()与display().3、函数的设计:设置了6个函数,分别为添加员工及工资计算,按姓名查询,按编号查询,按职业查询,对应员工工资分布情况查询,查看所有员工信息4、6个函数分别设为类的友元函数,可以访问私有成员。
5、采用文本文件存储数据。
四、详细设计:1.类定义://///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class employee //雇员类类中函数:employee() //雇员构造函数virtual void pay()=0 /雇员工资计算虚函数virtual void display()=0 //雇员工资显示虚函数friend void add(); //添加员工及工资计算友元函数friend void visitname() ; //按姓名查询友元函数friend void visitnum() ; //按标号查询友元函数friend void visitprofession(); //按职业查询友元函数friend void searchpay() ; //对应员工工资分布情况查询友元函数friend void outpay(); //打印员工工资friend void outpay();~ employee() //雇员析构函数变量:no //编号name[20] //姓名salary //工资/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////class technician //兼职技术人员类类中函数:technician() //兼职技术人员构造函数void pay() //兼职技术人员工资计算函数void display() //兼职技术人员工资函数~technician() ///兼职技术人员析构函数friend void add(); //添加员工及工资计算友元函数friend void visitname() ; //按姓名查询友元函数friend void visitnum() ; //按标号查询友元函数friend void visitprofession(); //按职业查询友元函数friend void searchpay() ; //对应员工工资分布情况查询友元函数friend void outpay(); //打印员工工资变量:no //编号name[20] //姓名salary //工资hourlyrate //每小时的工作费用workhours //工作时间/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// salesman类中函数:salesman() //销售人员构造函数virtual void pay()=0 /销售人员工资计算虚函数virtual void display()=0 //销售人员工资显示虚函数friend void add(); //添加员工及工资计算友元函数friend void visitname() ; //按姓名查询友元函数friend void visitnum() ; //按标号查询友元函数friend void visitprofession(); //按职业查询友元函数friend void searchpay() ; //对应员工工资分布情况查询友元函数friend void outpay(); //打印员工工资~ salesman() //销售人员析构函数变量:no //编号name[20] //姓名salary //工资commrate //提成sales //销售量/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// manager类中函数:manager() //经理构造函数virtual void pay()=0 //经理工资计算函数virtual void display()=0 //经理工资显示函数~ manager() //经理析构函数friend void add(); //添加员工及工资计算友元函数friend void visitname() ; //按姓名查询友元函数friend void visitnum() ; //按标号查询友元函数friend void visitprofession(); //按职业查询友元函数friend void searchpay() ; //对应员工工资分布情况查询友元函数friend void outpay(); //打印员工工资变量:no //编号name[20] //姓名salary //工资monthlypay //月工资/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class salesmanager //销售经理类中函数:employee() //销售经理构造函数virtual void pay()=0 //销售经理计算函数virtual void display()=0 //销售经理工资显示函数friend void add(); //添加员工及工资计算友元函数friend void visitname() ; //按姓名查询友元函数friend void visitnum() ; //按标号查询友元函数friend void visitprofession(); //按职业查询友元函数friend void searchpay() ; //对应员工工资分布情况查询友元函数friend void outpay(); //打印员工工资~ employee() //销售经理析构函数变量:no //编号name[20] //姓名salary //工资monthlypay //月工资sales //销售量2.变量定义:manager *m[50]; //经理指针technician *t[50]; //兼职技术人员指针数组salesman *s[50]; //销售人员指针数组salesmanager *sm[50]; //销售经理指针数组outfile //文件名snum //销售人员数量tnum //兼职技术人员数量mnum //经理人数量smnum //销售经理人数量3、重要函数:void add(); //添加员工及工资计算void visitname() ; //按姓名查询void visitnum() ; //按标号查询void visitprofession(); //按职业查询void searchpay() ; //对应员工工资分布情况查询void outpay(); //打印员工工资重要类CArray是内存管理的类。
可以在任意位置插入数据,删除数据,并自动重新排好。
这样给程序带来了不少方便Carchive允许一个二进制(通常为磁盘存储)的形式保存一个对象的复杂网络。
把归档的对象看成一种二进制流,归档与文件有关,并允许写缓冲区及从硬盘读出或读入数据。
B.界面流程:1.主页面2.添加成员与工资计算3.按编号查询4.按职业查询5.按对应职业员工分布情况查询6.输出所有员工工资六、调试分析:调试过程中一些常见的小错误就不说了。
调试中主要遇到的问题有二1:定义了类的变量数组,放在主函数之外时,不能编译成功,于是定义类的指针变量数组进行操作,就可以在类外进行了。
2;两个基类派生出一个类时,出现二义性问题,用虚基类解决了。
3.部分函数不能调用类中的私有成员,用友元函数得以解决。
七、心得体会:经过一星期的课程实习,重设计到实现,虽然花费了不少时间,但也学到了很多。
主要总结以下几点:1:运用面向对象程序设计的思想。
并将文件读入,读出,多态,派生,虚基类,虚函数,合理整合并运用在代码中,实现程序。
2.程序代码实现是个耐性,细心的过程,写完一段,调试一段,遇到问题,分析问题,解决问题,事半功倍。
3.提高了动手能力。
课程设计虽然技术了,C++是一块很大的领域,还有很多地方和知识点不了解,要我们不断地学习,探索,思考,提高我们的能力。
八、源代码:#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include<string.h>class employee{protected:int no;char name[20];float salary;public:employee(){cout<<"职工编号:";cin>>no;cout<<"职工姓名";cin>>name;salary=0;}virtual void pay()=0;virtual void display()=0;friend void add(); //添加员工及工资计算friend void visitname() ; //按姓名查询friend void visitnum() ; //按标号查询friend void visitprofession(); //按职业查询friend void searchpay() ; //对应员工工资分布情况查询friend void outpay();~employee(){};};class technician:public employee{private:float hourlyrate;int workhours;public:technician(){hourlyrate=100;}void pay(){cout<<name<<"本月工作时数:";cin>>workhours;salary=hourlyrate*workhours;}void display(){cout<<"兼职技术人员"<<name<<"(编号为"<<no<<")"<<"本月工资:"<<salary<<endl;}friend void add(); //添加员工及工资计算friend void visitname() ; //按姓名查询friend void visitnum() ; //按标号查询friend void visitprofession(); //按职业查询friend void searchpay() ; //对应员工工资分布情况查询friend void outpay();~technician(){};};class salesman:virtual public employee{protected:float commrate;float sales;public:salesman(){commrate=0.4;}void pay(){cout<<name<<"本月销售额:";cin>>sales;salary=sales*commrate;}void display(){cout<<"销售员"<<name<<"(编号为"<<no<<")"<<"本月工资:"<<salary<<endl;}friend void add(); //添加员工及工资计算friend void visitname() ; //按姓名查询friend void visitnum() ; //按标号查询friend void visitprofession(); //按职业查询friend void searchpay() ; //对应员工工资分布情况查询friend void outpay();~salesman(){};};class manager:virtual public employee{protected:float monthlypay;manger(){monthlypay=8000;}void pay(){salary=8000;}void display(){cout<<"经理"<<name<<"(编号为"<<no<<")"<<"本月工资:"<<salary<<endl;}friend void add(); //添加员工及工资计算friend void visitname() ; //按姓名查询friend void visitnum() ; //按标号查询friend void visitprofession(); //按职业查询friend void searchpay() ; //对应员工工资分布情况查询friend void outpay();~manager(){};};class salesmanager:public manager,public salesman{salemanager(){monthlypay=5000;commrate=0.05;}void pay(){cout<<name<<"所管部门月销售量";cin>>sales;salary=5000+commrate*sales;}void display(){cout<<"销售经理"<<name<<"(编号为"<<no<<")"<<"本月工资:"<<salary<<endl;}friend void add(); //添加员工及工资计算friend void visitname() ; //按姓名查询friend void visitnum() ; //按标号查询friend void visitprofession(); //按职业查询friend void searchpay() ; //对应员工工资分布情况查询friend void outpay(); //答应员工工资~salesmanager(){};int option,flag,i,no,k;float salary;char name[20];fstream outfile;manager *m[50];technician *t[50];salesman *s[50];salesmanager *sm[50];int mnum=0,tnum=0,smnum=0,snum=0,j=0,profession=0;void add(); //添加员工及工资计算void visitname() ; //按姓名查询void visitnum() ; //按标号查询void visitprofession(); //按职业查询void searchpay() ; //对应员工工资分布情况查询void outpay();void main(){cout<<"请选择您需要的操作!"<<endl;cout<<"\t\t\t*****************************"<<endl;cout<<"\t\t\t** 企业职工工资计算及管理系统**"<<endl;cout<<"\t\t\t*****************************"<<endl;cout<<"\t\t\t**1、添加员工及工资计算**"<<endl; cout<<"\t\t\t**2、按姓名查询**"<<endl; cout<<"\t\t\t**3、按标号查询**"<<endl; cout<<"\t\t\t**4、按职业查询**"<<endl; cout<<"\t\t\t**5、对应职业员工工资分布情况查询**"<<endl; cout<<"\t\t\t**6、输出所有员工的工资**"<<endl; cout<<"\t\t\t**0、退出系统**"<<endl; cout<<"\t\t\t*****************************"<<endl;cout<<"选择0-7数字进行操作"<<endl;cin>>option;outfile.open("text",ios::out);if(!outfile){cout<<"text can't open"<<endl;exit(1);}while(option!=0){switch(option){case 1: //添加员工及工资计算{break;}case 2: //按姓名查查询{visitname();break;}case 3: //按标号查询{visitnum();break;}case 4: //按职业查询{visitprofession();break;}case 5: // 对应员工工资分布情况查询{searchpay();break;case 6:{outpay();break;}}cout<<"请输入操作代码(1 添加员工及工资计算/2按姓名查询/3按编号查询/4 按职业查询5/对应职业员工工资分布情况查询/6 输出所有员工的工资/0 退出系统)"<<endl;cin>>option;}outfile.close();}void add(){flag=1;while(flag!=0){cout<<"员工身份: 1:销售员2:兼职技术人员3:经理4:销售经理0:退出添加请选择"<<endl;cin>>flag;switch(flag){{t[tnum]=new technician;t[tnum]->pay();t[tnum]->display();outfile<<"兼职技术人员"<<t[tnum]->name<<"(编号为"<<t[tnum]->no<<")"<<"本月工资:"<<t[tnum]->salary<<endl;tnum++;j++;break;}case 1:{s[snum]=new salesman;s[snum]->pay();s[snum]->display();outfile<<"销售员"<<s[snum]->name<<"(编号为"<<s[snum]->no<<")"<<"本月工资:"<<s[snum]->salary<<endl;snum++;j++;break;}case 3:m[mnum]=new manager;m[mnum]->pay();m[mnum]->display();outfile<<"经理"<<m[mnum]->name<<"(编号为"<<m[mnum]->no<<")"<<"本月工资:"<<m[mnum]->salary<<endl;mnum++;j++;break;}case 4:{sm[smnum]=new salesmanager;sm[smnum]->pay();sm[smnum]->display();outfile<<"销售经理"<<sm[smnum]->name<<"(编号为"<<sm[smnum]->no<<")"<<"本月工资:"<<sm[smnum]->salary<<endl;smnum++;j++;break;}}}void visitname(){cout<<"请输入要查询的姓名:";cin>>name;int sign[4]={0};for(i=0;i<snum;i++){if(strcmp(s[i]->name,name)==0){cout<<"销售员"<<s[i]->name<<"(编号为"<<s[i]->no<<")"<<"本月工资:"<<s[i]->salary<<endl;break;}}if(i<snum)return;elsesign[0]=1;for(i=0;i<tnum;i++){if(strcmp(t[i]->name,name)==0){"<<t[i]->no<<")"<<"本月工资:"<<t[i]->salary<<endl;break;}}if(i<tnum)return;elsesign[1]=1;for(i=0;i<mnum;i++){if(strcmp(m[i]->name,name)==0){cout<<"经理"<<m[i]->name<<"(编号为"<<m[i]->no<<")"<<"本月工资:"<<m[i]->salary<<endl;break;}}if(i<mnum)return ;elsesign[2]=1;for(i=0;i<smnum;i++){if(strcmp(sm[i]->name,name)==0)"<<sm[i]->no<<")"<<"本月工资:"<<sm[i]->salary<<endl;break;}}if(i<smnum)return;elsesign[3]=1;if(sign[0]&&sign[1]&&sign[2]&&sign[3]){cout<<"该人不存在,请确认!"<<endl;}}void visitnum()//按编号查询{cout<<"请输入要查询编号:";cin>>no;int sign[4]={0};for(i=0;i<snum;i++){if(s[i]->no==no)"<<s[i]->no<<")"<<"本月工资:"<<s[i]->salary<<endl;break;}}if(i<snum)return;elsesign[0]=1;for(i=0;i<tnum;i++){if(t[i]->no==no){cout<<"兼职技术人员"<<t[i]->name<<"(编号为"<<t[i]->no<<")"<<"本月工资:"<<t[i]->salary<<endl;break;}}if(i<tnum)return;elsesign[1]=1;for(i=0;i<mnum;i++){if(m[i]->no==no){cout<<"经理"<<m[i]->name<<"(编号为"<<m[i]->no<<")"<<"本月工资:"<<m[i]->salary<<endl;break;}}if(i<mnum)return;elsesign[2]=1;for(i=0;i<smnum;i++){if(sm[i]->no==no){cout<<"销售经理"<<sm[i]->name<<"(编号为"<<sm[i]->no<<")"<<"本月工资:"<<sm[i]->salary<<endl;break;}}if(i<smnum)return;elsesign[3]=1;if(sign[0]&&sign[1]&&sign[2]&&sign[3]){cout<<"该人不存在,请确认!"<<endl;}}void visitprofession() //按职业查询{cout<<"请选择要查询的职业";cout<<"1:销售员2:兼职技术人员3:经理4:销售经理"<<endl;cin>>profession;switch(profession){case 1:{if(snum==0){cout<<"无销售人员信息,请确认!"<<endl;}else{cout<<"销售人员信息如下:"<<endl;for(i=0;i<snum;i++){cout<<"销售员"<<s[i]->name<<"(编号为"<<s[i]->no<<")"<<"本月工资:"<<s[i]->salary<<endl;}}break;}case 2:{if(tnum==0){cout<<"无兼职技术人员信息,请确认!"<<endl;}else{cout<<"兼职技术人员信息如下:"<<endl;for(i=0;i<tnum;i++){cout<<"兼职技术人员"<<t[i]->name<<"(编号为"<<t[i]->no<<")"<<"本月工资:"<<t[i]->salary<<endl;}}break;}case 3:{if(mnum==0){cout<<"无经理人员信息,请确认!"<<endl;}else{cout<<"经理人员信息如下:"<<endl;for(i=0;i<mnum;i++){cout<<"经理"<<m[i]->name<<"(编号为"<<m[i]->no<<")"<<"本月工资:"<<m[i]->salary<<endl;}}break;}case 4:{if(smnum==0){cout<<"无销售经理信息,请确认!"<<endl;}else{cout<<"销售经理信息如下:"<<endl;for(i=0;i<smnum;i++){cout<<"销售经理"<<sm[i]->name<<"(编号为"<<sm[i]->no<<")"<<"本月工资:"<<sm[i]->salary<<endl;}}break;}}}void searchpay() //对应员工工资分布情况查询{int flag;cout<<"请选择要职业,给出对应的分布情况"<<endl;cout<<"1:销售员,2:兼职技术人员3:经理4:销售经理,请选择"<<endl;cin>>flag;switch(flag){case 1:{if(snum==0){cout<<"无销售员信息,请确认!";break;}for(i=0;i<snum-1;i++){k=i;for(j=i+1;j<snum;j++){if(s[j]->salary<s[k]->salary){k=j;}}strcpy(name,s[i]->name);strcpy(s[i]->name,s[k]->name);strcpy(s[k]->name,name);salary=s[i]->salary;s[i]->salary=s[k]->salary;s[k]->salary=salary;no=s[i]->no;s[i]->no=s[k]->no;s[k]->no=no;}for(i=0;i<snum;i++){cout<<"销售员"<<s[i]->name<<"(编号为"<<s[i]->no<<")"<<"本月工资:"<<s[i]->salary<<endl;}break;}case 2:{if(tnum==0){cout<<"无兼职技术人员信息,请确认!";break;}for(i=0;i<tnum-1;i++){k=i;for(j=i+1;j<tnum;j++){if(t[j]->salary<t[k]->salary){k=j;}}strcpy(name,t[i]->name);strcpy(t[i]->name,t[k]->name);strcpy(t[k]->name,name);salary=t[i]->salary;t[i]->salary=t[k]->salary;t[k]->salary=salary;no=t[i]->no;t[i]->no=t[k]->no;t[k]->no=no;}for(i=0;i<tnum;i++){cout<<"兼职技术人员"<<t[i]->name<<"(编号为"<<t[i]->no<<")"<<"本月工资:"<<t[i]->salary<<endl;}break;}case 3:{if(snum==0){cout<<"无经理人员信息,请确认!";break;}for(i=0;i<mnum-1;i++){k=i;for(j=i+1;j<mnum;j++){if(m[j]->salary<m[k]->salary){k=j;}}strcpy(name,m[i]->name);strcpy(m[i]->name,m[k]->name);strcpy(m[k]->name,name);salary=m[i]->salary;m[i]->salary=m[k]->salary;m[k]->salary=salary;no=m[i]->no;m[i]->no=m[k]->no;m[k]->no=no;}for(i=0;i<tnum;i++){cout<<"经理"<<m[i]->name<<"(编号为"<<m[i]->no<<")"<<"本月工资:"<<m[i]->salary<<endl;}}case 4:{if(smnum==0){cout<<"无销售经理人员信息,请确认!";break;}for(i=0;i<smnum-1;i++){k=i;for(j=i+1;j<smnum;j++){if(sm[j]->salary<sm[k]->salary){k=j;}}strcpy(name,sm[i]->name);strcpy(sm[i]->name,sm[k]->name);strcpy(sm[k]->name,name);salary=sm[i]->salary;sm[i]->salary=sm[k]->salary;sm[k]->salary=salary;no=sm[i]->no;sm[i]->no=sm[k]->no;sm[k]->no=no;}for(i=0;i<tnum;i++){cout<<"销售经理"<<m[i]->name<<"(编号为"<<m[i]->no<<")"<<"本月工资:"<<m[i]->salary<<endl;}}break;}}void outpay(){if(snum==0&&tnum==0&&mnum==0&&smnum==0)cout<<"没有员工的数据,请确认!"<<endl;else{for(i=0;i<snum;i++){cout<<"销售员"<<s[i]->name<<"(编号为"<<s[i]->no<<")"<<"本月工资:"<<s[i]->salary<<endl;}for(i=0;i<tnum;i++){cout<<"兼职技术人员"<<t[i]->name<<"(编号为"<<t[i]->no<<")"<<"本月工资:"<<t[i]->salary<<endl;}for(i=0;i<mnum;i++){cout<<"经理"<<m[i]->name<<"(编号为"<<m[i]->no<<")"<<"本月工资:"<<m[i]->salary<<endl;}for(i=0;i<smnum;i++){cout<<"销售经理"<<sm[i]->name<<"(编号为"<<sm[i]->no<<")"<<"本月工资:"<<sm[i]->salary<<endl;}}}。