工资管理系统设计论文.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. PAGE .. 工资管理系统 7.1设计目的 本程序旨在训练基本的编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,使我对C语言的文件操作有了一个更深刻的了解,掌握利用数组存储结构实现工资管理的原理,为进一步开发出高质量的信息管理管理系统打下坚实的基础。 7.2功能描述 如后图所示,与利用单链表实现的学生管理系统不同的是,此工资管理系统主要利用数组来实现,其数组元素是结构体类型。整个系统由如下几大功能模块组成。 输入记录模块。输入记录模块主要完成将数据存入数组中的工作。在此工资管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。记录由职工的基本信息和工资信息字段构成。当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到数组元素中。 查询记录模块。查询记录主要完成在数组中查询满足相关条件的记录。在此工资管理系统中,用户可以按照职工编号或姓名在数组中进行查找。若找到该记录,则以表格形式打印出此记录的信息;否则,返回一个-1的值,并打印出未找到该记录的提示信息。 更新记录模块。更新记录模块主要完成对记录的维护。在此工资管理系统中,实现对记录的修改、删除、插入、和排序操作。一般而言,系统进行了这些操作之后,需要将修改的的数据存入源数据文件。 7.3总体设计 7.3.1功能模块设计 主控main()函数执行流程 工资管理系统执行流程如后图所示。它先以可读写的方式打开数据文件,此文件默认为“c:\zggz”,如该文件不存在,则新建此文件。当打开文件操作成功后,则从文件中一次读出一条记录,添加到新建的数组中,然后执行显示主菜单和进入主循环操作,进行按键判断。 在判断键值时,有效的输入为0~9之间的任意数值,其他输入都被视为错误按键。若输入为0(即变量select=0),则会继续判断是否在对记录进行更新操作之后进行了存盘操作,若未存盘,则全局变量saveflag=1,系统会提示用户是否需要进行数据存盘操作,用户输入Y或y,系统会进行存盘操作。最后,系统执行退出工资管理系统的操作。 若选择1,则调用Add()函数,执行增加记录操作;若选择2,则调用Del()函数,执行删除记录操作;若选择3,则调用Qur()函数,执行查询记录操作;若选择4,则调用Modify()函数,执行修改记录操作;若选择5,则调用Insert()函数,执行插入记录操作;若选择6,则调用Tongji()函数,执行统计记录操作;若选择7,则调用Sort()函数,执行按降序排序记录的操作;若选择88,则调用Save()函数,执行将记录记录存入磁盘中的数据文件的操作;若选择9,则调用Disp()函数,执行将记录以表格形式打印输出至屏幕的操作;若输入0~9之外的值,则调用Wrong()函数,给出按键错误的提示。 2 输入记录模块 输入记录模块主要实现将数据存入数组中。当从数据文件中读出记录时,它调用fread(gz[count],sizeof(ZGGZ),1,fg)文件读取函数,执行一次从文件中读取一条工资记录信息存入某个数组元素中德操作,并且这个操作在main()中调用执行,即在工资管理系统进入显示菜单界面时,该操作已经执行了。若该文件中没有数据,系统会提示数组为空,没有任何记录可操作,此时,用户应选择1,调用Add()函数,进行记录的输入,即完成在数组中添加元素的操作。 3.查询记录模块 查询记录模块主要实现在数组中按职工编号或姓名查找满足相关条件记录。在查询函数Qur()中,为了遵循模块化编程原则,我们将数组中进行的记录定位操作设计成了一个单独函数int Locate(ZGGZ tp[],char findmess[],char nameornum[]),参数findmess[]保存要查找的具体内容,nameornum[]保存要查找的字段(职位字符串类型的num或者name),若找到该记录,则返回指向该记录的数组元素的下标,否则;返回一个—1的值。 4.更新记录模块 更新记录模块主要实现对记录的修改、删除、插入和排序操作。因为记录是以数组的结构形式储存的,所以这些操作都在数组中完成。下面分别介绍着4个功能模块。 修改记录 修改记录的操作需要对数组中目标元素的数域中的值进行修改,他分两步完成。第一步,输入要修改的职员编号,输入后调用定位函数Locate()在数组中逐个对职员编号字段的值进行比较,直到找到该职员的编号记录;第二步,若找到该记录,则修改除职工编号之外的各字段的值,并将存盘标记变量savegfl

文档评论(0)

hkfgmny + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档