다음과 같은 몇 가지 문제가 있습니다. 새 사용자를 추가하면 올바르게 작동하지만 두 번째 사용자를 추가하면 첫 번째 사용자는 잊어 버리게됩니다. 이전에 추가 된 이전 사용자를 잊어 버리는 것을 계속합니다.사용자가 ID 이름 등을 입력하는 일종의 데이터베이스를 수행하면 사용자가 id를 입력하면 해당 사용자에게 코스를 추가 할 수 있습니다.
static List<Students> stud = new List<Students>();
static Courses regcor = new Courses(0,"");
static void Main(string[] args)
{
Students regstud = new Students("", "", "", 0);
string idselec = "";
string selec = "";
do
{
Console.WriteLine("1.Register new student.");
Console.WriteLine("2.Add course.");
Console.WriteLine("3.All information.");
Console.WriteLine("4.Exit.");
selec = Console.ReadLine();
if (selec == "1")
{
do
{
Console.Clear();
Console.WriteLine("Enter ID");
idselec = Console.ReadLine();
if (checkid(idselec))
{
Console.WriteLine("Id already excsists");
Console.ReadLine();
}
}
while (checkid(idselec));
regstud.ID = idselec;
Console.WriteLine("Enter Name");
regstud.name = Console.ReadLine();
Console.WriteLine("Enter Surname");
regstud.surname = Console.ReadLine();
Console.WriteLine("Enter Age");
regstud.age = Convert.ToInt32(Console.ReadLine());
stud.Add(regstud);
}
else if (selec == "2")
{
Console.WriteLine("Enter ID");
idselec = Console.ReadLine();
check(idselec);
}
else if (selec == "3")
{
Console.Clear();
writeall();
}
}
while (selec != "4");
}
static bool checkid(string id)
{
return stud.Any(u => u.ID == id);
}
static void check(string ID)
{
int i = 0;
bool found = false;
do
{
if (stud[i].ID == ID)
{
Console.WriteLine("Hello " + stud[i].name+" "+ stud[i].surname) ;
Console.WriteLine("Enter code");
int code =Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter Name");
string name = Console.ReadLine();
regcor.CourID = code;
regcor.courname = name;
stud[i].cour(regcor);
found = true;
}
i++;
}
while ((i < stud.Count) && !(found));
}
static void writeall()
{
int i = 0, y=0, sub=0,sub3=0;
string sub2="";
do
{
Console.WriteLine(stud[i].ID);
Console.WriteLine(stud[i].name);
Console.WriteLine(stud[i].surname);
Console.WriteLine(stud[i].age);
sub3 = stud[i].cour3();
do
{
sub = stud[i].cour1(y);
sub2 = stud[i].cour2(y);
Console.WriteLine(sub);
Console.WriteLine(sub2);
y++;
}
while (y < sub3);
i++;
}
while (i < stud.Count);
}
}
}이 클래스 코스입니다
: 다음은 코드이 클래스의 학생입니다
public int CourID = 0;
public string courname = "";
public Courses(int corID, string corname)
{
this.CourID = corID;
this.courname = corname;
}
}
}
는; 당신이 실제로 새로운 학생을 만들려면 DO 루프에
Students regstud = new Students("", "", "", 0);
:
public int age = 0;
public string name = "", surname = "", ID = "";
List<Courses> cours = new List<Courses>();
public Students(string name, string surname,string ID, int age)
{
this.ID = ID;
this.surname = surname;
this.age = age;
this.name = name;
}
public void cour(Courses c)
{
cours.Add(c);
}
public int cour1(int i)
{
return cours[i].CourID;
}
public string cour2(int i)
{
return cours[i].courname;
}
public int cour3()
{
return cours.Count;
}
}
}
여기서는 데이터베이스 태그가 유용할지 모르겠습니다. 너는 기억 속의 모든 것을하고있다, 안 그래? 데이터베이스 태그를 사용하면 이러한 유형의 질문에 대답 할 수있는 사람들이 생기고 이것이 어떻게 보이는지는 알 수 없습니다. – MJB