如何完成以 xx 管理系统为选题的毕业设计

这篇文章最后更新的时间在六个月之前,文章所叙述的内容可能已经失效,请谨慎参考!

[TOC]

前言

chatGPT出现后,这些技巧似乎变得不重要了

这是一篇描述如何完成以 xx 管理系统为选题的毕业设计的文章。

有以下几个前置条件

开始写论文之前从 百度学术或谷歌学术 下载几篇差不多选题的看看,先了解一下大概的套路。

大多数情况下,论文比代码重要,要优先保证论文。

一般的流程

选题 十一月尾 一般是毕业学年的第一学期期末考的前夕
任务设计书/开题报告/任务计划书 十二月初 一般是确定选题后的一个星期内
初稿 三月尾 一般是春节放假之后
二稿 四月初 一般是初稿后一个星期内
定稿 四月中 一般是二稿后到答辩之间的时间,这阶段主要是降重和按导师要求修改论文
答辩 五月初 一般是五一放假之后

选题

  1. 选毕业设计,不需要选纯粹的论文,纯粹的论文降重难度比毕设高不少,毕设里可以塞代码充字数,纯粹的论文里就没这种操作了
  2. 要认准 xx 管理系统这类题目,如果没有 xx 管理系统,就选 xx 系统这类
  3. 选题要求里的技术栈越模糊越好,例如
    • 完成 xx 管理系统 和 使用 java 完成 xx 管理系统,要选前者
    • 用 java 完成 xx 管理系统 和 使用 ssh 完成 xx 管理系统,要选前者
  4. 不要选 原生客户端 小程序 这类依赖某一个平台或生态的,尽量选 web
  5. 选完题后要尽快确定技术栈,并告诉指导老师你所选用的技术栈
    • 一些老师会对技术栈有要求
  6. 技术栈要选 可以跨平台的 免费的 流行的 在中文互联网活跃的,例如
    • 可以跨平台的,容易部署环境
    • 免费的,也是容易部署环境,不用到处找破解版
    • 流行的 在中文互联网活跃的,遇到问题容易百度
    • 选 mysql mariadb sqlite ,不要选 sqlserver sybase db2 oracle (这几款都是要收费的)
    • 选 php java ,不要选 asp.net (虽然 .net core 可以跨平台了 .net6 都要发布了,但学校大概率没教过这个,老师也大概率不会懂)
    • 选 spring ,不要选 spart (spart 在中文互联网不流行)
  7. 完成选题后,要尽快和尽量地收集和毕设相关的资料,例如 有没有论文的范例,论文格式要求,论文字数,论文重复率,什么时候提交论文,什么时候进行答辩之类的
  8. 咨询一下已毕业的学长学姐,问问他们需要注意的事项,找他们的论文作为参考

任务设计书/开题报告/任务计划书

通常选好题目后要写一份 100 - 1000 字左右的文档。各个学校对这份文档的描述都有点不一样。 大概就是描述,论文要写是什么,要如何完成论文,完成论文要几个阶段,每个阶段需要完成什么之类的。

这个随便在网上搜一下就可以了,反正不查重。 但里面的描述要和后面的论文内容对得上,例如 开题报告里写的是用 java swt 实现,然后论文里又用 java fx 实现,这就不一样。

初稿

一篇论文所包含的内容

封面
标题
中文摘要
中文关键字
英文摘要
英文关键字
目录
正文
    绪论
        选题背景和意义
        选题目标
        研究现状
        研究内容与章节安排
    系统分析
        需求分析
            功能分析
            性能分析
        关键技术分析
            架构选型/开发语言/数据库/开发环境/运行环境
        可行性分析
            技术可行性分析
            操作可行性分析
            可行性分析结论
    系统设计
        系统总体设计
            系统用例图
            系统数据流图
            系统功能结构图
        数据库设计	
            数据库需求分析
            数据库概念结构设计
            数据库逻辑结构设计
            数据库物理结构设计
            数据库实施
    系统实现
        用户管理
            用户注册
            用户登录
            用户注销
            用户信息修改
            管理员添加用户
            管理员删除用户
        ...
    测试和部署
        测试目的/测试方法/测试目标
        测试内容/测试用例
        测试结论
        系统部署
    总结
附录
    一些代码
    英文文献翻译
参考文献
致谢

正文大概有五至六章 ,其中第一章是绪论,最后一章基本都是总结。

初稿主要是论文里和代码无关的部分。

初稿大致可以分成两部分,和选题没有关系的,论文的套路

封面 标题 中文关键字 英文关键字 中文摘要 英文摘要 参考文献 致谢

和选题有关系的,需要花点心思完成的

绪论 系统分析 系统设计 测试和部署 总结

目录基本上是自动生成的

各个部分大致的套路

系统分析重复率是最高的了,不用写太多字。 凑字数的部分在 系统设计和系统实现那里。

系统分析,系统设计,测试和部署 这三部分可以先写目录不填内容。

二稿

二稿主要是补完和代码相关的部分。

二稿主要分成两部分,需要写代码的(系统实现)和不需要写代码的(系统设计)。 先做完不需要写代码的部分,把内容先填入论文里。

系统设计

系统总体设计

  1. 先确定有哪些用户
  2. 根据用户划分功能
    • 用例图
    • 功能结构图
  3. 根据功能划分 实体 属性 和 流程
    • 数据流图
      • 只画两层,顶层和第 0 层

数据库设计

  1. 根据数据流图和功能结构图来设计数据库
  2. 先画好 er 图
  3. 数据库设计要符合三范式,用标准的 sql
    • 三范式设计起来比较容易
    • 三范式容易生成代码
    • 用标准的 sql 容易生成代码

对于一些表示状态的字段,可以直接用字符串类型,而不是整型或枚举型。 这样设计虽然会严重降低性能,但对于毕业设计而言,直观的表示才是最重要的。 例如

数据库的字符集一定要选 utf8 ,如果是 mysql 字符集就要选 utf8mb4 。

这部分的难点在于数据流图和数据库的三范式,这部分要认真看一下书。

系统实现

  1. 后台要用 mvc 框架,不要自己写
    • 很多框架都能根据数据库一键生成 curd 代码(所以数据库要按三范式来设计)
  2. 要设置为,能根据路由找到对应的控制器
  3. 尽量不要用 ajax ,因为用了 ajax 就不能直观地通过观察路由的变化找到对应的控制器
  4. 优先做界面,要用各种前端库,不要自己写
  5. 不考虑缓存
  6. 不考虑容错
  7. 不考虑各种边界情况,看上去能用就可以了
  8. 代码里要多写注释,特别是控制器里要多写注释,自动生成的 curd 代码里一般会有英文的注释,如果自己英文水平不好就翻译好那些注释
  9. 尽量只用代码来实现功能,数据库只做增删查改,因为 sql 的可读性并不好
  10. 这部分里论文要按功能划分章节,要多放代码和运行的截图
  11. 每一个功能最好都单独做一个流程图

测试和部署

这部分看上去和代码很有关系,其实和代码没有太多关系,主要是需要运行的截图。 运行的截图可以写静态页面来应付,甚至直接用 ps。 除了测试用例之外,其它的都是套路。

这一章节大概分成四部分

定稿

定稿主要是 降重 和 格式的修改,大部分情况下,是完成了论文内容和完成降重再修改格式。

查重时要和学校用同一个数据库。 降重不要太低,大概比学校的要求低 2% 就可以了。 重复率太低降重会很困难,重复率太低有可能被答辩的老师重点关注。

降重 的方式,套路和一般论文一样的。百度一下就可以了。 这里描述几个能适用于这类型文论的套路

  1. 展开缩写
    • html -> HyperText Markup Language
  2. 把展开的缩写翻译成中文
    • HyperText Markup Language -> 超文本标记语言
  3. 代码不要用截图

格式的修改 ,走淘宝解决,如果嫌弃淘宝太贵,可以去海鲜市场看看。

不同学校对格式要求不一样,笔者比较倾向于,先用 markdown 写完内容,再转换成其它格式。

答辩

答辩的一般流程

  1. 讲解 ppt
  2. 演示
  3. 老师提问

答辩时间一般时 15-30 分钟, 答辩时一般会有三-五个老师。

如果可以选择答辩的顺序,尽量让自己的答辩顺序在中间偏后,有这些好处

如果论文没有要求,就只打印两份,一份答辩时给老师,一份自己拿着,两份都不要装订。

ppt

大致的内容

  1. 封面
  2. 课题背景介绍
  3. 关键技术介绍
  4. 系统功能结构图
  5. 主要功能介绍
  6. 总结
  7. 感谢

每一页 ppt 都要准备好解说词。 除了 主要功能介绍 之外,其它的一页就可以的了。 找一个浅色背景的模板,把内容塞进就好了, ppt 不用做得太好看。

演示

  1. 尽量用自己的电脑
  2. 尽量让电脑全程联网
  3. IDE 设置一个明亮的主题
  4. 从 IDE 里打开代码
  5. 然后按顺序逐个演示功能

应对答辩的老师

大多数情况下,决定答辩是否通过的是老师的提问。 一般情况下,每个老师至少会提问一个问题。

老师提问的来源

  1. 论文
  2. ppt
  3. 演示的功能
  4. 一些简单的理论问题

老师提问的一般套路

根据论文内容来预判老师可能的提问。 ppt 和 演示功能 时,要引导老师向你准备的问题提问。

答辩的老师大致可以分为三类

总结

  1. 有套路的,请按照套路来
  2. 知道了大概套路后,一些必要的时间还是需要投入的
  3. 要用框架,代码能用框架生成的,就用框架生成的
  4. 只要用心对待,现在的本科毕业设计是很好对付的
  5. 不用做得太好,避免引起注意
    • 代码能运行就可以的了,不用太关注细节的。
    • 论文和答辩不用太好,能通过查重和答辩就可以了。
    • 整体水平中间偏下就可以的了。
    • 传说一些学校如果论文太优秀可能还会有二辩,或者会评选优秀论文,这时会有更多的老师来审查论文。
    • 为了预防各种意外,答辩完之后论文最好就能被忽略。