第一周课后作业

2352830
(1)来源
同学c++期末大作业-图书管理系统
(2)运行环境+运行结果的截图(伸缩代码附上)


(3)主要问题列表,针对问题要了改善或者重构

  1. 改进文件读写方法:
    readBooksFromFile 中的文件读取逻辑可以改进,尤其是考虑到书名和作者有可能包含空格。此外,当前的文件读取方式不适合处理带有空格的书名或作者。可以使用 getline 来读取完整的书名和作者。
    同时增加writeCustomerToFile 可以考虑改为保存更多关于顾客的信息,比如顾客的类型(普通顾客或VIP顾客)以及购物车中的所有书籍。

2.增加了vip用户的打折功能,同时增强代码可读性:可以将折扣逻辑封装得更好,避免在 VIPCustomer 类中直接计算总价。
使用继承而不是组合:通过继承 RegularCustomer,VIPCustomer 可以直接使用购物车(getShoppingCart()),而不需要重新定义它。
折扣逻辑改进:更好地处理折扣的应用,可能会修改每本书的价格,而不是在总价中做简单的减法,这样可以清晰地显示每本书的折后价格。

3.增加了将用户购物车写入文件的功能

4.为了避免main函数过长:在阅读代码时,防止因main函数中的代码过于冗长,包含了过多的逻辑。我将不同的功能模块封装成独立的函数,提高代码的可读性和可维护性

重构的软件的测试截图

总结:
在本次修改的过程中,我通过学习同学代码的思路,更好地掌握了在编写一个比较大的程序时所要考虑的东西,比如各个模块之间的联系,以及相关函数的构造思路,同时也在和同学交流的过程中进一步提高了编程能力。
逆向软件工程涉及理解现有代码的功能和结构,可能需要对代码进行重构以提高其可维护性、可扩展性或安全性。
对于这段代码,可以考虑将硬编码的用户名和密码替换为更安全的认证机制,如数据库存储的加密密码。
逆向工程中,可能需要增强错误处理和用户反馈机制,以确保用户在使用软件时能够获得清晰、有用的信息。
例如,可以添加更详细的错误消息,或者在用户输入无效数据时提供更具体的指导。
逆向软件工程是一个复杂的过程,涉及对现有代码的理解、重构、测试和改进。通过仔细分析代码的功能和结构,开发人员可以识别出潜在的改进点,并采取相应的措施来提高代码的质量、安全性和性能。

posted @ 2025-02-27 21:43  kyomizu  阅读(31)  评论(0)    收藏  举报