#include <iostream>
#include <string>
#include<fstream>
#include<iomanip>
using namespace std;
int amount=0; //记录学生个数
int const Q=80;
float A[Q];
struct score//各门功课结构体
{
float sjjg;
float yingyu;
float shuxue;
float tiyu;
float gailv;
struct score *next;
};
class student//学生类
{
public:
string number;
string name;
string sex;
score chengji;
float average;
class student *next;
};
student *head=(student *)malloc(sizeof(student));
void input();//录入学生信息
void display();//显示菜单
void search1();//查询
void search2();//查询
void change1();//修改
void change2();//修改
void Delete();//删除学生信息
void save();//保存学生信息
void paixu1();//按数据结构排序
void paixu2();//按英语排序
void paixu3();//按数学排序
void paixu4();//按体育排序
void paixu5();//按概率排序
void paixu6();//按平均分排序
void tongji();//统计学生信息
void show();//显示学生信息
void duwenjian();//读取文件信息
void insert();
void main()
{
cout<<"\t\t|※※※※※※※※※※※※※※※※※※※※※※※|\n";
cout<<"\t\t|※ 欢迎使用学生信息管理系统 ※|\n";
cout<<"\t\t ------------------------------------------------ \n";
cout<<"\t\t|※ 指导老师:黄建茂 ※|\n";
cout<<"\t\t|※ ※|\n";
cout<<"\t\t|※ 制作者:陈生茂 ※|\n";
cout<<"\t\t|※ ※|\n";
cout<<"\t\t|※※※※※※※※※※※※※※※※※※※※※※※|\n";
char x;
bool flag2=0;
display();
do
{
do
{
cin>>x;
if((x>='a'&&x<='z'))flag2=1;
else
{
cout<<"指令错误!!!!!!!!!!"<<endl;
cout<<" 请选择相应的数字进行操作: "<<endl;
}
}
while(flag2==0);
switch(x)
{ case 'a':cout<<"****************************** 现 在 进 行 学 生 信 息 录 入
******************************\n";
input();
cout<<"输入的学生信息为:"<<endl;
show();
cout<<"************************************************************************
********\n";
display();break;
case 'b':
{
char z;
cout<<"****************************** 现 在 进 行 学 生 信 息 查 询
******************************\n";
cout<<"请选择查询方式:"<<endl;
cout<<"(0)--按姓名查询; (1)--按学号查询;"<<endl;
cin>>z;
while(z!='0'&&z!='1')
{
cout<<"指令错误(请选择(0)或者(1))!!!!!!!"<<endl;
cout<<"请选择查询方式:(0)--按姓名查询; (1)--按学号查询;";
cin>>z;
}
switch(z)
{
case '0':search1();break;//按姓名查询
case '1':search2();break;//按学号查询
}
cout<<"************************************************************************
********\n";
display();
break;
}
case 'c':
{char p;
cout<<"****************************** 现 在 进 行 学 生 信 息 修 改
******************************\n";
cout<<"请选择修改方式:(0)--按姓名修改; (1)--按学号修改;
"<<endl;
cin>>p;
while(p!='0'&&p!='1')
{
cout<<"指令错误(请选择(0)或者(1))!!!!!!!"<<endl;
cout<<"请选择修改方式:(0)--按姓名修改; (1)--按学号修改;
"<<endl;
cin>>p;
}
switch(p)
{
case '0': change1();break;//按姓名修改
case '1': change2();break;//按学号修改
}
cout<<"************************************************************************
********\n";
display();
break;
}
case 'd': cout<<"****************************** 现 在 进 行 学 生 信 息 删 除
******************************\n";
Delete();//删除
show();
cout<<"************************************************************************
********\n";
display();
break;
case 'e': cout<<"****************************** 现 在 进 行 显 示 学 生 信 息
******************************\n";
show(); //显示数据
cout<<"************************************************************************
********\n";
display();
break;
case 'f':cout<<"****************************** 现 在 进 行 保 存 学 生 信 息
******************************\n";
save();//保存学生信息
cout<<"************************************************************************
********\n";
display();
break;
case 'g':cout<<"****************************** 现 在 进 行 读 取 学 生 信 息
******************************\n";
duwenjian();
cout<<"************************************************************************
********\n";
display();
break;
case 'h':cout<<"****************************** 现 在 进 行 统 计 学 生 信 息
******************************\n";
tongji();//统计学生信息
cout<<"************************************************************************
********\n";
display();
break;
case 'i':
{
char a;
cout<<"****************************** 现 在 进 行 排 序
******************************\n";
cout<<"请选择排序方式:"<<endl;
cout<<"1 按数据结构成绩排序 "<<endl;
cout<<"2 按英语成绩排序 "<<endl;
cout<<"3 按数学成绩排序 "<<endl;
cout<<"4 按体育成绩排序 "<<endl;
cout<<"5 按概率成绩排序 "<<endl;
cout<<"6 按平均分排序 "<<endl;
cin>>a;
while(a<'1'||a>'6')
{
cout<<"指令错误(请选择(1-6))!!!!!!!"<<endl;
cout<<"1 按数据结构成绩排序 "<<endl;
cout<<"2 按英语成绩排序 "<<endl;
cout<<"3 按数学成绩排序 "<<endl;
cout<<"4 按体育成绩排序 "<<endl;
cout<<"5 按概率成绩排序 "<<endl;
cout<<"6 按平均分排序 "<<endl;
cin>>a;
}
switch(a)
{
case '1': paixu1();break;// 按数据结构成绩排序
case '2': paixu2();break;//按英语成绩排序
case '3': paixu3();break;//按数学成绩排序
case '4': paixu4();break;//按体育成绩排序
case '5': paixu5();break;//按概率成绩排序
case '6': paixu6();break;//按平均分排序
}
cout<<"************************************************************************
********\n";
display();
break;
}
case 'j':
cout<<"************************************************************************
********\n";
cout<<" ¤ 您 已 退 出 学 生 成 绩 管 理 系 统 , 谢 谢 您 的 使 用 ! ¤ \n";
cout<<"************************************************************************
********\n";
cout<<endl;
exit(0);
break;
case 'k':
cout<<"************************************************************************
********\n";
cout<<"***************************** 现 在 进 行 插 入 学 生 信 息
*******************************\n";