C语言程序设计报告职工工资管理系统docx.docx
- 文档编号:16625654
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:68
- 大小:66.98KB
C语言程序设计报告职工工资管理系统docx.docx
《C语言程序设计报告职工工资管理系统docx.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告职工工资管理系统docx.docx(68页珍藏版)》请在冰点文库上搜索。
C语言程序设计报告职工工资管理系统docx
.
C语言程序设计报告
课程名称:
C语言程序设计
院系:
管理与经济学院
专业班级:
工业工程2012142班
学号:
201214217
学生姓名:
海蛟
指导教师:
雪青
完成时间:
2013-06-20
报告成绩:
.
.
1
、
设
计
题
目
--------------------------------------------------------------------------
2
2、设计要求(包括设计容描述)--------------------------------------------2
3
、
设
计
作
用
与
目
的
-----------------------------------------------------------------
3
4
、
所
用
软
件
--------------------------------------------------------------------------
3
5
、
系
统
设
计
--------------------------------------------------------------------------
4
5.1
系
统
结
构
----------------------------------------------------------------------
4
word专业资料
.
5.2
程
序
程
序
图
-------------------------------------------------------------------
4
5.3
产
生
源
程
序
----------------------------------------------------------------------
6
6、实验调试结果(附运行效果图)--------------------------------------------36
7、设计中的问题及解决方法-----------------------------------------------------39
8
、
设
计
心
得
--------------------------------------------------------------------------
40
9
、
参
考
文
献
--------------------------------------------------------------------------
41
word专业资料
.
职工工资管理系统的设计与实现
1.设计题目
题目:
工资管理系统
工资管理系统是企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理系统的
系统化、规化和自动化,为企业提高工作效率。
本程序旨在训练读者的基本编程能力,了解管理信息系统
的开发流程,熟悉C语言的文件和结构数组的各种基本操作。
本程序中涉及结构体、数组、文件等方面的
知识。
2.设计要求
1、启动软件时,进行密码校验。
若出错三次,则自动退出系统。
2、实现简易的提示菜单界面,刚运行时应显示版本信息。
用所学的知识尽量实现良好的、
美观的“人机界面”,便于软件的操作使用。
3、要求把所有录入的数据以文件的形式,保存在硬盘上。
4、系统包含以下基本功能:
登陆功能、显示主菜单功能、职工信息输入信息输出、职工信息查询、职
工信息修改、工资排序、工资统计、导出数据、导入数据、退出等。
5、职工信息输入信息输出要求一个职工的基本信息(编号、姓名、基本工资)的录入,以文件形式保存
——输入。
6、职工工资表浏览工资功能——输出。
7、计算职工的工资(输入基本工资、扣款、奖金后,马上算出应发工资、税金、实发工资、总工资)。
8、查询、排序功能——算法。
1)按编号查询、排序。
2)按姓名查询。
word专业资料
.
3)按工资排序。
4)基本信息的删除与修改(可选项)。
3.设计作用与目的
1、通次,巩固和加深所学相关知点的理解。
2、一步熟悉基本流程控制构——分支的if⋯else句、switch句和循
的for、while⋯、do⋯while句、break、continue等。
3、基本数据型、数、构体、自定、函数的用。
4、加模化程序和面向象程序的理解。
5、掌握C言程序的基本思想,了解的系分析和
6、了解数据系的理
7、掌握数据的基本方法,熟悉数据的步;
8、学基本数据程方法。
9、一步巩固、加深学生所学程《C言程序》的基本理知,理系
,一步培养学生合分析,解决的能力。
10全面考核学生所掌握的基本理知及其能力,从而达到提高学生素的最
目的。
11利用所学知,开小型用系,掌握运用C言写用系程序,独立
开用系,行数据理的合能力。
12于定的目,如何行分析,理清思路,并出相的数学模型。
13掌握面向象的程序方法。
14一步掌握在集成境下如何程序(步,置断点、察表达式,分)、
word专业资料
.
修改程序和程序的测试。
4.运行环境及工具软件
WindowsXP;
VisualC++6.0(完整绿色版);
5.系统设计
5.1程序逻辑图
职工工资管理系统
登
用
职
职询职
职
工
工
工
导
导
退
陆
户
工
工
工
工
资
资
资
出
入
出
功
管
信
信
工
信
排
统
计
数
数
能
理
息
息
资
息
序
计
算
据
据
输
输
信
修
入
出
改
息
查
图1:
系统结构框图
word专业资料
.
5.2程序流程图
开始
系统登录
主页面
初始化双链表
选择操作
选择1
选择2
选择3
录入职工工资
修改职工工资
查询职工工资
word专业资料
选择4
.
浏览职工工资
选择5
删除职工工资
选择6
删插入职工工资
按编号删除
选择7职工工资排序
选择8
保存职工工资
安全退出系统
选择9
结束
6.源程序代码
#include
标准输入输出
#include
处理杂乱
#include
#include
字符串操作
#include
系统输入输出
#include
时间相关
/**********************
下面是对用到的全局常量声明*************************/
#defineNAME10//
职工职工姓名长度
word专业资料
.
#definePASSWORD"123"//系统登陆密码
intshuru=0;//全局变量标记当前录入职工个数
FILE*fp;//声明一个文件指针
/**************************
结构体定义************************************/
structperson{//
职工工资的结构体
charname[NAME];//
职工职工姓名
intnum;//
职工编号
floatpaid;//
职工基本工资
floatdiscount;//
扣款
floatextra;//
奖金
floatfare;//
税金
floatgotpaid;//
应发工资
floatrealpaid;//
实发工资
floatsum;//
总工资
}*pp;//
声明一个结构指针
/**********************
下面是对用到的函数声明*****************************/
voidPassword();//
密码验证函数
voidSave(structpersonper[]);//
保存信息函数
voidInputper(structpersonper[]);//
录入信息函数
voidDelper(structpersonper[]);//
删除信息函数
voidModifyper(structpersonper[]);//
修改信息函数
voidFindper(structpersonper[]);//
查找信息函数
voidInsertper(structpersonper[]);//
插入信息函数
voidSortper(structpersonper[]);//
排序函数
voidListper(structpersonper[]);//
显示职工信息
voidfare(structpersonper[],intn);//
计算税金函数
voidMenu();
voidHelp();
//**************************
程序主体**************************************
voidmain()//
程序入口
{
system("color027");//设置当前窗口的背景色和前景色
Password();//调用密码验函数
Help();//调用系统信息函数
Menu();//调用菜单函数
}
voidInputper(structpersonper[])//录入职工工资函数原形
{
pp=per;//指针指向结构
system("cls");//清屏
inti;
printf("请问你要输入几个职工的信息:
");
scanf("%d",&shuru);
if((fp=fopen("inputdata","wb+"))==NULL)//当前目录下是否存在INPUTDATA文件
word专业资料
.
{//"wb+":
读写打开或建立一个二进制文件,允许读和写
printf("Cannotopenfilestrikeanykeyexit!
");
getch();
exit
(1);
}
fprintf(fp,"职工编号职工姓名基本工资扣款奖金应发工资税金实发工作总工资\n");
for(i=0;i { printf("输入职工编号: ");//输入职工编号 fflush(stdin); scanf("%d",&per[i].num); printf("输入职工姓名: ");//输入职工姓名 fflush(stdin); gets(per[i].name); printf("输入职工的工资信息\n"); printf("------------------------------\n"); printf("\n基本工资: ");//基本工资 fflush(stdin); scanf("%f",&per[i].paid); printf("\n扣款: ");//扣款 fflush(stdin); scanf("%f",&per[i].discount); printf("\n奖金: ");//奖金 fflush(stdin); scanf("%f",&per[i].extra); printf("\n税金: ");//税金 printf("------------------------------\n"); per[i].sum=per[i].paid-per[i].discount+per[i].extra; per[i].realpaid=per[i].paid-per[i].discount; fprintf(fp,"%6d%8s%5.1f\t%5.1f\t%3.1f\t%5.1f\t%4.1f\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);} } voidModifyper(structpersonper[]) { pp=per; intid,i=0;//id为接收用户输入的职工编号 if((fp=fopen("modifydata.sys","wb+"))==NULL) { printf("Cannotopenfilestrikeanykeyexit! "); getch(); exit (1); word专业资料 . } fprintf(fp,"职工编号职工姓名基本工资扣款奖金应发工资税金实发工资总工资\n"); printf("\n请输入你要修改的职工的编号: "); scanf("%d",&id); Sleep(500); printf("\n\t查找相关数据."); for(i=0;i<=15;i++) { Sleep(250); printf("."); } for(i=0;i { if(per[i].num==id)//如果找到了就执行下面语句,找不到直接回主界面 { printf("\n输入新职工编号: ");//输入职工编号 fflush(stdin); scanf("%d",&per[i].num); printf("\n输入新职工姓名: ");//输入职工姓名 fflush(stdin); gets(per[i].name); printf("输入职工的工资信息\n"); printf("------------------------------\n"); printf("\n基本工资: "); scanf("%f",&per[i].paid); fflush(stdin); printf("\n扣款: "); scanf("%f",&per[i].discount); fflush(stdin); printf("\n奖金: "); scanf("%f",&per[i].extra); printf("------------------------------\n"); per[i].sum=per[i].paid-per[i].discount+per[i].extra; per[i].realpaid=per[i].paid-per[i].discount; fprintf(fp,"%6d%8s%5.1f\t%5.1f\t%3.1f\t%5.1f\t%4.1f\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum); } } } voidFindper(structpersonper[])//查询职工工资信息 { inti=0,j=0,id;//循环变量和用于接收职工编号 word专业资料 . printf("请输入你要查询的职工编号: "); scanf("%d",&id); for(i=0;i { if(per[i].num==id)//如果找到你查询的数据就执行下面语句 {//如果找不到。 直接回程序主界%per[i].sum=per[i].paid-per[i].discount+per[i].extra; per[i].realpaid=per[i].paid-per[i].discount; printf("\n职工编号职工姓名基本工资扣款奖金应发工资税金实发工资总工资\n"); printf("\n%6d%8s%5.1f\t%5.1f\t%3.1f\t%5.1f\t%5.1f\t%5.1f\t%4.1f\t \n\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].gotpaid,per[i]. fare,per[i].realpaid,per[i].sum); system("pause"); } } } voidInsertper(structpersonper[])//插入职工工资信息 { intflag=1; pp=per; inti,id; if((fp=fopen("insertdata.sys","wb+"))==NULL) { printf("Cannotopenfilestrikeanykeyexit! "); getch(); exit (1); } fprintf(fp,"职工编号职工姓名基本工资扣款奖金应发工资税金实发工资总工资\n"); printf("输入你插入的职工编号: "); scanf("%d",&id); for(i=0;i { if(per[i].num==id)//判断职工编号信息否存在? { printf("职工编号信息已经存在! \n"); flag=0; getch(); break; } } if(flag! =0) { shuru++;//插入一个,原来的总数增加1 word专业资料 . printf("请确认输入要插入职工编号: "); scanf("%d",&per[shuru-1].num);//如果不存在..那么就把插入的信息放到结构数组最后 printf("输入职工姓名: "); fflush(stdin); gets(per[shuru-1].name); printf("输入职工的工资信息\n"); printf("------------------------------\n"); printf("\n基本工资: "); fflush(stdin); scanf("%f",&per[shuru-1].paid); printf("\n扣款: "); fflush(stdin); scanf("%f",&per[shuru-1].discount); printf("\n奖金: ");//奖金 fflush(stdin); printf("\n税金: ");//税金 fflush(stdin); printf("------------------------------\n"); per[i].sum=per[i].paid-per[i].discount+per[i].extra; per[i].realpaid=per[i].paid-per[i].discount; fprintf(fp,"%6d%8s%5.1f\t%5.1f\t%3.1f\t%5.1f\t%4.1f\t\n",per[shuru-1].num,per[shuru-1].name,per[shuru-1].paid,per[shuru-1].discount,per[shuru-1].extra,per[i].realpaid,per[shuru-1].sum); Sleep(500); printf("插入数据成功! \n"); getch(); } } voidListper(structpersonper[])//浏览所有职工工 { inti=0; for(i=0;i {per[i].gotpaid=per[i].paid-per[i].discount; if(per[i].gotpaid<2000) per[i].fare=0; elseif(per[i].gotpaid>=2000&&per[i].gotpaid<4999) per[i].fare=per[i].gotpaid*0.05; elseif(per[i].gotpaid>=5000&&per[i].gotpaid<10000) per[i].fare=per[i].gotpaid*0.1; elseif(per[i].gotpaid>=10000&&per[i].gotpaid<99999) per[i].fare=per[i].gotpaid*0.25; elseif(per[i].gotpaid>=100000) per[i].fare=per[i].gotpaid*0.3; word专业资料 . per[i].sum=per[i].paid-per[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 报告 职工工资 管理 系统 docx