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

合集下载

员工工资管理系统c语言编程

员工工资管理系统c语言编程

#include<stdio.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info;Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n==========================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax ,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! ");printf("\n\t\t按任意键返回住菜单......");getchar();}void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n========================================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax ,p->sfsalary);p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。

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语言编程)6页

员工工资管理系统(c语言编程)6页

员工工资管理系统(c语言编程)6页一、设计目标1、完成一个员工工资管理系统,包括对员工信息的添加、删除、修改和查询、员工工资管理和统计等功能。

2、程序必须具备易用性、可靠性、安全性和稳定性等特点。

二、程序结构设计员工工资管理系统是由若干模块构成的一个整体,它们之间相互联系,共同完成对员工信息的处理和管理。

程序分为主界面模块、添加模块、删除模块、修改模块、查询模块、统计模块、退出模块。

三、模块功能设计1、主界面模块主界面包括菜单栏和功能栏,菜单栏包括添加、删除、修改、查询、统计和退出功能,功能栏是对主界面菜单的补充,包括一些快捷操作按钮。

2、添加模块添加模块是用来录入员工信息的,可以录入的信息有员工编号、员工姓名、员工部门、员工工作年限、员工基本工资、员工奖金等。

添加模块会对信息进行一系列的校验,要求信息必须完整正确才能录入。

3、删除模块删除模块是用来删除员工信息的,输入员工编号就可以删除该员工的信息。

5、查询模块查询模块提供了多种查询方式,包括按部门查询、按姓名查询、按工作年限查询、按基本工资查询、按奖金查询等。

查询结果会按照员工编号的顺序进行排序。

6、统计模块统计模块会根据查询结果进行工资统计,包括总工资、平均工资、最高工资和最低工资等。

7、退出模块退出模块是用来关闭程序的,保证程序的安全性和稳定性。

四、程序流程设计1、主界面程序启动后,会显示主界面界面,包括菜单栏和功能栏。

2、录入信息点击添加功能或者添加按钮,会进入添加模块,要求用户输入员工信息,录入完成后数据将保存到文件中。

4、修改信息点击修改功能或者修改按钮,会进入修改模块,输入员工编号,然后修改员工信息。

5、查询信息点击查询功能或者查询按钮,会进入查询模块,选择查询方式,输入查询条件,系统将显示符合条件的员工信息。

6、工资统计当查询完成后,点击统计功能或者统计按钮,会进入统计模块,系统将根据查询结果进行统计。

7、程序退出当操作完成后,点击退出功能或者退出按钮,会关闭程序。

工资管理系统课程设计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 需求分析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; // 定义静态全局变量,存储已经读入记录的条数。

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

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

一、概述随着社会的发展和进步,工资管理系统在企业管理中扮演着重要的角色。

为了提高工资管理的效率和准确性,许多企业都倾向于引入计算机系统来进行工资管理。

C语言是一种广泛应用于系统程序设计和应用程序开发的高级语言,具有跨评台性和高效性的特点。

设计一个基于C语言的职工工资管理系统将会成为一个有价值的课程设计。

二、系统功能需求1. 职工信息管理:系统需要能够记录、查看和修改职工的基本信息,包括尊称、工号、部门、入职日期等。

2. 薪资核算:系统应能根据职工的实际出勤、加班情况、请假情况等自动生成薪资,并能够灵活处理各类津贴和抠款。

3. 考勤管理:系统需要提供考勤记录的输入和查询功能,以便及时了解职工的工作情况。

4. 报表输出:系统需要能够生成各类工资报表,方便管理人员进行核对和统计。

5. 数据备份和恢复:系统应具备数据备份和恢复功能,以保证数据的安全性和完整性。

三、系统设计与技术选择在设计该系统时,应采用模块化、分层的设计思路,以便系统具有良好的可维护性和扩展性。

1. 界面设计:可以采用文本界面或图形界面进行设计,具体选择取决于系统的实际应用环境和用户需求。

2. 数据存储:可以选择采用文件系统或数据库来存储系统数据,常见的选择包括文本文件、CSV文件、SQLite数据库等。

3. 算法选择:需要根据系统的具体需求选择合适的算法来实现薪资核算和报表生成等功能。

4. 开发工具:可以选择C语言的集成开发环境(IDE)来进行开发,例如Visual Studio、Dev-C++等。

四、系统实现在进行系统开发时,需要按照设计要求逐步实现各个功能模块,同时进行严格的测试和调试工作,以确保系统的稳定性和准确性。

1. 职工信息管理模块:包括新增、修改、删除职工信息等功能。

2. 薪资核算模块:根据考勤情况自动生成薪资并进行津贴和抠款处理。

3. 考勤管理模块:提供考勤记录的输入和查询功能,确保数据的及时更新和准确性。

4. 报表输出模块:能够生成各类工资报表,包括月度工资表、年度工资统计表等。

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

c语言_职工工资管理系统设计
职工工资管理系统是一种满足组织内部行政职能要求的系统。

它主要用于负责处理职工工资和社会保险的行政处理,致力于实现工资的合理控制,提供可靠的社会保障,维护公司和职员的权益。

职工工资管理系统的总体设计涉及到多个方面,包括职工信息管理、职工入职信息处理、职工调动及离职处理、职工考核信息处理、工资用工成本分析等。

职工信息管理:
主要包括对职工个人信息(包括基本情况、职称、工资等)、职工培训考核信息、职工出勤情况等进行管理及整理。

系统利用数据库,将这些信息统一储存,实现集中管理的目的,从而帮助用人单位对职工的资源进行全面了解,并能有效地实施人力资源政策。

职工入职信息处理:
系统提供职工入职信息处理和调整模块,用于处理职工入职注册信息,装订职工入职相关证明及存档备案,以保障组织职位管理及职员资料处理工作的准确性。

职工调动及离职处理:
职工调动及离职处理模块,是处理职工调动或离职变动的必要模块。

企业可利用系统的这一模块进行职工离职报告与合同变更、职工调动安排登记等工作,以保障职工权益的有效管理。

职工考核信息处理:
职工考核信息处理主要提供职工工作评价功能,实施对职工的定期考核,以便企业对职工培训和考核要求进行动态管理,实现培训及考核结果的连续有效跟踪。

工资用工成本分析:
工资用工成本分析模块,可以帮助企业实时监测用工和工资成本,实现工资控制,提高用工管理效率,增加经济效益,减少企业成本。

总之,职工工资管理系统的设计和实现能够有效的解决企业的业务管理需求,实现职工与组织之间健康、高效的沟通,为企业组织发展提供支持。

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

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

职工工资管理系统1. 背景职工工资管理是企业管理中一个重要且复杂的环节。

合理进行工资管理可以激励员工的工作积极性,提高生产效率和企业的竞争力。

然而,在人工操作的情况下,计算工资涉及到复杂的计算过程和大量的数据处理,容易出现错误和繁琐。

因此,开发一个自动化的职工工资管理系统对于企业的工资管理具有重要意义。

2. 分析职工工资管理系统的核心目标是计算职工的工资,并提供工资查询和报表生成的功能。

为了实现此目标,我们需要设计一个合理的系统架构,并根据需求提供相应的功能模块。

2.1 系统架构职工工资管理系统的基本架构包括以下几个模块:•职工信息管理模块:用于管理职工的基本信息,包括姓名、职位、级别等。

•薪资标准管理模块:用于管理不同职位和级别的薪资标准,包括基本工资、绩效奖金等。

•工资计算模块:根据职工的基本信息和薪资标准,计算实际工资。

•工资查询模块:用于查询职工的工资信息。

•报表生成模块:用于生成各种工资相关的报表,如工资总额、平均工资等。

2.2 功能模块职工工资管理系统应当具备以下功能模块:1.职工信息管理:–添加职工信息–修改职工信息–删除职工信息–查询职工信息2.薪资标准管理:–添加薪资标准–修改薪资标准–删除薪资标准–查询薪资标准3.工资计算:–根据职工信息和薪资标准计算工资4.工资查询:–查询指定职工的工资信息5.报表生成:–生成工资总额报表–生成平均工资报表–生成各部门工资报表2.3 数据结构与算法为了实现上述功能,我们需要选择合适的数据结构和算法来支持系统的运行。

1.数据结构:对于职工信息的管理,我们可以使用链表或数组来存储职工的基本信息。

对于薪资标准的管理,可以使用哈希表或平衡二叉树来存储标准信息。

2.算法:在工资计算模块中,需要根据薪资标准和职工信息计算出实际工资。

可以使用算法来进行工资计算,如基本工资加上绩效奖金等。

3. 结果根据上述分析,我们可以设计并实现一个简单的职工工资管理系统。

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

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

c语言课程设计工资管理系统一、教学目标本章节的教学目标是使学生掌握C语言的基本语法,能够运用C语言编写简单的工资管理系统程序。

具体分为以下三个部分:1.知识目标:使学生掌握C语言的数据类型、变量、运算符、控制结构、函数等基本语法知识。

2.技能目标:培养学生运用C语言进行程序设计的能力,使学生能够独立编写并调试简单的工资管理系统程序。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和好奇心,提高学生解决问题的能力,培养学生的团队协作意识。

二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、变量、运算符、控制结构、函数等。

具体安排如下:1.C语言的基本语法和编程环境:介绍C语言的编程规范,熟悉集成开发环境(如Visual Studio、Code::Blocks等)。

2.数据类型、变量和运算符:整型、浮点型、字符型数据,变量的声明和初始化,算术运算符、关系运算符、逻辑运算符等。

3.控制结构:顺序结构、选择结构(if-else)、循环结构(for、while、do-while)等。

4.函数:函数的定义和声明,调用函数,函数的返回值,函数的参数传递等。

5.工资管理系统实例:设计并实现一个简单的工资管理系统程序,包括员工信息的录入、工资的计算和输出等功能。

三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式进行。

具体安排如下:1.讲授法:讲解C语言的基本语法、数据类型、变量、运算符、控制结构、函数等知识点,让学生系统地掌握C语言的基础知识。

2.案例分析法:通过分析实际的工资管理系统案例,让学生了解并掌握如何运用C语言解决实际问题。

3.实验法:让学生动手编写并调试工资管理系统程序,培养学生的实际编程能力和解决问题的能力。

四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备等。

具体安排如下:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》(K&R)、《C Primer Plus》等。

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

一.设计需求说明一、职工工资管理系统功能设计要求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语言程序设计

职工工资管理系统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语言程序设计》课程设计实习报告实验题目职工工资管理1.问题描述:添加模块:添加职工或工资的信息删除模块:能通过姓名或者工号删除职工信息修改模块:修改职工信息查询模块:能通过姓名或者工号查询职工信息显示模块:显示全部职工信息文件管理模块:负责源数据文件的管理,包括新建、读取和保存源数据2.概要设计职工工资管理添加模块删除模块修改模块查询模块显示模块文件管理模块按姓名按工号按姓名按工号新建记录数据文件读取记录数据文件保存记录数据文件在各模块处用指针函数来使用后面的保存记录数据文件进行保存。

3.详细设计include <stdio.h># include <stdlib.h># include <string.h>/*宏定义*/# define N 100 /*假设工人个数是100*/# define HEADER1 "----------------------------------------------------------------------\n"# define HEADER2 " | Number | Name | Psex | Age | Time | Ywage | Ykou | Pwage |\n"# define HEADER3 " |--------|--------|--------|-------|------|-------|------|-------|\n"# define FORMAT " |%-8d|%-8s|%-8s|%-7d|%-6d|%-7d|%-6d|%-7d|\n"# define DATA p->num ,p->name,p->sex,p->age,p->time,p->ywage,p->ykou,p->pwage# define END "-----------------------------------------------------------------------\n"/**/typedef struct work{int num; /**/char name[10];char sex[10];int age; /**/int time; /**/int ywage; /**/int ykou; /**/int pwage; /**/}WORK;/**/typedef struct pointer_info{WORK*pHead; /**/int count; /**/char fname[10]; /**/int saveflag; /**/}PI;/**/void Menu();void Add(PI*);void Del(PI*);void Save(PI*pi);void Modify(PI*pi);void Qur(PI*pi);void Load(PI*pi);void New(PI*pi);void Disp(PI*);void Wrong();void printheader();void main(){int sel;WORK *pwork;PI pi;pwork = (WORK*)malloc(N * sizeof(WORK));pi.pHead = pwork;pi.count = 0;pi.fname[0] = '\0';pi.saveflag = 0;/*显示主函数*/Menu();printf("Please input your choice [0~5]:");do{scanf("%d",&sel);if (sel == 0){/*if (pi.saveflag ==1){if (strlen(pi.fname)){Save(&pi);}else{New(&pi);Save(&pi);}}*/break;}switch(sel){case 1:Add(&pi);break;case 2:Del(&pi);break;case 3:Modify(&pi);break;case 4:Qur(&pi);break;case 5:Disp(&pi);break;default:Wrong();break;}}while(1);pwork = pi.pHead;free(pwork);}void printheader(){printf(HEADER1);printf(HEADER2);printf(HEADER3);}void Menu(){system("cls");printf(" The Workers' Grade Wage System \n");printf("****************Menu*************************************\n");printf(" * 1 添加*\n");printf(" * 2 删除*\n");printf(" * 3 修改*\n");printf(" * 4 查询*\n");printf(" * 5 显示*\n");printf(" * 0 退出*\n");printf ("*********************************************************\n"); }void Wrong( ){printf("\n******Error :input has wrong ! press any key to continue******\n");}void Add(PI* pi ){int num;//char sex[10];int nSex;int i,flag=0;WORK * pwork,*p;do{pwork=pi->pHead+pi->count;p=pi->pHead;printf("please input the number:(press '0'return menu)");scanf("%d",&num);for(i=1;i< pi->count; i++){if(num==p->num){printf ("the number you input has exist,please input another one!\n");flag=1;break;}p++;}if(flag){flag=0;continue;}if (num != 0){pwork->num = num;}else{Menu();printf("please input your choice[0~5]:");break;}printf("please input the name:");scanf("%s",pwork->name);printf("please input the sex(0 is woman,1 is man):");scanf( "%d", &nSex );if( nSex == 0 )strcpy( pwork->sex,"woman");elsestrcpy( pwork->sex,"man");printf("please input the time:");scanf("%d", &pwork->time);printf("please input the age:");scanf("%d", &pwork->age);printf("please input the Ywage:");scanf("%d", &pwork->ywage);printf("please input the Ykou:");scanf("%d", &pwork->ykou);pwork->pwage = pwork->ywage-pwork->ykou;pi->count++;pi->saveflag=1;}while(1);}void Qur(PI * pi){int a,i,num;WORK *p;char name[10];p=pi->pHead;Menu();printf("1------search by number\n");printf("2------search by name\n");printf("3------return\n");printf("please input your choice:[1,2]?");scanf("%d",&a);if(a==3){return;}if(a==1){printf("please input the number for search:");scanf("%d",&num);for(i=1;i<= pi->count; i++){if(num==p->num){break;}p++;}if(i>pi->count){printf("no record found\n");return;}else{printheader();printf(FORMAT,DATA);printf(END);}}else if(a==2){printf("please input name to search:");scanf("%s",name);for(i=1;i<=pi->count;i++){if(strcmp(name,p->name) !=0){break;}p++;}if(i>pi->count){printf("no record found\n");return;}else{printheader();printf(FORMAT,DATA);printf(END);}}printf("Please input your choice[0~5]:");}void Modify(PI *pi){int num,i;WORK *p,*pwork;p = pi->pHead;Menu();Disp(pi);printf("please input the number of work to modify:");scanf("%d",&num);for (i = 1;i < pi->count;i++){if (num == p->num){break;}p++;}if (i > pi->count){printf("no record found\n");return;}else{printf("please input the number:(enter '0'return menu)");scanf("%d",&num);if (num!=0){p->num =num;}else{Menu();return;}printf("please input the name:");scanf("%s",p->name);printf("please input the sex:");scanf("%s",p->sex);printf("please input the age:");scanf("%d",&p->age);printf("please input the time:");scanf("%d",&p->time);printf("please input the ywage:");scanf("%d",&p->ywage);printf("please input the ykou:");scanf("%d",&p->ykou);pwork->pwage = pwork->ywage-pwork->ykou;pi->saveflag = 1;}}/*删除职工记录*/void Del(PI * pi){int sel,i,num;char name[10];WORK *p;/*指针函数*/p=pi->pHead;Menu();printf("1------delete by number\n");/*选择工号*/printf("2------delete by name\n");/*选择姓名*/printf("any key other------return\n");/*按别的键就返回*/ printf("please input your choice:[1,2]?\n");scanf("%d",&sel);if(sel!=1&&sel!=2)/*按别的键*/{return;}if( sel == 1 )/*选择工号*/{printf("Please input the number to delete:");scanf("%d",&num);for(i=1;i<=pi->count;i++)/*按学号搜索*/{if(num==p->num){break;}p++;}if(i>pi->count){printf("no record found\n");return;}else if(i==pi->count) /*删除中间某个记录,只需要将count减1*/ {pi->count--;pi->saveflag=1;printf("record delete successfully!\n");}else /*删除某个记录,只要将其后的数据前移覆盖即可*/{memcpy(p,p+1,(pi->pHead + pi->count - p)*sizeof(WORK));pi->count--;pi->saveflag = 1;printf("record delete successfully!\n");}}else if(sel == 2)/*选择姓名*/{printf("please input name to delete:");scanf("%s",name);for(i=1;i<=pi->count;i++){if(strcmp(name,p->name) != 0){break;}p++;}if(i>pi->count){printf("no record found\n");return;}else if(i==pi->count)/*删除中间某个记录,只需要将count减1*/ {pi->count--;pi->saveflag=1;printf("record delete successfully!\n");}else{ /*删除某个记录,只要将其后的数据前移覆盖即可*/ memcpy(p,p+1,(pi->pHead+pi->count-p)*sizeof(WORK) );pi->count--;pi->saveflag=1;printf("record delete successfully!\n");}}printf("please input your choice[0~5]:");}/*显示*/void Disp(PI * pi){int i;WORK *p = pi->pHead;if (pi->count==0){printf("no record found\n");printf("\nplease input your choice[0~5]:");return;}printheader();for(i=1;i<=pi->count;i++){printf(FORMAT,DATA);printf(END);p++;}}void New(PI *pi){FILE * fp;char name[10];char fname[10] =".\\";printf("please input the date file name foe create:");scanf("%s",fname);strcat(fname,name);strcat(fname,".dat");fp=fopen(fname,"wb");if(fp==NULL){printf("\n=====>open file error!\n");return;}strcpy(pi->fname,fname);fclose(fp);}void Load (PI *pi){FILE * fp;WORK * p=pi->pHead;char name [10];char fname [10]= ".\\";printf( "please input the data file name for load:");scanf( "%s",name);strcat(fname,name);fp=fopen(fname , "rb");if(fp==NULL){printf("\n====>open file error!\n");return;}pi->count = 0;pi->saveflag = 0;while(feof(fp)!=0){if(fread(p,sizeof(WORK),1,fp)){pi->count++;p++;}}strcpy(pi->fname,name);printf("load data file %s successfully!",name);fclose(fp);}void Save(PI * pi){FILE * fp;int numwriten;if (!strlen(pi->fname))New(pi);fp=fopen(pi->fname, "wb");if(fp==NULL){printf("\n====>open file error!\n");fclose(fp);return ;}if (pi->count){numwriten = fwrite(pi->pHead,1,pi->count * sizeof(WORK),fp);pi->saveflag = 0;printf("file save succesefully!");}elseprintf("no record for save !");fclose(fp);}4测试分析添加时Q1:性别通过输入0或1输出woman or man有if语句进行选择Q2:实得工资由应发工资减去应扣工资自动得到在程序中做减法添加后删除Q1:通过工号或姓名删除使用if语句进行选择,并用for语句对进行搜索Q2:删除中间摸个记录删除后修改查找Q1:要求通过工号或者姓名查找使用if语句Q2:如果找不到记录则要返回使用if –else语句找不到就输出源数据显示5.课程设计总结通过我们小组的共同努力终于完成任务,制作了职工工资管理系统。

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

题目3:职工工资管理系统设计功能:实现简单的职工工资信息管理,职工工资的基本信息包括编号、姓名、基本工资、奖金、工资总额等基本要求:1设计简单的菜单,能够进行系统功能选择。

2实现信息的录入功能。

3在已有信息的基础上添加新的记录。

4删除指定编号的记录。

5修改指定编号的记录6实现信息的浏览功能7按编号查询功能8按工资总额排序功能#include "stdio.h"#include "stdlib.h"#include "ctype.h"#include "process.h"structgongzi/*定义数组*/{int bianhao;char xingming[10];int jbgz;/*基本工资*/int jiangjin;int tatal;struct gongzi *next;};void print() /*菜单*/{printf("welcom!\n");printf("1.创建新信息\n");printf("2.删除原信息\n");printf("3.修改原信息\n");printf("4.按编号查找\n");printf("5.工资总额排序\n");}struct gongzi * creat(structgongzi*head) /*case1创建工资,降序排列*/{struct gongzi *p1, *p2, *p3; /*p1新增点,p2,p3切点*/p1 =p2 =p3 =(struct gongzi * )malloc(sizeof(struct gongzi) );printf("创建新信息\n输入编号,姓名,基本工资,奖金\n");printf("输入编号");scanf("%d",&p1->bianhao);printf("输入姓名");scanf("%s",&p1->xingming);printf("输入基本工资");scanf("%d",&p1->jbgz);printf("输入奖金");scanf("%d",&p1->jiangjin);p1->tatal =p1->jbgz + p1->jiangjin;p1->next =NULL;if(head == NULL){head =p1;}else{p2 =head;while((p2->tatal < p1->tatal) && (p2->next !=NULL)){p3 =p2;p2 =p2->next;}if(p1->tatal < p2->tatal){if(head == p1){head =p1;}else{p3->next =p1;}p1->next =p2;}else{p2->next =p1;p1->next =NULL;}}return head;}gongzi*head)/*case2删除原信息*/{int bianhao;struct gongzi *p1, *p2;printf("输入要删除的编号");if(head == NULL){printf("\nlist is null");goto end;}p1=head;scanf("%d",&bianhao);while((bianhao != p1->bianhao) && (p1->next != NULL)) {p2 =p1;p1 =p1->next;}if(bianhao ==p1->bianhao){if(p1 == head){head =p1->next;}else{p2->next =p1->next;}printf("%d has been deleted.\n",bianhao);}else{printf("%d not been found!\n",bianhao);}end:return(head);}struct gongzi * change(structgongzi*head)/*case 3修改原信息*/{int bianhao;printf("输入要修改的编号");if(head == NULL){printf("\nlist is null");goto end;}p1=head;scanf("%d",&bianhao);while((bianhao != p1->bianhao) && (p1->next != NULL)) {p2 =p1;p1 =p1->next;}if(bianhao ==p1->bianhao){printf("输入编号");scanf("%d",&p1->bianhao);printf("输入姓名");scanf("%s",&p1->xingming);printf("输入基本工资");scanf("%d",&p1->jbgz);printf("输入奖金");scanf("%d",&p1->jiangjin);p1->tatal =p1->jbgz + p1->jiangjin;p1->next =NULL;printf("%d has been change.\n",bianhao);}else{printf("%d not been found!\n",bianhao);}end:return(head);}struct gongzi * search(structgongzi*head)/*case4按编号查找*/{int bianhao;struct gongzi *p1, *p2;printf("输入要查找的编号");if(head == NULL){printf("\nlist is null");goto end;}p1=head;scanf("%d",&bianhao);while((bianhao != p1->bianhao) && (p1->next != NULL)){p2 =p1;p1 =p1->next;}if(bianhao ==p1->bianhao){printf("%5d%10s%5d%5d%5d\n",p1->bianhao, p1->xingming,p1->jbgz, p1->jiangjin, p1->tatal);}else{printf("%d not been found!\n",bianhao);}end:return(head);}void list(structgongzi*head)/*case5输出*/{struct gongzi*p1;p1 =head;printf("编号、姓名、基本工资、奖金、工资总额\n");if(head == NULL){printf("\nlist is null\n");}while(p1 != NULL){printf("%5d%10s%5d%5d%5d\n",p1->bianhao, p1->xingming,p1->jbgz, p1->jiangjin, p1->tatal);p1 =p1->next;}}main(){int caidan, ch;struct gongzi*p;struct gongzi*head =NULL; loop:print();scanf("%d",&caidan);switch(caidan){case 1:head =creat(head);getch();break;case 2:head =del(head);getch();break;case 3:head =change(head);getch();break;case 4:head =search(head);getch();break;case 5:list(head);getch();break;}goto loop;}。

相关文档
最新文档