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

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

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

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

namespace ConsoleApplication6
{
class Program
{
struct student
{
public int xuhao;
public string xuehao;
public string name;
public double score;
}
static void Main(string[] args)
{
ArrayList al = new ArrayList();
student x = new student();
int biao = 0;
Console.Write("请输入班级人数:");
int a = int.Parse(Console.ReadLine());
for (int i = 0; i < a; i++)
{
int biao1 = 0;
x.xuhao = i+1;
for (; ; )
{
Console.Write("请输入第{0}个学生的学号:", i + 1);
string xh = Console.ReadLine();
if (xh != "")
{
if (biao == 0)
{
x.xuehao = xh;
biao1 = 1;
break;
}
else
{
for (int k = 0; k < biao; k++)
{
if (((student)al[k]).xuehao == xh)
{
Console.WriteLine("学号输入重复,请重新输入!");
break;
}
else
{
if (k == biao - 1)
{
x.xuehao = xh;
biao1 = 1;
break;
}
else
{
continue;
}
}
}
}
}
else
{
Console.WriteLine("输入学号不能为空,请重新输入!");
}
if (biao1 == 1)
{
break;
}
}
for (; ; )
{
Console.Write("请输入第{0}个学生的姓名:", i + 1);
string name = Console.ReadLine();
if (name != "")
{
x.name = name;
break;
}
else
{
Console.WriteLine("输入姓名不能为空,请重新输入!");
continue;
}
}
Console.Write("请输入第{0}个学生的分数:", i+1 );
try
{
double m = double.Parse(Console.ReadLine());
if (m >= 0 && m <= 100)
{
x.score = m;
}
else
{
Console.WriteLine("成绩必须在0~100之间!");
}
}
catch
{
Console.WriteLine("成绩输入有误!");
}
al.Add(x);
}
for (int i = 0; i < al.Count - 1; i++)
{
for (int j = i + 1; j < al.Count; j++)
{
student s1 = (student)al[i];
student s2 = (student)al[j];
if (s1.score < s2.score)
{
student zhong = (student)al[i];
al[i] = al[j];
al[j] = zhong;
}
}
}
Console.WriteLine("==============学生成绩展示=================");
Console.WriteLine("序号" + "\t"+"学号" + "\t"+"姓名" + "\t"+"成绩" + "\t");
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine(((student)al[i]).xuhao + "\t" + ((student)al[i]).xuehao + "\t" + ((student)al[i]).name + "\t" + ((student)al[i]).score);
} Console.ReadLine();
}
}
}


最新文章

  1. C#Light for Unity 新例子
  2. JS中的timestamp
  3. java类为什么是单继承。类的继承,实现接口。
  4. 在linux下获取帮助
  5. linux的文件种类与扩展名
  6. OpenProcess打开进程返回错误的问题
  7. JS小记
  8. DNS服务器配置
  9. spring-mvc 与 openid4java
  10. MapReduce编程系列 — 1:计算单词
  11. angularJs工作日记-自定义指令Directive01
  12. 使用Uploadify 时,同时使用了jQuery.Validition 验证控件时,在IE11上出现JS缺少对象错误。
  13. EF如何操作内存中的数据和加载外键数据:延迟加载、贪婪加载、显示加载
  14. Java核心技术 卷Ⅰ 基础知识(2)
  15. Maven第三篇【Maven术语、pom.xml介绍】
  16. JAVA IO分析一:File类、字节流、字符流、字节字符转换流
  17. Android 8.0系统的应用图标适配
  18. [转]gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例)
  19. Django自带的用户认证auth模块
  20. TestNG实现用例运行失败自动截图(转载)

热门文章

  1. ofbiz进击 。 ofbiz 退货流程(包含获取可退货项流程分析 以及 取消退货项的过程分析)
  2. ofbiz进击 第五节。 --OFBiz配置之[general.properties] 共有属性的分析(含email)
  3. ofbiz进击 第一节。 新建自己的webapp项目
  4. Android 仿土巴兔选择效果
  5. kafka 0.8.x producer Example(scala)
  6. [转]IP动态切换脚本
  7. jvm笔记
  8. ionic入门之AngularJS扩展基本布局
  9. 全半角空格导致的Sql Server Analysis Services处理错误(转载)
  10. HGE游戏引擎之hgeQuad结构体的使用(用于渲染图片)