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

上传人:仙*** 文档编号:77949631 上传时间:2022-04-20 格式:DOC 页数:11 大小:104.50KB
返回 下载 相关 举报
C语言课程设计工资管理系统_第1页
第1页 / 共11页
C语言课程设计工资管理系统_第2页
第2页 / 共11页
C语言课程设计工资管理系统_第3页
第3页 / 共11页
点击查看更多>>
资源描述
C程序课程设计 -工资管理系统 指导老师: 班级:u 设计目的本程序旨在训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,使读者能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现工资管理的原理,为进一步开发出高质量的信息管理系统打下坚实的基础。u 功能描述 输入记录模块输入记录模块主要完成将数据存入数组中的工作。在此工资管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。记录由职工的基本信息和工资信息字段构成。 查询记录模块查询记录模块主要完成在数组中查找满足相关条件的记录。在此工资管理系统中,用户可以按照职工编号或者姓名在数组中进行查找。若找到改记录,则以表格形式打印出此记录的信息;否则返回一个-1的值,并打印出未找到改记录的提示信息。 更新记录模块更新记录模块主要完成对记录的维护。在此工资管理系统中,实现对记录的修改、删除、插入、排序操作。一般而言,系统进行了这些操作后,需要将修改的数据存入源数据文件。 统计记录模块统计记录模块主要完成对公司员工的工资在各等级的人数统计。 输出记录模块输出记录模块主要完成两个任务:第一,它实现对记录的存盘操作,即将数组中各元素的存储的记录信息写入数据文件中。第二,它实现将数组中存储的记录信息以表格的形式在屏幕上打印出来。输入记录模块从文件读入从键盘输入按姓名查询按编号查询修改记录删除记录插入记录排序记录统计工资各等级人数输出至文件输出至屏幕查询记录模块更新记录模块统计记录模块工资管理系统输出记录模块工资管理系统功能模块图u 功能模块设计和实现 输入记录模块(必做)从文件读入功能模块该模块主要是将数据存放在数组中。该模块从数据文件中读取所有记录,通过多次调用fread()文件函数,每次操作都是从文件中读取一条工资记录信息存入数组中的操作,并在main()中实现。若文件中无任何记录,则提示记录为0;如果有记录,则提示读取成功并输出记录个数。从键盘输入功能模块该模块主要实现记录从键盘上输入,add函数实现。首先把文件中存在的记录全部显示出来,而后从键盘接收多次输入记录,如果职工编号重复则提醒重新输入,输入的记录暂保存到结构体数组中,输入0回到主菜单。 查询记录模块(必做)查询模块主要实现在结构体数组中按职工编号或姓名查找满足条件的记录的功能,通过qur()函数来实现。提供两种方式查询:1为按照编号来查询,2按照姓名来查询;如找到查询内容则输出记录值,找不到则提示无此项记录。 更新记录模块更新记录模块主要是实现对记录的修改、删除、插入、排序操作。所有这些操作都在数组中完成。修改记录修改记录操作需要对数组中目标元素的数据域中的值进行修改,分三步完成:首先显示所有的记录,然后输入要修改的职工编号,调用locate()函数定位该职工的编号记录,第三步,若找到该记录,则修改职工编号之外的各字段的值。删除记录删除记录操作完成删除制定的职工编号或者姓名的记录。也分三步完成:首先显示所有的记录,而后输入要修的职工编号或者姓名,输入后调用locate()函数定位该职工的记录,第三步,若找到该记录,则从该记录所在元素的后续元素七,依次向前移一个元素位置,元素个数减1。插入记录插入记录操作完成在指定职工编号的随后位置插入新的记录。首先,它要求用户输入某个员工的职工编号,新的记录将插入在该记录之后;然后提示用户输入一条新的记录信息。排序操作排序操作主要实现按照实发工资降序排序。分两步,首先输出所有的记录,而后按照冒泡排序法的思想进行排序,输出排序的结果。统计记录模块该模块的实现比较简单,首先输出所有的记录,而后根据实发工资进行判断,完成工资在各个等级的人数统计。 输出记录模块(必做)输出至文件模块该模块是把保存在数组中的记录保存到文件中。当把记录输入至文件时,调用fwrite( )函数,即将数组元素中各字段的值都写入文件中。输出至屏幕模块(必做)该模块是把保存在数组中的记录显示到屏幕上,调用disp( )函数,把所有的记录都显示。u 数据结构设计定义结构体emolyee,用于存放职工的基本信息和工资信息。Typedef struct empoyee char num10; 保存职工编号 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条记录,内容为emplyee中的内容。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用于保存输入的字符串,因为是指针形式传递的,所以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)循环结束回到主菜单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中找到满足条件的记录,然后删除该记录。开始提示是按编号删除还是名字删除编号?结束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 tp,int n)函数用于将保存职工工资的数组tp中的n个元素写磁盘的文件数据中。15 主函数main( )main( )是整个工资管理系统的控制部分。开始打开文件存在?把文件内容读出,存入一个结构体数组调用menu()函数进入while(1)循环输入0-9,执行相应操作执行相应函数,完成功能为0?存盘?执行save函数,保存结束提出错误,退出NYNNYYmain函数流程图
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!