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

合集下载

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

课程设计说明书学院、系:专业:学生姓名:学号:设计题目:职工工资管理系统起迄日期:指导教师:日期: 2017年5月12日1 设计目的本课程设计是采用C语言,在VC平台下设计年历显示系统,该系统运行在MS-DOS命令行模式下。

本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力。

1)进一步巩固和复习C程序设计的基础知识;2)培养学生结构化程序、模块化程序设计的方法和能力;3)了解软件的编制过程及各环节的具体内容;4)提高学生程序调试技巧、软件设计能力和代码规范化等素质;提高学生分析问题、解决问题以及实际运用能力。

2 任务概述功能设计要求:1. 输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录(系统应能建立一个新的数据文件或给已建立好的数据文件增加记录)。

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

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

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

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

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

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 1083 模块划分图3.14 主要函数说明及其N-S图主要函数说明:(1)输入记录:将每一个职工的姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个结构体。

c工资管理课程设计

c工资管理课程设计

c工资管理课程设计一、课程目标知识目标:1. 学生理解工资管理的基本概念,掌握工资的计算方法和流程。

2. 学生掌握工资表的制作和解读,了解个人所得税的相关知识。

3. 学生了解我国工资管理的相关法律法规,知晓劳动者的权益保护。

技能目标:1. 学生能够运用所学知识进行工资的计算,准确地完成工资表的制作。

2. 学生能够运用电子表格软件进行工资管理,提高数据处理和分析能力。

3. 学生通过案例分析,提高解决实际工资管理问题的能力。

情感态度价值观目标:1. 学生通过学习工资管理,培养对劳动者的尊重和关爱,增强社会责任感。

2. 学生在小组合作学习中,培养团队协作精神和沟通能力。

3. 学生通过了解工资管理的法律法规,增强法治观念,提高法律意识。

课程性质:本课程为实践性较强的课程,结合实际工资管理案例,让学生在理论学习的基础上,提高实际操作能力。

学生特点:学生具备一定的电子表格操作基础,对工资管理有一定的认知,但缺乏系统学习和实际操作经验。

教学要求:教师需结合实际案例,引导学生运用所学知识解决工资管理问题,注重培养学生的实际操作能力和法律意识。

通过课堂讲解、案例分析、小组讨论等多种教学手段,确保学生达到预设的课程目标。

教学过程中,关注学生的学习反馈,及时调整教学方法和节奏,提高教学效果。

二、教学内容1. 工资管理基本概念:工资的定义、工资构成要素、工资制度分类。

2. 工资计算方法:计时工资、计件工资、绩效工资的计算方法,各类奖金的计算。

3. 工资表的制作与解读:工资表的组成、填写方法、工资条的解读。

4. 个人所得税知识:个人所得税的基本概念、税率、计税方法、扣除标准。

5. 工资管理的法律法规:我国工资管理的相关法律法规,如《劳动法》、《劳动合同法》等。

6. 劳动者权益保护:工资支付保障、加班工资、社会保险等方面的权益保护。

教学大纲安排:第一课时:工资管理基本概念及工资计算方法介绍。

第二课时:工资表的制作与解读,个人所得税知识讲解。

c工资管理系统-课程设计报告

c工资管理系统-课程设计报告

一、工程概况《工资管理系统》课程设计报告题目:工资管理系统(以教师工资为例)专业:网络工程(3)班班级:16(3)班姓名:代应豪指导教师:程庆成绩:计算机学院2016-2017学年第2学期一、工程概况目录教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。

注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。

A、教师信息处理(1)输入教师信息(2)插入(修改)教师信息:(3)删除教师信息:(4)浏览教师信息:提示:具体功能及操作参考题1。

B、教师数据处理:(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。

(2)教师实发工资、应发工资、合计扣款计算。

提示:计算规则如题目。

(3)教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。

(5)教师综合信息输出提示:输出教师信息到屏幕。

1.课程设计目的和要求A.巩固和加强《c语言程序设计》课程的理论知识。

B.掌握c语言的基本概念,语法,语义和数据类型的使用特点。

C.掌握c语言程序设计的方法及编程技巧,能正确使用c语言编写程序。

D.进一步理解和运用结构化程序设计的思想和放法。

E.使学生掌握调试程序的基本方法及上机操作方法。

F.通过查询手册和文献资料,培养学生独立分析问题和解决问题的能力。

G.初步掌握开发一个小型实用系统的基本方法。

H.培养学生的创新能力和创新思维。

I.培养学生良好的程序设计风格。

进一步理解和运用2.课程设计题目及内容教师工资管理系统每个教师的信息为:教师名,姓名,性别,单位名称,家庭住址,联系电话,基本工资,津贴,生活补贴,应发工资,电话费,水电费,房租,所得税,卫生费,公积金,合计扣款,实发工资。

工资信息管理系统——C语言

工资信息管理系统——C语言

工资信息管理系统一、题目要求设计工资信息管理系统,要求该系统能够实现工资信息管理。

系统包括录入、浏览、查询、统计等功能。

其中录入功能要求能够添加新的工资信息到文件,浏览功能要求能按照工资卡号、姓名分类浏览,提供分屏显示;有排序功能,排序后按照工资卡号升序或实发工资降序输出;查询功能要求能够按照工资卡号、姓名查询;统计功能要求能够按照月份累计统计某职工在某时间段实发工资总金额。

二、需求分析根据题目要求,由于工资信息是存放在文件中,所以应提供文件的输入输出等操作;在程序中需要浏览工资信息,应提供显示、查找、排序等操作;另外还应提供键盘式选择彩旦实现功能选择。

三、总体设计四、详细设计1.主函数void main(){menu();/*主函数只用于调用菜单*/2.菜单menu(){int n,w1;do{puts("\t\t***************MENU***************\n\n");puts("\t\t\t\t 1.enter data");puts("\t\t\t\t 2.addition data");puts("\t\t\t\t 3.browse all");puts("\t\t\t\t 4.search");puts("\t\t\t\t 5.order");puts("\t\t\t\t 6.exit");puts("\n\n\t\t **********************************\n");printf("Choice your number(1-6):[]\b\b");scanf("%d",&n);if(n<1||n>6){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1:enter();break;case 2:add();break;case 3:browse();break;case 4:search();break;case 5:order();break;case 6:exit(0);}return 1;}3.各功能模块设计1)录入模块数据结构struct employer{int month;char num[11];char name[20];float yfgz;float sf;float df;float sj;float sfgz;}emp[N];N为职工人数,在此宏定义为100,#define N 100那么此阶段的流程图如下[程序]enter(){int i,n;printf("How many employers(0-%d)?:",N-1);scanf("%d",&n);printf("\n Enter data now\n\n");for(i=0;i<n;i++){printf("\n input %dth employer record.\n",i+1);input(i);}if(i!=0) save(n);printf_back();}2)追加模块先确定要追加信息的条数,调用n=load()函数,再调用输入函数input(),最后保存追加的记录。

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语言工资标准管理系统专业课程设计程序设计课程设计报告工资管理系统院系:地质工程系班级:地质工程班组员:陈欣永胡世俊李积荣赵海俊马小成目录一、设计目的 (1)二、设计内容与要求 (2) (3) (4)三、总流程图设计 (5)四、程序详细功能设计 (6)五、程序调试 (7)六、设计小结 (8)七、参考文献 (9)附录 (10)一、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。

进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。

《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。

工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。

二、设计内容与要求1.设计内容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。

有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。

2.设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。

三、总体流程图设计职工工资输入职工显示职工查找职工删除职工添加职工修改职工保存职工文件中读退出四、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。

2、应用文件保存工资管理数据。

3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。

选从文件中选退出结束删除职增加职按工资选选选按姓名 按工号保存数据 选按姓名 按工号 选选选查找职输入职输出职按姓名 按工号 主菜单 开始 选择操。

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语言程序设计学校:中国地址大学学院:工程学院班级序号:05507101学号:20071000226姓名:王雷指导老师:刘文中C 语言程序设计编程实践是学习C语言程序设计的一重要环节,为提高学生程序设计能力,通过课堂和上机实践练习使学生的程序设计能力上一台阶。

通过前四单元温顾而知新、庖丁解牛、举一反三、熟能生巧等过程的练习设计下面一个完整的程序。

1、题目要求设计“工资信息管理系统”要求:该系统能够实现工资信息管理。

系统包括录入,浏览,查询,统计等功能。

录入功能要求:能够添加新的工资信息到文件;浏览功能要求:能够按照工资卡号,姓名分类浏览,提供分屏显示;有排序功能,排序后按照工资卡号升序或实发工资降序输出;查询功能要求:能够按照工资卡号,姓名查询;统计功能要求:能够按照月份累计统计某职工在某时间段发工资总金额。

职工数据如下:姓名银行卡号月份应发工资水费电费税金实发工资wanglei 05507101 6 5000.00 25.00 35.00 360.00 4580.00wanglei 05507101 7 5100.00 20.00 40.00 370.00 4670.002、分析:根据题目要求,应当把职工工资信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现职工工资浏览,查询,统计等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。

3、总体设计:根据题目要求,可以将系统分为六个模块:1)职工工资信息浏览模块;2)添加工工资信息模块;3)统计职工工资总合模块;4)按名字查询职工工资信息模块;5)按卡号查询职工工资信息模块;6)功能选择4、详细设计:#include<iostream.h>#include<stdio.h>#include<stdlib.h>#include<string.h>//头函数名/*********职员工资信息结构体*********//***包括职工的姓名、银行卡好、工作月份、应发工资、实发工资、水费、电费、税***/ struct staff//职员工资信息结构体{char Name[10];char CardNumber[10];int Month; float SPWages; float APWages; float Water; float Electrical; float Tax; };FILE *fp;//定义文件指针===全局变量 struct staff temp;void printf_face()//输出函数 { printf("\n 姓名 银行卡号 月份 应发工资 水费 电费 税 实发工资 \n ");printf("%s %s %d %.2f %.2f %.2f %.2f %.2f\n",,temp.CardNumber,temp.Month,temp.SPWages,temp.Water,temp.Electrical,temp.Tax,temp.APWages);}一、/**********浏览职工工资信息==模块*********/void PrintInformation()//浏览职工工资信息{struct staff temp;if((fp=fopen("wages","rb"))==NULL) { printf("cannot open the file!"); exit(0);}fclose(fp); }二、/**********添加职工工资信息==模块void Increase()//添加职工工资信息{if((fp=fopen("wages","ab+"))==NULL) { printf("cannot open the file!");exit(0);}printf("\n 请输入要==添加的工资信息printf("\n 姓名 银行卡号 月份 应发工资&temp.Electrical);if(temp.SPWages<=800) temp.Tax=0;if((temp.SPWages>800.0)&&(temp.SPWages<1400.0))temp.Tax=(temp.SPWages-800)*0.05;if(temp.SPWages>1400){temp.Tax=(temp.SPWages-1400)*0.1;} fwrite(&temp,sizeof(struct staff),1,fp); fclose(fp);}/***计算税金并添加到文件相应结构体中***/三、/*********统计某职工工资总合==模块void Statistics()//统计某职工工资总合{struct staff temp; char tempname[10]; float sum=0;int monthstart=0,monthover=0;printf("\n 输入姓名 起始月份 终止月份if((fp=fopen("wages","rb"))==NULL) {printf("cannot open the file!") exit(0); }while(fread(&temp,sizeof(struct staff),1,fp)==1) { if(strcmp(,tempname)==0)/******判断是否是该职工******/ { if(temp.Month>=monthstart&&temp.Month<=monthover) {sum+=temp.APWages;}}}printf("%d 月到 %d 月的工资总和 %f",monthstart,monthover,sum); fclose(fp); }四、/*********按名字查询某职工工资信息==模块void NameSearch()//按名字查询某职工工资信息 {char tempname[10]; struct staff temp;printf("\n输入姓名scanf("%s",tempname);if((fp=fopen("wages","rb"))==NULL) {printf("cannot open the file!"); exit(0); }{ if(strcmp(,tempname)==0) /** {printf_face();}}fclose(fp);}五、/********按卡号查询某职工工资信息==模块void CardNumberSearch()//{char tempCardNumber[10];struct staff temp;printf("\n 输入卡号:");scanf("%s",tempCardNumber);if((fp=fopen("wages","rb"))==NULL){printf("cannot open the file!");exit(0);}while(fread(&temp,sizeof(struct staff),1,fp)==1) /***读文件中资料**/ {if(strcmp(temp.CardNumber,tempCardNumber)==0) /**判断是否是该卡号**/{printf_face();}}fclose(fp);六、/**********职工工资信息查询==模块int Search(){int n;while(1){printf("\n1. 按照卡号查询printf("\n2. 按照姓名查询: \n ");printf("\n0. 返回上级目录: \n");scanf("%d",&n);switch(n){case 2:NameSearch();break;case 0:return 0;break;}}}七、/***************功能选择==模块***********/void ShowMenu(){int n;while(1){ Array printf("1. 添加工资信息: \n");printf("2. 浏览工资信息: \n" );printf("3. 统计工资信息: \n" );printf("4. 查询工资信息: \n");printf("0. 退出系统: " );scanf("%d",&n);switch(n){case 1:Increase();break;case 2:PrintInformation();break;case 3:Statistics();break;case 4:Search();break;case 0:exit(0);break;}}}/***************主函数*************/ void main(){ShowMenu();}运行结果可以达到要求的目的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2程序流程图主函数源代码:void main(){int choose=0;while(true){show();printf("\t\t====>请选择:");scanf("%d",&choose);system("cls");switch(choose){case 0: exit(0);ame,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i].salary3);定义i=0i<Number输出职工信息开始结束定义数据类型numberTemp,i i<numberTempi++添加成功输出职工信息开始结束}}查找职工信息函数的实现查找记录前如图11所示。

C企业工资管理系统课程设计

C企业工资管理系统课程设计

C企业工资管理系统课程设计Last revision on 21 December 2020目录一、需求分析 (1)二、概要设计 (3)三、详细设计 (12)四、调试分析 (12)五、用户手册 (13)六、测试数据 (17)七、附录 (31)一、需求分析(1)源文件采用多文件的工程结构。

(2)数据存储采用文件形式。

(3)标准C++输入输出(4)程序完成企业人事工资管理,能够实现工资的录入、统计(整个单位的平均工资、最高工资、最低工资和工资均方差;各部门的平均工资、最高工资、最低工资和工资均方差)、查询(按工号或姓名查询)、修改、删除等功能。

(5)程序执行的命令:(1)录入员工工资信息;(2)选择需要执行的操作(添加、统计、删除、修改、查询);(3)输出结果。

一、概要设计1.设计类的数据类型定义class message{private:char bornplace[10],duty[10];序模块(1)录入操作:void writen(int x),该模版主要实现工资信息的录入;(2)添加操作:void add(int x),该模版主要实现工资信息的添加;(3)删除操作:void del(int x),该模版主要实现工资信息的删除;(4)修改操作:void modify(int x),该模版主要实现工资信息的修改;(5)查询操作:void find(int x) ,该模版主要实现工资信息的查询(按名字查询或按工号查询);(6)统计操作:void count(int x),该模版主要实现工资信息的统计(统计单位的平均工资、最高工资、最低工资、工资均方差;统计部门的平均工资、最高工资、最低工资、工资均方差)。

3.程序模块结构void main(){菜单(输入选择);操作;}三、详细设计(1)类模块class message{private:charbornplace[10],duty[10];ame;cout<<"籍贯: "<<endl;cin>>b[flag].bornplace;cout<<"职务: "<<endl;cin>>b[flag].duty;cout<<"部门: "<<endl;cin>>b[flag].bumen;cout<<"身份证号: "<<endl;cin>>b[flag].ID;cout<<"工号: "<<endl;cin>>b[flag].number;cout<<"基本工资: "<<endl;cin>>b[flag].basesalary;cout<<"岗位工资: "<<endl;cin>>b[flag].jobsalary;cout<<"奖金: "<<endl;cin>>b[flag].jiangjin;cout<<"医疗住房基金: "<<endl;cin>>b[flag].yljj;cout<<"税金: "<<endl;cin>>b[flag].sj;cout<<endl;(6)查找函数流程图1:按姓名查询cout<<"输入要查询的姓名:";cin>>ming;message b[30];fstream sp("",ios::in||ios::out);for(j=0,i=0;i<temp;i++){if(strcmp(b[i].name,ming)==0){cout<<"姓名籍贯职务部门身份证号工号基本工资岗位工资奖金医疗住房基金税金 "<<endl;b[i].put();}}2.按工号查询:cout<<"输入要查询的工号:";cin>>nu;message b[30];for(i=0;i<temp;i++){if(b[i].number==nu){cout<<"姓名籍贯职务部门身份证号工号基本工资岗位工资奖金医疗住房基金税金 "<<endl;b[i].put();}}(7)统计函数流程图1.按部门统计for(j=0,i=0;i<temp;i++){if(strcmp(b[i].bumen,a_bumen)==0){sum=sum+b[i].basesalary+b[i].jobsalary+b[i].jiangjin-b[i].yljj-b[i].sj; asesalary+b[i].jobsalary+b[i].jiangjin-b[i].yljj-b[i].sj;j++;}}int max;int min;max=u[0];min=u[0];int bb;for(i=0;i<temp;i++){if(U[i]>max){bb=U[i];U[i]=max;max=bb;asesalary=abs(sum/(j+-b[i].basesalary);asesalary;}2.单位统计int U[20];for(i=0;i<20;i++){U[i]=0;}for(j=0,i=0;i<temp;i++){sum=sum+b[i].basesalary+b[i].jobsalary+b[i].jiangjin-b[i].yljj-b[i].sj;asesalary+b[i].jobsalary+b[i].jiangjin-b[i].yljj-b[i].sj;j++;}int max;int min;max=U[0];min=U[0];int bb;for(i=0;i<temp;i++){if(U[i]>max){bb=U[i];U[i]=max;max=bb;asesalary=abs(sum/(j+-b[i].basesalary);asesalary;}四、调试分析1、开始使用文件保存时出现不能为read错误,后通过查阅资料解决了问题;2、删除部分程序开始不能判断是否找到了要删除的人员信息,后来加了flag标记后可以判断了;3、统计部分程序在求均方差的时候出现算法错误,后来查阅了均方差公式后改正了过来4、使用友员函数可以解决类外作用域问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
开始
定义 n=0 输入 n 如果 n=1 按姓名查找 终止
如果 n=2 按工号查找
终止
输入错误 终止
结束
6、删除:输入职工的职工号,并在文件中查找。若找到,提示是否确定删除。若 选择是,则删除文件中该职工信息;若选择否,则取消。若未找到则提示无此职工 信息。无论查找成功否,应还可选择继续查找或退出。
二、设计内容与要求 1. 设计内容
主要利用 c 语言的文件操作能力设计开发一个小型的管理信息系统,至少具有 如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐 项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。有一个文 本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
10
break; case 6: modify(); back();//修改职工信息 break; case 7:reserve(); back();//保存数据 break; case 8:author(); back();//作者信息 break; default: break; } fflush(stdin); getchar(); system("cls"); } }
程序设计课程设计报告
工资管理系统
院系:地质工程系 班级:地质工程班 组员:陈欣永 胡世俊
李积荣 赵海俊 马小成
目录
一、设计目的……………………………………………………1 二、设计内容与要求……………………………………………2
1.设计内容…………………………………………………3 2.设计要求………………………………………………4 三、总流程图设计………………………………………………5 四、程序详细功能设计…………………………………………6 五、程序调试……………………………………………………7 六、设计小结……………………………………………………8 七、参考文献……………………………………………………9 附录……………………………………………………………10
附录〈源程序〉
struct worker { char name[30]; char ID[10]; int salary1,salary2,salary3; }; int dq(struct worker wo[]); void show(); void bc(struct worker wo[]); void add(); void see(); void search(); void ghcz(); void xmcz(); void del(); void xmsc(); void ghsc(); void statistics(); void modify(); void ghxg(); void xmxg(); void reserve(); void back(); void author(); struct worker wo[100]; //保存所有的职工信息
2
2. 设计要求
在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、 改、统计、输出等操作。
三、总体流程图设计
职工工资管理系统







文退







件出































3
开始 主菜单 选择操作 选择 1
输入职工信息
选择 2 选择 3 选择 4 选择 5 选择 6 选择 7

定义 n=0 输入 n
如果 n=1
按姓名删除 终止
如果 n=2 按工号删除
终止

7、修改:输入职工的职工号在文件中查找。若找到,显示该职工的所有信息,否 则提示无此职工信息。无论查找成功否,应还可选择继续查找或退出。
6
开始
定义 mode=0 输入 mode
如果 mode=1 按姓名修改
终止
如果 mode=2 按工号修改
六、设计小结
通过这几天的努力,职工工资管理系统的设计已基本完成。在本次课程设计中, 我充分领略了 C 语言功能的强大,包括函数、数组、指针、结构体、文件等。
职工工资管理系统是一个很实用并且使用广泛的操作系统。此系统可以减少很
8
多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时 间内,查找出所需的职工工资资料,提高工作效率。该系统具有添加、显示、查询、 修改、删除等基本功能,以方便对工资的各项管理操作。每一条记录包括一个职工 的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将 职工信息保存在文件中,并从文件中读取出来。
在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。对以 前课本中学到的知识有了更深刻的理解,和灵活的运用。不再像以前一样,知识浅 显的明白,死板的套用。编写程序的过程,让我感觉到了无限的快乐,不仅仅是因 为可以将以前学到的相关知识灵活运用,还因为在这个过程中学到了太多以前所没 有掌握的东西。
11
int i=0; struct worker temp; printf("请输入要添加职工个数:"); scanf("%d",&numberTemp); for(i=0;i<numberTemp;i++) { printf("输入第%d 个职工信息\n",i+1);
输出职工信息 查找职工信息 增加职工信息 删除职工信息 按工资从高到低
保存数据
按姓名 按工号 按姓名 按工号
按姓名 按工号Βιβλιοθήκη 选择 8从文件中读取
选择 0
退出
结束
四、程序详细功能设计
1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名, 基本工资,职务工资,津贴。 2、应用文件保存工资管理数据。 3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。
int dq(struct worker wo[]) { FILE *fp=NULL; int i=0; fp=fopen("C://worker.dat","rb"); while(fread(&wo[i],sizeof(struct worker),1,fp)) i++; fclose(fp); return i; }
1
一、设计目的
在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、 删、改、统计、输出等操作。
进一步掌握利用 C 语言进行程序设计的能力;进一步理解和运用结构化程序设 计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长 程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用 c 语言的基础知识开 发一个简单的职工工资管理系统。工资管理系统是一个企业不可缺少的一部分,它 利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动 化,为企业提高工作效率。
终止
输入错误 终止
结束
8、统计:分类汇总并输出所有职工的总工资,并计算出平均工资。
开始
定义 i=0 For 函数初始值 i=0
i<Number 循环体
输出员工总工资 i++
9、退出:退出程序。
五、程序调试
For 函数初始值 i=0 i<Number 循环体 i++
输出员工平均工资 结束
7
程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效 果。程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和 运行错误。要正确利用编辑时提示的错误信息。
4
开始 定义数据类型 numberTemp,i
i<numberTemp 输出职工信息 i++ 添加成功 结束
4、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
开始 定义 i=0 i<Number 输出职工信息
结束
5、查找:输入职工的职工号或姓名,并在文件中查找。若找到,则显示该职工的 工资详情;否则提示未找到。无论查找成功否,应还可选择继续查找或退出。
调试阶段出现了很多的问题,主要如下: 1、 在定义和运用数据类型时出现问题,不清楚字符串的输出用 s,而错用为 c。 2、 忘记“;”或把“;”用错误的输入法输入,造成的错误。 3、 大括号混乱造成错误。 4、 用文件保存职工信息时,对 printf 不熟悉,造成使用格式错误,输出内容 不符合,通过仔细核对书上的格式才改掉。 5、 在读取信息时,不会用 scanf,是程序的运行结果混乱,造成职工信息错 位,或是直接输出 0.00 等。
int Number=0; //记录总的职工人数 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();//统计职工工资
相关文档
最新文档