#include<iostream.h>
#include<stdlib.h>
#include <stdio.h>
#include<string.h>
#include<process.h>
#include <conio.h>
#include<fstream.h>
#include"windows.h"
const int maxsize =100;
struct student
{
int no; /*学号*/
char name[10]; /*姓名*/
char sex[4]; /*性别*/
int age; /*年龄*/
double score[5];/*5门课程成绩*/
char tel[15]; /*电话*/
double ave; /*平均分*/
double sum; /*总分*/
};
/*---------------------------------------顺序表结构体组成-------------------------------------------*/
typedef struct
{
student stud[maxsize];
int length;//长度
}SeqList;
/*-------------------------------------------构造空表---------------------------------------------*/
void Init_Student(SeqList &l)
{
l.length=0;//初始值
}
/*-------------------------------------学生人数长度--------------------------------------------*/
void ListLength_Seq(SeqList &l)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);//红色
cout<<"学生人数:"<<l.length<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
}
/*---------------------------------------给出判定为满-----------------------------------------*/
void Full_Student(SeqList &l)
{
if(l.length >= maxsize)cout<<"线性表已满!"<<endl;
}
/*---------------------------------------给出判定为满-----------------------------------------*/
void Empty_Student(SeqList &l)
{
if(l.length == 0)cout<<"空表!"<<endl;
}
/*-------------------------------------1.批量赋值学生信息--------------------------------------------*/
void Create(SeqList &l,student a[],int n)//参数线性表的表长,学生结构,人数
{
l.length=0;
for(int i=0;i<n;i++)
{
l.stud[l.length].no=a[i].no;//a[i].no输入的学生学号被赋值给顺序表的相应位置
strcpy(l.stud[l.length].name,a[i].name);//与a[i].no相似
strcpy(l.stud[l.length].sex,a[i].sex);
l.stud[l.length].age=a[i].age;
l.stud[l.length].score[0]=a[i].score[0];
l.stud[l.length].score[1]=a[i].score[1];
l.stud[l.length].score[2]=a[i].score[2];
l.stud[l.length].score[3]=a[i].score[3];
l.stud[l.length].score[4]=a[i].score[4];
strcpy(l.stud[l.length].tel,a[i].tel);
l.stud[l.length].ave=(l.stud[l.length].score[0]+//平均成绩
l.stud[l.length].score[1]+
l.stud[l.length].score[2]+
l.stud[l.length].score[3]+
l.stud[l.length].score[4])/5.0;
l.stud[l.length].sum=l.stud[l.length].score[0]+//总分
l.stud[l.length].score[1]+
l.stud[l.length].score[2]+
l.stud[l.length].score[3]+
l.stud[l.length].score[4];
l.length++;
}
}
/*-------------------------------------2.输出所有学生信息--------------------------------------------*/
void Show_Seq(SeqList &l)
{
if(l.length==0)
cout<<"没有任何记录!"<<endl;
else
{
for (int b =0; b < 85; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t物理\t生物\t电话"<<endl;
for (b =0; b < 85; b++)
putchar('=');putchar('\n');
for(int i=0;i<l.length;i++)//循环输出学生信息
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].sex<<"\t"
<<l.stud[i].age<<"\t"
<<l.stud[i].score[0]<<"\t"
<<l.stud[i].score[1]<<"\t"
<<l.stud[i].score[2]<<"\t"
<<l.stud[i].score[3]<<"\t"
<<l.stud[i].score[4]<<"\t"
<<l.stud[i].tel<<endl;
for (int c =0; c < 85; c++)
putchar('=');putchar('\n');
}
}
/*------------------------------------3.增加学生信息--------------------------------------------*/
void ListInsert_Seq(SeqList &l,int i,student e)
{
if(l.length >= maxsize){cout<<"表满!"<<endl;exit(1);}//如果长度大于本系统自定义的最大值,会自行停止操作
if(i<1 || i>l.length+1){cout<<"i的值不合法"<<endl;exit(1);}//还是超出表长范围还是会停止操作
for(int j=l.length-1;j>=i-1;j--)
{
l.stud[j+1].no=l.stud[j].no;
strcpy(l.stud[j+1].name,l.stud[j].name);
strcpy(l.stud[j+1].sex,l.stud[j].sex);//依次将需要增加的学生信息赋值给原顺序表尾部
l.stud[j+1].age=l.stud[j].age;
l.stud[j+1].score[0]=l.stud[j].score[0];
l.stud[j+1].score[1]=l.stud[j].score[1];
l.stud[j+1].score[2]=l.stud[j].score[2];
l.stud[j+1].score[3]=l.stud[j].score[3];
l.stud[j+1].score[4]=l.stud[j].score[4];
strcpy(l.stud[j+1].tel,l.stud[j].tel);
l.stud[j+1].ave=l.stud[j].ave;
l.stud[j+1].sum=l.stud[j].sum;
}
l.stud[i-1].no=e.no;
strcpy(l.stud[i-1].name,e.name);
strcpy(l.stud[i-1].sex,e.sex);
l.stud[i-1].age=e.age;
l.stud[i-1].score[0]=e.score[0];
l.stud[i-1].score[1]=e.score[1];
l.stud[i-1].score[2]=e.score[2];
l.stud[i-1].score[3]=e.score[3];
l.stud[i-1].score[4]=e.score[4];
strcpy(l.stud[i-1].tel,e.tel);
l.stud[i-1].ave=(l.stud[l.length].score[0]+
l.stud[l.length].score[1]+
l.stud[l.length].scor
1. List item
e[2]+
l.stud[l.length].score[3]+
l.stud[l.length].score[4])/5.0;
l.stud[i-1].sum=l.stud[l.length].score[0]+
l.stud[l.length].score[1]+
l.stud[l.length].score[2]+
l.stud[l.length].score[3]+
l.stud[l.length].score[4];
l.length++;
}
/*-------------------------------------4.删除学生信息--------------------------------------------*/
void ListDelete_Seq(SeqList &l,int i,student &e)
{
if(i<0 || i>l.length){cout<<"i的值不合法"<<endl;exit(1);}
e.no=l.stud[i-1].no;
strcpy(e.name,l.stud[i-1].name);
strcpy(e.sex,l.stud[i-1].sex);
e.age=l.stud[i-1].age;
e.score[0]=l.stud[i-1].score[0];
e.score[1]=l.stud[i-1].score[1];
e.score[2]=l.stud[i-1].score[2];
e.score[3]=l.stud[i-1].score[3];
e.score[4]=l.stud[i-1].score[4];
strcpy(e.tel,l.stud[i-1].tel);
e.ave=l.stud[i-1].ave;
e.sum=l.stud[i-1].sum;
for(int j=i-1;j<l.length;j++)//当i值合法时想要删除的学生信息后的内容就会前移动一个
{
l.stud[j].no=l.stud[j+1].no;
strcpy(l.stud[j].name,l.stud[j+1].name);
strcpy(l.stud[j].sex,l.stud[j+1].sex);
l.stud[j].age=l.stud[j+1].age;
l.stud[j].score[0]=l.stud[j+1].score[0];
l.stud[j].score[1]=l.stud[j+1].score[1];
l.stud[j].score[2]=l.stud[j+1].score[2];
l.stud[j].score[3]=l.stud[j+1].score[3];
l.stud[j].score[4]=l.stud[j+1].score[4];
strcpy(l.stud[j].tel,l.stud[j+1].tel);
l.stud[j].ave=l.stud[j+1].ave;
l.stud[j].sum=l.stud[j+1].sum;
}
l.length--;
}
/*-------------------------------------5.查询学号位置--------------------------------------------*/
int LocateElem_Seq(SeqList l,int e)
{
for(int i=0;i<l.length;i++)//判断学号的位置信息
if(l.stud[i].no==e)
return i+1;
return 0;
}
/*-------------------------------------6.统计男生人生人数-----------------------------------------*/
void tong(SeqList &l)
{
int i,girl=0,boy=0;
for (i = 0;i <l.length; i++)
{
if ((strcmp(l.stud[i].sex,"女")==0))girl++;//顺序表存储空间里面每一个学生性别与‘女’比较,如果差值为0女生人数+1
else boy++;//否则男生人数+1;直到表长截止
}
for (i =0; i < 80; i++)
putchar('=');putchar('\n');
cout<<"女生人数:"<<girl<<"\t"<<"男生人数:"<<boy<<endl;
for (i =0; i < 80; i++)
putchar('=');
putchar('\n');
}
/*----------------------------------7.输出学号,姓名,平均分,总分----------------------------------------*/
void output(SeqList &l)
{
cout<<endl;
for (int b =0; b < 80; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t语文\t数学\t英语\t物理\t生物\t平均分\t总分"<<endl;
for (b =0; b < 80; b++)
putchar('=');putchar('\n');
for(int i=0;i<l.length;i++)
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].score[0]<<"\t"
<<l.stud[i].score[1]<<"\t"
<<l.stud[i].score[2]<<"\t"
<<l.stud[i].score[3]<<"\t"
<<l.stud[i].score[4]<<"\t"
<<l.stud[i].ave<<"\t"
<<l.stud[i].sum<<endl;
for (int c =0; c < 80; c++)
putchar('=');putchar('\n');
}
/*-------------------------------------结构体赋值-------------------------------------------*/
void copy(student &r1,student r2)
{
r1.no=r2.no;//将整个顺序表每一个学生的信息整体赋值
strcpy(r1.name,r2.name);
strcpy(r1.sex,r2.sex);
r1.age=r2.age;
r1.score[0]=r2.score[0];
r1.score[1]=r2.score[1];
r1.score[2]=r2.score[2];
r1.score[3]=r2.score[3];
r1.score[4]=r2.score[4];
r1.ave=r2.ave;
r1.sum=r2.sum;
strcpy(r1.tel,r2.tel);
}
/*--------------------------9.求每门课程最高分的学生学号,姓名,课程成绩---------------------------------*/
void Max(SeqList &l)
{
int i,j,w,n,b;
student temp;
n=l.length;
cout<<"1--语文 2--数学 3--英语 4--物理 5--生物"<<endl;
lab12:
cout<<endl;
cout<<"请选择对应的序号(退出请按0):";
cin>>w;
if(w==0)return;
if(w==1)//当输入为1时,语文成绩进行排序
{
for(i=0;i<n;i++)
for(j=0;j<=n-i;j++)
if(l.stud[j].score[0]<l.stud[j+1].score[0])
{
copy(temp,l.stud[j]);//整个学生信息赋值交换
copy(l.stud[j],l.stud[j+1]);
copy(l.stud[j+1],temp);
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t语文最高分"<<endl;
for(i=0;i<l.length;i++)
{
if(l.stud[i].score[0]==l.stud[0].score[0])//如果最高分有多个,则多个输出
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].score[0]<<endl;
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
goto lab12;
}
else if(w==2)//当输入为2时,数学成绩进行排序
{
for(i=0;i<n;i++)
for(j=0;j<=n-i;j++)
if(l.stud[j].score[1]<l.stud[j+1].score[1])
{
copy(temp,l.stud[j]);//整个学生信息赋值交换
copy(l.stud[j],l.stud[j+1]);
copy(l.stud[j+1],temp);
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t数学最高分"<<endl;
for(i=0;i<l.length;i++)
{
if(l.stud[i].score[1]==l.stud[0].score[1])//如果最高分有多个,则多个输出
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].score[1]<<endl;
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
goto lab12;
}
else if(w==3)//当输入为3时,英语成绩进行排序
{
for(i=0;i<n;i++)
for(j=0;j<=n-i;j++)
if(l.stud[j].score[2]<l.stud[j+1].score[2])
{
copy(temp,l.stud[j]);//整个学生信息赋值交换
copy(l.stud[j],l.stud[j+1]);
copy(l.stud[j+1],temp);
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t英语最高分"<<endl;
for(i=0;i<l.length;i++)
{
if(l.stud[i].score[2]==l.stud[0].score[2])//如果最高分有多个,则多个输出
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].score[2]<<endl;
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
goto lab12;
}
else if(w==4)//当输入为4时,物理成绩进行排序
{
for(i=0;i<n;i++)
for(j=0;j<=n-i;j++)
if(l.stud[j].score[3]<l.stud[j+1].score[3])
{
copy(temp,l.stud[j]);//整个学生信息赋值交换
copy(l.stud[j],l.stud[j+1]);
copy(l.stud[j+1],temp);
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t物理最高分"<<endl;
for(i=0;i<l.length;i++)
{
if(l.stud[i].score[3]==l.stud[0].score[3])//如果最高分有多个,则多个输出
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].score[3]<<endl;
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
goto lab12;
}
else if(w==5)//当输入为5时,生物成绩进行排序
{
for(i=0;i<n;i++)
for(j=0;j<=n-i;j++)
if(l.stud[j].score[4]<l.stud[j+1].score[4])
{
copy(temp,l.stud[j]);//整个学生信息赋值交换
copy(l.stud[j],l.stud[j+1]);
copy(l.stud[j+1],temp);
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t生物最高分"<<endl;
for(i=0;i<l.length;i++)
{
if(l.stud[i].score[4]==l.stud[0].score[4])//如果最高分有多个,则多个输出
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].score[4]<<endl;
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
goto lab12;
}
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"序号错误!重新输入:"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab12;
}
}
/*-------------------------------------10.总分排序-------------------------------------------*/
void summax(SeqList &l)
{
int i,j,n,b;
student temp;
n=l.length;
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)//已总分成绩为判断排序,最大在上,冒泡排序
if(l.stud[j].sum<=l.stud[j+1].sum)
{
copy(temp,l.stud[j]);
copy(l.stud[j],l.stud[j+1]);
copy(l.stud[j+1],temp);
}
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t总分"<<endl;
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
for(i=n-1;i>=0;i--)//将已排好的顺序逆序输出,即为最小在上,最大在下
{
cout<<l.stud[i].no<<"\t"
<<l.stud[i].name<<"\t"
<<l.stud[i].sum<<endl;
}
for (b =0; b < 50; b++)
putchar('=');putchar('\n');
}
int main()
{
SeqList List;
struct student st[100];
Init_Student(List);//构造空表
int n;
int choice=0;
do
{
cout<<" 学生成绩管理系统"<<endl;
cout<<endl;
cout<<" *********************菜单********************"<<endl;
cout<<" * *"<<endl;
cout<<" * 1. 批量输入学生信息 *"<<endl;
cout<<" * 2. 输出所有学生信息 *"<<endl;
cout<<" * 3. 增加学生信息 *"<<endl;
cout<<" * 4. 删除学生信息(按学号) *"<<endl;
cout<<" * 5. 修改学生年龄 *"<<endl;
cout<<" * 6. 查询学生信息(按学号) *"<<endl;
cout<<" * 7. 统计男生女生人数 *"<<endl;
cout<<" * 8. 输出学号,姓名,平均分,总分 *"<<endl;
cout<<" * 9. 指定课程最高分 *"<<endl;
cout<<" * 10. 按总分排序 *"<<endl;
cout<<" * *"<<endl;
cout<<" *********************************************"<<endl;
cout<<endl;
laba: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE|FOREGROUND_GREEN);//青色
cout<<"请选择想要操作的序号:"; cin>>choice;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
switch(choice)
{
case 1://批量输入学生信息
{
cout<<"请学生人数:";
cin>>n;
cout<<"请输入每位学生的信息(中间以tab隔开):"<<endl;
for (int b =0; b < 85; b++)putchar('=');putchar('\n');
cout<<"学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t物理\t生物\t电话"<<endl;
for(int i=0;i<n;i++)
cin>>st[i].no
>>st[i].name
>>st[i].sex
>>st[i].age
>>st[i].score[0]
>>st[i].score[1]
>>st[i].score[2]
>>st[i].score[3]
>>st[i].score[4]
>>st[i].tel;
for (b =0; b < 85; b++)putchar('=');putchar('\n');
Create(List,st,n);
cout<<"任意键返回!"<<endl;
getch();
system("cls");
break;
}
case 2://输出所有学生信息
{
Show_Seq(List);
ListLength_Seq(List);
cout<<endl;
cout<<"按任意键返回"<<endl;
getch();
system("cls");
break;
}
case 3://增加学生信息
{
struct student s;
int m;
labq: cout<<"增加的第几位学生(输入0退出):";cin>>m;
while(m!=0)
{
lab0: cout<<"学号:";cin>>s.no;
int index=LocateElem_Seq(List,s.no);
if(index==0)
{
cout<<"姓名:";
cin>>s.name;
}
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"该学号已存在!(重新输入)"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab0;
}
lab: cout<<"性别:";cin>>s.sex;
if(strcmp(s.sex,"女")==0 || strcmp(s.sex,"男")==0)
cout<<"年龄:";
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"性别输入错误!请输入男or女"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab;
}
cin>>s.age;
lab1: cout<<"语文(0~100):";cin>>s.score[0];
if(s.score[0]>=0 && s.score[0]<=100)
lab2: cout<<"数学:";
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"成绩超出范围!"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab1;
}
cin>>s.score[1];
if(s.score[1]>=0 && s.score[1]<=100)
lab3: cout<<"英语:";
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"成绩超出范围!"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab2;
}
cin>>s.score[2];
if(s.score[2]>=0 && s.score[2]<=100)
lab4: cout<<"物理:";
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"成绩超出范围!"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab3;
}
cin>>s.score[3];
if(s.score[3]>=0 && s.score[3]<=100)
lab5: cout<<"生物:";
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"成绩超出范围!"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab4;
}
cin>>s.score[4];
if(s.score[4]>=0 && s.score[4]<=100)
cout<<"电话:";
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"成绩超出范围!"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab5;
}
cin>>s.tel;
ListInsert_Seq(List,List.length+1,s);
cout<<endl;
goto labq;
}
cout<<"目前全部学生信息如下:"<<endl;;
Show_Seq(List);
ListLength_Seq(List);
cout<<"任意键返回!"<<endl;
getch();
system("cls");
break;
}
case 4://删除学生信息
{
lab00: cout<<"请输入需要删除的学生学号:";
cin>>n;
int index=LocateElem_Seq(List,n);
if(index==0)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"无此学号!(重新输入!)"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab00;
}
else
{
struct student s;
ListDelete_Seq(List,index,s);
cout<<endl;
cout<<"删除学生信息为:"<<endl;
for (int b =0; b < 85; b++)
putchar('=');putchar('\n');
cout<<"学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t物理\t生物\t电话"<<endl;
for (b =0; b < 85; b++)
putchar('=');putchar('\n');
cout<<s.no<<"\t"
<<s.name<<"\t"
<<s.sex<<"\t"
<<s.age<<"\t"
<<s.score[0]<<"\t"
<<s.score[1]<<"\t"
<<s.score[2]<<"\t"
<<s.score[3]<<"\t"
<<s.score[4]<<"\t"
<<s.tel<<endl;
for (int c =0; c < 85; c++)
putchar('=');putchar('\n');
cout<<endl;
cout<<"剩余学生信息:"<<endl;
Show_Seq(List);
ListLength_Seq(List);
}
cout<<"任意键返回!"<<endl;
getch();
system("cls");
break;
}
case 5://修改学生年龄
{
lab33: cout<<"请输入要修改年龄的学生学号:";cin>>n;
int index=LocateElem_Seq(List,n);
if(index==0)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"无此学号"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab33;
}
else
{ cout<<"学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t物理\t生物\t电话"<<endl;
for (int b =0; b < 85; b++)
putchar('=');putchar('\n');
cout<<List.stud[index-1].no<<"\t"
<<List.stud[index-1].name<<"\t"
<<List.stud[index-1].sex<<"\t"
<<List.stud[index-1].age<<"\t"
<<List.stud[index-1].score[0]<<"\t"
<<List.stud[index-1].score[1]<<"\t"
<<List.stud[index-1].score[2]<<"\t"
<<List.stud[index-1].score[3]<<"\t"
<<List.stud[index-1].score[4]<<"\t"
<<List.stud[index-1].tel<<endl;
for (int c =0; c < 85; c++)
putchar('=');putchar('\n');
cout<<endl;
}
int age;
cout<<"修改年龄为:";cin>>age;
List.stud[index-1].age=age;
cout<<"修改后学生信息:"<<endl;
cout<<"学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t物理\t生物\t电话"<<endl;
for (int b =0; b < 85; b++)
putchar('=');putchar('\n');
cout<<List.stud[index-1].no<<"\t"
<<List.stud[index-1].name<<"\t"
<<List.stud[index-1].sex<<"\t"
<<List.stud[index-1].age<<"\t"
<<List.stud[index-1].score[0]<<"\t"
<<List.stud[index-1].score[1]<<"\t"
<<List.stud[index-1].score[2]<<"\t"
<<List.stud[index-1].score[3]<<"\t"
<<List.stud[index-1].score[4]<<"\t"
<<List.stud[index-1].tel<<endl;
for (int c =0; c < 85; c++)
putchar('=');putchar('\n');
cout<<"任意键返回!"<<endl;
getch();
system("cls");
break;
}
case 6://按照学生学号查询学生信息
{
lab99: cout<<"请输入需要查询的学生学号:";cin>>n;
int index=LocateElem_Seq(List,n);
if(index==0)
{ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"无此学号!(请重新输入)"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);//原色
goto lab99;
}
else
{
cout<<endl;
cout<<"学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t物理\t生物\t电话"<<endl;
for (int b =0; b < 85; b++)
putchar('=');putchar('\n');
cout<<List.stud[index-1].no<<"\t"
<<List.stud[index-1].name<<"\t"
<<List.stud[index-1].sex<<"\t"
<<List.stud[index-1].age<<"\t"
<<List.stud[index-1].score[0]<<"\t"
<<List.stud[index-1].score[1]<<"\t"
<<List.stud[index-1].score[2]<<"\t"
<<List.stud[index-1].score[3]<<"\t"
<<List.stud[index-1].score[4]<<"\t"
<<List.stud[index-1].tel<<endl;
for (int c =0; c < 85; c++)
putchar('=');putchar('\n');
cout<<endl;
}
cout<<"任意键返回!"<<endl;
getch();
system("cls");
break;
}
case 7://统计男、女生人数
{
tong(List);
ListLength_Seq(List);
cout<<"按任意键返回"<<endl;
getch();
system("cls");
break;
}
case 8://输出学生学号、姓名、五门课程成绩、平均分、总分
{
output(List);
ListLength_Seq(List);
cout<<endl;
cout<<"按任意键返回"<<endl;
getch();
system("cls");
break;
}
case 9://课程最高分
{
Max(List);
cout<<"任意键返回!"<<endl;
getch();
system("cls");
break;
}
case 10://总分排序
{
summax(List);
ListLength_Seq(List);
cout<<"任意键返回!"<<endl;
getch();
system("cls");
break;
}
default:
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//红色
cout<<"输入错误!(重新输入!)"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
goto laba;
}
}
}while(choice);
return 0;
}