c语言课程设计报告 职工工资管理系统

合集下载

原创c语言职工管理系统课程设计报告

原创c语言职工管理系统课程设计报告

原创C语言职工管理系统课程设计报告1. 引言职工管理系统是一个可以对职工信息进行录入、查询、修改和删除的软件系统。

在这个项目中,我们将使用C语言来实现这个系统。

通过设计这个项目,我们旨在提高学生们对C语言的理解和应用能力。

2. 项目背景和目的职工管理系统是一个常见的实际应用场景,他在许多企事业单位中都有使用。

通过设计和实现这个系统,我们可以帮助管理人员更有效地管理职工信息,提高管理效率。

我们的目标是设计一个简单易用、功能完善的职工管理系统,可以实现以下功能:职工信息录入、职工信息查询、职工信息修改和职工信息删除。

3. 系统设计我们将使用C语言来实现职工管理系统。

系统设计主要包括以下几个方面的功能模块:3.1 菜单功能模块在这个模块中,我们将设计一个菜单来显示系统的功能选项。

用户可以通过输入相应的选项来进入不同的功能模块。

3.2 职工信息录入功能模块在这个模块中,用户可以输入职工的信息,包括职工编号、职工姓名、职工性别、职工年龄等。

系统将会将这些信息保存到一个文件中以后的查询和修改操作。

3.3 职工信息查询功能模块在这个模块中,用户可以输入职工的编号或者姓名来查询职工的信息。

系统将会根据用户输入的信息在文件中查找相应的职工信息并显示出来。

3.4 职工信息修改功能模块在这个模块中,用户可以输入职工的编号来修改职工的信息。

用户需要输入修改后的信息,并将更新后的信息保存到文件中。

3.5 职工信息删除功能模块在这个模块中,用户可以输入职工的编号来删除职工的信息。

系统将会在文件中查找相应的职工信息并删除。

4. 系统实现系统实现主要有以下几个步骤:4.1 设计程序结构首先,我们需要设计系统的程序结构。

我们将使用函数来实现不同功能模块,通过调用不同的函数来实现系统不同的功能。

4.2 实现菜单功能模块我们将使用printf函数来输出菜单,并使用scanf函数来获取用户的输入。

根据用户的输入,我们将使用switch语句来进入相应的功能模块。

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

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语言职工工资管理系统1.系统介绍职工工资管理系统是一种用于管理公司或组织内部职工工资信息的软件系统。

通过该系统,可以方便地录入、修改、查询和删除职工的工资信息,实现对职工工资的统一管理和自动计算。

2.系统需求分析(1)录入职工信息:系统需要提供录入职工信息的功能,包括职工编号、姓名、性别、工作岗位等基本信息。

(2)录入职工工资:系统需要提供录入职工工资的功能,包括基本工资、绩效奖金、加班工资等,以便计算总工资。

(3)查询职工工资:系统需要提供查询职工工资的功能,可以按照职工编号、姓名、性别等关键字查询。

(4)修改职工工资:系统需要提供修改职工工资的功能,可以根据职工编号进行修改。

(5)删除职工信息:系统需要提供删除职工信息的功能,按照职工编号进行删除。

3.系统设计方案(1)数据结构的设计:-职工信息结构体:包括职工编号、姓名、性别、工作岗位等成员。

-职工工资结构体:包括基本工资、绩效奖金、加班工资等成员。

-职工结构体数组:用于存储多个职工的信息和工资数据。

(2)界面设计:-主菜单:包括录入职工信息、录入职工工资、查询职工工资、修改职工工资、删除职工信息等选项。

-子菜单:不同的功能选项对应不同的界面,可以通过输入不同的选择序号实现功能切换。

-信息显示界面:用于显示职工信息和工资信息。

(3)功能设计:-录入职工信息:通过用户输入,将职工信息存储到职工结构体数组中。

-录入职工工资:通过用户输入,将职工工资信息存储到对应的职工工资结构体中。

-查询职工工资:根据用户输入的关键字,查找并显示匹配的职工工资信息。

-修改职工工资:根据用户输入的职工编号,在职工工资结构体中找到对应职工的工资信息,并修改。

-删除职工信息:根据用户输入的职工编号,在职工结构体数组中找到对应职工的信息,并删除。

4.系统实现系统的实现使用C语言编程,使用结构体和数组进行数据的组织和存储,并利用循环和条件判断语句完成功能。

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

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语言

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

课程设计报告课程设计报告题目:职工工资管理系统设计者:专业班级:学号:指导教师:所属院系: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文件中并自动保存至磁盘。

注:如首次使用,尚未输入数据,请先输入数据。

输入的数据将自动保存。

再次选择输入功能时原数据将被覆盖。

②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。

c语言课程设计报告职工工资管理系统1.doc

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语言

工资管理系统 课程设计 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语言程序设计报告课程名称:C语言程序设计院系:管理与经济学院专业班级:工业工程2012142班学号:7学生姓名:***指导教师:***完成时间:2013-06-20报告成绩:目录1、设计题目--------------------------------------------------------------------------22、设计要求(包括设计内容描述)--------------------------------------------23、设计作用与目的-----------------------------------------------------------------34、所用软件--------------------------------------------------------------------------35、系统设计--------------------------------------------------------------------------4系统结构----------------------------------------------------------------------4程序程序图-------------------------------------------------------------------4产生源程序----------------------------------------------------------------------66、实验调试结果(附运行效果图)--------------------------------------------367、设计中的问题及解决方法-----------------------------------------------------398、设计心得--------------------------------------------------------------------------409、参考文献--------------------------------------------------------------------------41职工工资管理系统的设计与实现1.设计题目题目:工资管理系统工资管理系统是企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理系统的系统化、规范化和自动化,为企业提高工作效率。

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

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

C语言课程设计报告---职工工资管理系统

C语言课程设计报告---职工工资管理系统湖南涉外经济学院C 语言课程设计(报告书)题目职工工资管理系统作者肖梦星陈名河学院信息科学与工程学院专业软件工程2012102班任课教师李桥二〇一二年十二月二十七日机房管理系统【设计目的】设计“机房管理系统”使其具有上机、下机、查询上机时间、机器使用情况显示等功能。

1、随时都可以来这里上下机,24小时为你服务。

2、上机时间还可以来查询你的上机时间。

3、还可查询本机房所有电脑的使用情况。

【设计思路】根据要求,把学生的信息输入电脑,文本文件存入。

还保存了记录做以查询,使用情况,另外还应提供键盘式选择菜单实现功能选择。

【总体设计】【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用int main() /*主函数*/{int n=0;for(k=0;k<30;k++) /*全部机器标记为未使用*/com[k].f=0;for(;;){switch(main_menu()){case 1:printf("\t\t\t输入学生信息:\n");n=input(stu,n);break;case 2:printf("\t\t\t学生上机\n");online(stu,n);printf("\t\t");system("pause");break;case 3:printf("\t\t\t学生下机\n");offline(stu,n);printf("\t\t");system("pause");break;case 4:printf("\t\t\t上机时间查询\n"); search(stu,n);printf("\t\t");system("pause");break;case 5:printf("\t\t\t机器使用情况显示\n\n"); display();break;case 0:printf("\n\n\t\t感谢使用机房收费管理系统,欢迎下次使用,再见!\n\n");printf("\t\t");system("pause");exit(0);}}return 0;}2.流程图图 2. 主函数流程图3.程序运行截图图3. 主界面截图说明:选择数字0——5,完成相应功能。

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

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

c语言课程设计工资管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程基础,能够运用C语言设计并实现一个简单的工资管理系统。

具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解面向过程的编程思想。

2.技能目标:学生能够运用C语言编写程序,解决实际问题。

通过设计并实现工资管理系统,学生将学会如何代码、使用数据结构、编写主函数等。

3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及面向过程的编程思想。

具体安排如下:1.第一部分:C语言基础知识。

包括C语言的基本语法、数据类型、运算符、控制结构等。

这部分内容将帮助学生掌握C语言的基本编程能力。

2.第二部分:函数和面向过程编程。

包括函数的定义和调用、函数指针、数组和字符串等。

这部分内容将帮助学生掌握函数编程的方法,培养学生面向过程的编程思想。

3.第三部分:工资管理系统的设计与实现。

包括系统需求分析、系统设计、代码编写和调试等。

这部分内容将帮助学生将所学知识应用于实际问题,提高学生的编程能力和解决问题的能力。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,使学生掌握C语言的基本编程能力。

2.案例分析法:通过分析实际案例,让学生了解并掌握函数编程的方法,培养学生面向过程的编程思想。

3.实验法:学生在实验室进行编程实践,设计和实现工资管理系统,提高学生的编程能力和解决问题的能力。

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

四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备等。

具体如下:1.教材:选用《C程序设计语言》等权威教材,为学生提供系统、科学的学习材料。

C语言课程设计工资管理系统

C语言课程设计工资管理系统

界面布局:检查界面布局是否合理,是否符合用户习惯 功能测试:测试各个功能模块是否正常工作,是否有错误提示 性能测试:测试系统的响应速度和稳定性,是否有卡顿现象
兼容性测试:测试系统在不同操作系统和浏览器上的兼容性,是否有显示异常
员工信息录入:包括姓名、性别、年龄、 职位、薪资等信息
员工信息删除:删除不再需要的员工信 息
测试目的:验 证系统功能是 否符合设计要

测试内容:功 能测试、性能 测试、安全性
测试等
测试方法:黑 盒测试、白盒 测试、灰盒测
试等
测试结果:列 出测试过程中 发现的问题及
解决方案
测试结论:对 系统的整体性 能和稳定性进
行评估
测试建议:针 对测试中发现 的问题提出改
进建议
硬件要求:服务器、网络设备、存 储设备等
部署步骤:安装操作系统、安装数 据库管理系统、安装Web服务器、 部署工资管理系统等
添加标题
添加标题
添加标题
添加标题
软件要求:操作系统、数据库管理 系统、Web服务器等
维护方案:定期备份数据、定期检 查系统运行情况、定期更新系统软 件等
系统运行环境:Windows、Linux等操作系统 硬件要求:CPU、内存、硬盘等 软件安装:安装C语言编译器、数据库管理系统等 系统维护:定期备份数据、更新软件、修复漏洞等
升级方式:自动升级或手动升级 升级内容:功能升级、性能升级、安全升级等 扩展方式:插件扩展、模块扩展、功能扩展等 扩展内容:增加新功能、优化性能、提高安全性等
汇报人:
排序算法:快速排序、归并排序、 堆排序等
图算法:最短路径、最小生成树等
添加标题
添加标题
添加标题
添加标题

C语言课程设计报告-工资管理系统

C语言课程设计报告-工资管理系统

C语言课‎程设计报告‎-工资管理‎系统一.‎系统功能‎设计一‎个职工工资‎管理系统,‎其功能包括‎:(1‎)‎职工‎基本工资信‎息录入‎包括工号,‎姓名,应发‎工资,奖金‎,扣款,应‎发工资,扣‎税,实发工‎资。

(‎2)‎职‎工基本工资‎信息保存‎(3)‎‎职工基本‎工资信息查‎询按照‎工号查询‎按照姓名‎查询(‎4)‎职‎工基本工资‎信息显示‎在屏幕上‎显示所有的‎职工基本工‎资信息。

‎(5)‎‎职工基本‎工资信息更‎新能够‎实现修改,‎删除,插入‎,排序功能‎。

(6‎)‎职工‎基本工资信‎息统计‎统计公司员‎工工资在各‎等级的人数‎主界面‎系统主界面‎应有如下功‎能选项‎录入职工基‎本工资信息‎查询职‎工基本工资‎信息保‎存职工基本‎工资信息‎删除职工‎基本工资信‎息插入‎职工基本工‎资信息‎修改职工基‎本工资信息‎统计职‎工基本工资‎信息排‎序职工基本‎工资信息‎显示职工‎基本工资信‎息退出‎代‎码如下:‎#inc‎l ude ‎<stdi‎o.h>‎type‎d ef s‎t ruct‎empl‎o yee‎{‎‎ cha‎r num‎[10];‎ /‎/保存职工‎编号‎‎ cha‎r nam‎e[15]‎; /‎/保存职工‎姓名‎‎ flo‎a t jb‎g z; ‎‎//保存职‎工基本工资‎‎‎f loat‎jj; ‎‎ //保‎存职工奖金‎‎‎f loat‎kk; ‎‎ //‎保存职工扣‎款‎‎floa‎t yfg‎z; ‎ /‎/保存职工‎应发工资‎‎ f‎l oat ‎s k; ‎‎ //保‎存职工税款‎‎‎f loat‎sfgz‎;‎ //‎保存职工实‎发工资‎‎‎‎‎}Z‎G GZ;‎void‎menu‎(){‎‎ p‎r intf‎(" ‎‎‎‎Empo‎y ee S‎y stem‎\n");‎‎ p‎r intf‎("--<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎--<‎-<-<@‎\n");‎‎ p‎r intf‎(" ‎ *1 ‎i nput‎‎r ecor‎d‎ *‎2 del‎e te ‎reco‎r d\n"‎);‎‎prin‎t f(" ‎ *‎3 sea‎r ch ‎ rec‎o rd ‎‎*4 m‎o dify‎ re‎c ord\‎n");‎‎ pr‎i ntf(‎"‎*5 i‎n sert‎ r‎e cord‎‎ *6‎coun‎t‎r ecor‎d\n")‎;‎‎p rint‎f(" ‎ *7‎sort‎‎reco‎r d ‎‎*8 sa‎v e ‎ rec‎o rd\n‎");‎‎ pri‎n tf("‎‎*9 di‎s play‎ re‎c ord ‎‎ *0 ‎q uit ‎ r‎e cord‎\n");‎‎ p‎r intf‎("--<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎ --<‎-<-<@‎--<‎-<-<@‎\n");‎‎ p‎r intf‎("Ple‎a se e‎n ter ‎y ou c‎h oice‎(0-9)‎\n");‎}‎i nt i‎n put(‎Z GGZ ‎a[],i‎n t k)‎{‎‎ int‎j,x;‎‎ c‎h ar s‎t r[10‎];‎‎j=x=‎0;‎‎whil‎e(1)‎‎ {‎‎‎‎p rint‎f("--‎-----‎-----‎-----‎-----‎-----‎-\n")‎;‎‎‎ pri‎n tf("‎请输入职工‎的编号:(‎按0返回主‎菜单)")‎;‎‎‎‎ s‎c anf(‎"%s",‎s tr);‎‎‎‎‎ st‎r cpy(‎a[k].‎n um,s‎t r);‎‎‎‎f or(j‎=0;j<‎k;j++‎)‎‎‎‎ {‎‎‎‎‎if(s‎t rcmp‎(a[j]‎.num,‎s tr)=‎=0)‎‎‎‎‎{‎‎‎‎‎‎ pri‎n tf("‎已经有工号‎为%s的员‎工信息!请‎重新输入员‎工号。

职工工资管理系统c语言程序设计

职工工资管理系统c语言程序设计

职工工资管理系统 C 语言程序设计简介职工工资管理系统是一个用于帮助企业管理职工工资的程序,它可以实现对职工的基本信息、工作时长、工资等进行管理。

本文将介绍如何使用 C 语言实现一个简单的职工工资管理系统。

功能设计1. 添加职工信息系统可以添加新的职工信息,包括职工编号、姓名、性别、职位等。

2. 修改职工信息已有职工信息可以进行修改,如姓名、性别、职位等。

3. 计算工资系统可以根据职工的工作时长和基础工资计算出实际工资。

4. 查询职工信息可以通过职工编号或姓名查询职工的详细信息。

5. 显示所有职工信息将所有职工的信息显示在界面上。

开发流程1. 定义数据结构首先,我们需要定义一个数据结构Employee来保存职工的信息,包括职工编号、姓名、性别、职位、基础工资等字段。

struct Employee {int id;char name[50];char gender[10];char position[50];float baseSalary;float hoursWorked;float totalSalary;};2. 编写主要函数添加职工信息void addEmployee(struct Employee emp) {// 将 emp 添加到员工列表中}修改职工信息void updateEmployee(struct Employee emp) {// 根据职工编号修改对应的员工信息}计算工资float calculateSalary(struct Employee emp) {// 计算职工的实际工资return emp.baseSalary + emp.hoursWorked * hourlyRate;}查询职工信息void searchEmployee(int id) {// 根据职工编号查询职工信息}显示所有职工信息void displayAllEmployees() {// 显示所有职工的信息}3. 用户界面交互为了方便用户操作,可以设计一个简单的用户界面,使用控制台打印实现信息展示和输入。

C语言课设——职工工资管理系统

C语言课设——职工工资管理系统

一引言C语言是Combined Language(组合语言)的中英混合简称。

是一种计算机程序设计语言。

它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数、结构体和文件等,然后确定处理过程。

本课题中主要应用了C语言中的数组、结构体、文件等关键技术。

在C语言中,数组属于构造数据类型。

一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型;结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构,在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型,结构体只能描述一个对象的状态,不能描述一个对象的行为。

文件是一种组织外部存储介质上的数据的数据类型。

它具有两个特征:一是对一个数据集合可以用一个名字命名;二是保存在外部存储介质上,可以长期保存。

通过此次课设可以锻炼学生理论联系实际能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解,并达到如下目的:1.熟悉C语言程序的编辑、编译链接和运行的过程。

2.熟练运用if语句和switch语句以及嵌套应用。

3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。

4. 掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。

5.掌握结构体类型变量、数组的定义和使用。

6. 掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。

二 系统总体设计2.1程序功能(1)添加职工信息 (2)查看职工信息 (3)查找职工信息 (4)删除职工信息 (5) 统计职工信息 (6) 修改职工信息 (7) 保存数据 (8) 作者信息 (0)退出2.2程序功能图图1 程序功能图2.3主函数流程图职工工资管理系统添加职工信息查看职工信息查找职工信息删除职工信息统计职工信息修改职工信息保存数据作者信息退出图2 程序流程图主函数源代码:选择8作者信息选择0 退出结束统计职工信息删除职工信息修改职工信息选择6 选择5 选择4 按姓名按工号保存数据选择7 按姓名按工号选择3 选择2选择1查找职工信息添加职工信息查看职工信息按姓名按工号 主菜单开始选择操作void main(){int choose=0;while(true){show();printf("\t\t====>请选择:"); scanf("%d",&choose); system("cls");switch(choose){case 0: exit(0);//退出break;case 1: add();back();//添加职工信息break;case 2: see();back();//查看职工信息break;case 3: search();back();// 查找职工信息break;case 4: del();back();//删除职工信息break;case 5: statistics();back();//统计职工工资break;case 6: modify();back();//修改职工信息break;case 7:reserve();back();//保存数据break;case 8:author();back();//作者信息break;default:break;}fflush(stdin);getchar();system("cls");}}三程序详细设计3.1添加职工信息函数的实现添加记录前如图3所示。

C语言 职工工资管理系统设计报告

C语言 职工工资管理系统设计报告

《C语言程序设计》课程设计报告设计题目:职工工资管理系统专业:班级:学号:姓名:信息工程学院1 前言工资管理系统是企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理系统的系统化、规范化和自动化,为企业提高工作效率。

本程序旨在训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。

本程序中涉及结构体、数组、文件等方面的知识。

2 需求分析2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。

通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。

2.2 课程设计任务职工工资管理系统功能设计要求(1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。

该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。

(2)显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。

(3)修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。

(4)查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。

(5)删除记录:可删除数据文件中的任一记录。

(6)统计: (A)计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。

(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。

(7)保存数据文件功能。

例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险- 公积金- 总工资01 张望 1286 794 198 109 135 203402 李明1185 628 135 94 114 174003 王小民895 438 98 64 73 129404 张效章1350 868 210 116 150 216205 彭山745 398 84 61 68 1098各项平均工资 1092.2 625.2 145 88.8 108(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C++2.4 开发语言C语言3 分析和设计从主菜单中选择相对应的数字,使程序进入不同的程序模块,用switch实现其功能,程序共分为六个模块,分别为:主函数、Input( )函数(输入函数)、Display(T)显示函数(计算职工工资信息并输入文件)、Delete (T)删除函数(从文件中读入信息并将其删除),Chick(T)查询模块,Change(T);修改模块,sum(T);统计模块3.1 系统模块图图3.1 系统模块图主菜单查 找 功 能 显 示 功 能 删 除 功 能输 入 功 能 退 出 程 序添 加 功 能修 改 功 能 按姓名删除按工号查找 修改工号 修改姓名 修改职务工资修改基本工资修改医疗保修改津贴修改公积金按姓名查找 按工号删除4 具体代码实现#include"stdio.h"#include<stdlib.h>#include<conio.h>#include<string.h> // 头文件static int n=0; // 定义静态全局变量,存储已经读入记录的条数。

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

课程设计报告课程设计报告题目:职工工资管理系统设计者:专业班级:学号:指导教师:所属院系: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文件中并自动保存至磁盘。

注:如首次使用,尚未输入数据,请先输入数据。

输入的数据将自动保存。

再次选择输入功能时原数据将被覆盖。

②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。

若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。

③读取:读取磁盘中的资料打开文件clerk_list ,若文件不存在,打印“打开失败”并退出。

若存在,读取文件中的数据,并返回职工人数。

④显示:显示职工工资资料先通过读取函数的返回值确定职工人数m,再通过循环将员工工资资料逐个打印,当循环次数达到m时退出循环。

其中总工资由程序计算,总工资=基本工资+职务工资+津贴-医疗保险-公积金⑤删除:删除某员工的资料打印员工资料并提示输入要删除职工的姓名,输入后若该职工不存在则打印“查无此人”;若存在,则显示该职工资料并询问是否确定删除。

若确定,则删除。

删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除的项i,从第i项开始,将后一项的各成员的值赋给前一项各对应的成员,完成对第i项的删除。

⑥添加:添加新的员工资料而不覆盖原有资料打印原有职工资料,询问要添加的职工人数并询问是否确定添加。

逐个逐项输入员工信息,之后程序计算其总工资。

完成后显示“添加成功”,打印新的员工资料并自动保存。

添加的方法为:定义一个相同类型的结构体数组,将原有项复制后增添新的项,并保存新的数组。

⑦查找:按ID好查询与按姓名查找员工资料根据提示输入要查询的ID号或姓名,程序通过循环语句将输入的数字与以保存的结构体数组中的数据对比,若相同,则打印“已找到”及该员工的资料;当循环次数等于人数时结束循环,若至结束循环时也没有找到相同的,则打印“查无此人”。

⑧修改:修改特定员工的特定资料打印员工信息并提示输入要修改资料的职工姓名。

按提示确定要修改,确定要修改的项目,输入要修改成的结果并将该结果赋给对应项的对应成员,完成对特定职工特定项目的修改。

⑨统计通过循环对结构体数组中的每一项经行统计,计算工资总额为,将工资总额除以人数计算出平均工资。

根据每名职工的资料计算基本工资、职务工资、津贴之和在1000-1500圆1500-2000圆2000圆以上的员工占总员工的百分比。

三.源程序代码(附各部分解释)#include<stdio.h>#include<windows.h>#include<string.h>#include<conio.h>#define N 100struct clerk{int num; //ID号char name[20]; //姓名int jbgz; //基本工资int zwgz; //职务工资int jt; // 津贴int yb; //医疗保险int gjj; /公积金/int total; //总工资}em[100];void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_name();void modify();void sta();void start(); /*定义各函数*/void start() //开始界面{system("cls");//清屏system("color 1E"); //设置文字颜色为黄色背景色蓝色printf("\n\n\n\n\n\n");printf("**************************************************************** ****************");printf("*****************************欢迎使用工资管理系统*****************************");printf("**************************************************************** *****************\n\n\n\n\n");printf("\t\t\t\t 制作: \n");printf("\t\t\t\t 2011年6月\n\n\n\n");printf("\t\t\t ***按任意键进入***\n");}void menu() //菜单界面{system("cls");system("color 1F");printf("***菜单***\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 1 输入 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 显示 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 查找 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 4 删除 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 5 添加 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 6 修改 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 7 统计 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 8 退出 \n\n");printf("说明:*如首次使用尚未输入数据请先输入数据 \n *输入的数据将自动保存 \n *再次选择输入功能时原数据将被覆盖\n\n");}void input() /*录入函数*/{int i,m;system("cls");printf("职工人数(1--100):\n");scanf("%d",&m);for (i=0;i<m;i++){printf("请输入职工号: ");scanf("%d",&em[i].num);printf("请输入姓名: ");scanf("%s",&em[i].name);getchar();printf("请输入基本工资: ");scanf("%d",&em[i].jbgz);printf("请输入职务工资: ");scanf("%d",&em[i].zwgz);printf("请输入津贴: ");scanf("%d",&em[i].jt);printf("请输入医疗保险: ");scanf("%d",&em[i].yb);printf("请输入公积金: ");scanf("%d",&em[i].gjj);em[i].total=((em[i].jbgz)+(em[i].zwgz)+(em[i].jt)-(em[i].yb)-(em[i].gjj));//计算总工资printf("\n");//计算总工资}printf("\n创建完毕!\n");save(m);//保存职工人数m}void save(int m) /*保存文件函数*/{int i;FILE*fp; //声明fp是指针,用来指向FILE类型的对象if ((fp=fopen("clerk_list","wb"))==NULL) //打开职工列表文件为空{printf ("打开失败\n");exit(0);}for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/if (fwrite(&em[i],sizeof(struct clerk),1,fp)!=1)//写入数据块 &em[i]:是要输出数据的地址 sizeof(struct clerk):获取一个单体的长度 1:数据项的个数 fp:目标文件指针printf("文件读写错误\n");fclose(fp);//缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区}int load() /*导入函数 int型*/{FILE*fp;int i=0;if((fp=fopen("clerk_list","rb"))==NULL){printf ("cannot open file\n");exit(0);}else{do{fread(&em[i],sizeof(struct clerk),1,fp); //读取i++;}while(feof(fp)==0); //检测流上的文件结束符}fclose(fp);return(i-1);//返回人数}void display() /*浏览函数*/{int i,sum=0;int m=load();system("cls");printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资 \n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/{printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i]. total);sum+=em[i].total;//计算员工总工资之和}printf("\n\n职工平均工资为:%d \n",sum/m);}void del() /*删除函数 */{int m=load();int i,j,n,t,button;char name[20];printf("\n 原来的职工信息:\n");display(); //显示删除前的员工信息printf("\n");printf("按姓名删除:\n");scanf("%s",name);for(button=1,i=0;button&&i<m;i++)//主函数中确定button==1时各函数才可以被调用{if(strcmp(em[i].name,name)==0)//按员工姓名查找到某员工并调出其资料{printf("\n此人原始记录为:\n");//显示选定员工的信息printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资 \n");printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i]. total);printf("\n确定删除请按1,不删除请按0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++)//从第i项开始将后一项的各成员的值赋给前一项各对应的成员完成对第i项的删除{strcpy(em[j].name,em[j+1].name);em[j].num=em[j+1].num;em[j].jbgz=em[j+1].jbgz;em[j].zwgz=em[j+1].zwgz;em[j].jt=em[j+1].jt;em[j].yb=em[j+1].yb;em[j].gjj=em[j+1].gjj;em[j].total=em[j+1].total;}. button=0;}}}if(!button)//button==0表明删除已完成m=m-1;//总员工数减少一人elseprintf("\n查无此人!\n");printf("\n 删除后的所有职工信息:\n");save(m); //调用保存函数display(); //调用浏览函数printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t){case 1:del();break;case 0:break;default :break;}}void add()/*添加函数*/{FILE*fp;int n;int count=0;int i;int m=load();printf("\n 原来的职工信息:\n");display();printf("\n");fp=fopen("emploee_list","a");printf("请输入想增加的职工数:\n");//确定要加入的职工数n scanf("%d",&n);for (i=m;i<(m+n);i++)//添加n名员工的信息{printf("\n 请输入新增加职工的信息:\n");printf("请输入职工号: ");scanf("%d",&em[i].num);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入基本工资: ");scanf("\t%d",&em[i].jbgz);printf("请输入职务工资: ");scanf("%d",&em[i].zwgz);printf("请输入津贴: ");scanf("%d",&em[i].jt);printf("请输入医疗保险: ");scanf("\t%d",&em[i].yb);printf("请输入公积金: ");scanf("%d",&em[i].gjj);em[i].total=( em[i].jbgz+ em[i].zwgz + em[i].jt- em[i].yb- em[i].gjj);//计算该员工总工资printf("\n");count=count+1;printf("已增加的人数:\n");printf("%d\n",count);}printf("\n添加成功\n");m=m+count;//将新添加员工的人数加到总员工人数中printf("\n增加后的所有职工信息:\n");printf("\n");save(m);display();//显示添加后的信息fclose(fp);}void search()/*查询函数*/{int t,button;system("cls");//清屏do{printf("\n按1 按工号查询\n按2 按姓名查询\n按3 回主菜单\n");scanf("%d",&t);if(t>=1&&t<=3){button=1;break;}else{button=0;printf("输入错误");}}while(button==0);//回到查询选择项while(button==1){switch(t)//选择查询方式{case 1:printf("按工号查询\n");search_num();break;case 2:printf("按姓名查询\n");search_name();break;case 3:main();break;default:break;}}}void search_num()//按职工号查询{int a;int i,t;int m=load();printf("请输入要查找的职工号:\n");scanf("%d",&a);for(i=0;i<m;i++)if(a==em[i].num){printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资 \n");printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i]. total);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询职工号请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2: break;default:break;}}void search_name(){char name[30];int i,t;int m=load();printf("请输入姓名:\n");scanf("%s",name);for(i=0;i<m;i++)if(strcmp(em[i].name,name)==0){printf("\n已找到,其记录为:\n");printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资 \n");printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i]. total);}if(i==m)printf("\n\n");printf("\n");printf("返回查询菜单请按1,继续查询姓名请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void modify() /*修改函数*/{int num;char name[20];int jbgz;int zwgz;int jt;int yb;int gjj;int b,c,i,n,t,button;int m=load();system("cls");printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(button=1,i=0;button&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n此人原始记录为:\n");printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资 \n");printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i]. total);printf("\n确定按1 ; 不修改请按0\n");scanf("%d",&n);if(n==1){printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.基本工资 4.职务工资 5.津贴 6.医疗保险 7.公积金 8.返回上层\n");printf("请选择序号1-8:\n");scanf("%d",&c);if(c>8||c<1)printf("\n选择错误,请重新选择!\n");}button=0;}}if(button==1)printf("\n查无此人\n");do{switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/{case 1:printf("职工号改为: ");scanf("%d",&num);em[i-1].num=num;break;case 2:printf("姓名改为: ");scanf("%s",name);strcpy(em[i-1].name,name);break;case 3:printf("基本工资改为: ");getchar();scanf("%d",&jbgz);em[i-1].jbgz=jbgz;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 4:printf("职务工资改为: ");scanf("%d",&zwgz);em[i-1].zwgz=zwgz;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 5:printf("津贴改为: ");scanf("%d",&jt);em[i-1].jt=jt;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 6:printf("医疗保险改为: ");scanf("%d",&yb);em[i-1].yb=yb;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 7:printf("公积金改为: ");scanf("%d",&gjj);em[i-1].gjj=gjj;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 8:modify();break;}printf("\n");printf("\n\n 确定修改请按1 ; 重新修改请按2: \n");scanf("%d",&b);}while(b==2);printf("\n修改后的所有职工信息:\n");printf("\n");save(m);display();printf("\n按1 继续修改 ,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break;}}void sta()//统计函数{int i;int sum=0;int a=0,b=0,c=0;int m=load();system("cls");//清屏函数for(i=0;i<m;i++) /*m为输入部分的职工人数*/{sum+=em[i].total;if((em[i].total)<=1500&&em[i].total>=1000){a++;}if(em[i].total>1500&&em[i].total<=2000){b++;}if(em[i].total>2000){c++;}}printf("\n\n工资总额为:%d\n",sum);printf("平均工资为:%d\n",sum/m);printf("\n基本工资、职务工资、津贴之和\n");printf("在1000-1500圆的员工占总员工的百分之%d\n",a*100/m);printf("在1500-2000圆的员工占总员工的百分之%d\n",b*100/m);printf("在2000圆以上的员工占总员工的百分之%d\n",c*100/m);printf("\n\n按任意键继续");getch();menu();}void main()//主函数{int n,button;char a;start();getch();menu();do{printf("功能选择(1--8):\n");scanf("%d",&n);if(n>=1&&n<=7){button=1;break;}else{button=0;printf("您输入有误,请重新选择!");}}while(button==0);while(button==1){switch(n){case 1: input();break;case 2: display();break;case 3: search();break;case 4:del();break;case 5: add();break;case 6:modify();break;case 7:sta();break;case 8:exit(0);break;default :break;}getchar();printf("\n");printf("按任意键继续\n");getch();system("cls"); /*清屏*/menu(); /*调用菜单函数*/printf("功能选择(1--8):\n");scanf("%d",&n);printf("\n");}}运行结果及截图欢迎画面菜单输入功能显示功能统计功能删除功能添加功能修改功能山西大学工程学院心得体会通过这两周的c语言课程设计,我加深了对c语言程序设计的理解,使自己的操作更加熟练,发现了自己的不足,为自己今后的继续学习指明了方向。

相关文档
最新文档