如何完成以 xx 管理系统为选题的毕业设计
这篇文章最后更新的时间在六个月之前,文章所叙述的内容可能已经失效,请谨慎参考!
[TOC]
前言
chatGPT出现后,这些技巧似乎变得不重要了
这是一篇描述如何完成以 xx 管理系统为选题的毕业设计的文章。
有以下几个前置条件
- 以通过答辩为目标的
- 以 xx 管理系统为选题的
- 针对中国大陆高职,大专,本科层次的
- 计算机类学科的
开始写论文之前从 百度学术或谷歌学术 下载几篇差不多选题的看看,先了解一下大概的套路。
大多数情况下,论文比代码重要,要优先保证论文。
一般的流程
选题 | 十一月尾 | 一般是毕业学年的第一学期期末考的前夕 |
任务设计书/开题报告/任务计划书 | 十二月初 | 一般是确定选题后的一个星期内 |
初稿 | 三月尾 | 一般是春节放假之后 |
二稿 | 四月初 | 一般是初稿后一个星期内 |
定稿 | 四月中 | 一般是二稿后到答辩之间的时间,这阶段主要是降重和按导师要求修改论文 |
答辩 | 五月初 | 一般是五一放假之后 |
- 一些比较负责的指导老师可能会在答辩之前,安排学生做一次代码运行的演示。大概就是让学生把代码从开发环境运行起来后,把论文里描述的各个功能都演示一次。
- 除了论文和代码外,还需要一份能用于答辩的 ppt
选题
- 选毕业设计,不需要选纯粹的论文,纯粹的论文降重难度比毕设高不少,毕设里可以塞代码充字数,纯粹的论文里就没这种操作了
- 要认准 xx 管理系统这类题目,如果没有 xx 管理系统,就选 xx 系统这类
- 选题要求里的技术栈越模糊越好,例如
- 完成 xx 管理系统 和 使用 java 完成 xx 管理系统,要选前者
- 用 java 完成 xx 管理系统 和 使用 ssh 完成 xx 管理系统,要选前者
- 不要选 原生客户端 小程序 这类依赖某一个平台或生态的,尽量选 web
- 选完题后要尽快确定技术栈,并告诉指导老师你所选用的技术栈
- 一些老师会对技术栈有要求
- 技术栈要选 可以跨平台的 免费的 流行的 在中文互联网活跃的,例如
- 可以跨平台的,容易部署环境
- 免费的,也是容易部署环境,不用到处找破解版
- 流行的 在中文互联网活跃的,遇到问题容易百度
- 选 mysql mariadb sqlite ,不要选 sqlserver sybase db2 oracle (这几款都是要收费的)
- 选 php java ,不要选 asp.net (虽然 .net core 可以跨平台了 .net6 都要发布了,但学校大概率没教过这个,老师也大概率不会懂)
- 选 spring ,不要选 spart (spart 在中文互联网不流行)
- 完成选题后,要尽快和尽量地收集和毕设相关的资料,例如 有没有论文的范例,论文格式要求,论文字数,论文重复率,什么时候提交论文,什么时候进行答辩之类的
- 咨询一下已毕业的学长学姐,问问他们需要注意的事项,找他们的论文作为参考
任务设计书/开题报告/任务计划书
通常选好题目后要写一份 100 - 1000 字左右的文档。各个学校对这份文档的描述都有点不一样。 大概就是描述,论文要写是什么,要如何完成论文,完成论文要几个阶段,每个阶段需要完成什么之类的。
这个随便在网上搜一下就可以了,反正不查重。 但里面的描述要和后面的论文内容对得上,例如 开题报告里写的是用 java swt 实现,然后论文里又用 java fx 实现,这就不一样。
初稿
一篇论文所包含的内容
封面
标题
中文摘要
中文关键字
英文摘要
英文关键字
目录
正文
绪论
选题背景和意义
选题目标
研究现状
研究内容与章节安排
系统分析
需求分析
功能分析
性能分析
关键技术分析
架构选型/开发语言/数据库/开发环境/运行环境
可行性分析
技术可行性分析
操作可行性分析
可行性分析结论
系统设计
系统总体设计
系统用例图
系统数据流图
系统功能结构图
数据库设计
数据库需求分析
数据库概念结构设计
数据库逻辑结构设计
数据库物理结构设计
数据库实施
系统实现
用户管理
用户注册
用户登录
用户注销
用户信息修改
管理员添加用户
管理员删除用户
...
测试和部署
测试目的/测试方法/测试目标
测试内容/测试用例
测试结论
系统部署
总结
附录
一些代码
英文文献翻译
参考文献
致谢
正文大概有五至六章 ,其中第一章是绪论,最后一章基本都是总结。
初稿主要是论文里和代码无关的部分。
初稿大致可以分成两部分,和选题没有关系的,论文的套路
封面 标题 中文关键字 英文关键字 中文摘要 英文摘要 参考文献 致谢
和选题有关系的,需要花点心思完成的
绪论 系统分析 系统设计 测试和部署 总结
目录基本上是自动生成的
各个部分大致的套路
- 封面,大多数学校都会提供模板,直接复制就好
- 题目,一般选题时题目已经是确定了的,但有些情况下选题没有指定题目,那么就去问问指导老师
- 中文关键字
- 关键字 3 至 5 个就可以了
- 假设题目是《 xx 管理系统的设计与实现》,那么 关键字可以是这样
xx 信息系统 web2.0 用于开发这个系统的编程语言 用于开发这个系统的框架
- 假设题目是《基于 spring 的员工管理系统的设计与实现》,那么 关键字可以是这样
员工管理 信息系统 web2.0 java spring
- 英文关键字,翻译中文的即可
- 中文摘要
- 摘要的套路基本是这样的
- 描述一个问题
- 用某些技术解决了这个问题
- 解决这个问题能带来什么优势
- 例子,假设题目是《基于 B/S 架构的人才招聘管理系统的设计与实现》,那么中文摘要可以写成这样
- 描述一个问题
随着经济强劲发展,以及信息产业的聚集,这种趋势造成信息人才在珠三角地区是一个庞大的基数。 但是,传统的综合性招聘网站已经适应不了这种细分的招聘要求, 比如在传统的招聘网站中,会把“计算机服务”和“软件服务”视为非同一类岗位, 在互联网信息领域,岗位分类描述非常僵硬,这就导致了招聘单位描述不清楚自己的需求,求职者表达不清楚自己的想要岗位。
- 用某些技术解决了这个问题
为了解决这个问题,本课题使用 PHP 和 MySQL 开发一个基于 B/S 架构的垂直性的招聘网站。
- 解决这个问题能带来什么优势
致力于帮助企业,信息人才能够更快更准确地匹配,推动人力资源市场的发展,促进经济繁荣。
- 摘要的套路基本是这样的
- 英文摘要,翻译中文的即可
- 绪论,这部分是最难写的了,虽然也是套路。平心而论,本科层次的毕业设计真的没什么意义可言也没有什么可以研究的。
- 选题背景和意义,基本就是复述摘要里的内容,但要比摘要写得更详细
- 选题目标,可以直接复制选题要求里的内容
- 研究现状,这部分也很难写,只要不需要凑字数就不写这部分
- 研究内容与章节安排,这部分是套路,从其它论文抄过来就好
- 系统分析,这部分也是套路,直接从其它论文抄过来,并根据选题修改一下就可以了。
- 需求分析
- 关键技术分析那里,主要是写技术栈有哪些,为什么选择这些技术栈
- 可行性分析,这部分也是套路,好多论文会把这部分再细分成几段,例如 技术可行性,操作可行性,这类。但笔者不喜欢这样,通常都是一段带过,还是因为这种套路的段落,写太多降重时会很困难。
- 总结,这部分也是套路,直接从其它论文抄过来,并根据选题修改一下就可以了。
- 附录那里
- 一些代码,复制一段代码上去就可以了
- 通常是一些业务逻辑的代码
- 英文文献翻译
- 也是在百度学术或谷歌学术上搜相关的论文,然后找到原文,然后复制第一章翻译即可,直接用百度翻译或谷歌翻译就可以了。英文文献用谷歌学术更容易搜索一些。
- 一些代码,复制一段代码上去就可以了
- 参考文献
- 在百度学术或谷歌学术上搜相关的论文,复制引用,引用的格式要选 GB/T
- 学术搜索的关键字,就是论文的关键字,参考文献 10 篇左右就可以的了
- 致谢,致谢不查重的,随便在网上复制一段就可以。自己写也很简单,大概就是感谢指导老师,感谢学校之类的。
系统分析重复率是最高的了,不用写太多字。 凑字数的部分在 系统设计和系统实现那里。
系统分析,系统设计,测试和部署 这三部分可以先写目录不填内容。
二稿
二稿主要是补完和代码相关的部分。
二稿主要分成两部分,需要写代码的(系统实现)和不需要写代码的(系统设计)。 先做完不需要写代码的部分,把内容先填入论文里。
系统设计
系统总体设计
- 先确定有哪些用户
- 根据用户划分功能
- 用例图
- 功能结构图
- 根据功能划分 实体 属性 和 流程
- 数据流图
- 只画两层,顶层和第 0 层
- 数据流图
数据库设计
- 根据数据流图和功能结构图来设计数据库
- 先画好 er 图
- 数据库设计要符合三范式,用标准的 sql
- 三范式设计起来比较容易
- 三范式容易生成代码
- 用标准的 sql 容易生成代码
对于一些表示状态的字段,可以直接用字符串类型,而不是整型或枚举型。 这样设计虽然会严重降低性能,但对于毕业设计而言,直观的表示才是最重要的。 例如
- 表示性别, char(8) ,然后在表里直接存汉字
男
或女
- 表示用户角色, char(32) ,然后在表里直接存汉字
管理员
普通用户
员工
数据库的字符集一定要选 utf8 ,如果是 mysql 字符集就要选 utf8mb4 。
这部分的难点在于数据流图和数据库的三范式,这部分要认真看一下书。
系统实现
- 后台要用 mvc 框架,不要自己写
- 很多框架都能根据数据库一键生成 curd 代码(所以数据库要按三范式来设计)
- 要设置为,能根据路由找到对应的控制器
- 尽量不要用 ajax ,因为用了 ajax 就不能直观地通过观察路由的变化找到对应的控制器
- 优先做界面,要用各种前端库,不要自己写
- 不考虑缓存
- 不考虑容错
- 不考虑各种边界情况,看上去能用就可以了
- 代码里要多写注释,特别是控制器里要多写注释,自动生成的 curd 代码里一般会有英文的注释,如果自己英文水平不好就翻译好那些注释
- 尽量只用代码来实现功能,数据库只做增删查改,因为 sql 的可读性并不好
- 这部分里论文要按功能划分章节,要多放代码和运行的截图
- 每一个功能最好都单独做一个流程图
- 功能和界面都不用做得很完善,只要能应付毕业答辩的水平就可以了。
- 如果答辩时老师问 x 功能是如何实现的,那么就可以通过路由找到对应的控制器,然后照本宣科地读控制器里的注释就可以了。
- 路由是指浏览器地址栏的网址,也就是 url 的 path 部分。
测试和部署
这部分看上去和代码很有关系,其实和代码没有太多关系,主要是需要运行的截图。 运行的截图可以写静态页面来应付,甚至直接用 ps。 除了测试用例之外,其它的都是套路。
这一章节大概分成四部分
- 测试目的/测试方法/测试目标
- 测试目的 和 测试目标 都是一句话带过,这些都是套路,从其它论文抄过来就好,不用写太多,不然增加降重难度
- 测试方法 主要是描述一下用什么工具来测试,通常功能测试就用 webdriver ,性能测试就用 ab
- 测试内容/测试用例
- 功能测试的测试用例就是一堆表格,从其它论文抄过来,把内容改成自己的就可以了。
- 性能测试就写一句 ab 的运行命令,然后复制一段 ab 的运行结果就可以了。
- 测试结论
- 和 测试目的 , 测试目标,都是一句话带过,这些都是套路,从其它论文抄过来就好
- 系统部署
- 系统部署那里可以写一下如何安装运行环境。这些都是套路,从其它论文抄过来就好
定稿
定稿主要是 降重 和 格式的修改,大部分情况下,是完成了论文内容和完成降重再修改格式。
查重时要和学校用同一个数据库。 降重不要太低,大概比学校的要求低 2% 就可以了。 重复率太低降重会很困难,重复率太低有可能被答辩的老师重点关注。
降重 的方式,套路和一般论文一样的。百度一下就可以了。 这里描述几个能适用于这类型文论的套路
- 展开缩写
- html -> HyperText Markup Language
- 把展开的缩写翻译成中文
- HyperText Markup Language -> 超文本标记语言
- 代码不要用截图
格式的修改 ,走淘宝解决,如果嫌弃淘宝太贵,可以去海鲜市场看看。
不同学校对格式要求不一样,笔者比较倾向于,先用 markdown 写完内容,再转换成其它格式。
答辩
答辩的一般流程
- 讲解 ppt
- 演示
- 老师提问
答辩时间一般时 15-30 分钟, 答辩时一般会有三-五个老师。
如果可以选择答辩的顺序,尽量让自己的答辩顺序在中间偏后,有这些好处
- 可以观察老师的提问风格
- 如果在前面,老师们一开始大多会比较认真,
- 如果在后面,假如有空余的时间,老师们可能会多问一些问题
如果论文没有要求,就只打印两份,一份答辩时给老师,一份自己拿着,两份都不要装订。
ppt
大致的内容
- 封面
- 课题背景介绍
- 关键技术介绍
- 系统功能结构图
- 主要功能介绍
- 总结
- 感谢
每一页 ppt 都要准备好解说词。 除了 主要功能介绍 之外,其它的一页就可以的了。 找一个浅色背景的模板,把内容塞进就好了, ppt 不用做得太好看。
演示
- 尽量用自己的电脑
- 尽量让电脑全程联网
- IDE 设置一个明亮的主题
- 从 IDE 里打开代码
- 然后按顺序逐个演示功能
应对答辩的老师
大多数情况下,决定答辩是否通过的是老师的提问。 一般情况下,每个老师至少会提问一个问题。
老师提问的来源
- 论文
- ppt
- 演示的功能
- 一些简单的理论问题
老师提问的一般套路
- 空泛的
- 有什么特点
- 还有哪些可以改进的地方
- 具体的
- 数据库是如何连接的
- 连接数据库的代码在哪里
- 某功能是如何实现的
- 实现某功能的代码在哪个文件
- 某功能对应数据库的哪张表
- 演示一次某功能,在数据库里找到对应的修改的数据
根据论文内容来预判老师可能的提问。 ppt 和 演示功能 时,要引导老师向你准备的问题提问。
答辩的老师大致可以分为三类
- 佛系的
- 只要不要太随意,基本都能让答辩通过
- 这种最好应付了,只要态度好一点就可以了
- 装逼的
- 没什么水平,但又硬要装出有水平的样子,总会提出一些没有价值的问题
- 这种老师虽然会抬杠,但只要迎合一下附和一下,也可以混过去
- 老师你说得对
- 我考虑得不够细致
- 我回去再修改一下
- ......
- 认真的
- 能看懂论文的,会提出有价值的问题
- 这种不好应付,只能祈祷不要遇到,或者自己准备的问题刚好和老师的提问对应上
总结
- 有套路的,请按照套路来
- 知道了大概套路后,一些必要的时间还是需要投入的
- 要用框架,代码能用框架生成的,就用框架生成的
- 只要用心对待,现在的本科毕业设计是很好对付的
- 不用做得太好,避免引起注意
- 代码能运行就可以的了,不用太关注细节的。
- 论文和答辩不用太好,能通过查重和答辩就可以了。
- 整体水平中间偏下就可以的了。
- 传说一些学校如果论文太优秀可能还会有二辩,或者会评选优秀论文,这时会有更多的老师来审查论文。
- 为了预防各种意外,答辩完之后论文最好就能被忽略。