云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 东南大学C++系统设计报告书

东南大学C++系统设计报告书

  • 62 次阅读
  • 3 次下载
  • 2025/6/3 9:25:22

VC++课程设计

户主身份验证 主控对话框 户主相关信息 房源相关信息 户主信息处理 户主信息查询 房源申请信息 家庭信息处理

二、系统设计

系统设计是把需求转化为软件系统的最重要的环节:系统设计的优劣在根本上决定了软件系统的质量.o:系统设计主要着力于系统“如何做”,它包含如下四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。在系统设计时,通常分为概要设计和详细设计两个阶段。详细设计产生程序员可用的模块说明,即数据结构说明及加工描述。 1.概要设计

概要设计建立整个软件体系结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义等。概在概要设计过程中,复审系统计划与需求分析,确定系统具体的实施方案,构建软件的体系结构。概要设计还要确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。要确定各模块间的联系,确定数据结构、文件结构、数据库模式,以及确定测试方法与策略。 ·体系结构设计

体系结构是软件系统中最本质的东西,它是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。体系结构设计时应在一定的时间内保持稳定。 ’ 软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。.体系结构(Architcture)_词在英文里就是“建筑”的意思。我们把Dewayne Perry和Alex Wolf的定义作为参考:软件体系结构是具有一定形式的结构化元素,耳p构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来:这,定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。 体系结构有许多种,包括常用的层次结构。

层次结构是把比较复杂的事情,进行分层,然后—层一层地去完成。在实现时,高层的工作总是建立在低层的工作之上。层次关系主要有两种:上下层关系和顺序相邻关系。

上下层关系非常常见,如学校的组织结构,最高层是学校,下面院系,院系下面是学系。在权限上学校的权限高于院系,学校可以指挥院系,而反过来不行。 对于顺序相邻关系,,我们可以把计算机网络的OSI参考模型来理解, OSI有七个层次,在通讯时,只能在相邻两层之间发生,信息只能被一层一层地顺序传递下去。发送方和接收方传递的方向刚好相反。

体系结构设计要求:通过分层,把每个功能逐步独立起来,并且保证每个功能都有相应的模块来实现;要确定模块间的调用关系,对模块间接口做总体描述,明确模块间信息的传递。 ◆模块设计

在设计好软件的体系结构后,宏观上就明确了各个模块应具有的功能,在哪一个层次上,与其他功能模块的关系。我们习惯从功能上划分模块,保持“功能独立”是模块化设计的基本原则。因为,“功能独立”的模块可以降低开发、测试、维护等阶段的代价。但是“功能独立”并不意味着模块之间保持绝对的孤立。一个系统

第 5 页 共 19 页

VC++课程设计

要完成某项任务,需要各个模块相互配合才能实现,此时模块之间就要进行信息交流。模块设计主要说明每个模块“做什么”、简要说明数据输入、输出、处理逻辑、与其它模块的接口,与其它系统或硬件的接口等联系。 评价模块设计优劣的三个特征因素:“信息隐藏”、“内聚与耦合”和“封闭、开放性”。

信息隐藏:是尽量避免某个模块的行为去干扰同一系统中的其它模块,在我们学习面向对象程序设计,类的封装性就是为了实现信息隐藏。

内聚与耦合:内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。耦合(C0upling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求强内聚,弱耦合。

封闭、开放性:如果一个模块可以作为一个独立体被其它程序引用,则称模块具有封闭性。如果一个模块可以被扩充,则称模块具有开放性。

模块的“封闭、开放性”实际上对应于软件质量因素中的可复用性和可扩充性。采用面向过程的方法进行程序设计,很难开发出既具有封闭性又具有开放性的模块。采用面向对象设计方法可以较好地解决这个问题。 2.详细设计

详细设计的目的是为软件中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。主要任务:

·为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述; .·确定每一模块使用的数据结构;

·确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。

·为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。

三、编码实现

编码实现是将设计结果转化为可执行的程序代码,这是程序员的主要任务。 要将设计结果转化为语言代码,首先必须正确理解需求分析中要求“做什么?”。要详细阅读概要设计书和详细设计书,明确自己需要完成的模块和其他

模块之间的联系(接口规范),外部提供的数据元素和自己输出的数据元素等。

一个大的系统是由一个团队共同协作完成的,必须完全按照设计书的要求来完成相应模块的程序编码。

一个好的程序编码,在完成模块功能的前提下,应该做到程序简单易懂、运行可靠、性能稳定和执行效率高等特点。

1.在编码实现过程中还应该注意做到:

·所使用的标识符应有一定的约定,尽可能采用有一定含义的名字,可以顾名思义; ·在程序设计时,尽可能加上注解; ·书写格式要规范,采用缩进等格式;

这样,可以便于阅读和理解程序,为今后维护提供便利条件。 2.采用标准的控制结构

根据详细设计的流程,采用标准的和详细设计要求一致的分支和循环结构,不准随意的用goto语句或多余无效的循环等。

3.数据输入、输出要求

数据的在输入、输出过程中,要求做到: · 人机操作界面要友好,操作方便,对于前后界面之间、相同类似操作界面间等风格要一致。如Windows有相同风格的窗口界面,相同的对话框界面等。

·从外部提供的数据(输入数据)要进行合法性或有效性检查,防止无效数据输入。如性别输入,只有男或女两者之一,在输入时应根据约定只能提供男女两种数据形式。

·如果数据是根据约定输入(是为了方便数据的输入),应该提示相关约定信息。如性别输入时用M表示男,用F表示女,则在输入时,应该包含上面的约定信息。

·输入的数据格式尽可能和日常的表示方式一致。如日期,我们通常的表 示是年.月.日格式。

·数据输出时,尽可能输出易懂的信息,如果是符号,要提示符号的约定。如性别输出是应该输出男或女,如果输出的是符号,则需说明M.表示男,F.表示女,便于别人理解。

·程序要具有“傻瓜”功能,不会因为用户输入信息等环节偶然的错误,而导致程序非正常退出。 ·除此之外,还可以提供在线帮助等方式,来方便用户使用。

四、系统测试

系统测试就是通过测试活动使软件系统达到需求时提出的各项要求,检测和排除错误。测试总是在假设程序中存在缺陷的前提下,再通过执行程序来发现并最终改正缺陷。

第 6 页 共 19 页

VC++课程设计

世界上没有完美无缺的程序,任何程序都或多或少的存在错误,系统测试的目的是尽可能多的去发现程序所存在的错误,提高程序的质量。

要尽可能多的发现程序中的错误不是一件轻而易举的事情。需要找到相关的测试的方法,而要找出系统中所有的错误,那只是一种设想。试想一下目前我们使用非常广泛的Windows操作系统,还一直被程序的许多漏洞所困扰,微软一直在提供相关的补丁,使系统能稳定的运行。

测试一个系统,一定要明确是寻找系统中的缺陷和错误,如果是去证明系统的正确性,那么测试的时候,就会按照系统的流程去测试,这样就不可能发现程序中的错误,这样的测试是毫无意义,也是没有必要的。

一个成功的测试示例在于发现了至今尚未发现的缺陷。 对一个系统的测试内容有:

·功能性测试:测试软件功能是否满足设计要求,当给定合理的数据输入,系统能否得到预期的结果。功能性测试是系统成立的前提。

·容错性测试:当给定的数据偏离合理数据范围时,系统能否正常运行而不至于系统瘫痪或不会得出啼笑皆非的结果。

·性能与效率测试:性能与效率测试主要是测试软件的运行速度和对资源的利用率。一个好的系统应该尽可能低的占用计算机资源,且运行效率高。

·易用性测试:系统提供的使用方法是否方便。一个好的系统应该有好的应用界面,使用户操作方便、输入输出直观。

当对系统进行具体测试时,有多种测试手段:

· “白盒测试”是指开发人员从程序内部对上述内容进行测试。“白盒测试”针对程序内部逻辑结构,对所有逻辑路径进行测试。测试时,从检查程序的逻辑着手,得出测试数据。

· “黑盒测试”(又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

五、运行维护

运行维护是将系统投入运行,并对投入运行的软件进行修改调整,使软件系统能适应外界环境的变化、实现功能扩充和质量改善。

前面我们已经提到,系统不可能是完美无缺的。当系统投入使用后,系统中的缺陷就会不断暴露出来,系统投入使用的开始,也是系统不断维护的开始。系统维护的终结,也是系统“死亡”的时刻。 维护主要分三类:

·纠错性维护:由于前期的测试不可能揭露软件系统中所有替在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。

·适应性维护。由于新的硬件设备不断推出,操作系统和编译系统也不断地升级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。

·完善性维护。在软件的正常使用过程中,用户还会不断提出新的需求。为了满足用户新的需求而增加软件功能的活动称为完善性维护。 参考资料:

1.本章的部分内容引用了浙大林锐博士的<软件工程思想》。 2.沈军、朱敏、徐冬梅、翟玉庆编著.《大学计算机基础——基本概念及应用思维解析》高等教育出版社

第 7 页 共 19 页

VC++课程设计

第二部分 教师住房管理系统

一 题目与要求

[要求] 该系统在磁盘中存储全校住学校宿舍的教师住房信息。对每一住户存储如下信息:户主:姓名、性别、职称(教授、副教授、讲师、助教)、出生年月、参加工作年月和最后学历(博士、硕士、本科、其他);家庭成员:对每一个成员,存储姓名、性别和出生年月;现住房等级(分别为集体宿舍、一室、一室一厅、二室、二室一厅、三室、三室一厅)和现住房面积(单位;平方米)。当学校有房源后,各住户可提出分房申请(含姓名、申请住房的等级)。 系统功能要求如下:

(1)创建存储教师住房信息的存储系统;

(2)分房时,系统应为申请者输入申请信息(存盘)。对于所有分房者按申请等级不同(共6级)分别按分数高低列表(一种等级一张表)输出(同时存盘)。计分方法如下,职称分:教授,20分;副教授,16分;讲师,12分;助教,8分。工龄分:每年0.5分;每月0.0416分。年龄分:每岁0.1分;每月O.0083分。学龄分:博士,4.5分;硕士,3.25分,本科,2分;其他,0分。每张表应含申请该等级的姓名、职称、参加工作年月、最后学历、原住房等级、职称分、工龄分、年龄分、学龄分及总分。每张表按总分从高到低排列。

(3)可输出婚后仍分居集体宿舍者的户主姓名及出生年月,这类教师的总数。

(4)可输出未住上三室一厅或三室的副教授、教授姓名及现住房标准,这类教师的总数。 (5)可输出未住上一室一厅及以上等级的具有博士学位的教师姓名及住房标准。 (6)可输出全校教师人均(包括家庭人口)住房面积。 [提示]

(1)MFC应用:创建教师住房信息类,包书户主信息、家庭成员信息和住房情况等(其中可以定义结构体或类或枚举类型表示某部分信息,如住房等级可用枚举类型表示),应派生自CObject,类,并实现序列化操作;在文档类中添加存储教师住房信息的链表或数组(可用MFc的集合类),在文档类Sefi~ize()函数中实现序列化;通过菜单打开对话框,在对话框中输入有关信息和查询信息(用多个对话框);视图类显示查询结果;教师住房的信息可保存到文件并可读出。

(2) 控制台应用:创建教师住房信息类,类似提示1;定义存储教师住房信息的链表或数组。

二 数据流图

2.1 顶层数据流图

家庭成员基本信息 户主基本信息 现住房等级

教师住房管理系统 各类住房信息汇总 现住房面积 图1 教师住房管理系统数据流图(第0层)

相应的数据词典条目:

1、数据流名:家庭成员基本信息

组 成:成员姓名+性别+出生年月 2、数据流名:户主基本信息

组 成 :姓名+性别+职称+出生年月+参加工作年月+最后学历 3、数据流名:现住房等级 组 成:级

注 : 共分六级 4、数据流名:现住房面积 组 成:平方米 2.2 第一层数据流图

教师及家庭成员基本信息 总表 信息表

信息处理 信息处理 各个等级户主 读入 输出 信息 各个等级户主

总数 原住房等级 人均住房面积

图2 教师住房管理系统数据流图(第一层)

第 8 页 共 19 页

搜索更多关于: 东南大学C++系统设计报告书 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

VC++课程设计 户主身份验证 主控对话框 户主相关信息 房源相关信息 户主信息处理 户主信息查询 房源申请信息 家庭信息处理 二、系统设计 系统设计是把需求转化为软件系统的最重要的环节:系统设计的优劣在根本上决定了软件系统的质量.o:系统设计主要着力于系统“如何做”,它包含如下四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。在系统设计时,通常分为概要设计和详细设计两个阶段。详细设计产生程序员可用的模块说明,即数据结构说明及加工描述。 1.概要设计 概要设计建立整个软件体系结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义等。概在概要设计过程中,复审系统计划与需求分析,确定系统具体的实施方案,构建软件的体系结构。

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com