c#复习阶段
在控制台程序中使用结构体、集合,完成下列要求
项目要求:
一、连续输入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();
}
}
}
c#复习阶段的更多相关文章
- "我爱记单词"测试报告兼功能展示
"我爱记单词"测试报告兼功能展示 前言: 我们大部分的测试都是一边开发一边完成的,这里给出软件开发基本完成后在使用时的一些测试例子. 一.背景介绍 我们的数据库中一共有10个表: ...
- paper 77:[转载]ENDNOTE使用方法,常用!
一.简介 EndNote是一款用于海量文献管理和批量参考文献管理的工具软件,自问世起就成为科研界的必备武器.在前EndNote时代,文献复习阶段从各大数据库中搜集到的文献往往千头万绪.或重复或遗漏, ...
- paper 43 :ENDNOTE下载及使用方法简介
转载来源:http://blog.sciencenet.cn/blog-484734-367968.html 软件下载来源: EndNote v9.0 Final 正式版:http://www.ttd ...
- 泰信---->20131025~20131101(周计划安排)
学习java相关知识计划安排: [前期复习阶段] (一)熟悉java相关语言基础. (二)搭建一个纯web项目工程,实现增加,删除,修改,查询以及分页...功能. (三)熟悉jboss的使用和相关配置 ...
- 备战“软考”之软件project
说到"软件project"就有一种非常纠结的感觉!为什么呢?由于刚进入软考复习阶段,大家都把它放到了"比較"次要的地位,由于已经学过两遍,再加上它没有非常难理解 ...
- 谈论C++当然结果
C++编程课程的考试已经结束.这是第一次OJCBT.摸着石头过河,考试没有给学生理解的说法.现在尘埃落定.一些交代. 先说大的成就的治疗原则.事实上,有很多的纠结. 按理说,合格的太,无法挂.但实际情 ...
- c语言结构体1之定义
这是在复习阶段随便小结的一些东西 别喷哦 结构体定义的三种方式 注意事项: 1结构体括号后面有分号 2#define得放在程序上面 3成员名可以和结构体名相同 4结构体类型不能直接访问成员,也不能赋值 ...
- bfs或者dfs Good Bye 2016 D
http://codeforces.com/contest/750/problem/D 题目大意: 放鞭炮,鞭炮会爆炸n次,每次只会往目前前进方向的左上和右上放出他的子鞭炮.问,最后能有多少格子被覆盖 ...
- 大二学生党的Security+备考宝典(一次过)
刚出成绩的一刹那,我的心里是慌的很的,因为可能知识点复习的不够扎实,考试上的题目全都回归了课本,而我的知识回归了老师(滑稽),一下给大家分享下我的经验,希望大家引以为戒,都能考出好成绩. 一.直播阶段 ...
随机推荐
- Ruby界面开发--wxRuby库TextCtrl相关问题
界面库官方教程:(1) 总的各种库函数讲解http://wxruby.rubyforge.org/doc/index.html (2)TextCtrl讲解 http://wxruby.rubyforg ...
- .net 反编译工具
遇到一个需求,做一个专门访问自己网站的浏览器给用户使用,这个浏览器提供登录功能.此时是一个安装在客户端的exe程序,做登录验证要用到webservice,不能将验证逻辑写入exe中,否则客户端可以利用 ...
- Java中的并发线程操作(只贴代码,内有注释)
package com.thread1; public class LiffOff implements Runnable{ protected int countDown = 10; private ...
- 省市区三级联动(二)JS部分简单版
通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...
- 关于在windows下使用mingw并行编译wxwidgets时的错误
清理用的命令:mingw32-make -j4 -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 clean 2>nul ...
- 查看lnmp 编译参数
nginx :版本/opt/local/nginx/sbin/nginx -v 编译参数:/opt/local/nginx/sbin/nginx -V apache:版本/opt/local/http ...
- python False
None 空字符串 空列表 空元组 空字典 false为False
- shell if
shell中if做比较 比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 ...
- linux死锁检测的一种思路【转】
转自:http://www.cnblogs.com/mumuxinfei/p/4365697.html 前言: 上一篇博文讲述了pstack的使用和原理. 和jstack一样, pstack能获取进 ...
- oracle 11g 64w 用32位的pl/sql
1. 下载64位Oracle,解压两文件,解压完成后将文件合并,安装: 2. 下载PL/SQL,安装: 3. 下载instantclient-basic-win32-11.2.0.1.0.zip ...