有三个类“Student”,“Class”和“school”,其中class的班级名要求在新增时自动生成,班级名称的格式为“当前年+序号”,序号从1开始,例如2008001,同理学生学号也要求自定生成,例如:001,002
我写的关于班级名称的代码是:
class Class
{
private int ClassName;
private int StuCount;
private Student[] Students;
private int count; public Class( int StuCount)
{
this.ClassName = DateTime.Now.Year * 1000 + School.classno;
this.StuCount = StuCount;
Students = new Student[StuCount];
this.count = 0;
}
public void Display()
{
Console.WriteLine("{0}\t{1}", this.ClassName, this.StuCount);
}
}
program写的是:
class Program
{
static void Main(string[] args)
{
Class sc = new Class(45);
sc.Display();
}
}
但在program中输出的结果确实2008005 45,应该怎么改?
我写的关于班级名称的代码是:
class Class
{
private int ClassName;
private int StuCount;
private Student[] Students;
private int count; public Class( int StuCount)
{
this.ClassName = DateTime.Now.Year * 1000 + School.classno;
this.StuCount = StuCount;
Students = new Student[StuCount];
this.count = 0;
}
public void Display()
{
Console.WriteLine("{0}\t{1}", this.ClassName, this.StuCount);
}
}
program写的是:
class Program
{
static void Main(string[] args)
{
Class sc = new Class(45);
sc.Display();
}
}
但在program中输出的结果确实2008005 45,应该怎么改?
class Class
{
private int ClassName;
private int StuCount;
private Student[] Students;
private int count; public Class( int StuCount)
{
for (int i = 1; i <= 5; i++)
{
this.ClassName = DateTime.Now.Year * 1000 + i;
}
this.StuCount = StuCount;
Students = new Student[StuCount];
this.count = 0;
}
public void Display()
{
Console.WriteLine("{0}\t{1}", this.ClassName, this.StuCount);
}
}
{
this.ClassName = DateTime.Now.Year * 1000 + i;
}
你这段代码得到的结果是什么,知道么。最后 this.ClassName == DataTime.Now.Year*1000+5;对不对?那就是className==2008005没错吧StuCount=45,也就是你得到的输出结果并没有错。
但我要的并不是这个结果我要的是当我在主函数里输入
Class sc = new Class(45);
sc.Display();
Class sc1 = new Class(80);
sc1.Display(); 它输出的结果是:
2008001 45
2008002 80
但最多不能超过5个班级
//先声明5个值作为每个班的人数用数组就可以,具体你自己写吧for(int i=1;i<=5;i++)
{
Class sc = new Class(i,45);
sc.Display();
}//更改class Class
class Class
{
private int ClassName;
private int StuCount;
private Student[] Students;
public Class(int i, int StuCount)
{
this.ClassName = DateTime.Now.Year * 1000 + i;
this.StuCount = StuCount;
Students = new Student[StuCount];
}
public void Display()
{
Console.WriteLine("{0}\t{1}", this.ClassName, this.StuCount);
}
}
能不能在school类里写一个静态类来实现这个操作?在主函数中写循环语句似乎有些不妥
每个 class 声明一个 static 变量,保存当前学生数量,
开一个 public 的 Add(Student stu);简单的说就是,你的 class 就是一个 student 的 集合 collections 操作而已。
{
if (this.ClassNumber <5)
{
this.CalssName =DateTime .Now .Year *1000 +ClassNumber;
this.StuCount = StuCount ;
Students = new Student[StuCount];
this.ClassNumber ++;
}
else
{
MessageBox.Show ("班级数目不能超过5个","班级创建 ",MessageboxButton.YesNo ,MessageBoxInformation.Warning );
}
}
试试这个,,(不排除出现书写错误的可能,没调试)