📄 main.cpp
字号:
cout<<"\t\t\t "<<T->cname<<setw(25-strlen(T->cname))<<T->mark<<endl;
T = T->Next;
}
j=0;
}
q = q->Next;
}
cout<<"\n\t\t请按任意键继续..."<<endl;
return 1;
}
int face_1_3(subject_message *P) //选课情况
{
subject_message *q=P->Next;
char N[20];
system("cls");
cout<<"\n\n\t\t\t\t选课情况操作"<<endl;
if(q!=NULL)
{
cout<<"\n\n\n\t\t所有选课情况如下:\n"<<endl;
cout<<"\n\t\t\t课程名称\t\t选课人数\n"<<endl;
}
else
{
cout<<"\n\n\n\t\t对不起,暂时没有课程!!请按任意键继续.."<<endl;
return 1;
}
while(q)
{
q->sub.get_kname(N);
cout<<"\t\t\t"<<N<<setw(28-strlen(N))<<q->sub.retactivestudent()<<endl;
q = q->Next ;
}
cout<<"\n\t\t请按任意键继续.."<<endl;
return 1;
}
int face_1_4(student_message *X,subject_message *P) //退出系统
{
face_2_7(X,P);
exit(0);
return 0;
}
//////////////////////后台管理界面///////////////////////////////
int face_2_1(student_message *P) //增加学生
{
char N[20];
system("cls");;
cout<<"\n\n\t\t\t\t增加学生操作\n"<<endl;
cout<<"\n\n\t\t请输入学生姓名:";
cin>>N;
cout<<endl<<"\t\t增加成功,按任意键继续"<<endl;
student_message *new_xinxi = new student_message;
new_xinxi->Next = P->Next ;
new_xinxi->stu.read_name(N);
P->Next = new_xinxi ;
return 1;
}
int face_2_2(subject_message *P) //增加课程
{
float k;
char N[20],M[20];
system("cls");;
cout<<"\n\n\t\t\t\t增加课程操作\n"<<endl;
cout<<"\n\n\t\t 请输入课程名称:";
cin>>N;
cout<<endl;
subject_message *q = P->Next;
while(q)
{
q->sub.get_kname(M);
if(strcmp(N,M)==0)
{
cout<<"\n\t\t此课程已经存在,按任意键继续"<<endl;
return 1;
}
q = q->Next;
}
cout<<"\t\t输入此课程的学分:";
cin>>k;
cout<<"\n\t\t增加课程操作成功,按任意键继续"<<endl;
subject_message *new_xinxi = new subject_message;
new_xinxi->Next = P->Next ;
new_xinxi->sub.set_kname(N);
new_xinxi->sub.get_credit(k);
P->Next = new_xinxi ;
return 1;
}
int face_2_3(student_message *P) //删除学生
{
system("cls");
cout<<"\n\n\t\t\t\t删除学生操作"<<endl;
student_message *q = P->Next;
if(q==NULL)
return 1;
int i;
char N[20],M[20];
cout<<"\n\t请输入要删除的学生姓名 :";
cin>>N;
i=0;
while(q)
{
q->stu.getname(M);
if(strcmp(N,M)==0)
i++;
q = q->Next;
}
int j=0,k=1;
if(i==0)
{
cout<<"\n\t\t没有这个学生!!请按任意键继续.."<<endl;
return 1;
}
else if(i>1)
{
cout<<"\n\t\t共找到"<<i<<"个姓名为"<<N<<"的学生"<<endl;
cout<<"\n\t\t要删除第几个:";
cin>>k;
}
if(k>i||k<=0)
return 1;
q = P->Next;
student_message *R = P;
j=0;
while(q)
{
q->stu.getname(M);
if(strcmp(N,M)==0)
j++;
if(j==k)
{
R->Next = q->Next;
free(q);
cout<<"\n\t\t删除学生操作成功,按任意键继续.."<<endl;
return 1;
}
q = q->Next;
R = R->Next;
}
return 1;
}
int face_2_4(subject_message *P) //删除课程
{
subject_message *q=P->Next;
char N[20];
system("cls");;
cout<<"\n\n\t\t\t\t删除课程操作"<<endl;
if(q!=NULL)
cout<<"\n\n\n\t\t所有课程如下:\n"<<endl;
else
{
cout<<"\n\n\n\t\t sorry,没有课程!!请按任意键继续.."<<endl;
return 1;
}
while(q)
{
q->sub.get_kname(N);
cout<<"\t\t\t\t"<<N<<endl;
q = q->Next ;
}
q = P->Next;
subject_message *R = P;
if(q==NULL)
return 1;
char M[20];
cout<<"\n\t 请输入要删除的课程 :";
cin>>M;
while(q)
{
q->sub.get_kname(N);
if(strcmp(N,M)==0)
{
R->Next = q->Next;
free(q);
cout<<"\n\t\t删除课程操作成功,按任意键继续"<<endl;
return 1;
}
q = q->Next;
R = R->Next;
}
cout<<"\n\t\t没有此课程!!\t请按任意键继续.."<<endl;
return 1;
}
int face_2_5(student_message *X,subject_message *P) //填写成绩
{
subject_message *q=P->Next;
char M[20],N[20],NA[20];
float score;
system("cls");
cout<<"\n\n\t\t\t\t 填写成绩操作\n"<<endl;
if(q!=NULL)
cout<<"\n\t\t\t课程名称\t\t选课人数\n"<<endl;
else
{
cout<<"\n\n\n\t\t sorry!!没有任何选修课程。请按任意键继续.."<<endl;
return 1;
}
while(q)
{
q->sub.get_kname(N);
cout<<"\t\t\t"<<N<<setw(28-strlen(N))<<q->sub.retactivestudent()<<endl;
q = q->Next ;
}
q = P->Next;
cout<<"\n\t请输入课程名称 :";
cin>>M;
while(q)
{
q->sub.get_kname(N);
student_name *K = q->sub.retfirst();
if(K!=NULL)
K = K->Next;
if(strcmp(N,M)==0)
{
system("cls");;
if(K!=NULL)
{
cout<<"\n\n\t\t请填写选修"<<M<<"的学生成绩\n"<<endl;
cout<<"\n\t\t\t姓名\t\t成绩"<<endl;
}
if(K==NULL)
cout<<"\n\t\t\t无任何信息!!请按任意键继续.."<<endl;
while(K)
{
cout<<"\n\t\t\t"<<K->tname<<"\t\t ";
cin>>score;
student_message *XX = X->Next;
while(XX)
{
XX->stu.getname(NA);
if(strcmp(NA,K->tname)==0)
XX->stu.wrecourse(M,score);
XX = XX->Next;
}
K = K->Next;
}
if(K==NULL)
cout<<"\n\t\t填写成绩完毕!!请按任意键继续.."<<endl;
return 1;
}
q = q->Next;
}
cout<<"\n\t\t没有此课程!!请按任意键继续.."<<endl;
return 1;
}
int face_2_7(student_message *Y,subject_message *P) //保存数据
{
student_message *Z = Y->Next;
subject_message *X = P->Next;
system("cls");;
fstream file("subject.txt",ios::out);
while(X)
{
file.write ((char *)&(X->sub),sizeof(X->sub));
X = X->Next;
}
file.close();
fstream file1("student.txt",ios::out);
fstream file2("course.txt",ios::out);
while(Z)
{
file1.write ((char *)&(Z->stu),sizeof(Z->stu));
int time = Z->stu.retfact_course();
course *co = Z->stu.retroot(),*co1;
if(co!=NULL)
co1 = co->Next;
while(time)
{
file2.write((char *)(co1),sizeof(*co1));
co1 = co1->Next;
time = time - 1;
}
Z = Z->Next;
}
file2.close ();
file1.close();
cout<<"\n\n\n\t\t\t保存数据成功!按任意键继续.."<<endl;
return 1;
}
int face_2_0() //退出系统
{
exit(0);
return 0;
}
int main()
{
subject_message *P = new subject_message,*Q=P;
P->Next = 0;
subject M;
fstream file("subject.txt",ios::in);
while(1)
{
file.read((char *)&M,sizeof(M));
if(!file) break;
Q->Next = new subject_message;
Q->Next ->Next = NULL;
Q->Next ->sub = M;
Q = Q->Next;
}
file.close ();
student_message *Y = new student_message,*X=Y;
Y->Next=NULL;
student N;
course O;
fstream file1("student.txt",ios::in);
fstream file2("course.txt",ios::in);
while(1)
{
file1.read((char *)&N,sizeof(N));
if(!file1) break;
Y->Next = new student_message;
Y->Next ->Next = NULL;
Y->Next ->stu = N;
int time = N.retfact_course();
Y->Next->stu.clrroot ();
while(time)
{
file2.read ((char *)&O,sizeof(course));
if(!file2) break;
Y->Next->stu.addcourse(O.cname ,O.mark);
time--;
}
Y=Y->Next;
}
file2.close ();
file1.close ();
Q=P->Next;
while(Q)
{
Q->sub.clractivestudnet();
Q->sub.findstudent(X);
Q = Q->Next;
}
char c;
char b;
b = face();
if(b=='1')
{
while(1)
{
c = student_face();
switch(c)
{
case '1': face_1_1(X,P);getch();break; //学生选课
case '2': face_1_2(X,P);getch();break; //学生情况
case '3': face_1_3(P);getch(); break; //选课情况
case '4': face_1_4(X,P); break; //退出系统
}
}
}
if(b=='2')
{ password();
while(1)
{ c = admin_face();
switch(c)
{
case '1': face_2_1(X);getch(); break; //增加学生
case '2': face_2_2(P);getch(); break; //增加课程
case '3': face_2_3(X);getch(); break; //删除学生
case '4': face_2_4(P);getch(); break; //删除课程
case '5': face_2_5(X,P);getch();break; //填写成绩
case '6': face_1_3(P);getch(); break; //选课情况
case '7': face_2_7(X,P);getch();break; //保存数据
case '0': face_2_0();break; //退出系统
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -