📄 main.cpp
字号:
/////头文件//////////////////////////////////////////////////////////////////
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>
#include <fstream.h>
#include <conio.h>
#include"subject.h"
////////////////////总菜单界面//////////////////
char face()
{
int k=0;
char a[3],c,i;
system("cls");
cout<<endl<<endl;
cout<<"\t\t\t\t 选修课小系统 \n\n"<<endl;
cout<<"\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"
<<"\t\t \n"
<<"\t\t 操作方式: \n"
<<"\t\t 1.学生选课 \n"
<<"\t\t \n"
<<"\t\t 2.后台管理 \n"
<<"\t\t \n"
<<"\t\t-------------------------------------------\n"<<endl;
while(1)
{
cout<<"\n\t\t请选择登入方式: ";
cin>>a;
if(strlen(a)==1)
{
for(i='1';i<='2';i++)
{
c=i;
if(c==a[0])
return c;
}
}
cout<<"\n\n\t\t\t\t输入有误!\n"<<endl;
k++;
}
}
///////////////////学生选课界面///////////////////////
char student_face()
{
char A[10];
char b, i;
int k = 0;
system("cls");;
cout<<"\n\n\n"
<<"\t\t 学生选修课系统 \n"
<<"\t\t -----------------------------------------\n"
<<"\t\t \n"
<<"\t\t 操作方式: \n"
<<"\t\t 1.学生选课 \n"
<<"\t\t \n"
<<"\t\t 2.学生情况 \n"
<<"\t\t \n"
<<"\t\t 3.选课情况 \n"
<<"\t\t \n"
<<"\t\t 4.退出系统 \n"
<<"\t\t \n"
<<"\t\t\n"<<endl;
while(1)
{
cout<<"\t\t请选择操作方式: ";
cin>>A;
if(strlen(A)==1)
{
for(i='1';i<='4';i++)
{
b=i;
if(b==A[0]) return b;
}
}
cout<<"\n\t\t\t\t输入有误!\n"<<endl;
k++;
}
}
char admin_face()
{
char A[10];
char b, i;
int k = 0;
system("cls");;
cout<<"\n\n\n"
<<"\t\t--------------------------------------------------\n"
<<"\t\t \n"
<<"\t\t 选修课系统后台管理 \n"
<<"\t\t \n"
<<"\t\t 操作方式: \n"
<<"\t\t 1.增加学生 | 5.填写成绩 \n"
<<"\t\t 2.增加课程 | 6.选课情况 \n"
<<"\t\t 3.删除学生 | 7.保存数据 \n"
<<"\t\t 4.删除课程 | 0.退出系统 \n"
<<"\t\t \n"
<<"\t\t--------------------------------------------------\n"<<endl;
while(1)
{
cout<<"\t\t 请选择操作方式: ";
cin>>A;
if(strlen(A)==1)
{
for(i='0';i<='9';i++)
{
b=i;
if(b==A[0])
return b;
}
}
cout<<"\n\t\t\t\t输入有误!\n"<<endl;;
k++;
if(k>2)
{
cout<<"错误输入超过三次!\n";
exit(0);
}
}
}
/////////////////密码检查
void password()
{
int k=0,i;
char A[]="6666";
char B[10];
char a;
system("cls");
for(i=0;i<8;i++)
cout<<endl;
while(k<=2)
{
printf("\t\t请输入密码:");
i=0;
while(1)
{
a=getch();
if(a==13) break;
B[i]=a;
i++;
printf("*");
}
B[i]='\0';
if(strcmp(A,B)==0)
return;
else
{
k++;
cout<<"\n\n\t\t\t密码输入错误!请重新输入!\n"<<endl;
}
if(k>=3)
{
system("cls");
cout<<"\n\n\t\t\t密码错误超过三次!请退出.."<<endl;
exit(0);
}
}
}
struct subject_message
{
subject sub;
subject_message *Next;
};
int face_2_7(student_message *Y,subject_message *P);
////////////学生选课///////
int face_1_1(student_message *P,subject_message *X)
{
system("cls");
cout<<"\n\n\t\t\t\t学生选课操作"<<endl;
student_message *q=P->Next;
int i;
char N[20],M[20];
if(q!=NULL)
cout<<"\n\n\n\t\t所有学生名单如下:\n"<<endl;
else
{
cout<<"\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 ;
}
q = P->Next;
if(q==NULL)
return 1;
cout<<"\n\n\t\t 请输入学生姓名:";
cin>>N;
i=0;
q=P->Next;
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\n\t\t没有这个学生!! 请按任意键返回.."<<endl;
return 1;
}
else if(i>1)
{
cout<<"\n\n\t\t共找到"<<i<<"个姓名为"<<N<<"的学生"<<endl;
cout<<"\t\t选择第几个:";
cin>>k;
}
if(k>i||k<=0)
{
cout<<"\n\t\t\t输入有误!按任意键继续"<<endl;
return 1;
}
q = P->Next;
j=0;
while(q)
{
q->stu.getname(M);
if(strcmp(N,M)==0)
j++;
if(j==k)
{
if(q->stu.retfact_course()>=q->stu.retmax_course())
{
cout<<"\n\t\t所选课程已满!按任意键继续"<<endl;
return 1;
}
else
{
subject_message *t=X->Next;
char N1[20];
system("cls");;
if(t!=NULL)
{
cout<<"\n\n\n\t\t所有课程如下:"<<endl;
cout<<"\n\t\t\t\t课程名称\t\t 学分"<<endl;
}
else
{
cout<<"\n\n\n\t\t对不起,暂时没有课程"<<endl;
return 1;
}
while(t)
{
t->sub.get_kname(N1);
cout<<"\t\t\t\t "<<N1<<setw(26-strlen(N1))<<t->sub.read_credit()<<endl;
t = t->Next ;
}
char N2[20];
cout<<"\n\t 输入你所要选的课程 : ";
cin>>N2;
t = X->Next;
while(t)
{
t->sub.get_kname(N1);
if(strcmp(N1,N2)==0)
{
if(q->stu.findcourse(N2)==1)
{
cout<<"\n\t\t此课程你已选过了,不能再选.按任意键继续"<<endl;
return 1;
}
t=X->Next;
char NA[20];
while(t)
{
t->sub.get_kname(NA);
if(strcmp(NA,N2)==0)
{
if(t->sub.retactivestudent()>=t->sub.retmaxstudent ())
{
cout<<"\n\t\t此课程已选满,不能选.按任意键继续"<<endl;
return 1;
}
}
t = t->Next;
}
q->stu.addcourse(N2,0.0);
cout<<"\n\n\t\t选课成功!按任意键继续"<<endl;
return 1;
}
t = t->Next;
}
cout<<"\n\t\t没有此课程!按任意键继续"<<endl;
}
return 1;
}
q = q->Next;
}
return 1;
}
int face_1_2(student_message *P,subject_message *X) //学生情况
{
student_message *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
{ cout<<"\n\n\n\t\t对不起,暂时没有学生名单!!请按任意键继续.."<<endl;
return 1;
}
while(q)
{
q->stu.getname(N);
cout<<"\t\t "<<N<<setw(25-strlen(N))<<" 已选 "<<q->stu.retfact_course()<<" 门课 "<<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)
{
cout<<"\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.retfact_course()<<"门课,具体如下\n\n"<<endl;
cout<<"\t\t\t课程名称\t\t成绩\n"<<endl;
while(T)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -