在控制台程序中使用结构体、集合,完成下列要求
项目要求:
一、连续输入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 = ;
Console.Write("请输入班级人数:");
int a = int.Parse(Console.ReadLine());
for (int i = ; i < a; i++)
{
int biao1 = ;
x.xuhao = i+;
for (; ; )
{
Console.Write("请输入第{0}个学生的学号:", i + );
string xh = Console.ReadLine();
if (xh != "")
{
if (biao == )
{
x.xuehao = xh;
biao1 = ;
break;
}
else
{
for (int k = ; k < biao; k++)
{
if (((student)al[k]).xuehao == xh)
{
Console.WriteLine("学号输入重复,请重新输入!");
break;
}
else
{
if (k == biao - )
{
x.xuehao = xh;
biao1 = ;
break;
}
else
{
continue;
}
}
}
}
}
else
{
Console.WriteLine("输入学号不能为空,请重新输入!");
}
if (biao1 == )
{
break;
}
}
for (; ; )
{
Console.Write("请输入第{0}个学生的姓名:", i + );
string name = Console.ReadLine();
if (name != "")
{
x.name = name;
break;
}
else
{
Console.WriteLine("输入姓名不能为空,请重新输入!");
continue;
}
}
Console.Write("请输入第{0}个学生的分数:", i+ );
try
{
double m = double.Parse(Console.ReadLine());
if (m >= && m <= )
{
x.score = m;
}
else
{
Console.WriteLine("成绩必须在0~100之间!");
}
}
catch
{
Console.WriteLine("成绩输入有误!");
}
al.Add(x);
}
for (int i = ; i < al.Count - ; i++)
{
for (int j = i + ; 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 = ; 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();
}
}
}

C#复习(学生信息输入)的更多相关文章

  1. 记C++课程设计--学生信息管理系统

                                                                                  C++课程设计--学生信息管理系统     ...

  2. C#复习,输入学生信息排列成绩

    C#复习:在控制台程序中使用结构体.集合,完成下列要求项目要求:一.连续输入5个学生的信息,每个学生都有以下4个内容:1.序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1, ...

  3. YTU 2609: A改错题--学生信息的输入和输出

    2609: A改错题--学生信息的输入和输出 时间限制: 1 Sec  内存限制: 128 MB 提交: 238  解决: 157 题目描述 注:本题只需要提交标记为修改部分之间的代码,请按照C++方 ...

  4. 数据结构(c语言)之学生信息管理系统

    程序思维导图 代码表示(代码参考:长春大学-牛言涛老师) 如有错误请指出欢迎交流 #include<stdio.h> #include<malloc.h>//动态存储分配函数头 ...

  5. 基于数据库MySQL的简易学生信息管理系统

    通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...

  6. 学生信息管理系统(自己辛辛苦苦做了几天,虽然简陋,也凑合吧,bug不算太严重,主要是格式不太很完美)

    /*学生成绩管理系统V3.0(链表版)某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).使用链表编程成实现如下菜单驱动的学生成绩管理系统.1.从文件读入每 ...

  7. C++ 简单的学生信息管理系统

    // // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...

  8. 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)

    如上图所示界面,当我们点击保存按钮时将会将表格中的数据保存到数据库中去,与数据库进行一个交互 第一步我们就是要获取到表格中的数据 string pwd = textpwd.Text; //获得第一次输 ...

  9. Java 实现学生信息管理系统

    编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...

随机推荐

  1. 微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决

    今天偶然的把微信jssdk的debug打开后,发现调试信息总是提示签名错误,感情前两天api的"偶尔"不生效,不是因为还没执行代码,而是因为签名没正确啊!,这就是个100%可以重现 ...

  2. user profile services提示“BAIL: MMS(7116): sql.cpp(8490): 0x80231334 (The sql connection string has unsupported values.)”解决办法

    user profile services的2个服务Forefront Identity Manager Service 和 Forefront Identity Manager Synchroniz ...

  3. arcmap Command

    The information in this document is useful if you are trying to programmatically find a built-in com ...

  4. 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令

    Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...

  5. Android项目实战(二十三):仿QQ设置App全局字体大小

    一.项目需求: 因为产品对象用于中老年人,所以产品设计添加了APP全局字体调整大小功能. 这里仿做QQ设置字体大小的功能. QQ实现的效果是,滚动下面的seekbar,当只有seekbar到达某一个刻 ...

  6. 【C语言】C语言外部变量和内部变量

    目录: [外部变量] · 定义 · 用extern修饰变量 [内部变量] · 定义 · 用static修饰变量 1.外部变量 · 定义 定义的变量能被本文件和其它文件访问的变量,称为外部变量. 注: ...

  7. Android jni简便开发流程

    <Android jni helloworld>中介绍了开发jni helloworld的步骤,本文将介绍jni简便开发流程 ① 写java代码 native 声明本地方法 ② 添加本地支 ...

  8. IOS TextField伴随键盘移动

    这篇文章介绍的是一个简单而又实用的小方法. 我想对于登陆时的一些效果大家应该都不会陌生. 今天就介绍一下,当开始输入TextField文本时键盘弹出TextField伴随键盘移动的实现. 先看一下演示 ...

  9. sqlplus: error while loading shared libraries: /u01/app/lib/libclntsh.so.11.1

    成功安装了Oracle 11g后,使用sqlplus登录数据库时遇到下面错误: [oracle@DB-Server ~]$ sqlplus / as sysdba   sqlplus: error w ...

  10. Java Se :线性表

    Java的集合框架分为两个系列,Collection和Map系列.在大学期间,学习数据结构时,好像学习了线性表.非线性表.树,哎,都给忘了.其实,在Collection系列内部又可以分为线性表.集合两 ...