版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c程序课程设计 -工资管理系统 指导老师: 班级:u 设计目的本程序旨在训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉c语言的文件和结构数组的各种基本操作。本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,使读者能对c语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现工资管理的原理,为进一步开发出高质量的信息管理系统打下坚实的基础。u 功能描述 输入记录模块输入记录模块主要完成将数据存入数组中的工作。在此工资管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。记录由职工的基本信息和工资信息字段构成。 查询记录模块查询记录模块主要完成在
2、数组中查找满足相关条件的记录。在此工资管理系统中,用户可以按照职工编号或者姓名在数组中进行查找。若找到改记录,则以表格形式打印出此记录的信息;否则返回一个-1的值,并打印出未找到改记录的提示信息。 更新记录模块更新记录模块主要完成对记录的维护。在此工资管理系统中,实现对记录的修改、删除、插入、排序操作。一般而言,系统进行了这些操作后,需要将修改的数据存入源数据文件。 统计记录模块统计记录模块主要完成对公司员工的工资在各等级的人数统计。 输出记录模块输出记录模块主要完成两个任务:第一,它实现对记录的存盘操作,即将数组中各元素的存储的记录信息写入数据文件中。第二,它实现将数组中存储的记录信息以表格
3、的形式在屏幕上打印出来。输入记录模块从文件读入从键盘输入按姓名查询按编号查询修改记录删除记录插入记录排序记录统计工资各等级人数输出至文件输出至屏幕查询记录模块更新记录模块统计记录模块工资管理系统输出记录模块工资管理系统功能模块图u 功能模块设计和实现 输入记录模块(必做)从文件读入功能模块该模块主要是将数据存放在数组中。该模块从数据文件中读取所有记录,通过多次调用fread()文件函数,每次操作都是从文件中读取一条工资记录信息存入数组中的操作,并在main()中实现。若文件中无任何记录,则提示记录为0;如果有记录,则提示读取成功并输出记录个数。从键盘输入功能模块该模块主要实现记录从键盘上输入,
4、add函数实现。首先把文件中存在的记录全部显示出来,而后从键盘接收多次输入记录,如果职工编号重复则提醒重新输入,输入的记录暂保存到结构体数组中,输入0回到主菜单。 查询记录模块(必做)查询模块主要实现在结构体数组中按职工编号或姓名查找满足条件的记录的功能,通过qur()函数来实现。提供两种方式查询:1为按照编号来查询,2按照姓名来查询;如找到查询内容则输出记录值,找不到则提示无此项记录。 更新记录模块更新记录模块主要是实现对记录的修改、删除、插入、排序操作。所有这些操作都在数组中完成。修改记录修改记录操作需要对数组中目标元素的数据域中的值进行修改,分三步完成:首先显示所有的记录,然后输入要修改
5、的职工编号,调用locate()函数定位该职工的编号记录,第三步,若找到该记录,则修改职工编号之外的各字段的值。删除记录删除记录操作完成删除制定的职工编号或者姓名的记录。也分三步完成:首先显示所有的记录,而后输入要修的职工编号或者姓名,输入后调用locate()函数定位该职工的记录,第三步,若找到该记录,则从该记录所在元素的后续元素七,依次向前移一个元素位置,元素个数减1。插入记录插入记录操作完成在指定职工编号的随后位置插入新的记录。首先,它要求用户输入某个员工的职工编号,新的记录将插入在该记录之后;然后提示用户输入一条新的记录信息。排序操作排序操作主要实现按照实发工资降序排序。分两步,首先输
6、出所有的记录,而后按照冒泡排序法的思想进行排序,输出排序的结果。统计记录模块该模块的实现比较简单,首先输出所有的记录,而后根据实发工资进行判断,完成工资在各个等级的人数统计。 输出记录模块(必做)输出至文件模块该模块是把保存在数组中的记录保存到文件中。当把记录输入至文件时,调用fwrite( )函数,即将数组元素中各字段的值都写入文件中。输出至屏幕模块(必做)该模块是把保存在数组中的记录显示到屏幕上,调用disp( )函数,把所有的记录都显示。u 数据结构设计定义结构体emolyee,用于存放职工的基本信息和工资信息。typedef struct empoyee char num10; 保存职
7、工编号 char name15; 保存职工姓名 float jbgz; 保存职工基本工资 float jj 保存职工奖金 float kk; 保存职工扣款 float yfgz; 保存职工应发工资 float sk; 保存职工税款 float sfgz; 保存职工实发工资zggz;u 函数功能描述1 void printheader( ) 函数用于在以表格形式显示记时,打印输出表头信息。2 void printdata( zggz pp) 函数用于以表格显示的方式,打印输出单个数组元素中的记录信息。3 void disp( zggz tp,int n)函数用于显示数组中存储的n条记录,内容为e
8、mplyee中的内容。4 void wrong( )函数用于显示错误提示语句。5 void menu( ) 函数用于显示主菜单,共有0-9个选择。6 void nofound( ) 函数用于显示未找到提示语句。7 float numberinput( char *notice)函数用于输入数值型数据,notice用于保存printf( )中输出的提示信息。该函数返回用户输入的浮点类型数据值。8 void stringinput(char*t,int lens,char * notice )函数用于输入字符串,并进行字符串长度验证(长度小于lens),t用于保存输入的字符串,因为是指针形式传递的
9、,所以t相当于函数的返回值。notice用于保存printf( )中输出的提示信息。9 int locate( zggz tp,int n,char findmess,int nameornum)函数用于定位数组中符合要求的元素,并返回该数组元素的下标值。参数findmess保存要查找的内容,nameornum保存按什么字段在数组tp中查找。10 int add(zggz tp,int n )函数用于在数组tp中增加工资记录元素,并返回数组中的当前记录数。开始调用disp函数显示所用记录输入为0?调用stringinput函数输入编号输入的内容保存到结构体数组中进入while(1)循环结束回到
10、主菜单ny编号存在?重新输入?nnyyadd函数流程图11 void qur(zggz tp,int n)函数用于在数组tp中按职工编号或者姓名查找满足条件的记录,并显示记录。开始提示是按编号查询还是名字查询编号?结束nyny数组内容有?调用locate函数定位记录输出找到记录找到?返回主菜单yn调用locate函数定位记录找到?输出找到记录ny调用stringinput函数输入查询编号调用stringinput函数输入查询编号qur函数流程图12 int del( zggz tp,int n)函数用于先在数组tp中找到满足条件的记录,然后删除该记录。开始提示是按编号删除还是名字删除编号?结束
11、nyny数组内容有?调用locate函数定位记录删除记录找到?返回主菜单yn调用locate函数定位记录找到?删除记录调用stringinput函数输入删除编号调用stringinput函数输入删除姓名yndel函数流程图13 void modify(zggz tp,int n)函数用于在数组tp中修改记录元素。开始调用disp函数显示所有的记录找到?结束ny数组内容有?返回主菜单yn调用stringinput函数输入修改编号调用locate函数定位记录逐步修改数据调用disp函数显示所有的记录modify 函数流程图14 int insert(zggz tp,int n)函数用于在数组tp中插入记录,并返回数组中的当前记录数。开始调用disp函数显示所用记录查询插入编号存在?调用stringinput函数输入编号输入的内容保存到结构体数组中进入while(1)循环结束回到主菜单ny重新输入?ny调用disp函数显示所用记录insert函数流程图15 void tongji(zggz tp,int n)函数用于在数组tp中完成记录的统计工作,统计该公司职工工资的整体分布情况。16 void sort( zggz tp,int n)函数用于在数组tp中完成利用冒泡排序法实现数组的按实发工资字段的降序排序。17 void save(zggz
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《过敏性紫癜曹伟》课件
- 《代商务礼仪》课件
- 《确定市场调研目标》课件
- 房屋租赁合同(2篇)
- 《硬盘使用前的处理》课件
- 2024年汽轮机油产品研发与技术转移合作协议3篇
- 2025年郑州货运从业资格证题库
- 2025年昌都货运从业资格证考试模拟考试题库下载
- 2024年混凝土构件生产及安装合同
- 2025年济南道路运输从业人员从业资格考试
- 监理公司各部门职责
- 253种中药材粉末显微鉴别主要特征
- 论辛弃疾词作的愁情主题及其审美价值
- 新形势下我国保险市场营销的现状、问题及对策
- LTE无线网络优化PPT课件
- 动态血压监测在社区高血压患者管理的意义
- 管道中英文对照表
- 240灯控台_说明书
- 新形势下加强市场监管局档案管理工作的策略
- 例行检查和确认检验程序
- 上海旅游资源基本类型及其旅游区布局特点(共5页)
评论
0/150
提交评论