⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 学生选课系统.txt

📁 简单的类与对象的内容
💻 TXT
📖 第 1 页 / 共 4 页
字号:
}    
    
int menu_1_2(studentdb *P,subjectdb *X)   //学生情况    
{    
studentdb *q=P->Next;    
char N[20];    
system("cls");    
cout<<"\n\n\t\t\t\t学生情况操作"<<endl;    
int i;    
if(q!=NULL)    
{    
cout<<"\n\n\n\t\t所有学生选课信息如下:\n"<<endl<<endl;    
cout<<"\t\t  姓名\t\t\t选课情况\n"<<endl;    
}    
else    
{    
cerr<<"\n\n\n\t\t对不起,暂时没有学生名单!!请按任意键继续.."<<endl;    
return 1;    
}    
while(q)    
{    
q->stu.getname(N);    
cout<<"\t\t  "<<N<<setw(25-strlen(N))<<" 已选 "<<q->stu.retfactcourse()<<" 门课 "<<endl;    
q = q->Next ;    
}    
char M[20];    
cout<<"\n\t\t输入要查看的学生姓名:";    
cin>>M;    
i=0;    
q=P->Next;    
while(q)    
{    
q->stu.getname(N);    
if(strcmp(N,M)==0)    
i++;    
q = q->Next;    
}    
int j=0,k=1;    
if(i==0)    
{    
    
cout<<"\n\t\t\t没找到这个学生!!请按任意键继续.."<<endl;    
return 1;    
}    
else if(i>1)    
{    
    
cout<<"\n\t\t共找到"<<i<<"个姓名为"<<M<<"的学生"<<endl;    
cout<<"\t\t选择第几个:";    
cin>>k;    
}    
if(k>i||k<=0)    
{    
    
cerr<<"\n\t\t\t输入有误!按任意键继续.."<<endl;    
    
return 1;    
}    
q = P->Next;    
j=0;    
q=P->Next;    
    
while(q)    
{    
q->stu.getname(N);    
if(strcmp(N,M)==0)    
j++;    
if(j==k)    
{    
system("cls");;    
course *T=q->stu.retroot();    
if(T==NULL)    
{    
cout<<"\n\n\n\t\t\t"<<N<<"同学你还未选课! 请按任意键继续.."<<endl;    
return 1;    
}    
if (T!=NULL)    
T = T->Next;    
cout<<"\n\n\n\t\t"<<N<<"同学你已选"<<q->stu.retfactcourse()<<"门课,具体如下\n\n"<<endl;    
cout<<"\t\t\t课程名称\t\t成绩\n"<<endl;    
while(T)    
{    
    
cout<<"\t\t\t "<<T->cname<<setw(25-strlen(T->cname))<<T->grade<<endl;    
T = T->Next;    
}    
j=0;    
}    
q = q->Next;    
}    
cout<<"\n\t\t请按任意键继续..."<<endl;    
return 1;    
}    
int menu_1_3(subjectdb *P)   //选课情况    
{    
subjectdb *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    
{    
cerr<<"\n\n\n\t\t对不起,暂时没有课程!!请按任意键继续.."<<endl;    
return 1;    
}    
while(q)    
{    
q->sub.getkname(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 menu_1_4(studentdb *X,subjectdb *P)   //退出系统    
{    
menu_2_9(X,P);    
tuichu();    
return 0;    
}    
/////////////////////////////////////////////////////////////////////////////////////    
//管理端功能函数    
int menu_2_1(studentdb *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;    
studentdb *newnode = new studentdb;    
newnode->Next = P->Next ;    
newnode->stu.readname(N);    
P->Next = newnode ;    
return 1;    
}    
    
int menu_2_2(subjectdb *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;    
subjectdb *q = P->Next;    
while(q)    
{    
q->sub.getkname(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;    
subjectdb *newnode = new subjectdb;    
newnode->Next = P->Next ;    
newnode->sub.setkname(N);    
newnode->sub.getcredit(k);    
P->Next = newnode ;    
return 1;    
}    
    
int menu_2_3(studentdb *P)   //删除学生    
{    
system("cls");    
cout<<"\n\n\t\t\t\t删除学生操作"<<endl;    
menu_2_7(P);    
studentdb *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)    
{    
    
cerr<<"\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;    
studentdb *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 menu_2_4(subjectdb *P)   //删除课程    
{    
subjectdb *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    
{    
cerr<<"\n\n\n\t\t对不起,暂时没有课程!!请按任意键继续.."<<endl;    
return 1;    
}    
while(q)    
{    
q->sub.getkname(N);    
cout<<"\t\t\t\t"<<N<<endl;    
q = q->Next ;    
}    
q = P->Next;    
subjectdb *R = P;    
if(q==NULL)    
return 1;    
char M[20];    
cout<<"\n\t    请输入要删除的课程 :";    
cin>>M;    
while(q)    
{    
q->sub.getkname(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;    
}    
    
cerr<<"\n\t\t没有此课程!!\t请按任意键继续.."<<endl;    
return 1;    
}    
    
int menu_2_5(studentdb *X,subjectdb *P)   //填写成绩    
{    
    
subjectdb *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对不起,暂时没有任何选修课程。请按任意键继续.."<<endl;    
return 1;    
}    
while(q)    
{    
q->sub.getkname(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.getkname(N);    
studentname *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)    
cerr<<"\n\t\t\t无任何信息!!请按任意键继续.."<<endl;    
while(K)    
{    
    
cout<<"\n\t\t\t"<<K->tname<<"\t\t ";    
    
cin>>score;    
    
studentdb *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;    
}    
cerr<<"\n\t\t没有此课程!!请按任意键继续.."<<endl;    
return 1;    
}    
    
int menu_2_6(subjectdb *P)   //更改学分    
{    
float k;    
system("cls");    
cout<<"\n\n\n\t\t\t\t更改学分操作\n"<<endl;    
subjectdb *q = P->Next;    
    
char N[20],M[20];    
if(q!=NULL)    
cout<<"\n\n\n\t\t 所有课程如下:\n"<<endl;    
else    
{    
cerr<<"\n\n\n\t\t对不起,暂时没有任何可选课程。请按任意键继续.."<<endl;    
return 1;    
}    
while(q)    
{    
q->sub.getkname(N);    
cout<<"\t\t\t\t  "<<N<<endl;    
q = q->Next ;    
}    
q = P->Next;    
cout<<"\n\n\n\t\t请输入要改的课程 :";    
cin>>M;    
while(q)    
{    
q->sub.getkname(N);    
if(strcmp(N,M)==0)    
{    
    
cout<<"\n\t\t\t原来学分为 :"<<q->sub.readcredit()<<endl;    
cout<<"\n\t\t\t现要更改为 :";    
cin>>k;    
q->sub.getcredit(k);    
cout<<"\n\t\t更改课程学分成功,按任意键继续"<<endl;    
return 1;    
}    
q = q->Next;    
}    
cerr<<"\n\t\t无此课程!!请按任意键继续.."<<endl;    
return 1;    
}    
    
int menu_2_7(studentdb *P)   //学生情况    
{    
studentdb *q=P->Next;    
char N[20];    
system("cls");    
cout<<"\n\n\n\t\t\t\t学生情况操作\n"<<endl;    
if(q!=NULL)    
cout<<"\n\n\n\t\t所有学生名单如下:\n"<<endl;    
else    
{    
cerr<<"\n\n\n\t\t对不起,暂时没有学生名单!请按任意键继续.."<<endl;    
return 1;    
}    
while(q)    
{    
q->stu.getname(N);    
cout<<"\t\t\t\t"<<N;    
cout<<endl;    
q = q->Next ;    
}    
cout<<"\n\t\t按任意键继续.."<<endl;    
return 1;    
}    
    
    
int menu_2_8(subjectdb *P)   //选课情况    
{    
    
subjectdb *q = P->Next;    
char M[20],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    
{    
cerr<<"\n\n\n\t\t对不起,暂时没有课程!!请按任意键继续.."<<endl;    
return 1;    
}    
while(q)    
{    
q->sub.getkname(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.getkname(N);    
studentname *K = q->sub.retfirst();    
    
if(K!=NULL)    
K = K->Next;    
if(strcmp(N,M)==0)    
{    
system("cls");;    
if(K==NULL)    
{    
cerr<<"\n\n\t无任何选课信息!!\t请按任意键继续.."<<endl;    
return 1;    
}    
cout<<"\n\n\n\t\t选修"<<M<<"课的学生名单如下:\n"<<endl;    
cout<<"\n\t\t\t姓名\t\t  成绩"<<endl;    
while(K)    
{    
cout<<"\n\t\t\t"<<K->tname<<setw(20-strlen(K->tname))<<K->result<<endl;    
K = K->Next;    
}    
cout<<"\n\t\t请按任意键继续.."<<endl;    
return 1;    
}    
q = q->Next;    
}    
    
cerr<<"\n\t\t无此课程!!\t请按任意键继续.."<<endl;    
    
return 1;    
}     
    
     
    
    
int menu_2_9(studentdb *Y,subjectdb *P)   //保存数据    
{    
studentdb *Z = Y->Next;    
subjectdb *X = P->Next;    
system("cls");;    
fstream file("subject.txt",ios::out);    
    
while(X)    
{    
file.write ((char *)&amt;(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 *)&amt;(Z->stu),sizeof(Z->stu));    
int time = Z->stu.retfactcourse();    
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 menu_2_0()    //退出系统    
{    
tuichu();    
return 0;    
}    
    
int main()    
{    
subjectdb *P = new subjectdb,*Q=P;    
P->Next = NULL;    
subject M;    
fstream file("subject.txt",ios::in);    
while(1)    
{    
file.read((char *)&amt;M,sizeof(M));    
if(!file) break;    
Q->Next = new subjectdb;    
Q->Next ->Next = NULL;    
Q->Next ->sub = M;    
Q = Q->Next;    
}    
file.close ();    
    
studentdb *Y = new studentdb,*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 *)&amt;N,sizeof(N));    
if(!file1) break;    
Y->Next = new studentdb;    
Y->Next ->Next = NULL;    
Y->Next ->stu = N;    
int time = N.retfactcourse();    
Y->Next->stu.clrroot ();    
while(time)    
{    
file2.read ((char *)&amt;O,sizeof(course));    
if(!file2) break;    
Y->Next->stu.addcourse(O.cname ,O.grade);    
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;    
int br=1;    
b = menu();    
if(b=='1')    
{    
while(1)    
{    
c = custom();    
switch(c)    
{    
case '1':br = menu_1_1(X,P);getch();break;  //学生选课    
case '2':br = menu_1_2(X,P);getch();break;  //学生情况    
case '3':br = menu_1_3(P);getch();  break;  //选课情况    
case '4':br = menu_1_4(X,P);        break;  //退出系统    
}    
if (br == 0)    
break;    
}    
}    
if(b=='2')    
{    
password();    
while(1)    
{    
c = server();    
switch(c)    
{    
case '1':br = menu_2_1(X);getch();  break;   //增加学生    
case '2':br = menu_2_2(P);getch();  break;   //增加课程    
case '4':br = menu_2_4(P);getch();  break;   //删除课程    
case '3':br = menu_2_3(X);getch();  break;   //删除学生    
case '5':br = menu_2_5(X,P);getch();break;   //填写成绩    
case '6':br = menu_2_6(P);getch();  break;   //更改学分    
case '7':br = menu_2_7(X);getch();  break;   //学生情况    
case '8':br = menu_2_8(P);getch();  break;   //选课情况    
case '9':br = menu_2_9(X,P);getch();break;   //保存数据    
case '0':br = menu_2_0();break;              //退出系统    
}    
if (br == 0)    
break;    
}    
}    
return 0;    
}<SCRIPT src="/inc/gg_read2.js"></SCRIPT>  


#include <string.h> 
#include <stdio.h> 
#include <iostream.h> 
#include <stdlib.h> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -