2016年11月24日--面向对象、C#小复习
面对对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
多态:是将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
小练习
在控制台程序中使用结构体、集合,完成下列要求
项目要求:
一、连续输入5个学生的信息,每个学生都有以下4个内容:
1、序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2,以此类推
2、学号 - 必填,如:S001,S002... 以此类推
3、姓名 - 必填
4、成绩 - 大于等于0,小于等于100
以上内容必须按照要求填写,请写好相应的验证,如果没填写正确,则让用户重复填写到正确为止
二、5个学生信息都输入完毕后,按照分数从高到低的顺序将学生信息展示出来
显示格式如下:
==============学生成绩展示=================
序号 学号 姓名 成绩
3 S003 张三 100
1 S001 李四 99
2 S002 王五 98
ArrayList ar = new ArrayList();
string str = "";
//do{
// Console.Write("请输入学号:");
// stt.str=Console.ReadLine();
//} while (stt.str.StartsWith("s") != stt.str.EndsWith("s")&&stt.str.IndexOf("s")!=0);
; j < ; j++)
{
stu stt = new stu();
stt.num = j;
for (; ; )
{
Console.Write("请输入第" + j + "个学生的学号:s");
try
{
int i = Convert.ToInt32(Console.ReadLine());
)
i = Math.Abs(i);
)
{
stt.str = ");
}
)
{
stt.str = ");
}
break;
}
catch
{
Console.WriteLine("请输入数字");
}
}
for (; ; )
{
Console.Write("请输入第" + j + "个学生的姓名:");
stt.name = Console.ReadLine();
if (stt.name != "")
break;
else
Console.WriteLine("姓名不能为空");
}
for (; ; )
{
Console.Write("请输入第" + j + "个学生的成绩:");
try
{
stt.chengji = Convert.ToDouble(Console.ReadLine());
&& stt.chengji <= )
{
break;
}
)
{
Console.WriteLine("成绩不能大于100");
}
else
{
Console.WriteLine("成绩不能小于0");
}
}
catch
{
Console.WriteLine("请输入数字");
}
}
ar.Add(stt);
}
Console.WriteLine("┌───────────────────┐");
Console.WriteLine("│ 所有学生数据 │");
Console.WriteLine("│\t序号\t学号\t姓名\t成绩\t│");
; k <= ar.Count - ; k++)
{
stu stt = (stu)ar[k];
Console.WriteLine("│\t{0}\t{1}\t{2}\t{3}\t│", stt.num, stt.str, stt.name, stt.chengji);
}
Console.WriteLine("└───────────────────┘");
; j < ar.Count; j++)
{
for (int k = j; k < ar.Count; k++)
{
if (((stu)ar[j]).chengji < ((stu)ar[k]).chengji)
{
object zhon = ar[j];
ar[j] = ar[k];
ar[k] = zhon;
}
}
}
Console.WriteLine("┌───────────────────┐");
Console.WriteLine("│ 按成绩排序 │");
Console.WriteLine("│\t序号\t学号\t姓名\t成绩\t│");
; k <= ar.Count - ; k++)
{
stu stt = (stu)ar[k];
Console.WriteLine("│\t{0}\t{1}\t{2}\t{3}\t│", stt.num, stt.str, stt.name, stt.chengji);
}
Console.WriteLine("└───────────────────┘");
Console.ReadLine();
示例
2016年11月24日--面向对象、C#小复习的更多相关文章
- 2016年11月24日 星期四 --出埃及记 Exodus 20:15
2016年11月24日 星期四 --出埃及记 Exodus 20:15 "You shall not steal.不可偷盗.
- 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合
1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...
- 2016年11月8日 星期二 --出埃及记 Exodus 19:24
2016年11月8日 星期二 --出埃及记 Exodus 19:24 The LORD replied, "Go down and bring Aaron up with you. But ...
- 2016年12月24日 星期六 --出埃及记 Exodus 21:19
2016年12月24日 星期六 --出埃及记 Exodus 21:19 the one who struck the blow will not be held responsible if the ...
- 2016年11月30日 星期三 --出埃及记 Exodus 20:21
2016年11月30日 星期三 --出埃及记 Exodus 20:21 The people remained at a distance, while Moses approached the th ...
- 2016年11月29日 星期二 --出埃及记 Exodus 20:20
2016年11月29日 星期二 --出埃及记 Exodus 20:20 Moses said to the people, "Do not be afraid. God has come t ...
- 2016年11月28日 星期一 --出埃及记 Exodus 20:19
2016年11月28日 星期一 --出埃及记 Exodus 20:19 and said to Moses, "Speak to us yourself and we will listen ...
- 2016年11月27日 星期日 --出埃及记 Exodus 20:18
2016年11月27日 星期日 --出埃及记 Exodus 20:18 When the people saw the thunder and lightning and heard the trum ...
- 2016年11月26日 星期六 --出埃及记 Exodus 20:17
2016年11月26日 星期六 --出埃及记 Exodus 20:17 "You shall not covet your neighbor's house. You shall not c ...
随机推荐
- [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000, ...
- c#获取下载路径
Request.ApplicationPath 返回/或者iis下目录.如果个人网站是在iis网站下面新建的目录aaa,返回如:/aaa Request.Url.Authority 返回域名和端口 ...
- google-analytics的使用: 解析页面引入代码
代码整理和注释 // 创建ga()方法, 加载analytics.js文件 // a, m 作为形参,确保下面的执行不会修改外部的同名变量 (function(win, doc, o, g, ga, ...
- VS一直停留在“正在还原nuget程序包”
VS一直停留在“正在还原nuget程序包” 在开发何问起收藏夹的时候,准备在WinFrom中加入网页浏览器,于是下载了一个CEFSharp的源码,生成解决方案的时候,一直提示“正在还原nuget程序包 ...
- CSS水平居中/垂直居中的N个方法
我看最近微博流行CSS居中技术,老外码农争相写相关的文章,一篇赛一篇的长啊,我把几篇归纳总结了一下,算是笔记. 孔乙己曾说:"茴香豆的回字有四种写法",万一哪天有个面试官问你:&q ...
- 【三石jQuery视频教程】01.图片循环展示_再次重发
之前的文章,由于在博文的底部放有微信公众号的缘故,被管理员判定为: 您好,您的这篇博文内容本身没什么问题,但是,在博文底部存在推广信息内容.... 你们也没告知到底是哪条触犯了博客园的规矩,我就把底部 ...
- checking for fcc ....no checking for cc .. no
源码编译,提示缺少gcc cc cl.exe 解决方案: yum install -y gcc glibc
- NCBI database download
ascp -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh --host=ftp-private.ncbi.nlm.nih.go ...
- cxf设置代理访问webservice接口
由于业务上的需要,需要访问第三方提供的webservice接口,但由于公司做了对外访问的限制,不设置代理是不能外网的,如果使用http设置代理访问外网还是比较容易的,但使用cxf有点不知道从哪里入手. ...
- Spring IoC容器的初始化过程
Spring IoC容器的初始化包括 BeanDefinition的Resource定位.载入和注册 这三个基本的过程.IoC容器的初始化过程不包含Bean依赖注入的实现.Bean依赖的注入一般会发生 ...