版权声明:引用请注明作者 https://blog.csdn.net/qq_39072819/article/details/86687611
这里写了一篇简单的控制台程序,用于总结与参考(手动添加学生及录入成绩并且打印成绩表)
所使用到的东西
- for循环
- while循环
- foreach循环
- List 集合
- 创建方法
- 方法重载
- 方法调用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace @class
{
class Program
{
static void Main(string[] args)
{
//实例化
subject subject = new subject();
//开始调用方法,这里可以先注释掉table2查看table1
//subject.table1();
subject.table2();
}
}
public class subject
{
public float Math { set; get; }
public float English { set; get; }
public float Chinese { set; get; }
//提示参考
//给result赋值需要先给subject的各项赋值
public void table1()
{
Console.WriteLine("*****************************期末成绩表******************************");
Console.WriteLine("你是老师,现在需要为班级添加学生");
subject subject1 = new subject();//创建第一组成绩
subject1.English = 90;
subject1.Math = 80;
subject1.Chinese = 70;
Student student1 = new Student();//创建第一个学生
student1.stuName = "张三";
student1.stusex = "男";
student1.result = subject1;//将第一组成绩赋值给result
subject subject2 = new subject();//创建第二组成绩
subject2.English = 80;
subject2.Math = 90;
subject2.Chinese = 85;
Student student2 = new Student();//创建第二个学生
student2.stuName = "李四";
student2.stusex = "女";
student2.result = subject2;//将第二组成绩赋值给result
//创建一个类型为Student的list集合
List<Student> students = new List<Student>();
//给集合添加数据
students.Add(new Student { stuName = student1.stuName, stusex = student1.stusex, result = student1.result });//这是第一个学生的所有信息
students.Add(new Student { stuName = student2.stuName, stusex = student2.stusex, result = student2.result });//这是第二个学生的所有信息
Console.WriteLine("姓名\t性别\t英语\t数学\t语文");//表头
//循环输出信息
for (int i = 0; i < students.Count; i++)
{
Console.WriteLine(students[i].stuName + "\t" + students[i].stusex + "\t" + students[i].result.English + "\t" + students[i].result.Math + "\t" + students[i].result.Chinese);
}
Console.ReadKey();
}
//完整方法
public void table2()
{
Console.WriteLine("*****************************期末成绩表******************************");
Console.WriteLine("你是老师,现在需要为班级添加学生");
//与上述相同的地方不再赘述
subject subject = new subject();
List<Student> students1 = new List<Student>();
string endstr = "";//匹配输入值
int num = 1;//定义变量,负责提示学生个数
//创建while循环,当输入值等于ok时,循环结束,停止创建学生
while (endstr != "ok")
{
Console.WriteLine("请输入第{0}个学生的名字:", num);
string name = Console.ReadLine();
Console.WriteLine("请输入{0}的性别:", name);
string sex = Console.ReadLine();
students1.Add(new Student { stuName = name, stusex = sex });
Console.WriteLine("按ok结束输入,继续按空格键");
string str = Console.ReadLine();
endstr = str;//重新赋值为当前输入的命令
num++;
}
Console.WriteLine("这是学生信息:");
//使用foreach循环打印学生的基本信息
foreach (var item in students1)
{
Console.WriteLine(item.stuName + "\t" + item.stusex);
}
List<subject> subject2 = new List<subject>();
//循环添加学生成绩并保存在subject2集合中
for (int i = 0; i < students1.Count; i++)
{
Console.WriteLine("请输入{0}的数学成绩:", students1[i].stuName);
float math = float.Parse(Console.ReadLine());
Console.WriteLine("请输入{0}的英语成绩:", students1[i].stuName);
float english = float.Parse(Console.ReadLine());
Console.WriteLine("请输入{0}的语文成绩:", students1[i].stuName);
float chinese = float.Parse(Console.ReadLine());
subject2.Add(new subject { Math = math, English = english, Chinese = chinese });
}
List<Student> students = new List<Student>();
//for循环将students1的值与subject2的值组合赋值给students
for (int i = 0; i < students1.Count; i++)
{
students.Add(new Student { stuName = students1[i].stuName, stusex = students1[i].stusex, result = subject2[i] });
}
Console.WriteLine();
Console.WriteLine("---------------------------->成绩一览表");
Console.WriteLine("姓名\t性别\t英语\t数学\t语文\t总分");
//打印成绩信息表
for (int i = 0; i < students.Count; i++)
{
//调用求和方法并保存在sum中
float sum = subject.Sum(students[i].result.English, students[i].result.Math, students[i].result.Chinese);
Console.WriteLine(students[i].stuName + "\t" + students[i].stusex + "\t" + students[i].result.English + "\t" + students[i].result.Math + "\t" + students[i].result.Chinese + "\t" + sum);
}
Console.ReadKey();
}
//求总分
public float Sum()//无参
{
float sum = 0;
return sum;
}
public float Sum(float a, float b, float c)//重载
{
float sum = a + b + c;
return sum;
}
}
public class Student
{
public string stuName { get; set; }
public string stusex { get; set; }
public subject result { get; set; }
}
}
有觉得的需要修改的地方,希望可以提醒一下,大家共同进步。谢谢!