计算机毕设答辩提问(小程序/网站)
昨天进行了答辩,没有想象中的那么难,老师们都和蔼可亲,整体还不错。我们学校是上午进行答辩,下午代码检测。
答辩主要是是学生做好PPT,展示,介绍项目,老师提问,时间为5分钟左右。
下午的代码检测部分,主要是老师对代码部分进行检查,提问,考察学生的项目是不是自己做的,是否为独立完成,不是独立完成,个人完成度是否符合毕设的要求等。
下午比上午难度大点,老师啥都问,还要现场删代码,然后学生复原。
ps:也有小组的PPT讲解和代码检测同时进行。
接下来是我总结的老师们的提问。
我的毕设是一个小程序。
问题1:项目使用了什么技术?
答:前端是Uni-app、后端Spring Boot,在Spring Boot的Mapper层嵌入了MyBatis持久层架构,MySQL数据库
问题2:为什么使用这个技术(框架)?这个技术有什么优点?
前端使用Vue,前后端解耦,前后端分析,代码更加规范。
Spring Boot:简化项目配置,可以独立打包部署,运行更方便不需要在外部导入其他的配置,与服务器。
MySQL:免费的,且开源,轻量级。
问题3:模块功能的具体实现
1) 案例检索功能模块:该部分主要包括3个子功能。
第一个:文书检索:用户可以选择不同的关键字对法律文书进行搜索,通过关键字类型URL,通过检索关键字的可触发不同的条件对文书进行查询,其中查询是模糊查询。
第二个是文书排序和筛选:检索得到文书列表后,可对文书进行排序和筛选,其中排序选用的冒泡排序和Uni-app框架中的compare比较器实现。案例筛选是通过选择不同的字段对其筛选。
第三个是文书详情页:该页面主要是显示某一具体文书的详细信息,用户可在该页面点击收藏图标,完成对该文书的收藏,实现方法主要是获取文书id,通过该ID调用文书详情数据表,完成对文书的查询。
2)案例分析功能模块:该部分主要使用阿里云Echarts插件对数据进行可视化分析,数据交由后端处理,后端对相关字段通过MapperRequst()方法类聚合,完成对数据的提取。
3)案例收藏功能模块:
实现收藏的前提条件是用户必须登录,用户登录后,获取用户编号,进入案例详情页面,用户点击收藏,触发收藏URL,把案例id和用户id同时请求接口,然后存入数据库,就可以知道是哪个用户收藏的哪个文书,在收藏页面,因为获取了用户id可以找到该用户所收藏的文书。
onPullDownRefresh()方法实现下拉刷新功能。
4)个人信息管理模块:
当用户对该小程序授权后,前端微信官方提供的wx.getUserProfile方法获取用户的ID、用户名、用户所在地,并且对其加密,后端拿到数据后,存储到数据库中。
问题4:数据库加密了吗?
对用户信息的保存进行加密了,采用的是微信官方的加密方法函数,以url+key方式进行。
问题5:设计表的原则?
数据字典,三段式,主键、外键、自增主键,E-R图。
数据字典:程序设计方法。
三段式:数据表中的字段和主键直接对应不依靠其他中间字段;
主键是唯一标识一条记录,不能有重复,不允许为空,而外键可以重复,可以是空值;2、主键是用来保持数据完整性,外键是用来建立与其他表联系用的;3、主键只有一个,外键可以有多个。
定义主键和外键主要是为了维护关系数据库的完整性。
数据库设计遵循三段式(三范式);
数据表间采用外键关联;
E-R图也称实体-联系图 (Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述 现实世界 的 概念模型。它是描述现实世界关系概念模型的有效方法。 是表示概念关系模型的一种方式。
问题6:你做压测了吗?QPS怎么样?
做过,postman测试过。
问题7:前后端请求流程。
首先前端DSN解析IP,选择服务器,三次握手,pom.xml,filter
然后前端Uni-app–>Spring Boot–>Mapper–>Controller–>Service–>Dao->MySQL
请求到数据后:Dao->Service->Controller
->前端
问题8:项目最难的部分,怎么完成的
前后端框架的搭建,前后数据交互、缓存。
通过查阅相关资料,因选用的框架为当前热门框架,故跟着网上的视频学习过,重点是对每一个接口的封装都要保持一致,尤其是字段名以及字段名的类型,方法类基本相似,前端可以用console灵活打印结果。查看是否一致。
遇到的某一问题:在对文书详情页的案号(case_number)写入后端时,因错写该字段的类型,导致项目出错,无法显示文书详情页面。
解决方法:首先在APIPOST中输入该接口地址,查看前端是否接收到数据。
然后,前端没有接收到数据,表示问题出现了后端或数据库,Spring Boot查看该接口的Dao层,以及编译时的错误原因。最后,找到错误,在Mapper层修改字段类型。
问题9:项目不足
此次设计主要是本地部署,没有实现内网穿透、服务器部署。UI还需要进一步提高。
问题10:项目乱码怎么解决?
数据库新建选择UFT-8
后端前端的依赖都选用UTF-8
问题11:项目异常怎么处理
在底层Service层采用throw将异常向上抛,在controller层选择try catch避免整个系统崩溃。不是每层都异常处理。
问题12:主外键,索引的作用,原理?
各个数据表的ID都为该表的主键,select by id数据库更新需要使用。
主外键的区别:1)主键是唯一标识一条记录,不能有重复,不允许为空,而外键可以重复,可以是空值;2)主键是用来保持数据完整性,外键是用来建立与其他表联系用的;3)主键只有一个,外键可以有多个。
MySQL的索引,原理为B+树,每层查询的数据是固定的,提高查询速度。
问题13:服务器干嘛的?
运行项目,启动项目Tomcat
问题14:为什么要用框架?
不用框架会更加复杂,用框架可以解决常见问题,运用框架使得代码更规范、更优雅。
问题15:项目是独立完成还是团队完成?
独立完成。
问题16:测试方法?
对项目进行功能测试时,采用黑盒测试。其中对接口测试,接口响应式速度选用APIPOST,压力测试选着postman。
问题17:运用到的学科知识有哪些?
数据结构:主要用来存储数据以及数据的相关操作,例如:线性表(排序选择)、(双端)队列(检索出的文书列表)、栈(数据的写入,例如:检索的关键字记录、意见反馈等)。
软件工程:设计和开发流程,采用自底向上的开发方法、自顶向下的测试流程,测试主要是黑盒测试。
移动终端编程:前后端分离架构,页面间的逻辑,以及编程语言JavaScript。
TCP/IP网络编程:前后端通讯的实现,以及数据缓存和数据交互。
问题18:页面传值方法:
微信小程序不同页面传值方法,用过两种设置缓存和通过url传值。
设置缓存
设置缓存:wx.setStorageSync(‘message缓存名字’,res.data.message缓存值)
获取缓存:wx.getStorageSync(‘message缓存名字’)
通过url传值
在url中传入要发送的值
wx.navigateTo({
url: ‘…/sectionItem/sectionItem?id=’ + that.data.id + ‘&chapter=’ + event.currentTarget.dataset.id,
})
需要加载的page中的onLoad方法中获取值
onLoad:function (options){
console.log(“id:”+options.id)
console.log(“chapter:”+options.chapter)
}
答辩现场老师提的问题
问题(网站)
1)传统技术与基于react的技术区别?为什么选择它们。
2)查询的业务需要自己写吗?
3)中后端适配怎么实现?
问题(入侵检测是基于特征还是异常?)
1)选择怎样的漏洞,有什么特征?
2)数据集是否很大?数据量过小,较小的数据集,是否有使用深度学习的必要性?
问题(量子计算方面)
1)介绍原理时,算法原理和步骤,为什么量子质数分解可以刚好分解为指数基地;
2)这个平台有什么限制?
3)该平台为什么可以用这两种方法实现近似周期?
1)经典复杂度为多少?量子算法的复杂度为多少?
2)加速器设置为多少?
3)转质怎么实现?什么矩阵?
4)模拟是在哪里实现的?为什么不选择百度?百度不是当下流行的吗?
5)维度太大的计算量为多少?为什么选择二维?
6)建议:量子状态的存储不能直译。
问题(深度学习)
1)硬件方面有要求吗?在什么硬件设备上实现?
2)训练的数据集有多大?
3)基线方法。
问题:(数字签名投票系统网站)
1)如果修改,所有地方都修改了吗?
2)与其他的同类型的网站相比较,有什么优点?
3)适应哪些场景?有什么意义?
4)性能问题有考虑吗?架构方面如何?
问题:(Grover量子搜索算法分析)
1)量子算法不是第一个?实践上是吗?也不是?
2)完备性搜索算法?
3)为什么选择Grover算法解决这个问题?
4)是否真机实现过?结果怎么样?找出来了吗?
5)量子计算机的结果数据很大吗?
问题:(知识图谱与用户画像)
1)知识图谱是自己做的吗?
2)知识图谱和用户画像结合的有什么优势,其对比是什么?
3)在知识图谱和用户画像的对比中,为什么只和协同过滤算法对比?
问题:(图卷积漏洞检测)
1)入侵检测是基于特征还是异常?
2)选择怎样的漏洞,有什么特征?
3)数据量有多大?太小是否有进行深度学习的必要?
注意事项
答辩最好熟悉项目,不是自己写的也要多看几遍。不仅要熟悉逻辑,更重要的是熟悉代码啊,老师们特别喜欢扣代码细节。还有就是和学科相关的知识点。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |