logo资料库

数据结构课程设计 华南理工大学.docx

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
课程设计报告书 课题:数据结构大作业——文档资料管理系统 学 院 专 业 学生姓名 学生学号 指导教师 课程编号 课程学分 华南理工大学 网络工程 张见威 145078 1 提交日期 2014.04.08-2012.06.18
教 师 评 语 成 绩 评 定 备 注 教师签名: 日期:
毕业设计管理系统 一、选题背景 每个大学每年都会产生大量的毕业设计相关数据,包括毕业论文、源程序、 答辩 PPT、开题报告、中期检查表等。 华南理工大学计算机科学与工程学院一位多年指导本科生毕业设计工作的 老师在工作中发现。现有的系统一般只保存毕业生的毕业论文,与之相关的源程 序、答辩 PPT、开题报告、中期检查表等重要资料往往没有得到妥善的管理,这 些资料不但具有重要的参考价值而且还在很大的程度上体现毕业生的辛勤劳动。 另一方面,现有的系统中,教师查看已经指导过的学生的资料时,也没有快 捷的方法,大大降低了学院的工作效率。而且,当前的毕业设计系统只能提供给 毕业生、教师使用,其他有兴趣学习了解跟毕业设计有关的知识的学生,却没有 便捷的途径。造成了一定程度上的资源浪费。 笔者参与了一个毕业设计管理系统的 SRP 项目,借着大作业的契机,实现该 毕业设计管理系统的雏形。 二、方案论证(设计理念) 功能: 游客: 1. 搜索论文 2. 查看论文 3. 注册成为用户 毕业生端: 1. 注册 2. 登录 3. 搜索论文 4. 收藏论文 5. 修改个人信息 6. 修改自己的论文信息 7. 举报不实论文 8. 查看论文提交审核进度 9. 查看论文评审结果 教师端: 1. 注册 2. 登陆 3. 修改个人信息 4. 查看指导的学生信息 5. 搜索论文 6. 举报不实论文 7. 审核论文
8. 给论文打分 管理员 1. 查看举报记录 2. 搜索论文 3. 管理学生权限 4. 管理教师权限 要求: 大数据条件下,相应时间不大于 10s 系统安全性:用户登录均需要密码验证,除总数外都用 dat 存放,不容易直接读 取信息。 数据完整性:每次打开加载全部数据到内存中,退出系统时将数据保存到本地文 件。用户 ID 都是系统自动分配的,自动防止了 ID 重复。 运行环境与性能要求:机器配置了 VS2010 运行库。内存大于 128M,硬盘有足够 空间存放运行数据(一个 txt 和五个 dat 文件)有 D 盘分区。 三、过程论述 <1>采用的思路与数据结构论述: 1. 使用 二进制文件.dat 和文本文件.txt 存取数据。文本文件只用于存放统计 数据,即论文个数,学生数,教师数,管理员数,举报数,二进制文件 stulist.dat, teclist.dat, artlist.dat, replist.dat, manlist.dat,(存 在 D 盘)分别存放学生信息,教师信息,文章信息,举报信息,管理员信息。 使用二进制可以方便得读写定长数据,出于习惯也选择了二进制文件。 2. 使用一个模板类 Link List 存放临时数据,参照了数据结构课本的 LinkList。 详见 llist.h。文件管理中需要做查找、插入、删除、修改等操作,而 LinkList 做插入只需 O(1),其他最多需要 O(n),直接对硬盘做 I/O 速度比在 LinkList 中做读写要慢得多,因此选择它存放临时数据。 3. 类定义中,Authority 和 State 类表示了用户权限和文章状态,用于作为用 户类和文章类的基类。 4. 每个文章记录为一个 Artcle 类对象,包括 artid 等表示文章特点的属性, stuname 等表示作者特点的属性,tecname 等表示指导老师特点的属性,方 法中有对各个属性的读写的方法,以及复制构造函数等。 5. 每个学生记录为一个 Student 类对象,包括 stuid 等表示作者特点的属性, 以及两个相当于外键的 id,即 tecid 和 artid,方法中有对各个属性的读写 的方法,以及复制构造函数等。 6. 每个举报记录为一个 Record 类对象,包括举报者 ID,举报文章 ID。 7. 每个教师记录为一个 Teacher 类对象,包括 tecid 等表示作者特点的属性, 以及两个相当于外键的 id,即 artid 和 stuid,方法中有对各个属性的读写
的方法,以及复制构造函数等。 8. 每个管理员记录为一个 Manager 类对象。ID 与 PWD 用于登陆,用户名只用于 显示。 9. 每个类都写了重载运算符==,用于 Link List 类中做判断, 10. 类对象的详细内容见 leidef.h; 11. 写了一个静态方法 strcontain 支持部分查找。详细内容见 function.h。主 要利用了 string 的 find 方法支持对 char*的部分匹配查找。 12. 主要思路是打开系统时从 dat 和 txt 中读取信息到 list 中,之后都在 list 上做操作,退出系统时可以保存数据。 13. 对于需要做多次查询的窗口,即 Form2(搜索论文窗口),建立索引,实现后 续高速查找。 14. 主要的窗体之一为学生信息管理 StuForm,其中涉及一次按照文章 ID 查找毕 业生对应的 article,因为只需一次查找,故没有建立索引,直接在 list 上查找的时间开销决定于 articleID 的大小。ID 越大查找越慢。 15. 教师信息管理系统 TecForm 窗体。因为也是单次查询所以直接在 list 上查 找。时间开销与 StuForm 类似 16. 文章状态有保存、提交、审核三种用于支持师生对文章的管理。 17. 用户权限有查找和举报两种,用于支持管理员对用户权限的管理。 <2>界面展示 用户登录: 点击注册
输入用户名和密码后系统自动分配一个 ID 给用户,并自动跳转到各个界面。 如果没有选择用户类型将跳转到游客界面,即查找界面,可以按各种条件查询论文,输入感 兴趣的论文 ID 可以查看具体的论文信息。
如果是以学生身份登录: 可以查看修改个人信息与论文审核进度
点击查看自己的收藏: 可以修改毕业设计相关信息 查看论文评审结果:
分享到:
收藏