C语言程序设计报告职工工资管理系统Word下载.docx
《C语言程序设计报告职工工资管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告职工工资管理系统Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
5、系统设计--------------------------------------------------------------------------4
5.1系统结构----------------------------------------------------------------------4
5.2程序程序图-------------------------------------------------------------------4
5.3产生源程序----------------------------------------------------------------------6
6、实验调试结果(附运行效果图)--------------------------------------------36
7、设计中的问题及解决方法-----------------------------------------------------39
8、设计心得--------------------------------------------------------------------------40
9、参考文献--------------------------------------------------------------------------41
职工工资管理系统的设计与实现
1.设计题目
题目:
工资管理系统
工资管理系统是企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理系统的系统化、规范化和自动化,为企业提高工作效率。
本程序旨在训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。
本程序中涉及结构体、数组、文件等方面的知识。
2.设计要求
1、启动软件时,进行密码校验。
若出错三次,则自动退出系统。
2、实现简易的提示菜单界面,刚运行时应显示版本信息。
用所学的知识尽量实现良好的、美观的“人机界面”,便于软件的操作使用。
3、要求把所有录入的数据以文件的形式,保存在硬盘上。
4、系统包含以下基本功能:
登陆功能、显示主菜单功能、职工信息输入信息输出、职工信息查询、职工信息修改、工资排序、工资统计、导出数据、导入数据、退出等。
5、职工信息输入信息输出要求一个职工的基本信息(编号、姓名、基本工资)的录入,以文件形式保存——输入。
6、职工工资表浏览工资功能——输出。
7、计算职工的工资(输入基本工资、扣款、奖金后,马上算出应发工资、税金、实发工资、总工资)。
8、查询、排序功能——算法。
1)按编号查询、排序。
2)按姓名查询。
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进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)、修改程序和程序的测试。
4.运行环境及工具软件
WindowsXP;
VisualC++6.0(完整绿色版);
5.系统设计
5.1程序逻辑图
图1:
系统结构框图
5.2程序流程图
6.源程序代码
#include<
stdio.h>
//标准输入输出
stdlib.h>
//处理杂乱
windows.h>
//Sleep()
string.h>
//字符串操作
conio.h>
//系统输入输出
time.h>
//时间相关
/**********************下面是对用到的全局常量声明*************************/
#defineNAME10//职工职工姓名长度
#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;
//指针指向结构
cls"
//清屏
inti;
printf("
请问你要输入几个职工的信息:
"
scanf("
%d"
&
shuru);
if((fp=fopen("
inputdata"
"
wb+"
))==NULL)//当前目录下是否存在INPUTDATA文件
{//"
:
读写打开或建立一个二进制文件,允许读和写
Cannotopenfilestrikeanykeyexit!
getch();
exit
(1);
fprintf(fp,"
职工编号职工姓名基本工资扣款奖金应发工资税金实发工作总工资\n"
for(i=0;
i<
shuru;
i++)
输入职工编号:
//输入职工编号
fflush(stdin);
per[i].num);
输入职工姓名:
//输入职工姓名
gets(per[i].name);
输入职工的工资信息\n"
------------------------------\n"
\n基本工资:
"
//基本工资
%f"
per[i].paid);
\n扣款:
per[i].discount);
\n奖金:
per[i].extra);
\n税金:
//税金
per[i].sum=per[i].paid-per[i].discount+per[i].extra;
per[i].realpaid=per[i].paid-per[i].discount;
%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[])
int