(满分100分,少一个功能或限制扣5分,少一项大功能扣20分)
题目要求:(请仔细阅读需求,并严格按照需求编写程序)
连续输入5个学生的信息,每个学生都有以下4个内容:
1、学号 - 自动生成,不需要手动填写,第一个学生为“S001”第二个为“S002”依次类推
2、姓名 - 不能为空,输入正确方可继续,否则需要用户一直填写
3、生日 - 不能为空,需要验证时间格式是否正确,如果错误则一直填写
4、成绩 - 不能为空,0~100之间的数,需要有小数位数
注意:以上内容必须按照要求填写,请写好相应的验证,如果没填写正确,则让用户重复填写到正确为止
5个学生信息都输入完毕后,清空已显示的内容
然后按照分数从高到低的顺序将学生信息展示出来,并带有序号
显示格式如下:
==============学生成绩展示=================
序号    学号    姓名     出生年月     成绩
1      S003    王五    1990年1月     100
2      S001    李四    1992年2月     99
3      S002    张三    1994年4月     98.5
4      S005    赵六    1993年3月     95
5      S004    小花    1996年6月     90.5
namespace _2017_3_7_____考试题1 { class Program { struct student { public String code; public String name; public DateTime birthday; public Double score; } static void Main(string[] args) { student s = new student(); List<student> st = new List<student>(); for (int i = 1; i <= 5; i++) { Console.Write("请输入第" + i + "个学生的姓名:"); while (true) { s.code = "S00" + i; s.name = Console.ReadLine(); int c = s.name.Length; if (c == 0) { Console.Write("请输入正确的姓名:"); } else { break; } } Console.Write("请输入第" + i + "个学生的出生年月:"); while(true) { try { s.birthday = Convert.ToDateTime(Console.ReadLine()); break; } catch { Console.Write("请输入正确的出生年月日:"); } } Console.Write("请输入第" + i + "个学生的成绩:"); while (true) { s.score = Convert.ToDouble(Console.ReadLine()); if (s.score > 100 || s.score < 0) { Console.Write("成绩输入有误,请重新输入:"); } else { break; } } st.Add(s); }
原文:http://www.cnblogs.com/zhengqian/p/6522968.html