逆向软件设计和开发能力--学生成绩管理系统
本次逆向软件设计和开发我所使用的作业为由21计算4班杜良所编写的c++期末课程设计作业。
该程序采用文件读取方式进行数据存储,主要面向对象为老师,实现老师对学生成绩查询,修改等功能操作。对于当前阶段,该项目还是较为完善,功能也较为齐全。
但该系统并未划分用户等级,导致学生胡乱修改成绩的可能,及系统安全性十分低。
且该系统主要通过student类对学生信息进行管理操作,文件存储方式则采用的是多文件存储,然而在实际问题解决中,多文件存储无论从空间还是时间上都不占优势,
所以在本次开发中采用了数据库存储来代替。
原程序中几乎每个类都缺乏程序开发中默认的输入输出函数(get()和set()函数),且大部分方法采用public方式进行编写,代码安全性低。
源代码功能结构图如下:
二次开发:
功能结构:
在二次开发中,采用数据库替换了原来的多文件存储方式,在重新编写类时,将大部分的public方法更改为protected方法来增加代码的安全性。
而在系统操作中,则是新增了teacher类以便与student类进行区分,实现不同用户拥有不同级别的权限且互不干涉,提高系统安全性。
总结:
逆向软件设计和开发作为我们学习软件开发创新的第一课,具有重要意义。虽然在软件开发过程中,纯粹地修改他人代码的情况少之又少。
但逆向软件设计和开发在一定程度上能够提升我们阅读他人代码的能力和水平,在以后可能面临的团队合作中具有极其重要的意义,无法
读懂别人代码,也就无法实现相互配合。
此外,逆向软件设计和开发也在锻炼着我们的思维,通过了解他人开发的不足去了解自身也可能存在的问题,从实现软件开发与创新。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理