




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档你我共享计算机综合程序设计(短学期课程)信息学院计算机课程小组二O 一二年八月AAAAAA第一部份软件工程一、需求分析二、系统设计三、编码实现四、系统测试五、运行维护第二部份干部招聘录用系统(样例)一、题目与要求二、画数据流图三、画模块结构图四、详细设计 (VC+语言)五、程序运行时的关键画面截图(略)六、编程(略)第一部份软件工程1968年,北大西洋公约组织的学术会议第一次创造了“软件工程”一词,提 出“软件工程”概念。通过工程化的方法来开发软件,解决软件危机。三十年余 年来,尽管软件的差错就象汽车一样时有抛锚的时候,但软件的发展速度远远超过了任何传统工业,而期间并未出现真真的软件危
2、机。这在很大程度上归功于“软 件工程”。如今软件工程成了一门学科。软件工程简单的讲,主要讲述软件开发的道理,基本上是软件实践者的成功 经验和失败教训的总结。软件工程的观念、方法、策略和规范都是朴实无华的, 平凡之人皆可领会,而关键在于运用。软件工程方法是应该事先掌握,在整个软 件设计过程中都必须遵照执行的,而不能把它看成是事后解决问题的锦囊妙计, 对预料将要出现的问题,必须控制每个实践环节,防患于未然。研究软件工程将 随着软件工程的开始,直到软件被废弃研究工作才结束。软件工程中最基本的概念是软件生命周期。 一个软件从定义到开发、使用和 维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历
3、的这个漫长的 时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被 淘汰的全过程。软件生命周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程统。通常,将软件生命周期分为五个阶段:需求分析、系统设计、编 码实现、系统测试和运行维护。需求分析和系统设计是软件开发过程中最核心的活动。 典型的针对需求分析 和系统设计的软件开发方法有:结构化分析方法、面向数据结构的方法和面向对 象方法。结构化分析方法(structured analysis简称SA)是一种面向数据流进行需求分 析的方法,适合于数据处理类型软件的需求分析。结构化分析方法使用数据流图 DFD与数据字典DD来描述,面
4、向数据流问题的需求分析适合于数据处理类型 软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统 进行数据与逻辑的抽象。下面的需求分柝和系统设计就是以结构化分析方法为前 提的。面向数据结构的方法是结构化方法的变形,它注重数据结构而不是数据流, 是从数据结构方面分析,即分析信息结构,并用数据结构图来表示,在此基础上 进行需求分析,导出软件的结构。其特征是:信息结构是层次式;数据结构的表 达要求用顺序、选择、重复等合成构造;具有将层次式数据结构映射到程序结构 的映射机制。面向对象方法我们在后面单独介绍。(该部分内容摘自于大学计算机基础 基本概念及应用思维解析,沈军、朱敏等,高等教育
5、出版社一书) 一、需求分析需求分析是获取需求定义(equireme nt Specificatio n)并生成功能规约 (Functional Sp。cification)。需求分析主要着眼于预期的系统应该“做什么”,并 为需求做个注释“为什么?”,这样可让程序员了解需求的本质,以便选用最合适 的技术来实现此需求。其次需求说明不可有二义性,更不能前后相矛盾。如果有 二义性或前后相矛盾,则要重新分析此需求。需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。数据流图是描述数据处理过程的工具。以图形的方式刻画数据流从输入到输
6、出的传输变换过程,同时描述了系统的逻辑处理的功能。数据流图基本符号有:用来表示数据输入的源点和数据输出的汇点(终点)用来表示数据加工、处理用来表示数据流(动态数据)【例1】学生试卷处理子系统的数据流图(图1):成绩分布图, 试卷难易度 成绩通知单图I用来表示数据存储(静态数据)说明:图中圆圈表示阅圈和成绩的数据处理。 图中两个横线间的成绩册和学 生名册是存储在存储介质中的文件。数据流图具有抽象性、概括性、层次性等特性。画数据流图的基本步骤概括 地说,就是自外向内,自项向下,逐层细化,完善求精。数据流图的分层对一个大型的系统,如用一张数据流图画出所有的数据流和加工, 则图纸将极 其庞大复杂,因而
7、难以理解。为了控制复杂性,结构化分析方法方法采用“分层” 的技术。一套分层的数据流图由系统关联图、顶层(第一层)、第二层、第三层等组成。 项层图说明了系统的边界,即系统的输入和输出数据流,项层图只有一张。第二层的数据流图描述了某个加工的分解, 而它的组成部分又要进一步被分解。 所以 有第三层或更多,系统有多少层,是根据系统的复杂程度决定的,有的小系统可 能只有第二层,而大系统可能有更多层(图2)。系统关联图确定了从外部项到系统的数据流和从系统向外部项的数据流。这些数据流在其它层次的数据流中不允许减少, 也不允许增加。各层次内部的数据 流不受关联图的限制。画分层数据流图要遵循的最基本原则:A 数
8、据流程图必须包括系统关联图、系统顶层和第二层数据流程图,第三层或更多根据需要确定。B 数据流应有名字。C.数据流程图的分解中,必须保持每个分层同其上层加工中的输入输出流相 一致。D 数据存储之间不得出现未经加工的数据流。E. 若有查询处理,应在数据流程图中表达。F. 统计和打印不在数据流图中表达。G不要把控制流作为数据流。H.忽略琐碎的枝节。顶层3层图2【例2】数据流图的分层图:a.顶层数据流图(图3)考试中心2 数据字典数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定 义与说明,数据字典是数据流程图的补充工具。 数据流图和数据字典共同构成系 统的逻辑模型。数据字典的内容数据
9、字典的主要内容有六项:数据流:应包括数据流名称、来源、去处、组成、流量等。数据项:数据项也称数据元素,是数据“不可再分”的最小组成单位。应包 括数据项名称及编号(数据项名称必须唯一地标识这个数据项,以区别于其他数 据项)、别名、取值的范围和取值的含义、长度等。数据结构:应包括数据结构的名称及其编号、组成等。如果是一个简单的数 据结构,只要列出它所包含的数据项(即成员)即可。数据存储:数据存储是数据结构保存的场所。主要内容有数据存储的名称及 其编号、流入、流出的数据流、组成等。处理逻辑:应包括处理逻辑的名称及编号、简述 (对处理逻辑的简明描述, 使人了解这个处理逻辑是做什么用的)、处理逻辑的输入
10、和输出、主要功能及相 关的一些说明等。外部实体:外部实体是系统的“人机”界面,也就是系统的数据流由外部 实体流入,或者系统的数据定义数据的方法数据字典中的定义数据,是对数据自顶向下的进行分解,当分解到数据甜不 可再分”的时候,数据的分解过程就结束了,也就是数据项就确定下来了。所以 数据元素是数据的基本单位。数据字典的用途数据字典是关于数据的信息的集合。它是对数据流图中新包含的所有元素的定 义的集合。在软件分析和设计的过程中,数据字典给设计者提供关于数据的描述 信息,所以数据字典是分析阶段的有用工具。数据字典的特点(1) 可以通过名字能方便地查阅数据的定义;(2) 没有记录;(3) 尽量不重复在
11、规格说明的其他组成部分中已经出现的信息;(4) 容易更新和修改;(5) 能单独处理描述每个数据元素的信息;(6) 定义的书写方法简单,方便而且严格;系统设计系统设计是把需求转化为软件系统的最重要的环节:系统设计的优劣在根本 上决定了软件系统的质量.o:系统设计主要着力于系统“如何做”,它包含如下 四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。 在系统设计时,通常分为概要设计和详细设计两个阶段。详细设计产生程序员可 用的模块说明,即数据结构说明及加工描述。1 .概要设计概要设计建立整个软件体系结构,包括子系统、模块以及相关层次的说明、 每一模块的接口定义等。概在概要设计过
12、程中,复审系统计划与需求分析,确定 系统具体的实施方案,构建软件的体系结构。概要设计还要确定模块结构,划分 功能模块,将软件功能需求分配给所划分的最小单元模块。要确定各模块间的联 系,确定数据结构、文件结构、数据库模式,以及确定测试方法与策略。体系结构设计体系结构是软件系统中最本质的东西,它是对复杂事物的一种抽象。良好的 体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。体系结构设计 时应在一定的时间内保持稳定。 软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一 个被大家所公认的定义。.体系结构(Architcture)_词在英文里就是“建筑”的意 思。我们把Dewa
13、yne Perry和Alex Wolf的定义作为参考:软件体系结构是具有 一定形式的结构化元素,耳p构件的集合,包括处理构件、数据构件和连接构件。 处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构 的不同部分组组合连接起来:这,定义注重区分处理构件、数据构件和连接构件, 这一方法在其他的定义和方法中基本上得到保持。体系结构有许多种,包括常用的层次结构。层次结构是把比较复杂的事情,进行分层,然后一层一层地去完成。在实现 时,高层的工作总是建立在低层的工作之上。 层次关系主要有两种:上下层关系 和顺序相邻关系。上下层关系非常常见,如学校的组织结构,最高层是学校,下面院系,院系
14、 下面是学系。在权限上学校的权限高于院系,学校可以指挥院系,而反过来不行。对于顺序相邻关系,我们可以把计算机网络的0SI参考模型来理解,0SI 有七个层次,在通讯时,只能在相邻两层之间发生,信息只能被一层一层地顺序 传递下去。发送方和接收方传递的方向刚好相反。体系结构设计要求:通过分层,把每个功能逐步独立起来,并且保证每个功 能都有相应的模块来实现;要确定模块间的调用关系,对模块间接口做总体描述, 明确模块间信息的传递。模块设计在设计好软件的体系结构后,宏观上就明确了各个模块应具有的功能, 在哪 一个层次上,与其他功能模块的关系。我们习惯从功能上划分模块,保持“功能 独立”是模块化设计的基本原
15、则。因为,“功能独立”的模块可以降低开发、测 试、维护等阶段的代价。但是“功能独立”并不意味着模块之间保持绝对的孤立。一个系统要完成某项任务,需要各个模块相互配合才能实现,此时模块之间就要 进行信息交流。模块设计主要说明每个模块“做什么”、简要说明数据输入、输 出、处理逻辑、与其它模块的接口,与其它系统或硬件的接口等联系。评价模块设计优劣的三个特征因素:“信息隐藏”、“内聚与耦合”和“封闭、 开放性”。信息隐藏:是尽量避免某个模块的行为去干扰同一系统中的其它模块,在我们学习面向对象程序设计,类的封装性就是为了实现信息隐藏。内聚与耦合:内聚(Cohesion)是一个模块内部各成分之间相关联程度的
16、度量。 耦合(COupli ng)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它 模块存在强耦合的模块通常意味着弱内聚, 而强内聚的模块通常意味着与其它模 块之间存在弱耦合。模块设计追求强内聚,弱耦合。封闭、开放性:如果一个模块可以作为一个独立体被其它程序引用,则称模块具有封闭性。如果一个模块可以被扩充,则称模块具有开放性。模块的“封闭、开放性”实际上对应于软件质量因素中的可复用性和可扩充 性。采用面向过程的方法进行程序设计,很难开发出既具有封闭性又具有开放性 的模块。采用面向对象设计方法可以较好地解决这个问题。2. 详细设计详细设计的目的是为软件中的每一个模块确定使用的算法和块内数
17、据结构, 并用某种选定的表达工具给出清晰的描述。主要任务:为每个模块确定采用的算法,选择某种适当的工具表达算法的过程, 写出 模块的详细过程性描述;.确定每一模块使用的数据结构;确定模块接口的细节,包括对系统外部的接口和用户界面, 对系统内部其 它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。为每一个模块设计出一组测试用例,以便在编码阶段对模块代码 (即程序) 进行预定的测试,模块的测试用例是软件测试计划的重要组成部分, 通常应包括 输入数据,期望输出等内容。三、编码实现编码实现是将设计结果转化为可执行的程序代码,这是程序员的主要任务。 要将设计结果转化为语言代码,首先必须正确理
18、解需求分析中要求“做什么?”。要详细阅读概要设计书和详细设计书,明确自己需要完成的模块和其他 模块之间的联系(接口规范),外部提供的数据元素和自己输出的数据元素等。 一个大的系统是由一个团队共同协作完成的,必须完全按照设计书的要求来完成 相应模块的程序编码。一个好的程序编码,在完成模块功能的前提下,应该做到程序简单易懂、运 行可靠、性能稳定和执行效率高等特点。1. 在编码实现过程中还应该注意做到:所使用的标识符应有一定的约定, 尽可能采用有一定含义的名字,可以顾 名思义;在程序设计时,尽可能加上注解;书写格式要规范,采用缩进等格式;这样,可以便于阅读和理解程序,为今后维护提供便利条件。2采用标
19、准的控制结构根据详细设计的流程,采用标准的和详细设计要求一致的分支和循环结构,不 准随意的用goto语句或多余无效的循环等。3 数据输入、输出要求数据的在输入、输出过程中,要求做到:人机操作界面要友好,操作方便,对于前后界面之间、相同类似操作界 面间等风格要一致。如 Windows有相同风格的窗口界面,相同的对话框界面等。从外部提供的数据(输入数据)要进行合法性或有效性检查,防止无效数据输 入。如性别输入,只有男或女两者之一,在输入时应根据约定只能提供男女两种 数据形式。如果数据是根据约定输入(是为了方便数据的输入),应该提示相关约定信息。 如性别输入时用M表示男,用F表示女,则在输入时,应该
20、包含上面的约定信 息。输入的数据格式尽可能和日常的表示方式一致。如日期,我们通常的表 示是年月日格式。数据输出时,尽可能输出易懂的信息,如果是符号,要提示符号的约定。如 性别输出是应该输出男或女,如果输出的是符号,则需说明M 表示男,F表示女,便于别人理解。程序要具有“傻瓜”功能,不会因为用户输入信息等环节偶然的错误,而导 致程序非正常退出。除此之外,还可以提供在线帮助等方式,来方便用户使用。四、系统测试系统测试就是通过测试活动使软件系统达到需求时提出的各项要求,检测和排除错误。测试总是在假设程序中存在缺陷的前提下, 再通过执行程序来发现并 最终改正缺陷。世界上没有完美无缺的程序,任何程序都或
21、多或少的存在错误,系统测试的 目的是尽可能多的去发现程序所存在的错误,提高程序的质量。要尽可能多的发现程序中的错误不是一件轻而易举的事情。需要找到相关的测试的方法,而要找出系统中所有的错误,那只是一种设想。试想一下目前我们 使用非常广泛的 Windows操作系统,还一直被程序的许多漏洞所困扰,微软一 直在提供相关的补丁,使系统能稳定的运行。测试一个系统,一定要明确是寻找系统中的缺陷和错误, 如果是去证明系统 的正确性,那么测试的时候,就会按照系统的流程去测试,这样就不可能发现程 序中的错误,这样的测试是毫无意义,也是没有必要的。一个成功的测试示例在于发现了至今尚未发现的缺陷。对一个系统的测试内
22、容有:功能性测试:测试软件功能是否满足设计要求,当给定合理的数据输入, 系统能否得到预期的结果。功能性测试是系统成立的前提。容错性测试:当给定的数据偏离合理数据范围时, 系统能否正常运行而不至 于系统瘫痪或不会得出啼笑皆非的结果。性能与效率测试:性能与效率测试主要是测试软件的运行速度和对资源的利 用率。一个好的系统应该尽可能低的占用计算机资源,且运行效率高。易用性测试:系统提供的使用方法是否方便。 一个好的系统应该有好的应用 界面,使用户操作方便、输入输出直观。当对系统进行具体测试时,有多种测试手段: “白盒测试”是指开发人员从程序内部对上述内容进行测试。“白盒测试”针对程序内部逻辑结构,对所
23、有逻辑路径进行测试。测试时,从检查程序的 逻辑着手,得出测试数据。 “黑盒测试”(又称为功能测试或数据驱动测试)是把测试对象看作一个黑 盒子。利用黑盒测试法进行动态测试时, 需要测试软件产品的功能,不需测试软 件产品的内部结构和处理过程。五、运行维护运行维护是将系统投入运行,并对投入运行的软件进行修改调整,使软件系 统能适应外界环境的变化、实现功能扩充和质量改善。前面我们已经提到,系统不可能是完美无缺的。当系统投入使用后,系统中 的缺陷就会不断暴露出来,系统投入使用的开始,也是系统不断维护的开始。系 统维护的终结,也是系统“死亡”的时刻。维护主要分三类:纠错性维护:由于前期的测试不可能揭露软件
24、系统中所有替在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。适应性维护。由于新的硬件设备不断推出,操作系统和编译系统也不断地升 级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。完善性维护。在软件的正常使用过程中,用户还会不断提出新的需求。为了 满足用户新的需求而增加软件功能的活动称为完善性维护。参考资料:1 本章的部分内容引用了浙大林锐博士的 软件工程思想。2 沈军、朱敏、徐冬梅、翟玉庆编著.大学计算机基础一一基本概念及应用思维解析高等教育出版社第二部分 干部招聘录取系统(样例)一题目与要求1.1题目:招聘干部录取系统设某市公开招聘5名副
25、局长。招聘过程中要进行4项笔试(政策法律基础、 语文、英语、计算机基础)和一项口试(考察处理问题能力)。录取时对于年龄在3055的应聘者按总分从高到低录取。总分的构成如下:4项笔试分(百分制);口试分(百分制)乘 2;学历分;年龄分;工作经历分。后三种分数的计 算方法如下:学历分:博士硕 士本科其它100分75分50分0分年龄分:55岁50岁40岁35岁30岁70分75分100分80分70分其它年龄(可以有小数部分)的分数按线性插值确定。工作经历分(仅考虑任科级干部年限):0年1年2年6年6年以上0分70分100分20分0分其它年龄(可以有小数部分)的分数按线性插值确定。用VC+语言实现招聘干
26、部录取系统。该系统在磁盘上存贮如下信息:1、应聘者报名表。表中记录了每位应聘者的有关信息,其中包括:姓名、 性别、出生年月、最后学历、任科级干部有多少年月、现工作单位。2、每位应聘者5项考试的成绩。该系统的功能如下:1、输入应聘者的信息和5项考试成绩;2、 输出按总分从高到低排列的成绩表,表项有姓名、8项分数、总分。设 应聘者不超过50名;3、输出5份录取通知书;4、查询某人的8项分数和总分。1.2 综合程序设计要求一、文档1、 需求说明书(分层的数据流图、数据词典、小说明);2、模块结构图,每个模块的说明;3、每个模块的算法及使用的数据结构;4、每个模块的编码和整个程序的编码;5、各模块的测
27、试用例及测试结果;6使用手册。二、程序1、设计若干命令以表示要求程序执行相应的功能;2、输入到程序的数据名称及格式应通过提示信息告诉用户。能拒绝非 法数据,同时给出重新输入数据的提示。当输入数据量很大时,应 建立磁盘文件,以便重复演示程序功能;3、程序的运行结果要以清晰可读的形式显示出来,并可打印及存贮, 以便查阅。画数据流图相应的数据词典条目:1、数据流名:招聘截止日期组成:年+月2、数据流名:应聘者信息与考试成绩组 成:个人信息+考试成绩1n 注:n为应聘人数:nW50。3、数据流名:成绩总表组成:姓名+个人成绩1 n注:按总分从高到低排列。4、数据流名:录取通知书表组 成:姓名+被录取的
28、信息15 注:1.总分前五名的录取通知单。2若应聘者不足五人,按实际人数处理5、数据流名:被查询者的个人成绩组成:姓名+个人成绩6、数据项名:个人信息组成:姓名+性别+出生年月+最后学历+工作年限+现工作单位注:工作年限指任科级干部的年月。7、数据项名:考试成绩组 成:政策法律基础成绩+语文成绩+英语成绩+计算机成绩+口试成 绩8数据项名:个人成绩组成:考试成绩+学历分+年龄分+工作经历分 +口试分9、数据项名:总分组成:考试成绩+学历分+年龄分+工作经历分+口试分2.2 第一层数据流图图2招聘干部录取系统数据流图(第一层)组文组组加编数据流名:信息总表成:个人信息+考试成绩* * *+招聘截
29、止年月 件名:成绩总表成:姓名+个人成绩 织:按总分从高到低顺序。工名:读入号:1激发条件:需招聘成绩表,或需要确定干部录取情况,或需要某指定者的成绩 加工逻辑:1将“应聘者信息与考试成绩”读入信息总表中2.3关于加工“信息处理的”的分解图3加工“信息处理”的分解2读入招聘截止年月文件名:初步成绩总表形成:姓名+个人成绩已填入的应聘者个数。加工名:计算填表编号:2.1激发条件:信息总表已经形成加工逻辑:将应聘者的学历、年龄和工作年限计算成学历分、年龄分和工作经历 分,并计算总分,将应聘者所有成绩填入初步成绩表中。加工名:排序编号:2.2激发条件:初步成绩总表按总分高到低排序 加工逻辑:按总分的
30、高低从高到低排列个人成绩和姓名。2.4关于加工“输出”的分解三画模块结构图从图5可以看出,从2.1到2.3均为信息处理部分,可视作系统的中心变换 部分。那么从加工1至加工2.1的“信息总表”便是系统的逻辑输入,从加工2.3 到文件成绩总表的数据流程便是系统的逻辑输出。我们为中心变换部分和其前、 后的部分各设计一个模块,因此可画出系统顶层的模块结构图。图6系统顶层模块结构下面考虑三个第一层模块的下属模块。由于输入的功能就是“读入”加工的功能,将招聘截止年月和应聘者信息与 考试成绩读入信息总表中,比较简单,不用为其设立下属模块。现将其更名为“读 入”模块。再设计“输出”模块的下属模块。根据系统要求
31、,输出模块应根据用户要求 完成“打印成绩总表”、“打印录取通知书表”和“模块的下属模块”。根据系统 要求,输出模块应根据用户要求完成“打印成绩总表”、“打印录取通知书表”和 “打印被查询者个人成绩”三项功能中的一项或几项,所以可为“输出”模块建 立如图7所示的三个模块。下面考虑设计“信息处理”模块的下属模块。从图 3的数据流图可见,可为 “信息处理”模块设立两个下属模块:“计算填表”和“排序”。前一个模块完成 计算各项分数并填入初步成绩表,循环调用该模块直至填表完毕。至此,我们可以画出整个软件的模块结构图。如图 9。其中每一个模块都用 了一个表示符合给予命名。下面列出各模块的功能说明:图7输出
32、模块下属模块图8 “信息处理”及其下属模块干部招聘主模块INVCAD应聘截止日期成绩总表填入成绩表应聘人数被查询者姓成绩总应聘人数成绩总表应聘人数言息总表p表填入初步成绩成绩总表计算填表CALFILL读入READIN成绩总表应聘者个数输出 EXPORTION已填入人数应聘人数信息处理TREATINF排序 ARRANGE输岀成绩总表PRNMARK输岀录取通知书表PRNINF输出被查询者成绩 PRNPER图9系统的模块结构图3.1 干部招聘主模块模块名:INVCAD输入: 招聘截止日期 、应聘者信息与考试成绩 、被查询人姓名 输出: 成绩总表功能:建立成绩总表调用以下模块:READIN TREAT
33、INF EXPORT3.2 读入 模块模块名:READIN输入: 招聘截止日期 、应聘者信息与考试成绩输出: 信息总表功能:将 招聘截止日期 、应聘者信息与考试成绩 存入指定的 信息总表中 调用以下模块:无注释:该模块与数据流图中的加工 读入对应。3.3 信息处理模块模块名:TREATINF输入: 信息总表 、应聘截止日期输出: 成绩总表功能:将 信息总表中信息折算成成绩,并按总分从高到低排成 成绩总表。 调用以下模块:CALCUTFILLIN、ARRANGE注释:该模块与数据流图中的加工 信息处理对应。3.4 输出模块模块名:EXPORT输入: 成绩总表 、被查询人姓名输出: 成绩总表 、录
34、取通知书表 和被查询人个人成绩 中的一项或几项的屏 幕形象或纸面现象。功能:将成绩总表 、录取通知书表 和被查询人个人成绩 中的一项或几项在 屏幕或打印机上显示出来。调用一下模块:PRNMARKPRNINF PRNPER注释:该模块与数据流图中的加工 输出对应。3.5 计算填表模块模块名:CALCUT输入: 信息总表 、应聘截止日期输出: 初步成绩表 、应聘者人数 功能:根据当前的一个应聘者的信息,计算出他的个人成绩,填入表中。调用一下模块:CALAGE CALWORK注释:该模块与数据流图中的加工 计算填表对应。3.6 排序模块模块名:ARRANGE输入: 初步成绩表 、应聘者人数输出: 输
35、出总表功能:将 初步成绩表 按总分从高到低排序。 调用以下模块:无注释:该模块与数据流图中的加工 排序对应。3.7 输出成绩总表 模块模块名:PRNMARK输入: 成绩总表 、应聘者人数 输出: 成绩总表的屏幕形象或纸面形象。 功能:将 成绩总表在屏幕或纸面上显示出来。 调用以下模块:无注释:该模块与数据流图中的加工 打印成绩总表 对应。3.8 输出录取通知书表 模块模块名:PRNINF输入: 成绩总表 、应聘者人数 输出: 录取通知书的屏幕或纸面形象。功能:将录取通知书 在屏幕或纸面上显示出来。 调用以下模块:无注释:该模块与数据流图中的加工 打印录取通知书 对应。3.9 输出被查询者个人成
36、绩 模块模块名:PRNPER输入: 成绩总表 、应聘者人数输出: 被查询者个人成绩 的屏幕或纸面形象。功能:将 被查询者个人成绩 在屏幕或纸面上显示。 调用以下模块:无注释:该模块与数据流图中的加工 打印被查询者个人成绩 对应四详细设计(VC+语言)根据数据词典的说明,容易设计出这些数据的类招聘截止日期4.1 主模板 先考虑主模块的数据结构,型和相应的变量。struct Tdate int year;int mon th;;struct Tmark考试成绩 float pol;政治float chn;语文flaot eng;英语float com;计算机float oral;口试;struct
37、 Ti nform应聘者个人信息char n ame20;姓名char sex;性别float age;年龄char schoolrecord;学历float workle n;任科级干部年限char wordsite60;现工作单位Tmark mark;考试成绩;struct Tmarks应聘者信息和考试成绩char n ame20;姓名float Sage;年龄分float Srecord;学历分float Swle n;工作经历分Tmark mark;考试成绩float total;总分ifstream In flist;信息总表文件Tmarks Tmarklist50 成绩总表Tmar
38、ks marklist;char Sourcefile20外部文件名注:文件操作由于多为结构体数据,因此建议使用二进制文件操作方法;主模块算法模块名:INVCAD 输入: 招聘截止日期 、应聘者信息与考试成绩 、被查询人姓名 输出: 成绩总表指令:输出系统的初始界面输出菜单界面开提示窗口,要求用户输入选择项 dowhile()招聘干部录取系统1 输入应聘者信息2结果输出3.switch(l)case 1:调用读入模块,建立文件break;case 2:调用输出模块break;case 3: exit(0)default: break;4.2 读入 模块该模块与加工1对应。它先读入招聘截止日期,
39、再依次读入应聘者的各项信 息,同时对信息作鉴别,看是否合理。读完一个应聘者的所有信息后将其全部再 屏幕上显示出来,供输入者复核。该模块涉及的数据基本上再主模块理定义了, 其它定义如下:Tdate STOP,BIRTH,WORKTIME; 招聘截止年月,出生年月,工作年限 float ALEN;char JUDGE;Ti nform INF;float STOPLLINE; int I;年龄判断是否正确:Y/N信息总表的一个元素的内容招聘截止时间应聘的人数“读入”模块算法(每输入一位应聘者信息,将其保存在外部文件 filelist.dat中)模块名:READIN输入: 招聘截止日期 、应聘者信息
40、与考试成绩输出: 信息总表指令:读入招聘截止日期;1=0 ;while(!i nfile.eof()读入姓名;读入性别,鉴别; 读入学历,鉴别; 读入工作地点; 读入出生年月,鉴别; 读入工作年限,鉴别; 读入考试成绩,鉴别; 读入工作年限,鉴别; 读入考试成绩,鉴别; 输出所有信息,确认有无错误; 将信息写入文件1=1+1;4.3 信息处理模块如果模块“计算填表”模块和“排序”模块分别能实现编号为 2.1、2.2的 加工逻辑,那么根据模块“信息处理”对其下属模块的管理方法,可写出其算法。 我们要使用的变量有:float STOPLINE;招聘截止日期Tinform INFORM;文件的一个元素信息处理模块的算法模块名:TREATINF输入: 信息总表 、应聘截止日期输出: 成绩总表指令:以读打开文件 Inflist.open(Sourcefile)INFORM文件Inflist的一个元素STOPLINE 应聘截止日期I=0WHILE( 没有到达文件结束EOF) INFORM 文件INFLIST的一个元素调用“计算填表”模块调用“排序”模块解除文件Inflist外部文件的联系Inflist.fclo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业年度安全培训计划课件
- 空间信息处理技术-洞察及研究
- 2025年社区工作者招聘考试(公共基础知识)试题及答案
- 智能响应复合材料系统-洞察及研究
- 出纳安全培训建议及意见课件
- 朝阳县辅警考试题库2025(有答案)
- 麻醉药品和第一类精神药品使用与管理培训考试试题(附答案)
- 出差人身财产安全培训课件
- 出国行前培训安全考题课件
- HE错误恢复机制-洞察及研究
- 国际贸易理论与实务ppt课件(完整版)
- GB∕T 6546-2021 瓦楞纸板边压强度的测定
- 历史选择性必修1 国家制度与社会治理(思考点学思之窗问题探究)参考答案
- 中国铁路总公司《铁路技术管理规程》(高速铁路部分)2014年7月
- 学前儿童发展心理学(第3版-张永红)教学课件1754
- 医学资料冠心病英文版
- 部编人教版九年级语文上册教学计划及教学进度表
- 干法——稻盛和夫
- 人教版数学八年级上册12.2 :三角形全等的判定(“角边角”“角角边”定理)》课件(共26张PPT)
- 城市垃圾焚烧发电处理讲解
- 乳铁蛋白与骨质疏松症
评论
0/150
提交评论