信息管理与信息系统专业毕业论文19471.doc_第1页
信息管理与信息系统专业毕业论文19471.doc_第2页
信息管理与信息系统专业毕业论文19471.doc_第3页
信息管理与信息系统专业毕业论文19471.doc_第4页
信息管理与信息系统专业毕业论文19471.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计( 论文) 说明书 题 目: 人事档案管理系统 学 院: 计算机科学与工程学院 专 业: 信息管理与信息系统 姓 名: 学 号: 指导教师: 2013 年 7 月 8 日 摘 要 人事档案管理就是将人事档案的收集、整理、保管、鉴定、统计和提供利用的活动。 人事档案是人事管理活动中形成的,记述和反映个人经历和德才表现,以个人为单位 组合起来,以备考察的文件材料。主要是由人事、组织、劳资等部门在培养、选拔和 使用人员的工作活动中形成的,是个人经历、学历、社会关系、思想品德、业务能力、 工作状况以及奖励处罚等方面的原始记录。是个人参与社会方方面面活动的记载和个 人自然情况的真实反映。人事管理是每个企业必不可少的,人事档案管理系统一般包 括对人事档案的统计、查询、更新、报表输出等功能。如果人工直接统计的话,工作 量将十分庞大,特别是,如果企业员工有几万或几十万人时,人工统计将变得不可能 想象。用计算机可使人们从繁重而又单调的统计运算中解脱出来,仅用一些简单的操 作便可及时准确地获得需要的信息。并且,随着计算机技术的飞速发展,计算机在企 业管理中的普及,利用计算机实现企业人事档案管理势在必行。 开发这个系统目的就是为了帮助企业人力资源部门工作人员提高工作效率,实现 企业人事档案管理的系统化,规范化和自动化。 关键词:人事档案管理 人员情况 工资表 考勤表 输入 查询 删除 更改 排序 人事档案管理系统通过分为员工基本情况表、工资表和考勤表这 3 张表对员工基本 信息进行管理。用户通过向员工基本情况表、工资表和考勤表输入员工各种信息,然 后由系统自行生成相应的统计数据以供用户查询, 进行更新和删除等功能。用户可以 根据系统的提示进行操作,调用系统的各个功能。系统的主要功能有:相应的系统控 制平台,输入员工基本信息,显示员工基本信息,查找员工信息,修改员工信息,删 除员工信息,统计员工信息,还有相应的排序功能。 目 录 引言 4 1 系统介绍 4 2 需求分析 4 2.1 系统需求 4 2.2 开发环 境 6 3 详细设 计 6 3.1 建立存储结构 6 3.2 添加数据 9 3.3 显示信息 9 3.4 修改信息 10 3.5 删除信息 10 3.6 查找数据 11 3.7 各类统计 12 3.8 退出系统 14 3.9 菜单模块 14 4 所遇到的问题和分析解决. . 15 5 系统特 色 15 6 结论 15 参考文献 16 附录 16 引言 如今计算机已经深入到我们日常工作和生活的方方面面,可以这么说我们的生活已 经离不开计算机。科技的飞快发展各方面技术的全面成熟,使得计算机的使用变得越 来越简单,计算机也变得越来越小越来越轻便。各行各业的人们无须经过特别的训练 就能够使用计算机完成许许多多复杂的工作。然而,虽然现在世界上已经充满了多如 牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合 自己特殊需求的软件。 人事档案管理系统则是针对于企事业单位的管理需求而设计的, 使得各单位便于管理和统计员工信息,使操作更加方便简单。 1 系统介绍 人事档案管理系统是针对单位职工的基本信息的管理,主要包括 3 张表,人员基本 情况管理表、工资管理表和考勤管理表,通过这 3 张表对员工基本信息进行管理。所 使用的数据类型是单链表,建立三个链表,分别表示 3 张表。 用户通过向单位职工信息表输入员工编号、员工姓名、性别、年龄、工资、部门、 受教育年限等基本信息,向工资管理表中输入员工编号、基本工资、缺勤扣发工资、 扣税、实发工资等信息,向考勤管理表中输入员工编号、月缺勤天数等,然后由系统 自行生成相应的统计数据以供用户查询, 能对这些基本信息进行更新和删除。用户可 以根据系统的提示进行操作,调用系统的各个功能。系统的主要功能有:相应的系统 控制平台,输入员工基本信息,显示员工基本信息,查找员工信息,修改员工信息, 删除员工信息,统计员工信息,还有相应的排序。 用户第一次使用该系统时,首先需要向表中输入数据,输入的数据分别保存在当前 目录下的人员情况、考勤表、工资表三个文本文件中,以二进制的形式保存的,用该 系统打开方可读取。下次再使用该系统时,系统会自动将人员情况、考勤表、工资表 中的数据读入单链表中,用户可以根据相应的提示做出相应的操作。 2 需求分析 2.1 系统需求 随着企事业单位的发展,人员会越来越多,而每一个企业分很多部门,每个部门又 分为许多科或室等,而其下又分为不同的职务。用笔和纸记录人员档案信息的方法存 在许多缺陷,例如不易更新、不易存放、不安全、容易丢失、难以备份等。管理起来 效率低下而且很可能造成管理上的混乱。自己建立简单的电子文档对信息管理进行管 理虽然克服了以上的缺点,但查询效率较低,特别是当数据量十分庞大时,劣势尤其 明显。因此开发一个既可以存储信息,又可以进行修改更新、查询、管理等功能人事 档案管理系统显得十分必要。 人事档案管理系统就是针对人员的信息进行管理,有三张表,主要是通过相同的员 工编号将这三张表来联系起来的。主要功能是对人员档案信息进行操作,主要有添加、 显示、插入、删除、查找、修改等功能。具体如下介绍,该系统的主要功能如以下几 点: (1) 系统主控制平台也就是主菜单,用户可以在主菜单中选择相应的操作,包括 添加员工基本信息,显示员工基本信息,查找员工信息,修改员工信息,删除员工信 息,统计员工信息,还有相应的排序。用户只要相应的编号就可以选择相应的操作。 (2)添加员工基本信息,在主菜单中选择相应的操作后,用户可根据提示输入员工 的的信息,输入完一条信息之后,可以根据系统的提示继续输入下一条员工信息或者 进行别的操作。允许输入多条员工信息,输入员工信息之后暂时保存在单链表中,当 完成添加操作后,系统会将数据保存到相应的文本文件中,下次使用时再从该文本中 读取。 (3)显示员工基本信息,在主菜单中选择相应的操作后,将在屏幕上显示员工的基 本信息数据。如果没有该员工的基本信息,则给出相应的提示。查找员工基本信息, 在该菜单下用户可以根据员工编号、员工姓名、部门、职务、部门与职务组合、按年 龄层、还可查看员工工资及缺勤情况等关键字进行查找。在主菜单中选择相应的操作 后,用户可以根据信息提示,可以分别选择根据员工编号、员工姓名、部门、职务、 部门与职务组合等等进行查找员工信息并显示相应的员工信息。如果查找不到则给出 相应的提示,并给出选择,是继续查找还是返回主菜单。 (4)修改员工基本信息,可以修改员工基本信息表、考勤表、工资表。在主菜单中 选择相应的操作后,首先提示用户输入要修改的员工的编号,只允许输入员工编号进 行查找并修改,这样可以避免同名时带来的不便,因为每个员工只有一个员工编号而 一个企业可以有相同姓名的员工。如果单链表中有该信息存在,则提示用户输入要修 改的信息,并将结果重新保存在链表中,完成修改操作后,自动将数据保存到相应的 文本文件中,下次使用时自动打开。如果没有则给出相应的提示,是继续还是返回主 菜单。 (5)删除员工基本信息,在主菜单中选择相应的操作后,首先提示用户输入要删除 的员工的编号,只允许输入员工编号进行查找并删除,这样可以避免同名时带来的不 便,因为每个员工只有一个员工编号而一个企业可以有相同姓名的员工。如果单链表 中存在该信息,则直接删除全部信息,如果没有找到,则给出相应的提示,是继续还 是返回主菜单。完成删除操作后,自动将数据保存到相应的文本文件中,下次使用时 自动打开。 (6)统计员工信息,该菜单下分为:统计性别人数、统计年龄段人数;某部门内部, 不同职位员工工资比较;不同受教育水平人的平均工资比较。在主菜单中选择相应的 操作后,用户可以根据相应的提示选择想要的功能。 统计性别和年龄段人数时,得出的结果是人数的总和,并且打印出处于其中的 员工的姓名和所在部门及其编号。在进行某部门内部,不同职位员工工资比较时, 得出的结果是不同职务的员工的工资,打印出结果。在进行不同受教育水平人的工 资比较时,得出的结果是各个受教育年限的工资花名册。每选择一种统计之后,完 成统计的操作并且给出结果之后,返回统计员工信息的菜单,用户可以根据相应的 提示做出相应的选择,是否继续查看统计信息还是返回主菜单。 相关提示有: (1)相应的排序,在主菜单中选择相应的操作后,在排序菜单下分为:按年龄排 序、员工工资进行排序、缺勤天数进行排序。各个排序给出的结果都是排序之后的 结果,并且打印出来。完成一个排序之后,返回排序的菜单,用户可以根据相应的 提示做出相应的选择,是否继续查看排序结果还是返回主菜单。 (2)保存文件,该功能是将单链表中的数据保存于文本文件中。 (3)故障处理,该模块是为了防止用户用于不会使用该系统而造成的系统出错而 设计的。如果用户输入错误则给出相应的错误提示,并且自动返回上一级菜单。 2.2 开发环境 开发工具使用 visual c+6.0,使用 c 语言作为开发语言。由于个人比较熟悉 visual c+6.0 的编程环境,而且对于 c 语言比较熟悉,故选择这两者。 3 详细设计 下面是整个系统的功能结构图,这个图可以帮助我们更好的了解这个系统: 人事档案管理系统 添 加 数 据 各 类 统 计 删 除 信 息 显 示 数 据 查 找 信 息 退 出 系 统 修 改 信 息 图 3-1 3.1 建立存储结构 利用单链表来存储数据,创建 3 个结构体,分别存放人员基本信息、员工工资信息、 员工考勤信息。利用 malloc 函数来申请空间并创建 3 个链表,分别表示员工部门基本 信息,员工工资信息,员工考勤信息。利用 read1()、 read2()、read3()函数分别从人 员情况、工资表、考勤表这三个文本文档中读取数据,利用 fopen()函数将文本文档中 的数据以读和写的方式打开二进制文件,如果该文件不存在则先建立它。将数据分别 读入相应的单链表中,以便进行下一步操作。利用 write1()、write2()、write3()函 数分别将三个单链表中的数据以二进制的形式写入文本文档中,以“wb+”的形式,也 就是也读或写的方式打开一个二进制文件,如果文件名存在原来的内容将会被销毁, 这样就避免了读取数据和保存数据时的数据重复的现象。 关于 read1()函数,该函数的主要功能是将文本文件中的数据读取到链表中。首先 利用 file *file 创建一个指向文件的指针。利用 if(file=fopen(“e:/人员情况. txt“,“ab+“)=null)来判断读取文件是否成功,不成功则返回主菜单。若读取成功, 利用 while(!feof(file)来判断读取是否完成,完成则关闭文件并返回主菜单。读取 时首先申请一个临时的节点,将文本中的数据读入该节点中,将该节点连接到尾指针 处,然后尾指针向后移一位,依次循环,直到读取工作完成。如果读取失败则将尾指 针的 next 赋值为空,即 r1-next = null;,并返回主函数。read2()、read3()函数的 功能与 read1()函数的功能相似,算法一样。read1()是读取人员情况中的数据, read2()读取工资表中的数据,read3()是读取考勤表中的数据。 下面附属代码: int read1() file *file; if(file=fopen(“人员情况.txt“,“ab+“)=null)/判断是否打开失败 printf(“read file open error!npress any key to continue!“); getchar(); return 0; while(!feof(file) pnode1 temp=(pnode1)malloc(sizeof(struct node1);/定义临时节点并 分配空间 zeromemory(temp,sizeof(struct node1); if(fread(temp,sizeof(struct node1),1,file)!=1)/判断读取是否成功 r1-next = null; return 0; r1-next = temp;/链接到尾指针 r1 = r1-next;/尾指针移动 r1-next = null; fclose(file); return 0; 关于 write1()函数,该函数的功能时将链表中的数据写到文本文档中,并且会覆 盖原来文本文当中的数据。首先利用 file *file 创建一个指向文件的指针。然后创建 两个临时的节点指针 temp 和 q 并分别赋值,将所要写入文件的头结点的 next 赋给临 时指针。利用 if(file=fopen(“e:/人员情况.txt“,“ab+“)=null) 来判断读取文件 是否成功,不成功则返回主函数。若读取成功,则将链表写入文本文件中,利用 fwrite(temp,sizeof(struct node1),1,file);将结点中的数据依次写入文本文件中直 到写入完成。最后关闭文件,并返回主函数。write2() 、write3()函数的功能与 write1()函数类似,算法一样。write1()是将人员情况数据写入到人员情况的文本文 档中,write2()是将人员工资情况写入工资表中,write3() 是将考勤情况写入考勤表 中。 下面为附属代码: pnode1 write1() file *file; pnode1 temp,q; temp = head1-next; q=head1-next;/建立临时节点,并赋值 if(file=fopen(“人员情况 .txt“,“wb+“)=null)/判断如果以追加 2 进制的方式 打开失败 printf(“read file open error!npress any key to continue!“); getchar(); return null; while(q != null)/循环 q,依次写入文本中 fwrite(temp,sizeof(struct node1),1,file);/在新定的位置处取一段数据 到 temp temp = q-next; q = q-next; fclose(file);/关闭文件 return null; 3.2 添加数据 该功能使用的函数是: void insert_list1(node1 *head) /添加人员基本信息 void insert_list2(node2 *head)/添加工资基本信息 void insert_list3(node3 *head)/添加考勤信息 这三个函数分别向三张表中添加数据,每个函数传的参数分别是存放人员情况、考 勤表、工资表的链表的尾指针。在该函数中,首先定义一个控制循环的变量 ch,首先 将其赋值为 1,在循环结构里面定义新的节点并申请空间,然后赋值,然后将该结点接 到尾指针上,尾指针移动。最后由用户自由改变 ch 的值来选择是否继续输入或者退出 返回。 while(ch=1)/条件控制 printf(“请输入员工编号和缺勤天数: n“); scanf(“%d %d“, curr=(struct node3*)malloc(sizeof(node3);/申请空间 zeromemory(curr,sizeof(struct node3); curr-id=id;/赋值 curr-data=data; curr-next=null; r3-next=curr;/接到尾指针 r3=r3-next; printf(“1、继续输入 n0、返回n“); scanf(“%d“, 3.3 显示信息 该模块有三个函数,为: void show(pnode1 h1);/显示人员基本情况 void show_list2(pnode2 head2);/显示工资情况 void show_list3(pnode3 node);,/显示考勤情况 功能时将链表中的数据显示在屏幕上。传进去的参数分别为三个链表的头指针,然 后遍历链表将其中的数据输出。该模块式比较简单的模块,这里不作过多介绍。下面 是实验结果截图: 人事档案管理系统 * 1、添加信息 2、显示信息 3、查找信息 4、修改信息 5、查看各类统计信息 6、删除信息 7、退出系统 * 请输入相应的编号: 2 显示信息 * 1、显示员工信息表 2、显示员工工资表 3、显示员工考勤表 4、返回主菜单 * 请输入相应的编号: 1 员工信息如下: 编号 姓名 年龄 性别 所在部门 职务 受教育年限 1001 战三 30 男 财务部 职员 15 1002 李四 26 男 销售部 职员 15 1003 李丽 36 女 财务部 经理 16 1004 李玉 26 女 公关部 职员 15 1005 王宇 31 男 副经理 副经理 20 1006 露露 36 女 销售部 职员 15 1009 了解 40 男 财务部 经理 20 显示信息 * 1、显示员工信息表 2、显示员工工资表 3、显示员工考勤表 4、返回主菜单 * 请输入相应的编号: 3.4 修改信息 该模块有三个函数,其功能是将链表中的数据进行修改,并且会保存会原来的文本 文件中。我们平时在输入信息的时候难免会出现错误,所以这个修改信息的函数是十 分必要的。 该模块有三个函数: void updata_manage1(node1 *head)是修改人员基本信息, void updata_manage2(node2 *head)是修改员工工资表, void updata_manage3(node3 *head)是修改考勤表。 通过用户选择要修改的表的信息,然后调用该函数。用户需要输入要修改的员工的 编号,只能以编号查,这样就可以避免同名时带来的不便。将链表的头节点作为参数 传进去,遍历整个链表,查找相应的员工的编号。若寻找到该编号的员工,则输入新 的数据并覆盖原来的数据,提示用户修改成功。若没有查到相应的编号,则给出相应 的提示。 3.5 删除信息 该模块有三个函数,其功能是将链表中的数据进行删除,并且会保存会原来的文本 文件中。由于信息需要更新,所以删除信息的函数也好似必不可少的!有三个函数: int del_manage1(node1 *node1)是用来删除人员信息表中的数据,传入的参数为 人员信息链表的头节点。 int del_manage2(node2 *node2) 是用来删除工资表中的数据,传入的参数为工资 链表的头节点。 int del_manage3(node3 *node3) 是用来删除考勤表中的数据,传入的参数为考勤 链表的头节点。 使用时要输入要删除的员工的编号,在执行运算时,首先从链表的第一个元素开始, 依次将每个节点的编号与输入的编号 temp 进行比较,如果找到值为 temp 的节点将其 前驱节点的储存位置记录在指针变量 pre1 中,然后指针修改语句 pre1-next=pre1- next-next 删除值为 temp 的节点,下图反映了删除时节点置身的变化: 图 3-3 int del_manage1(node1 *node1) node1 *pre1=null,*curr1=null; pre1=node1;/定义临时节点并赋值 printf(“请输入要删除的员工编号:n“); int temp1=0; scanf(“%d“,/输入要删除的编号 if(pre1-next=null)return 0;/为空表则返回主函数 while(pre1-next!=null/找到值为 temp1 的节点的前驱节点 if(pre1-next=null)/没有找到值为 temp1 的节点 h h2h2h1 h4 n printf(“not exist!n“); return 0; else curr1=pre1-next;/将 id 为 temp1 的节点赋给 curr1 pre1-next=curr1-next;/讲 id 为 temp1 的节点的后续节点接到 curr free(curr1);/释放 curr1 printf(“删除成功! n“); return (1); /删除人员基本表的信息 3.6 查找数据 由于人员信息系统的信息量十分庞大,想要从名单中找出某个人的信息十分困难,所 以查找信息也是十分必要的!该模块只要是通过提示用户输入关键字,并保存在 temp1 这个临时变量中,然后遍历整个链表,找出与关键字相符的员工的信息并打印员工信 息道屏幕上,查找分为几种关键字查找,具体分为:员工编号、员工姓名、部门、职 位、年龄层。还有查看某员工工资或者考勤记录的功能。 显示结果如下: 人事档案管理系统 * 1、添加信息 2、显示信息 3、查找信息 4、修改信息 5、查看各类统计信息 6、删除信息 7、退出系统 * 请输入相应的编号:3 查找菜单 * 1、按员工编号查找 2、按员工姓名查找 3、按部门查找 4、按职位查找 5、按年龄层查找 6、查看员工工资 7、查看员工缺勤情况 8、返回主菜单 * 请输入相应的编号: 查找数据的函数有: void find_by_id(pnode1 head1 );/通过员工 id 查找 void find_by_name(pnode1 head1 );/通过姓名查找 void find_by_job(pnode1 head1);/通过植物职务查找 void find_by_dep(pnode1 head1);/通过部门查找 void find_by_age(node1 *head1);/通过年龄查找 void find_by_money(node2 *head);/察看员工工资 void find_by_off(node3 *head);/查找员工缺勤天数 3.7 各类统计 在一个比较完善的系统当中,除了必要的一些操作之外,还应该具有一些适当的具 有特色的操作。该模块有 6 种统计,分别是:统计员工总人数,统计性别及比例,统 计员工中的年龄分布,统计受教育水平,不同受教育水平的有员工工资比价,相同部 门内的员工工资。还有三种排序 v,分别是以员工年龄进行排序,实发工资进行排序, 还有缺勤天数进行排序。 统计员工人数、员工的年龄分布和统计性别所给出的结果是一个整型的数据;这三 个统计都是利用遍历整个链表然后比较关键字符条件符合的则记录下来。 统计不同受教育水平,有 int count_m_edu(pnode1 head,pnode2 head0)函数完成, 给出的结果是相同受教育水平的员工的基本信息包括工资信息。传进函数里面的参数 是工资表和人员情况表的头指针。然后由用户输入要查看的年龄层,根据用户输入的 信息,首先遍历人员情况表找出符合年龄的人员,记下期员工编号保存于临时变量 temp 中,然后再遍历工资表找出与 temp 相符的员工编号,然后打印出其工资信息,循 环直至完成操作。 统计相同部门内,不同员工的工资比较,由 int count_dep_1(pnode1 head,pnode2 head0)完成。给出的结果是相同部门内员工的基本信息,包括工资信息。 传进函数里面参数为工资表和人员情况表的头指针。然后由用户输入要查看的部门名 称,保存在 temp 中。首先遍历人员情况表,通过比较函数 (strcmp(pre1-dep,temp) =0)从人员信息表中找出相应部门的员工,找到符合的员工立即遍历工资表,将工资 表的员工编号与人员情况表中符合信息的员工编号比较,若符合则打印出员工的信息, 包括工资信息。 下面是 int count_dep_1(pnode1 head,pnode2 head0)部分代码: while(pre1) if(strcmp(pre1-dep,temp)=0)/比较函数来判断是否为要统计的部门 while (pre2) if (pre1-id=pre2-id)/比较两个链表的 id printf(“%d %s %fn“,pre2-id,pre1-dep,pre2-f); break; pre2=pre2-next;/pre2 向前移 pre1=pre1-next;/pre1 向前移 排序中所使用的排序算法为冒泡排序和直接插入排序。冒泡排序是先将序列中的第 一个元素与第二个元素进行比较,如果前者大于后者,则交换位置否则不变;然后将 第二个元素与第三个元素比较,做同样的比较,依此类推直至处理完第 n-1 和第 n 个 记录,这样的 n-1 次比较和交换成为一次起泡;每一次起泡将记录中的最大的元素至 于第 n 个位置。在对 n-1 个记录进行相同的处理,直至排序完成。直接插入排序,是 在 n 个记录中插入 ri时,记录被划分为两个区域r 0, ri-1和r i,rn-1,其中前一个区 间已经排好序,后一个区间是当前未排序的部分,将第 i 各排序码与前 i-1 个依次比 较,找出应该插入的位置,将记录 ri 插入进去。 对于年龄和工资的排序采用的是冒泡排球,缺勤天数的排序采用的是直接插入排序。 下面附属部门代码: 年龄的排序: for(pre1;pre1;pre1=pre1-next)/遍历 pre1 for(pre2=head-next ;pre2-next;pre2=pre2-next)/遍历 pre2 if(pre2-agenext-age) id=pre2-id; age=pre2-age; edu=pre2-edu; strcpy(name,pre2-name); strcpy(sex,pre2-sex); strcpy(dep,pre2-dep); strcpy(job,pre2-job); pre2-age=pre2-next-age; pre2-edu=pre2-next-edu; pre2-id=pre2-next-id; strcpy(pre2-dep,pre2-next-dep); strcpy(pre2-job,pre2-next-job); strcpy(pre2-name,pre2-next-name); strcpy(pre2-sex,pre2-next-sex); pre2-next-age=age; pre2-next-edu=edu; pre2-next-id=id; strcpy(pre2-next-dep,dep); strcpy(pre2-next-job,job); strcpy(pre2-next-name,name); strcpy(pre2-next-sex,sex);/交换链表中的数据 p=head-next; 缺勤天数的排序: first = head-next; /原链表剩下用于直接插入排序的节点链表 head-next = null; /只含有一个节点的链表的有序链表 while (first != null) /有数据存在 for (t=first, q=head; (q!=null) p=q, q=q- next); /查找插入位置 first = first-next; if (q = head) /插到第一个节点之前 head = t; else /p 是 q 的前驱 p-next = t; t-next = q; /插入完成 3.8 退出系统 该功能是为了系统安全的退出,由 exit(0)函数来完成。 3.9 菜单模块 该模块有各个级别的菜单函数组成,主要功能是方便用户操作系统,方便选择各类 功能。主要包括的有: void main_menu()主菜单函数; void del_menu()删除菜单函数; void find_menu()查找菜单函数; void paixv_menu()排序菜单函数; void show_menu()显示菜单函数; void update_menu()修改信息菜单函数; void insert_menu()添加信息菜单函数; void some_menu()各类统计菜单函数; 通过这些菜单函数来调用相应的功能,使该系统的功能更能被方便的使用。 4 所遇到的问题和分析解决 在编写该系统时,一开始就遇到了一个最严重的问题,那就是读写文件的问题。作 为一个完善的系统,必须具有保存数据和读取数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论