C#复习:
在控制台程序中使用结构体、集合,完成下列要求
项目要求:
一、连续输入5个学生的信息,每个学生都有以下4个内容:
1、序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2,以此类推
2、学号 - 必填,如:S001,S002... 以此类推
3、姓名 - 必填
4、成绩 - 大于等于0,小于等于100

以上内容必须按照要求填写,请写好相应的验证,如果没填写正确,则让用户重复填写到正确为止

二、5个学生信息都输入完毕后,按照分数从高到低的顺序将学生信息展示出来
显示格式如下:

==============学生成绩展示=================
序号 学号 姓名 成绩
3 S003 张三 100
1 S001 李四 99
2 S002 王五 98
...
...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections; namespace ConsoleApplication3
{
class Program
{
struct student
{
public int code;
public string xuehao;
public string name;
public double score;
}
static void Main(string[] args)
{
ArrayList al =new ArrayList();
student st =new student();
int biao = ;
for (int i = ; i < ; i++)
{
int biao1 = ;
st.code = i+;
for (; ; )
{
Console.Write("请输入第{0}个学生的学号:", i + );
string xh = Console.ReadLine();
if (xh != ""&&xh!=" "&&xh!=" ")
{
if (biao == )
{
st.xuehao = xh;
biao1 = ;
break;
}
else
{
for (int k = ; k < biao; k++)
{
if (((student)al[k]).xuehao == xh)
{
Console.WriteLine("学号输入重复,请重新输入!");
break;
}
else
{
if (k == biao - )
{
st.xuehao = xh;
biao1 = ;
break;
}
else
{
continue;
}
}
}
}
}
else
{
Console.WriteLine("输入学号不能为空,请重新输入!");
}
if (biao1 == )
{
break;
}
}
for (; ; )
{
Console.Write("请输入第{0}个学生的姓名:", i + );
string name = Console.ReadLine();
if (name != ""&&name!=" "&&name!=" ")
{
st.name = name;
break;
}
else
{
Console.WriteLine("输入姓名不能为空,请重新输入!");
continue;
}
}
for (; ; )
{
Console.Write("请输入第{0}个学生的成绩:", i + );
try
{
double b = double.Parse(Console.ReadLine()); if (b >= && b <= )
{
st.score = b;
break;
}
else
{
Console.WriteLine("输入成绩有误,请重新输入:");
continue;
}
}
catch
{
Console.WriteLine("成绩输入有误,请重新输入!");
continue;
}
}
al.Add(st);
biao++;
}
for (int m = ; m < ;m++ )
{
for (int n = m; n <; n++)
{
if (((student)al[m]).score < ((student)al[n]).score)
{
object zhong = al[m];
al[m] = al[n];
al[n] = zhong;
}
}
}
Console.WriteLine("序号" + "\t" + "学号" + "\t" + "姓名" + "\t" + "成绩");
for (int i = ; i < ;i++ )
{
Console.WriteLine(((student)al[i]).code + "\t" + ((student)al[i]).xuehao + "\t" + ((student)al[i]).name + "\t" + ((student)al[i]).score);
} Console.ReadLine();
}
}
}

面向对象:

面向对象不是一种实质性的东西,而是一种编程思想,较为抽象。

面向对象里面,最重要的东西就是对象。

对象一定程度上可以理解为类,简而言之说多了都是类,或者万物皆对象。

比如说结构体,我们把一个学生的学号 姓名 性别 年龄 成绩等信息放入一个结构体,这个结构体可以看做是一个对象,代表着这个学生的信息。

又好比说所有生物可以分为动物和植物,动物和植物可以继续往下分,这其中的每一个“标签”——比如哺乳动物、海洋生物,都可以拿出来作为一个类,也就是一个对象。

面向对象有三大特性,也可以说是类的特点:

封装(类似打包)

继承(子级继承父级的属性)

多态(子级拥有与其他同级子级不同的属性,也就是特点)

C#复习、面向对象阶段开始的更多相关文章

  1. java复习面向对象(二)

    java复习面向对象(二) 1.static关键字 举例图片 静态变量 使用static修饰的成员变量是静态变量 如果一个成员变量使用了关键字static,那么这个变量不属于对象自己,而属于所在的类多 ...

  2. 复习面向对象的OOA、OOD、OOP

    复习 OOA.OOD.OOP OOA Object-Oriented Analysis:面向对象分析方法 是在一个系统的开发过程中进行了系统业务调查以后,依照面向对象的思想来分析问题. OOA与结构化 ...

  3. ndk学习之c++语言基础复习----面向对象编程

    关于面向对象编程对于一个java程序员那是再熟悉不过了,不过对于C++而言相对java还是有很多不同点的,所以全面复习一下. 类 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程 ...

  4. python 入门基础22 --复习 面向对象

    面向过程编程思想: 核心:过程 过程指的是解决问题的具体步骤,即先干什么再干什么. 基于该编程思想编写程序,相当于一条流水线,一种机械式的思维方式. 面向对象编程思想: 核心:对象 对象指的是数据与方 ...

  5. Python基础复习面向对象篇

    目录 类与对象的概念 实例方法 实例变量 初始化方法 析构方法 常用内置方法 继承 类方法与静态方法 动态扩展类与实例 @property装饰器 概述 面向对象是当前流行的程序设计方法,其以人类习惯的 ...

  6. 6月6日 python复习 面向对象

    1.面向对象编程 1.面向过程编程核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式 优点:复杂的问题 ...

  7. 面向对象基础3(class0523)

    怎么实现多态2-接口 接口是定义一种能力,规定子类能干什么和抽象类有些相似,解决类的单根继承.接口可以实现多继承 案例 鸟-麻雀sparrow,鸵鸟ostrich,企鹅penguin,鹦鹉parrot ...

  8. 第01组 Alpha冲刺(6/6)

    队名:007 组长博客: https://www.cnblogs.com/Linrrui/p/11914337.html 作业博客: https://edu.cnblogs.com/campus/fz ...

  9. Django学习day11随堂笔记

    今日考题 """ 今日考题 1.简述自定义分页器的使用 2.forms组件是干什么用的,它的主要功能有哪些功能,你能否具体说说每个功能下都有哪些经常用到的方法及注意事项( ...

随机推荐

  1. PHP javascript cookie

    2015-07-30 16:54:58 ................................cao!!!! 汉字, 邮箱的@符号 容易出错 PHP setcookie 的时候, 不要url ...

  2. ACM/ICPC 之 拓扑排序+DFS(POJ1128(ZOJ1083)-POJ1270)

    两道经典的同类型拓扑排序+DFS问题,第二题较第一题简单,其中的难点在于字典序输出+建立单向无环图,另外理解题意是最难的难点,没有之一... POJ1128(ZOJ1083)-Frame Stacki ...

  3. centos6.5kvm虚拟化安装部署

    一.走进云计算 云计算:云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供, ...

  4. Effective C++ -----条款29:为“异常安全”而努力是值得的

    异常安全函数(Exception-safe functions)即使发生异常也不会泄露资源或允许任何数据结构败坏.这样的函数区分为三种可能的保证:基本型.强烈型.不抛异常型. “强烈保证”往往能够以c ...

  5. HDU 1000 & HDU1001 & 字符串连接

    A + B Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  6. vmstat uptime 系统状态脚本

    #!/bin/bash # # Command :vmstat,uptime #Capture_Stats - Gather System Performance Statistics ####### ...

  7. uva 489.Hangman Judge 解题报告

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  8. html中的alt和title用法区别

    html中的alt和title用法区别 首先明确一下概念,alt是html标签的属性,而title既是html标签,又是html属性.title标签这个不用多说,网页的标题就是写在<title& ...

  9. oracle,mysql对敏感,关键字等处理

    oracle用""  比如,处理字段中间有空格,

  10. js 如何在浏览器中获取当前位置的经纬度

    这个有一定的误差哈,具体的误差是多少,有兴趣的朋友可以去测试下 直接上代码 index.html页面代码: <html> <head lang="en"> ...