(满分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); }