职工工资管理系统c语言程序设计报告
- 格式:docx
- 大小:11.54 KB
- 文档页数:3
一、课程设计目的和要求(一)设计目的1、通过这次专题实习,巩固和加深对所学相关知识点的理解。
2、进一步熟悉基本流程控制结构——实现分支的if…else语句、switch语句和实现循环的for、while…、do…while语句、break、continue等。
3、基本数据类型、数组、结构体、自定义类、函数的应用。
4、加强对模块化程序设计和面向对象程序设计的理解。
5、掌握C\C++语言程序设计的基本思想,了解简单的系统分析和设计方法。
(二)设计要求1、启动软件时,进行密码校验。
若出错三次,则自动退出系统。
2、实现简易的提示菜单界面,刚运行时应显示版本信息。
用所学的知识尽量实现良好的、美观的“人机界面”,便于软件的操作使用。
3、要求把所有录入的数据以文件的形式,保存在硬盘上。
4、系统包含以下基本功能:登陆功能、显示主菜单功能、职工信息输入、职工信息输出、职工信息查询、职工信息修改、工资排序、工资统计、导出数据、导入数据、退出等。
二课程设计任务内容1、设计登陆功能:用户输入口令,如果与系统内保存的密码相一致,则成功;否则重新输入口令,直至输入口令正确才可登陆系统。
若出错三次,则自动退出该系统。
2、显示菜单:用户登录成功,系统显示界面,显示系统功能的提示信息。
3、职工信息输入:用户输入要添加的职工工号,姓名,年龄,性别,基本工资,岗位工资,总工资信息等。
当职工工号为0时输入结束。
输入数据时,须验证数据的输入格式正确,保证职工号的唯一性。
4、职工信息输出:将结构体中的职工信息输出到屏幕上。
5、职工信息查询:1按职工号查询;2按职工姓名查询。
查到则显示他全部信息,否则输出“not found”。
6、职工信息修改:修改职工信息并保存(工号不能修改)。
7、工资排序:对结构体数组中的所有职工按基本工资降序排序,用选择法实现;对结构体数组中的所有职工按岗位工资降序排序,用冒泡法实现;对结构体数组中的所有职工总工资降序排序,用插入法实现。
职工工资管理系统c++程序设计报告职工工资管理系统的C++程序设计报告示例如下:## 1. 项目概述职工工资管理系统是一个用于管理公司职工工资的软件。
该系统需要包括员工个人信息、工资、奖金、扣款等信息的管理。
还可以包括对工资数据的智能分析和报表生成等功能。
## 2. 设计思路### 2.1 需求分析对系统的需求进行分析,确定系统需要支持的功能,包括员工的基本信息、工资信息、奖金信息、扣款信息等。
### 2.2 设计模式采用设计模式,如MVC(Model-View-Controller)模式,将系统划分为三个不同的模块,分别是用户界面模块、数据管理模块和计算模块。
### 2.3 数据库设计设计一个适合的数据库结构,将系统中的数据存储到数据库中。
需要考虑到数据的完整性、查询的复杂性和扩展性等因素。
### 2.4 编程框架采用C++语言,使用MVC模式,采用主循环(Main Method)来实现整个程序的启动和运行。
## 3. 技术实现### 3.1 用户界面设计使用Qt框架,设计一个用户友好的界面,包括菜单栏、工具栏、表单控件等。
### 3.2 数据管理模块设计数据管理模块的功能包括对员工信息的增删改查等操作。
需要使用MySQL数据库来实现数据的存储和查询。
### 3.3 计算模块设计计算模块的功能是根据员工的基本信息和工资信息等计算员工的奖金和扣款。
需要使用C++和MySQL数据库的API来实现计算逻辑。
## 4. 错误处理在程序运行过程中,需要对用户输入的数据进行检查,如果有误则需要进行相应的错误处理。
在程序的结束前,需要对程序运行期间所消耗的资源进行统计,并进行相应的错误处理。
## 5. 性能优化为了提高系统的性能,需要使用适当的数据结构和算法,并优化程序的代码。
如:使用多线程技术来并行处理计算任务,减少内存的占用,使用高效的算法来减少程序的时间复杂度等。
## 6. 总结本程序采用C++语言,使用MVC模式,采用MySQL数据库来实现数据的存储和查询。
C语言职工工资管理系统设计报告设计报告:C语言职工工资管理系统1.系统介绍职工工资管理系统是一种用于管理公司或组织内部职工工资信息的软件系统。
通过该系统,可以方便地录入、修改、查询和删除职工的工资信息,实现对职工工资的统一管理和自动计算。
2.系统需求分析(1)录入职工信息:系统需要提供录入职工信息的功能,包括职工编号、姓名、性别、工作岗位等基本信息。
(2)录入职工工资:系统需要提供录入职工工资的功能,包括基本工资、绩效奖金、加班工资等,以便计算总工资。
(3)查询职工工资:系统需要提供查询职工工资的功能,可以按照职工编号、姓名、性别等关键字查询。
(4)修改职工工资:系统需要提供修改职工工资的功能,可以根据职工编号进行修改。
(5)删除职工信息:系统需要提供删除职工信息的功能,按照职工编号进行删除。
3.系统设计方案(1)数据结构的设计:-职工信息结构体:包括职工编号、姓名、性别、工作岗位等成员。
-职工工资结构体:包括基本工资、绩效奖金、加班工资等成员。
-职工结构体数组:用于存储多个职工的信息和工资数据。
(2)界面设计:-主菜单:包括录入职工信息、录入职工工资、查询职工工资、修改职工工资、删除职工信息等选项。
-子菜单:不同的功能选项对应不同的界面,可以通过输入不同的选择序号实现功能切换。
-信息显示界面:用于显示职工信息和工资信息。
(3)功能设计:-录入职工信息:通过用户输入,将职工信息存储到职工结构体数组中。
-录入职工工资:通过用户输入,将职工工资信息存储到对应的职工工资结构体中。
-查询职工工资:根据用户输入的关键字,查找并显示匹配的职工工资信息。
-修改职工工资:根据用户输入的职工编号,在职工工资结构体中找到对应职工的工资信息,并修改。
-删除职工信息:根据用户输入的职工编号,在职工结构体数组中找到对应职工的信息,并删除。
4.系统实现系统的实现使用C语言编程,使用结构体和数组进行数据的组织和存储,并利用循环和条件判断语句完成功能。
职工工资管理系统c++程序设计报告职工工资管理系统是一种用于管理员工薪资的软件系统。
下面是一个使用C++编写的职工工资管理系统的程序设计报告。
## 设计与实现### 设计该系统的设计主要考虑到以下几个方面:1. 功能需求:设计一个能够记录职工的基本信息、薪资信息、请假信息、加班信息等的系统。
2. 数据库设计:设计一个可以存储数据的数据结构,包括表格和字段。
3. 界面设计:设计一个用户友好的界面,方便用户进行操作。
4. 安全性:设计一个安全性措施,保证数据的安全性和隐私性。
### 实现1. 数据库设计:使用MySQL数据库进行数据存储。
2. 界面设计:使用Qt Creator开发界面。
3. 程序实现:使用C++语言进行程序实现。
#### 功能实现1. 记录职工基本信息:包括职工ID、姓名、性别、出生日期、身份证号码、联系方式等。
2. 记录薪资信息:包括基本工资、基本工资+津贴、基本工资+补贴、奖金等。
3. 记录请假信息:包括请假日期、请假原因、请假时间等。
4. 记录加班信息:包括加班日期、加班时间、加班地点、加班原因等。
5. 记录职工基本信息与薪资信息的关联关系。
6. 记录加班信息与请假信息的关联关系。
7. 显示当前职工的工资信息、请假信息、加班信息等。
8. 允许用户对职工的工资信息、请假信息、加班信息等进行编辑和删除。
## 性能测试为了测试系统的性能和稳定性,我们使用了以下方法:1. 模拟大量数据的操作:在系统中添加大量数据,并对其进行各种操作。
2. 进行并发测试:在系统中添加并发用户,并对系统进行各种操作。
3. 进行压力测试:在系统中添加大量压力,并通过增加并发用户等方式对系统进行压力测试。
通过以上方法,我们测试了系统的性能和稳定性,并得到了以下结果:- 系统在高并发情况下能够稳定运行。
- 系统在低并发情况下也能够流畅运行。
- 系统在高压力情况下能够快速响应,并保持稳定运行。
- 系统在低压力情况下也能够流畅运行。
1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
职工工资管理系统c++程序设计报告一、项目背景随着人们对工资管理的要求越来越高,传统的手工管理方式已经无法满足现代企业的快速发展需求。
因此,开发一款高效、稳定的职工工资管理系统成为了许多企业的必然选择。
本项目旨在设计并实现一款基于C++语言的职工工资管理系统,实现对职工工资信息的录入、查询、修改和删除等功能。
通过该系统,可以方便地进行员工工资管理,提高办公效率和准确性。
二、需求分析1. 系统用户:管理员、普通用户(一般是HR、财务等人员)。
2. 功能模块:- 用户登录:管理员和普通用户需要输入用户名和密码才能登录系统。
- 职工信息管理:包括新增、修改、删除、查询职工信息等操作。
- 工资信息管理:包括职工工资的录入、修改和查询。
- 统计分析功能:包括对职工工资信息的统计分析,比如按照职位、部门、薪资水平等分类统计。
- 数据备份与恢复:支持对数据进行备份和恢复操作,以保证数据的安全性和可靠性。
3. 开发环境:Windows系统,使用C++语言进行编程开发。
三、系统设计1. 总体结构:本系统采用模块化设计,将系统分为登录模块、职工信息管理模块、工资信息管理模块、统计分析模块等几个子模块。
2. 数据库设计:使用MySQL数据库进行数据存储和管理,建立职工信息表和工资信息表等。
3. 用户界面设计:采用GUI(图形用户界面)方式进行设计,方便用户进行操作。
四、程序实现1. 程序框架:通过C++语言编写代码,并使用第三方库QT进行界面设计和编程。
2. 功能实现:- 用户登录:管理员和普通用户需要输入正确的用户名和密码才能进入系统。
- 职工信息管理:支持新增、修改、删除、查询职工信息等功能。
- 工资信息管理:支持职工工资的录入、修改和查询,可按照职位、部门等分类统计。
- 统计分析功能:支持对职工工资信息进行分类统计和分析。
- 数据备份与恢复:支持对数据进行备份和恢复操作,以保证数据的安全性和可靠性。
五、总结本项目成功地实现了基于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 语言课程设计(报告书)题目职工工资管理系统作者肖梦星陈名河学院信息科学与工程学院专业软件工程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语言程序设计课题名称职工工资管理系统专业班级学号姓名指导教师肖伟平罗敬2008年元月7 日湖南工程学院课程设计任务书课程名称C语言程序设计课题职工工资管理系统专业班级学生姓名学号指导老师肖伟平罗敬审批任务书下达日期2008 年元月7 日任务完成日期2008 年元月15 日目录(一)职工工资管理系统 (6)1.问题描述 (6)2.功能描述 (6)3.测试数据 (6)4.主要的几个模块的流程图 (11)(二)心得体会 (13)(三)原程序清单 (14)1.附件一 (14)2.附件二 (16)(四)计算机科学与技术系课程设计评分表 (21)一、设计内容与设计要求1、设计内容:职工工资管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2、设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
2) 建立一个职工工资信息数据库,文件名为zggzk.txt,并从该文件中读取数据;3) 职工工资管理系统应能提供以下功能:(1)主菜单界面设计。
通过提示用户输入一个数字选项,调用相应的功能函数。
(2)显示功能:完成全部职工记录的显示;(3)计算功能:完成全部职工的应发工资、税款和实发工资的计算并显示;(4)修改功能:按工号修改一个职工的基本工资、奖金或扣款后重新计算职工的应发工资、税款和实发工资,并重新排序和显示;(5)查询功能:要求能分别按职工工号和姓名查询一条记录并显示;(6)追加功能:追加一条新职工记录,并重新排序和显示;⑦删除功能:按工号删除一条指定记录,并重新排序和显示;⑧排序功能:按职工实发工资降序排序;4) 说明:(1)要求将修改后的数据写入到一个新的数据文件nwegzk.txt中。
1.题目《职工工资管理系统》的设计与实现2.功能(1)每一条记录包括一个职工的工号、姓名、基本工资、职务工资、津贴、医疗保险、公积金和总工资。
(2)输入功能:可以一次完成多条记录的输入。
(3)显示功能:完成全部职工记录的显示。
(4)查找功能:完成按工号和姓名查找职工记录,并显示。
(5)排序功能:按职工的工号进行排序。
(6)插入功能:可以插入多名职工信息记录。
(7)保存功能:将职工记录保存在任何自定义的文件中。
(8)读取功能:将保存在文件中的职工信息工资信息读取出来。
(9)有一个清晰美观界面来调用各个功能3.要求(1)整个系统均用C语言实现;(2)利用指针、链表来实现学生成绩的数据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将职工工资信息保存在文件中。
(6)可以将职工工资信息从文件中读取出来。
4.设计内容整个系统除了主函数外,另外还有14个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。
各个函数的详细设计说明分别如下:主函数 main()利用无限次循环for( )和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
菜单选择函数 void menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的主要功能,根据每个功能前面的序号进行选择。
等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!void menu()um);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));um,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;um){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 del()先将职工信息打印出来,然后输入要删除职工的姓名,若该姓名不存在,则显示“查无此人”,如果存在则显示职工信息并且询问是否确认删除,若确定则删除。
职工工资管理系统
1. 背景
职工工资管理是企业管理中一个重要且复杂的环节。
合理进行工资管理可以激励员工的工作积极性,提高生产效率和企业的竞争力。
然而,在人工操作的情况下,计算工资涉及到复杂的计算过程和大量的数据处理,容易出现错误和繁琐。
因此,开发一个自动化的职工工资管理系统对于企业的工资管理具有重要意义。
2. 分析
职工工资管理系统的核心目标是计算职工的工资,并提供工资查询和报表生成的功能。
为了实现此目标,我们需要设计一个合理的系统架构,并根据需求提供相应的功能模块。
2.1 系统架构
职工工资管理系统的基本架构包括以下几个模块:
•职工信息管理模块:用于管理职工的基本信息,包括姓名、职位、级别等。
•薪资标准管理模块:用于管理不同职位和级别的薪资标准,包括基本工资、绩效奖金等。
•工资计算模块:根据职工的基本信息和薪资标准,计算实际工资。
•工资查询模块:用于查询职工的工资信息。
•报表生成模块:用于生成各种工资相关的报表,如工资总额、平均工资等。
2.2 功能模块
职工工资管理系统应当具备以下功能模块:
1.职工信息管理:
–添加职工信息
–修改职工信息
–删除职工信息
–查询职工信息
2.薪资标准管理:
–添加薪资标准
–修改薪资标准
–删除薪资标准
–查询薪资标准
3.工资计算:
–根据职工信息和薪资标准计算工资
4.工资查询:
–查询指定职工的工资信息
5.报表生成:
–生成工资总额报表
–生成平均工资报表
–生成各部门工资报表
2.3 数据结构与算法
为了实现上述功能,我们需要选择合适的数据结构和算法来支持系统的运行。
1.数据结构:对于职工信息的管理,我们可以使用链表或数组来存储职工的基
本信息。
对于薪资标准的管理,可以使用哈希表或平衡二叉树来存储标准信
息。
2.算法:在工资计算模块中,需要根据薪资标准和职工信息计算出实际工资。
可以使用算法来进行工资计算,如基本工资加上绩效奖金等。
3. 结果
根据上述分析,我们可以设计并实现一个简单的职工工资管理系统。
在实际应用中,可以根据具体需求进行功能扩展和优化。
该系统可以有效地管理职工的工资情况,提高工资计算的准确性和效率。
同时,生成的报表可以帮助企业进行工资分析和决策。
4. 建议
在开发职工工资管理系统时,需要注意以下几个方面:
1.用户友好性:系统界面设计应简洁美观,操作便捷,符合用户的使用习惯。
2.数据安全性:系统应具备数据备份和恢复的功能,以防止数据丢失或损坏。
同时,需要设置权限管理,限制不同用户的访问权限。
3.性能优化:对于数据量较大的情况,应优化算法和数据结构,减少计算和查
询时间。
可以考虑使用索引、缓存等技术来提高系统的性能。
4.功能扩展:职工工资管理系统是一个基础的管理系统,可以根据实际需求进
行功能扩展,如考勤管理、绩效评估等。
综上所述,通过开发职工工资管理系统,可以有效地提高工资管理的效率和准确性,帮助企业进行工资分析和决策。
同时,系统的用户友好性和数据安全性也是开发过程中需要考虑的重要因素。