数据结构大作业------工资管理系统.DOCVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构大作业------工资管理系统

数据结构大作业------工资管理系统 计算机学院信息安全专业五班 王皓 31号 200530501359 系统功能: 系统具有两个用户等级—管理员等级与用户等级,均用用户名和密码登陆,进入不同的操作界面。管理员和用户的数据分别用“ad.txt”和“user.dat”保存。 a)管理员功能: (1) 用户管理:增加、删除用户; (2)记录的录入,修改,删除; (3)查询:单项查询、多项查询、范围查询; (4)分类统计,提供有代表性的统计结果。 b) 用户功能: (1)修改密码 (2)查询本用户信息 (3)修改个人信息 (二)系统操作示例 a)登陆界面 说明:已定义的用户名与密码包括 (wh,669182),(yy,54321),(zy,54321),(tk,54321),用户可使用其登陆。而且可继续添加用户名。 已定义的管理员名与密码为(ad,111),管理员可使用其登陆。本系统只支持一位管理员。 b)用户功能选择界面 说明:在此界面可选择修改密码,查询个人信息,修改个人信息三个功能。 c)用户修改密码 d)用户信息查询页面 e)用户修改个人信息 f)管理员功能选择界面 g)管理员增加用户 说明:管理员可新增用户,但是不得与已存在的用户名相同 h)管理员删除用户 说明:管理员在右方的列表框里选择用户,可以对其进行删除。 信息查询页面 说明:该查询页面包括单项查询,多项查询,范围查询。查询结果酱在右方的列表框中显示。 1单项,多项查询示例 单项查询 多项查询 2范围查询 j)统计页面: 说明:统计页面可统计的数据包括“用户数量”,“最大年龄”,“最小年龄”,“平均年龄”,“最高工资”,“最低工资”,“平均工资”。 k)修改信息 说明:管理员可对用户的姓名,年龄,工资进行修改,不能对用户名和密码进行修改。 (三)所用到的数据结构: a)链表:链表的特点是插入和删除操作比较容易,在本系统中用到了单向链表。 用到了链表的两个程序段: 1)删除用户:由于本系统采用二进制文件“user.dat”来保存数据,而从二进制文件中删除数据并没有特定的函数来实现,本系统采用先将数据从二进制文件中读入链表,在链表中删除后在将其写入二进制文件的方法。 优点:代码简明易懂 缺点:采用先读出再写入的方法删除数据效率不高,对于大量数据的处理不适宜。 改进方法:采用逻辑删除法。在结构中中增加一项用于记录该项是否要被删除,若要删除,实际上先不对其进行删除操作,而是在读入数据时找到被标志了要删除的结构,进行数据覆盖即可。 2)查询功能中的单项查询与多项查询: 由于单项查询和多项查询可合并为一种情况来处理,因此n个搜索条件将产生2n-1种情况(所有搜索条件都不选的情况不存在)。为了代码的简洁与高效,在单/多项查询中采用了链表。将文件中的数据先写入链表,在对是否采用某个搜索条件进行判断:若采用,则将链表中不符合搜索条件的节点删除,若不采用,直接跳过即可。 优点:采用链表后n个搜索条件只需要进行n次判断即可,提高了程序的效率,而且代码简单易懂。 缺点:由于数据并不是按一定顺序进行存储,无法进一步优化查找算法。 改进方法:数据按顺序存储,在搜索时可采用折半查找法,提高查找效率。 b)Cstring类:在本系统中多次用到CString类及其函数。 主要用到的函数包括: Compare:比较两个字符串的大小 Find:在一个较大的字符串中查找字符或子字符串 Format:格式化字符串 IsEmpty:测试一个Cstring对象是否不含有字符 对CString类做类型转化: 与int的类型转化:CString-int:int=atoi(CString) int-CString:CString.Format(“%d”,int) 与char[]的类型转化:char-CString:CString=char CString-char: strcpy(char,(LPSTR)(LPCTSTR)CString) (四)特殊技巧的说明: 1)单链表的删除多个值相同的节点: 在进行单链表的多个相同节点的删除时,由于节点可能在链表头,链表中,链表尾,因此进行条件判断较困难。因此,在进行删除之前,我设置了一个int型的变量来记录链表中要删除的节点的数目。在进行删除时,每删除一个节点,该值减1。当该变量不为0时,继续循环;当改变量为0时,跳出循环。从而简化了条件判断。 2)设置指针获得登陆时输入的用户名和密码 在用户功能界面要用到登陆时输入的用户名与密码,我开始设置了两个全局变量。但是全局变量很容易被误改,给程序带来副作用。使用CSalsaryDlg*ptr=(CSalsaryDlg*)::AfxGetApp()-GetMainW

文档评论(0)

ailuojue + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档