《软件工程综合实践专题》

购买图书系统的评价与建议

一、     来源

来自17级软工1班陶彦婷和李思佳大一小学期作品。

二、系统功能介绍

此系统是一个简单的购物结账系统,主要用于用户购买图书并得到自己的订单信息,包括5个主要功能:查找购书人信息,查找全部图书信息,查找指定图书,购书和查询订单信息。

2-1系统五大功能

此系统用户是购书人,分为三个等级:普通,会员和贵宾。购书人可以查看自己的信息:可以通过购书界面获得自己所想购买的图书的价格:选择自己的等级,然后输入自己的编号就可以得出相应折扣后的价格;还可以查看自己的订单信息。

三、系统应用技术说明

此系统采用的是C++语言,充分应用了C++语言的特性,通过类实现了系统所要实现的功能,除此之外还运用了许多C++基础的技能比如对于信息的查找是通过文件的读写来实现的,并通过重载实现了自己需要的一些新功能。

3-1设计的类

3-2文件读写

3-3重载的运用

四、系统的优势与不足

(一)系统的优势

①系统功能流程清晰

系统对功能进行了区分,给用户提供了简单明了的界面,使得用户很容易上手,并掌握如何进行自己想要的操作,在每个功能模块也有详细的提醒。

4-1-1系统主界面

4-1-2系统购书界面

②信息查找方便

不管是个人信息还是图书信息都十分全面,特别是图书信息可以全部浏览也可以通过编号查找。

4-1-3全部图书信息

4-1-4单本图书信息

(二)系统的不足

①未考虑到用户信息隐秘性

用户信息中包括了用户的等级以及住址,且由于用户是通过输入自己的编号查看自己的信息的,这也就意味着一个用户有可能查看到其他用户的隐私信息,这就有可能引发一些安全隐患。

4-2-1用户信息

②未考虑到系统信息的管理

此系统有用户和图书信息就说明应该要有必要的数据维护和修改,否则这就是一个没有意义的系统。

五、系统部分不足之处的修改建议

(1)针对客户信息隐蔽性的提议

想要让用户信息具有隐蔽性,那么就要做到用户只能看到自己的相关信息而不能通过系统可以看到别人的信息,所以我设想是设计一个登陆系统,通过编号和密码实现对用户信息的分离,用户登陆后只能查看自己的信息。

(2)针对信息管理的提议

想要实现信息管理就要有管理员,管理员通过不同操作来实现对不同信息的管理,所以我的设想就是增加登陆系统的身份选项,不同身份所能进行的操作也不同这样就能在(1)的基础上更好的实现(2)。

注:我用设想修改后的部分界面

5-1主界面

5-2管理员操作的功能

5-3用户操作的功能

*修改后的系统用户和管理员都需要提前注册自己的账号和密码,用户自己的等级信息都在订单页面进行显示,不再提供单独查找自己信息的功能;管理员也可以同时操作用户和图书的相关信息,比如对图书价格进行更新,对图书书目进行增加删除等…

5-4管理员对图书的详细操作

六、本次实验感受

通过读之前我们所做过的程序,我们真的可以发现很多很多的问题,而且它还是个功能和数据都非常少的系统,但对于我们来说都已经有了很大的困难了,并且在各个方面也依然考虑的不够全面,这也说明了我们对于自己所学知识的掌握不精和对设计一个好的系统所需要的部分的不了解,然后结合这学期我们要学的各种学科,我想说这学期学的真的都很重要,它们能让我们更全面的去思考,去设计一个缺陷尽可能少的系统,我们从现在开始要更加的沉迷于计算机之中,从外到内的好好的去了解一下它,才能让我们对设计一个代码更加得心应手!

原文地址:https://www.cnblogs.com/zxp888/p/10468615.html

时间: 2024-11-10 15:58:25

《软件工程综合实践专题》的相关文章

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

IOS测试框架之:athrun的InstrumentDriver源码阅读笔记

athrun的InstrumentDriver源码阅读笔记 作者:唯一 athrun是淘宝的开源测试项目,InstrumentDriver是ios端的实现,之前在公司项目中用过这个框架,没有深入了解,现在回来记录下. 官方介绍:http://code.taobao.org/p/athrun/wiki/instrumentDriver/ 优点:这个框架是对UIAutomation的java实现,在代码提示.用例维护方面比UIAutomation强多了,借junit4的光,我们可以通过junit4的

Yii源码阅读笔记 - 日志组件

?使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category);Yii::trace($message, $category); 两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG: defined('YII_DEBUG') or define('YII_DEBUG', true); Yii::log方法的调用需要指定message的level和category.category是格式为“xxx.yyy.z

源码阅读笔记 - 1 MSVC2015中的std::sort

大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格式化,去掉或者展开用于条件编译或者debug检查的宏,依重要程度重新排序函数,但是不会改变命名方式(虽然MSVC的STL命名实在是我不能接受的那种),对于代码块的解释会在代码块前(上面)用注释标明. template<class _RanIt, class _Diff, class _Pr> in

CI框架源码阅读笔记5 基准测试 BenchMark.php

上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI的核心骨架. 从本篇开始,将进一步去分析各组件的实现细节,深入CI核心的黑盒内部(研究之后,其实就应该是白盒了,仅仅对于应用来说,它应该算是黑盒),从而更好的去认识.把握这个框架. 按照惯例,在开始之前,我们贴上CI中不完全的核心组件图: 由于BenchMa

CI框架源码阅读笔记2 一切的入口 index.php

上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里这次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现. 1.       设置应用程序环境 define('ENVIRONMENT', 'development'); 这里的development可以是任何你喜欢的环境名称(比如dev,再如test),相对应的,你要在下面的switch case代码块中

Apache Storm源码阅读笔记

欢迎转载,转载请注明出处. 楔子 自从建了Spark交流的QQ群之后,热情加入的同学不少,大家不仅对Spark很热衷对于Storm也是充满好奇.大家都提到一个问题就是有关storm内部实现机理的资料比较少,理解起来非常费劲. 尽管自己也陆续对storm的源码走读发表了一些博文,当时写的时候比较匆忙,有时候衔接的不是太好,此番做了一些整理,主要是针对TridentTopology部分,修改过的内容采用pdf格式发布,方便打印. 文章中有些内容的理解得益于徐明明和fxjwind两位的指点,非常感谢.

CI框架源码阅读笔记4 引导文件CodeIgniter.php

到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入

jdk源码阅读笔记之java集合框架(二)(ArrayList)

关于ArrayList的分析,会从且仅从其添加(add)与删除(remove)方法入手. ArrayList类定义: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco } span.s1 { color: #931a68 } public class ArrayList<E> extends AbstractList<E> implements List<E> ArrayList基本属性: /** *

dubbo源码阅读笔记--服务调用时序

上接dubbo源码阅读笔记--暴露服务时序,继续梳理服务调用时序,下图右面红线流程. 整理了调用时序图 分为3步,connect,decode,invoke. 连接 AllChannelHandler.connected(Channel) line: 38 HeartbeatHandler.connected(Channel) line: 47 MultiMessageHandler(AbstractChannelHandlerDelegate).connected(Channel) line: