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 ...
随机推荐
- 从一个简单的ASP.NET 5站点开启.NET跨平台之旅
在经历了阿里云上“黑色1秒”的空欢喜之后,我们“被迫”考虑实现.NET的跨平台,将Web服务器由Windows换成Linux.而这种“被迫”在一个存在已久的愿望下,变得水到渠成.这个愿望就是 —— “ ...
- DbUtility v3
DbUtility v3 历史 七年前,也就是2007年,我在博客园写了一篇博文,开源并发布了恐怕是我第一个开源项目,DbUtility.其设计的初衷就是为了简化ADO.NET繁琐的数据库访问过程,提 ...
- .pop ----remove 删除
s = {1,2,3,4,5,6,'sn','7'} s.pop()#删除随机值 print(s)#{2, 3, 4, 5, 6, '7', 'sn'} s.remove('sn')#删除值 prin ...
- Local gulp not found in.. on windows
当出现报错时,请按如下方式安装 gulp 以下使用国内的淘宝镜像安装: $ # Step 1 $ cnpm install -g gulp $ # Step 2 $ cnpm install --sa ...
- Ceph RGW 的 OSPF负载均衡 + quagga的配置
随着开源技术的发展,以及商业设备价格的不断攀升.大公司总是希望能使用开源的方案来替换过去使用的商业设备.比如之前大家用的很多的F5和A10,现在已经在逐步被LVS替换.传统的单个lvs的性能是比不 ...
- Java--笔记(6)
51.jsp的运行周期 jspt生命周期:init .service.destory 除了init只初始化一次外(第一次运行jsp的时候执行),其他 用户端运行JSP时方法都会运行一次. 52.二叉树 ...
- Java链栈
package com.lxm.customDataStructure; public class LinkStack<T>{ class Node<T>{ T data; N ...
- Xshell远程管理Linux
Xshell[1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. Xshell 通过互联网到远程主机的安全连接以及它创新 ...
- 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...
- 【USACO 2.4】The Tamworth Two
题意:C代表cows,F代表farmer,一开始都向北,每分钟前进1步,如果前方不能走,则这分钟顺时针转90°,问多少步能相遇,或者是否不可能相遇,10*10的地图. 题解:dfs,记录状态,C和F的 ...