电脑快捷键使用指南
方便 快捷,让大家使用电脑时,不必烦于在工具栏中查找某项功能,快捷键指南能够更有效地帮助大家
学生信息管理系统
三 学生管理系统 (难度系数*****)
使用下面的数据,设计一个简单的学籍管理系统,实现出最基本的功能。
学生基本信息文件(a.txt)及其内容:事先提供,格式如下
学号 姓名 性别 宿舍号码 电话号码
01 李成成 男 501 87732111
02 李成华 女 101 87723112
03 王成凤 女 101 87723112
04 张明明 男 502 87734333
05 陈东 男 501 87732111
06 李果 男 502 87734333
07 张圆圆 女 102 87756122
。。。。。。。。。
学生成绩基本信息文件(b.txt)及其内容:
学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分
01 A01 大学物理 3 66 78 82
02 B03 高等数学 4 78 -1 90
01 B03 高等数学 4 45 -1 88
02 C01 VF 3 65 76 66
```````````````
(一)功能要求及说明:
(1) 数据录入功能:对b.txt进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。
综合成绩的计算:如果本课程的实验成绩为-1,则表示本课程无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70%。
实得学分的计算:采用等级学分制。
综合成绩在90-100之间,应得学分=学分*100%
综合成绩在80-90之间,应得学分=学分*80%
综合成绩在70-80之间,应得学分=学分*75%
综合成绩在60-70之间,应得学分=学分*60%
综合成绩在60以下,应得学分=学分*0%
(2)查询功能:分为学生基本情况查询和成绩查询两种
A:学生基本情况查询:
A1---输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。
A2---输入一个宿舍号码,可查询本室所有的学生的基本信息并显示输出。
B:成绩查询:
B1:输入一个学号时,查询出此生的所有课程情况,格式如下:
学号 :XX 姓名: XXXXXXXX 课程编号: 课程名称: 综合成绩: 实得学分:
学号 :XX 姓名: XXXXXXXX 课程编号: 课程名称: 综合成绩: 实得学分:
学号 :XX 姓名: XXXXXXXX 课程编号: 课程名称: 综合成绩: 实得学分:学号 :XX 姓名: XXXXXXXX 课程编号: 课程名称: 综合成绩: 实得学分:
```````````````````````````
共修:XX科,实得总学分为:XXXX
(2) 删除功能:当在a.txt中删除一个学生时,自动地在b.txt中删除此人所有信息。
(3) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
学生信息管理系统代码
学生信息管理系统# include
# include
# include
#include
#include
using namespace std;
struct Student1
{
char *num;//学号
char *subnum;//课程编号
char *subname;//课程编号
char *grade;//学分
char *score1;//平时成绩
char *score2;//实验成绩
char *score3;//卷面成绩
float m;//综合成绩
float n;//实得学分
Student1 *next;
};//学号 姓名 性别 宿舍号码 电话号码
struct Student2
{
char *num;//学号
char *name;//姓名
char *sex;//性别
char *roomnum;//宿舍号码
char *tel;//电话号码
Student2 * next;
};
struct InfList
{
Student2* head;
int size;
};
struct CourseList
{
Student1 * head;
int size;
};
InfList create2()//创建一个空链表
{
InfList list;
list.head=0;
list.size=0;
return list;
}
CourseList create1()//创建一个空链表
{
CourseList list;
list.head = 0;
list.size = 0;
return list;
}
void deleteAll1(Student1 * p)//cc
{
delete []p->num;
delete []p->grade;
delete []p->subnum;
delete []p->subname;
}
void deleteAll(Student2* p1)//in
{
delete []p1->name;
delete []p1->num;
delete []p1->roomnum;
delete []p1->sex;
delete []p1->tel;
}
void removeAll1 (CourseList & list)
{
Student1 *p1;
while(list.head != NULL)
{
p1 = list.head;
list.head = list.head->next;
delete p1;
}
list.size = 0;
}
void removeAll (InfList & list)
{
Student2 *p1;
while(list.head != NULL)
{
p1 = list.head;
list.head = list.head->next;
delete p1;
}
list.size = 0;
}
double getM(char* a,char *b,char *c)//计算综合成绩
{
double m;
double a1=atof(a);
double b1=atof(b);
double c1=atof(c);
if(!strcmp(b,"-1"))
{
m=a1*(0.3)+c1*(0.7);
return m;
}
else
{
m=a1*(0.15)+b1*(0.15)+c1*(0.7);
return m;
}
}
double getN(char *a,double b)//计算实得学分
{
double n;
double a1=atof(a);
switch(int(b)/10)
{
case 10:
case 9:n=a1*1;return n;break;
case 8:n=a1*(0.8);return n;break;
case 7:n=a1*(0.75);return n;break;
case 6:n=a1*(0.6);return n;break;
default:n=0;return n;
}
}
CourseList LoadData1 (CourseList & list) //将成绩数据读入数组中,动态变量管理
{
list=create1();
::ifstream infile("b.txt",ios::in|ios::nocreate);//打开成绩文件
if(!infile)
{
cout<<"不能打开文件:b.txt"<>buff;
if(infile.eof())
break;
p1->num=new char[strlen(buff)+1];
strcpy(p1->num,buff);
infile>>buff;
p1->subnum=new char[strlen(buff)+1];
strcpy(p1->subnum,buff);
infile>>buff;
p1->subname=new char[strlen(buff)+1];
strcpy(p1->subname,buff);
infile>>buff;
p1->grade=new char[strlen(buff)+1];
strcpy(p1->grade,buff);
infile>>buff;
p1->score1=new char[strlen(buff)+1];
strcpy(p1->score1,buff);
infile>>buff;
p1->score2=new char[strlen(buff)+1];
strcpy(p1->score2,buff);
infile>>buff;
p1->score3=new char[strlen(buff)+1];
strcpy(p1->score3,buff);
p1->m=getM(p1->score1,p1->score2,p1->score3);
p1->n=getN(p1->grade,p1->m);
p1->next=NULL;
if (list.head==0)
list.head=p1;
else
p2->next=p1;
p2=p1;
n++;
}
list.size=n;
infile.close();
return list;
}
InfList LoadData (InfList & list) //将基本信息数据读入数组中,动态变量管理
{
list=create2();
::ifstream infile("a.txt",ios::in|ios::nocreate);//打开信息文件
if(!infile)
{
cout<<"不能打开文件:a.txt"<>buff;
if(infile.eof())
break;
p1->num=new char[strlen(buff)+1];
strcpy(p1->num,buff);
infile>>buff;
p1->name=new char[strlen(buff)+1];
strcpy(p1->name,buff);
infile>>buff;
p1->sex=new char[strlen(buff)+1];
strcpy(p1->sex,buff);
infile>>buff;
p1->roomnum=new char[strlen(buff)+1];
strcpy(p1->roomnum,buff);
infile>>buff;
p1->tel=new char[strlen(buff)+1];
strcpy(p1->tel,buff);
p1->next=NULL;
if (list.head==0)
list.head=p1;
else
p2->next=p1;
p2=p1;
n++;
}
list.size=n;
return list;
infile.close();
}
char * getChar(const char * sen)
{
cout<<sen<>c;
while(!cin.good())
{
cin.clear();
cin.getline(buffer, 80);
cout<>c;
}
return c;
}
int getInt( const char * msg)
{
cout<<msg<>n;
while(!cin.good())
{
cin.clear();
cin.getline(buffer, 80);
cout<>n;
}
return n;
}
void print(CourseList &list;)//输出所有数据
{
system("cls");//清屏
LoadData1(list);
cout<<setiosflags(ios::left);
cout<<"学生成绩录入:"<<endl<<'\n';
Student1 *p = list.head;
cout<<"学号"<<setw(10)<<"课程编号"<<setw(10)<<"课程名称"<<setw(9)<<"学分";
cout<<setw(8)<<"平时成绩"<<setw(10)<<"实验成绩"<<setw(10)<<"卷面成绩";
cout<<setw(10)<<"综合成绩"<<setw(10)<<"实得学分"<<endl;
while (p!= NULL)
{
cout<<setw(3)<num<<setw(10)<subnum<<setw(12)<subname<<setw(9)<grade;
cout<<setw(8)<score1<<setw(10)<score2<<setw(10)<score3;
cout<<setw(10)<m<<setw(10)<n<next;
}
cout<<"size(学生个数)="<<list.size/3<<endl;
cout<next;
deleteAll1(p1);
}
removeAll1(list);
}
void Numprint(InfList & list)
{
LoadData(list);
char num[20];
int m=0;
strcpy(num,getChar("请输入学号:"));
cout<num,num))
{
cout<<"学号"<<setw(8)<<"宿舍号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"电话号"<<endl;
cout<<setw(4)<num<<setw(8)<roomnum<<setw(8)<name<<setw(8)<sex<<setw(8)<tel<next;
}
if(m==0)
{ cout<<"未找到学生学号"<<num<<endl;
cout<<endl;
if(getInt("是否继续查询:(1/0)")==1)
Numprint(list);
cout<<endl;
return;
}
cout<<endl;
if(getInt("是否继续查询:(1/0)")==1)
Numprint(list);
cout<next;
deleteAll(p1);
}
removeAll(list);
}
void Nameprint(InfList & list)
{
LoadData (list);
char name [20];
int m=0;
strcpy(name,getChar("输入姓名:"));
Student2 * p = list.head;
for(int i = 0; p != NULL; i++)
{
if (!strcmp(p->name,name))
{
cout<<"学号"<<setw(8)<<"宿舍号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"电话号"<<endl;
cout<<setw(4)<num<<setw(8)<roomnum<<setw(8)<name<<setw(8)<sex<<setw(8)<tel<next;
}
if(m==0)
{ cout<<"未找到学生"<<name<<'\n';
cout<<endl;
if(getInt("是否继续查询:(1/0)")==1)
Nameprint(list);
cout<<endl;
return;
}
cout<<endl;
if(getInt("是否继续查询:(1/0)")==1)
Nameprint(list);
cout<next;
deleteAll(p1);
}
removeAll(list);
}
void Rnumprint(InfList & list)
{
LoadData (list);
char rnum [20];
int m=0;
strcpy(rnum,getChar("输入宿舍号:"));
Student2 * p = list.head;
for(int i = 0; p != NULL; i++)
{
if (!strcmp(p->roomnum,rnum))
{
cout<<"学号"<<setw(8)<<"宿舍号"<<setw(8)<<"姓名"<<setw(8)<<"性别"<<setw(8)<<"电话号"<<endl;
cout<<setw(4)<num<<setw(8)<roomnum<<setw(8)<name<<setw(8)<sex<<setw(8)<tel<next;
}
if(m==0)
{
cout<<"未找到宿舍号"<<rnum<<'\n';
cout<<endl;
if(getInt("是否继续查询:(1/0)")==1)
Rnumprint( list);
cout<<endl;return;
}
cout<<endl;
if(getInt("是否继续查询:(1/0)")==1)
Rnumprint(list);
cout<next;
deleteAll(p1);
}
removeAll(list);
}
void NumPrint(CourseList & list)
{
LoadData1(list);
char num[20];
int s=0;
double sum=0;
strcpy(num,getChar("请输入学号:"));
cout<num,num))
{
if(s==0)
{
cout<<' '<<"学号"<<setw(10)<<"课程编号"<<setw(9)<<"课程名称"<<setw(10)<<"综合成绩"<<setw(10)<<"实得学分"<<endl;
}
cout<<setw(4)<num<<setw(10)<subnum<<setw(10)<subname<<setw(10)<m<<setw(10)<n<n;
}
p=p->next;
}
cout<<"共修:"<<s<<"科,"<<"实得总学分为:"<<sum<<endl;
if(s==0)
{ cout<<"未找到学生学号"<<num<<endl;
if(getInt("是否继续查询:(1/0)")==1)
NumPrint(list);
cout<<endl;
return;
}
cout<<endl;
if(getInt("是否继续查询:(1/0)")==1)
NumPrint(list);
cout<next;
deleteAll1(p1);
}
removeAll1(list);
}
int Gochoice ()
{
system("cls");
cout<<" \n\n";
cout<<" 学 生 基 本 信 息 查 询";
cout<<"\n\n \n\n";
cout<< "输入命令编号:\n\n";
cout<<" 1. 学号查询\n"<<endl;
cout<<" 2. 姓名查询\n"<<endl;
cout<<" 3. 宿舍号查询\n"<<endl;
cout<<" 0. 返回菜单\n"<<endl;
return getInt("选择命令:");
}
void GetAll()
{
CourseList list;
print(list);
}
void LookInf()//查询学生信息
{
int choice;
InfList list1;
while((choice = Gochoice()) != 0)
{
switch(choice)
{
case 1: Numprint(list1); break;
case 2: Nameprint(list1); break;
case 3: Rnumprint(list1); break;
default:cout<<"输入命令不存在\n";
}
}
}
void LookGrade()//查询成绩
{
CourseList list;
NumPrint(list);
}
void Remove1 (InfList &list;, const int index)//删除a.txt中的数据
{
system("cls");
cout<<setiosflags(ios::left);
if (list.size == 0 || index list.size)
return ;
if (index == 0)
{
list.size--;
Student2 *p = list.head;
list.head = list.head->next;
cout<<"删除文件a.txt中:"<<endl;
cout<<' '<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"宿舍号"<<setw(10)<<"电话"<<endl;
cout<<setw(4)<num<<setw(10)<name<<setw(10)<sex<<setw(10)<roomnum<<setw(10)<tel<<endl<<'\n';
delete p;
return ;
}
Student2 *p1 = list.head, *p2 = p1;
for(int i = 0; i next;
}
list.size--;
p1->next = p2->next;
cout<<"删除文件a.txt中:"<<endl;
cout<<"学号"<<setw(8)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"宿舍号"<<setw(10)<<"电话"<<endl;
cout<<setw(4)<num<<setw(10)<name<<setw(10)<sex<<setw(10)<roomnum<<setw(10)<tel<<endl<<'\n';
delete p2;
}
void Remove2 (CourseList & list2, const int index)
{
cout<<setiosflags(ios::left);
if (list2.size == 0 || index = list2.size)
return ;
if (index == 0)
{
list2.size--;
Student1 *p = list2.head;
list2.head = list2.head->next;
cout<<"删除文件b.txt中:"<<endl;
cout<<"学号"<<' '<<"课程编号"<<' '<<"课程名称"<<' '<<"综合成绩"<<' '<<"实得学分"<<endl;
cout<<setw(4)<num<<setw(10)<subnum<<setw(10)<subname<<setw(10)<m<<setw(10)<n<<endl<<'\n';
deleteAll1(p);
delete p;
return ;
}
Student1 *p1 = list2.head, *p2 = p1;
for(int i = 0; i next;
}
list2.size--;
p1->next = p2->next;
cout<<"删除文件b.txt中:"<<endl;
cout<<"学号"<<' '<<"课程编号"<<' '<<"课程名称"<<' '<<"综合成绩"<<' '<<"实得学分"<<endl;
cout<<setw(4)<num<<setw(10)<subnum<<setw(10)<subname<<setw(10)<m<<setw(10)<n<<endl<num,num)==0)
return i;
p=p->next;
}
return -1;
}
int SearchList( CourseList & list, char * num)
{
Student1 *p = list.head;
for(int i = 0; p != NULL; i++)
{
if (strcmp(p->num,num)==0)
return i;
p = p -> next;
}
return -1;
}
void DeleteOne()//删除函数
{
cout<<setiosflags(ios::left);
CourseList list1;//b.txt成绩
InfList list;//a.txt
LoadData (list);
LoadData1(list1);
Student1 * pp=list1.head;
Student2 * p=list.head;
char num [20];
int sen,lin;
strcpy(num,getChar("输入学号:"));
sen=SearchData(list,num);
if(sen==-1)
cout<<"未找到学生"<<num;
Remove1(list,sen);
for(;;)
{
lin=SearchList(list1,num);
if(lin==-1)
break;
Remove2(list1,lin);
}
::ofstream outfile("a.txt");
if (!outfile )
{
cout << "不能打开目的文件:"<<"a.txt"<<'\n';
return;
}
if((list.size)!=0)
outfile<<"学号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"宿舍号码"<<'\t'<<"电话号码"<<'\n';
else
cout<<"文件已空"<<endl;
Student2 * p1=list.head;
while(p1!=NULL)
{
outfile<num<<'\t'<name<<'\t'<sex<<'\t'<roomnum<<'\t'<<'\t'<tel<next;
}
outfile.close();
::ofstream outfile2("b.txt",ios::out);
if (!outfile2 )
{
cout << "不能打开目的文件:"<<"b.txt"<<'\n';
return;
}
if((list1.size)!=0)
{
outfile2<<"学号"<<' '<<"课程编号"<<' '<<"课程名称"<<' '<<"学分"<<' '<<"平时成绩"<<' '<<"实验成绩";
outfile2<<' '<<"卷面成绩"<<' '<<"综合成绩"<<' '<<"实得学分"<<'\n';
}
else
cout<<"文件已空"<subname,"VC++")==0)
{
if(pp1->next==NULL)
{
outfile2<num<<setw(6)<subnum;
outfile2<<setw(6)<<' '<subname<<setw(5)<<' '<grade<<setw(4)<<' '<score1;
outfile2<<setw(7)<<' '<score2<<setw(7)<<' '<score3;
}
else
{
outfile2<num<<setw(6)<subnum;
outfile2<<setw(6)<<' '<subname<<setw(5)<<' '<grade<<setw(4)<<' '<score1;
outfile2<<setw(7)<<' '<score2<<setw(7)<<' '<score3<<'\n';}
}
else
{
outfile2<num<<setw(6)<subnum;
outfile2<<setw(6)<<' '<subname<<' '<grade<<setw(4)<<' '<score1;
outfile2<<setw(7)<<' '<score2<<setw(7)<<' '<score3<next;
}
outfile2.close();
cout<<endl;
if(getInt("是否继续删除:(1/0)")==1)
DeleteOne();
cout<next;
deleteAll1(p1);
}
removeAll1(list1);
while(list.head!=NULL)
{
Student2*p1;
p1=list.head;
list.head=list.head->next;
deleteAll(p1);
}
removeAll(list);
}
CourseList sortM(CourseList & list)//综合成绩降序排序
{
LoadData1(list);
Student1 *p1,*p2;
char * data1;
float data2;
int n;
n=list.size;
p1=list.head;
if (n==0||n==1)
return list;
for(;p1->next!=NULL;p1=p1->next)
{
p2=p1->next;
for(;p2!=NULL;p2=p2->next)
{
if (p1->mm)
{
data1=p1->num; p1->num=p2->num; p2->num=data1;
data1=p1->subnum; p1->subnum=p2->subnum; p2->subnum=data1;
data1=p1->subname; p1->subname=p2->subname; p2->subname=data1;
data1=p1->grade; p1->grade=p2->grade; p2->grade=data1;
data1=p1->score1; p1->score1=p2->score1; p2->score1=data1;
data1=p1->score2; p1->score2=p2->score2; p2->score2=data1;
data1=p1->score3; p1->score3=p2->score3; p2->score3=data1;
data2=p1->m; p1->m=p2->m; p2->m=data2;
data2=p1->n; p1->n=p2->n; p2->n=data2;
}
}
}
return list;
}
CourseList sortN(CourseList & list)//实得学分降序排序
{
LoadData1(list);
Student1 *p1,*p2;
char * data1;
float data2;
int n;
n=list.size;
p1=list.head;
if (n==0||n==1)
return list;
for(p1=list.head;p1->next!=NULL;p1=p1->next)
{ p2=p1->next;
for(;p2!=NULL;p2=p2->next)
{
if (p1->nn)
{
data1=p1->num; p1->num=p2->num; p2->num=data1;
data1=p1->subnum; p1->subnum=p2->subnum; p2->subnum=data1;
data1=p1->subname; p1->subname=p2->subname; p2->subname=data1;
data1=p1->grade; p1->grade=p2->grade; p2->grade=data1;
data1=p1->score1; p1->score1=p2->score1; p2->score1=data1;
data1=p1->score2; p1->score2=p2->score2; p2->score2=data1;
data1=p1->score3; p1->score3=p2->score3; p2->score3=data1;
data2=p1->m; p1->m=p2->m; p2->m=data2;
data2=p1->n; p1->n=p2->n; p2->n=data2; }
}
}
/*while(list.head!=NULL)
{
Student1*p1;
p1=list.head;
list.head=list.head->next;
deleteAll1(p1);
}
removeAll1(list);*/
return list;
}
CourseList sortMM(CourseList & list)//综合成绩升序排序
{
LoadData1(list);
Student1 *p1,*p2;
char * data1;
float data2;
int n;
n=list.size;
p1=list.head;
if (n==0||n==1)
return list;
for(p1=list.head;p1->next!=NULL;p1=p1->next)
{ p2=p1->next;
for(;p2!=NULL;p2=p2->next)
{
if (p1->m>p2->m)
{
data1=p1->num; p1->num=p2->num; p2->num=data1;
data1=p1->subnum; p1->subnum=p2->subnum; p2->subnum=data1;
data1=p1->subname; p1->subname=p2->subname; p2->subname=data1;
data1=p1->grade; p1->grade=p2->grade; p2->grade=data1;
data1=p1->score1; p1->score1=p2->score1; p2->score1=data1;
data1=p1->score2; p1->score2=p2->score2; p2->score2=data1;
data1=p1->score3; p1->score3=p2->score3; p2->score3=data1;
data2=p1->m; p1->m=p2->m; p2->m=data2;
data2=p1->n; p1->n=p2->n; p2->n=data2;
}
}
}
return list;
}
CourseList sortNN(CourseList & list)//实得学分升序排序
{
LoadData1(list);
Student1 *p1,*p2;
char * data1;
float data2;
int n;
n=list.size;
p1=list.head;
if (n==0||n==1)
return list;
for(p1=list.head;p1->next!=NULL;p1=p1->next)
{ p2=p1->next;
for(;p2!=NULL;p2=p2->next)
{
if (p1->n>p2->n)
{
data1=p1->num; p1->num=p2->num; p2->num=data1;
data1=p1->subnum; p1->subnum=p2->subnum; p2->subnum=data1;
data1=p1->subname; p1->subname=p2->subname; p2->subname=data1;
data1=p1->grade; p1->grade=p2->grade; p2->grade=data1;
data1=p1->score1; p1->score1=p2->score1; p2->score1=data1;
data1=p1->score2; p1->score2=p2->score2; p2->score2=data1;
data1=p1->score3; p1->score3=p2->score3; p2->score3=data1;
data2=p1->m; p1->m=p2->m; p2->m=data2;
data2=p1->n; p1->n=p2->n; p2->n=data2;
}
}
}
/*while(list.head!=NULL)
{
Student1*p1;
p1=list.head;
list.head=list.head->next;
deleteAll1(p1);
}
removeAll1(list);*/
return list;
}
void sortPrint (char * c,CourseList & list,char *cc)//输出实得学分排名
{
system("cls");
Student1 * p = list.head;
if (p==0)
{ cout<<"数据为空"<subname,c)&&!strcmp(cc,"实得学分"))
{
cout<<"第"<<n+1<<"名:"<<"学号:"<num<<'\t'<<"课程名称:"<subname<<'\t'<<"实得学分:"<n<subname,c)&&!strcmp(cc,"综合成绩"))
{
cout<<"第"<<n+1<<"名:"<<"学号:"<num<<'\t'<<"课程名称:"<subname<<'\t'<<"综合成绩:"<m<next;
}
if (n==0)
cout<<"未找到"<<c<<'\n';
}
int Select(){
cout<<"选择排序方式:"<<endl;
cout<<" 1.升序"<<endl;
cout<<" 2.降序"<<endl;
cout<<" 0.退出"<<endl;
return getInt("选择命令:");
}
void Arrange1()//实得学分
{
char str[3][10]={"大学物理","高等数学","VC++"};
char xf[]={"实得学分"};
int j=0;
CourseList list1;
char c[256];
strcpy(c,getChar("输入学科:"));
for(int i=0;i<3;i++)
{
if (!strcmp(str[i],c))
j++;
}
if(j==0)
cout<<"查无此学科"<<endl;
else
{
int choice;
while((choice= Select())!=0)
{ switch(choice)
{ case 1:sortPrint(c,sortNN(list1),xf);break;
case 2:sortPrint(c,sortN(list1),xf);break;
default:cout<<"输入命令不存在\n";cout<<"请重输:\n"<<endl;}
}
}
if(getInt("是否继续排序:(1/0)")==1)
Arrange1();
cout<next;
deleteAll1(p1);
}
removeAll1(list1);
}
void Arrange2()//综合成绩
{
char str[3][10]={"大学物理","高等数学","VC++"};
char zh[]={"综合成绩"};
int j=0;
CourseList list1;
char c[256];
strcpy(c,getChar("输入学科:"));
for(int i=0;i<3;i++)
{
if (!strcmp(str[i],c))
j++;
}
if(j==0)
cout<<"查无此学科"<<endl;//return;
else
{ int choice;
while((choice= Select())!=0)
{
switch(choice)
{
case 1:sortPrint(c,sortMM(list1),zh);break;
case 2:sortPrint(c,sortM(list1),zh);break;
default:cout<<"输入命令不存在\n";
cout<<"请重输:\n"<<endl;
}
}
}
if(getInt("是否继续排序:(1/0)")==1)
Arrange2();
cout<next;
deleteAll1(p1);
}
removeAll1(list1);
}
int enterChoice()
{
cout<<"\n\n";
cout<<" 学 生 信 息 管 理 系 统";
cout<<"\n\n\n\n";
cout<<"请输入命令编号:\n\n";
cout<<" 1. 学生成绩录入\n";
cout<<" 2. 学生信息查询\n";
cout<<" 3. 学生成绩查询\n";
cout<<" 4. 学生信息删除\n";
cout<<" 5. 实得学分排名\n";
cout<<" 6. 综合成绩排名\n";
cout<<" 0. 退出\n";
return getInt("选择命令:");
}
void main()
{
int choice;
while((choice = enterChoice()) != 0)
{
switch(choice)
{
case 1: GetAll();break; //学生成绩录入
case 2: LookInf(); system("cls"); break;//学生基本信息查询
case 3: LookGrade(); system("cls");break;//学生成绩查询
case 4: DeleteOne(); system("cls");break;//学生信息删除
case 5: Arrange1(); system("cls");break;//实得学分排名
case 6: Arrange2(); system("cls");break;//综合成绩排名
default:cout<<"输入命令不存在\n";
cout<<"请重输:\n"<<endl;
}
}
}