结构化分析

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

namespace 学生信息
{
    class Program
    {
        public struct student//创建一个结构体,每一个学生的三个信息
        {
            public string name;
            public int code;
            public int degree;
        }
        /// <summary>
        /// 冒泡排序
        /// </summary>
        /// <param name="a"></param>
        /// <returns>输入参数ArrayList a</returns>
        public ArrayList paixu(ArrayList a)
        {
            student b = new student();//创建临时结构体,用于当做中间值
            for (int i = 0; i <a.Count; i++)
            {
                for (int j = i; j <a.Count-1; j++)
                {
                    if (((student)a[i]).degree < ((student)a[j + 1]).degree)//强制转换成结构体类型,取分数用于比较大小
                    {
                        b = ((student)a[i]);//中间值,互换集合中位置
                        a[i] = a[j + 1];
                        a[j + 1] = b;
                    }
                }
            }
            return a;
        }
        static void Main(string[] args)
        {
            student p = new student();
            ArrayList s = new ArrayList();
            Console.WriteLine("请输入学生人数:");
            int a = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i <a; i++)
            {
                Console.WriteLine("请输入学生姓名:");
                string b1 = Console.ReadLine();
                p.name = b1;
                Console.WriteLine("请输入学号:");
                int b2 = Convert.ToInt32(Console.ReadLine());
                p.code = b2;
                Console.WriteLine("请输入分数:");
                int b3 = Convert.ToInt32(Console.ReadLine());
                p.degree = b3;
                s.Add(p);//存于集合中
            }
            double sum = 0;
            for (int i = 0; i < a; i++)
            {
                sum = sum + ((student)s[i]).degree;
            }
            double avg = sum / a;
            Console.WriteLine("平均分数为:"+avg);
            new Program().paixu(s);//调用函数,排序
            for (int i = 0; i < a; i++)//排完序,遍历集合
            {
                Console.WriteLine("姓名:"+((student)s[i]).name+"  学号:"+((student)s[i]).code+"  分数:"+((student)s[i]).degree);
            }
            Console.ReadLine();
        }
    }
}
时间: 2024-08-07 03:26:35

结构化分析的相关文章

结构化分析(SA)

1.什么叫模型?我觉得它的关键字:抽象 重要特征 降低复杂度. 2.软件设计的方法 分类:面向功能~,面向对象的设计. 面向数据流的方法是在结构化分析中提到的. 哦~ 3.面向数据流的结构化分析 特点:自顶而下(整体到局部),逐层分解. 它涉及数据流图(DFD) #DFD是什么?描述数据 各逻辑功能模块之间的流动和处理过程. #DFD的构成及符号:数据流(名词或名词短语),加工处理(动词短语,多有编号),数据存储(多为名词),外部实体(非系统成员,多为名词短语). #DFD的层次性 数据流图分为

结构化分析设计——【软考下午题】

结构化分析是面向数据流的需求分析方法.它的思想是自顶向下,逐层分解.由以下的几部分组成:数据流图.数据字典.加工逻辑说明.补充材料. 一.数据流图(DFD): [概念] Data Flow Diagram是用户易理解,分析数据流程的图形工具. [元素] 名称 图符 概念 外部实体 □ 系统外的人员和组织,数据源或终点 加工 ○ 输入流和输出流之间的变换, 包含名字和编号(确定层次,图,子加工) 数据存储 〓 存储数据,有名字 数据流 -> 固定成分数据,表示数据流向,非控制流. 除跟存储有关的,

结构化分析方法

他是面向数据流进行需求分析的方法,是一种建模技术.我们经常使用数据流图(DFD)完成功能建模,使用实体关系图(ER)完成数据建模,使用状态迁移图(STD)完成行为建模.它的核心是数据字典. 数据流图从数据传递和加工的角度,以图形的方式来描述数据从输入到输出的整个变换过程,其基础是功能的分解,我们通过数据流图能很清晰的了解数据在目标系统中的传送与变换,以及在每一个阶段对数据进行加工的功能. 实体关系图,为我们展现了一个可视化的实体关系.他包含了实体对象以及实体对象的相关数据. 数据字典,他定了数据

结构化分析建模【课堂】

一.软件建模基本内容: (一)领域建模 (二)需求建模 描述软件向用户所能提供的外在特性,包括软件的目标.功能等特性. (三)设计模型 软件的设计方案,包括软件的实现结构.构件.文件等. (四)测试模型 测试软件的模型描述 二.软件建模方法 大致分为以下三种,但在实际的软件建模过程中将其三和一进行建模. (一)面向功能建模--功能分层划分 (二)面向数据建模 (三)面向对象建模 三.UML九大类图 1.用例图 描述角色以及角色与用例之间的连接关系.说明的是谁要使用系统,以及他们使用该系统可以做些

GB28181接入摄像头输出可结构化分析的视频流

GB28181流媒体服务搭建 搭建入口,解压启动即用:https://www.liveqing.com/docs/download/LiveGBS.html 什么是视频结构化 视频结构化是对视频数据的结构化处理,对原始视频流进行分析,提取出关键数据,在一些智能化场景下建模使用. 开启输出RTSP 注意 在 Linux 下面开启 554 端口通常需要 root 权限, 需要以 sudo 来运行 livesms 服务程序 编辑 LiveSMS 压缩包下面的 livesms.ini > [rtsp]

结构化分析工具之判定树

什么是判定树? 又称决策树,是一种描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关.使用判定树进行描述时,应该从问题的文字描述中分清哪些是判定条件,哪些是判定的决策,根据描述材料中的联结词找出判定条件的从属关系.并列关系.选择关系,根据它们构造判定树. 判定树能清晰的表示复杂的条件组合与应做的动作之间的关系,它不需要任何的说明,一眼就可以看出其中的含义,因此易于掌控和使用. 判定树的组成 主要由如下4个元素组成: 根节点:第一个选择点,也就是我们认为能最大分割样本的

结构化分析工具之判定表

什么是判定表? 也称决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合.与因果图法相似判定表法主要侧重输入条件之间的逻辑关系.用于描述数据是如何被加工处理的. 判定表(Decision table)是一种表达逻辑判断的工具.是分析和表达多逻辑条件下执行不同操作的情况的工具.在一个程序中,如果输入输出比较多,输入之间和输出之间相互制约的条件较多,在这种情况下应用决策表很合适,它可以很清楚地表达它们之间的各种复杂关系. 决策表是把作为条件的所输入的各种组合值以及对应输出值都罗列出来而形成

在java中,OOA是什么?OOD是什么?OOP是什么?

OOA Object-Oriented Analysis:面向对象分析方法 是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题.OOA与结构化分析有较大的区别.OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析. OOA(面向对象的分析)模型由5个层次(主题层.对象类层.结构层.属性层和服务层)和5个活动(标识对象类.标识结构.定义主题.定义属性和定义服务)组成.在这种方法中定义了两种对象类之间的结构,

结构化方法和面向对象方法在软件开发中的对比

学习过C语言和JAVA的同学们一定清楚,这两种语言代表了两种不同的开发方式,即以C语言为代表的结构化开发方法和JAVA代表的面向对象的开发方法.由于二者在程序结构上有着很大的区别,因此,在软件开发领域中,根据自己的需求来选择合理的开发方式就显得尤为重要. 开发软件通常有三个层次: 1.满足用户需求 2.可维护性,即可修改性,让软件能随着用户需求的变更而容易改变 3.可重用性(在其它软件中,能尽量重用该软件的模块) 通过对软件的这三个主要层次的分析,我们就能在实际开发中确定我们的选择. 结构化方法