急求一个C++程序 请各位高手帮忙 谢谢
设计题目:成绩管理系统有学生成绩信息,内容如下姓名学号语文数学英语张明明01677882李成友02789188张辉灿03688256王露04564577陈东明056738...
设计题目:成绩管理系统
有学生成绩信息,内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
A、功能要求:
(1) 信息维护:
要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息
(2) 信息查询:
要求:查询时可实现按姓名查询、按学号查询
(3) 成绩统计:
要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。
(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)
谢谢了
真的很急 展开
有学生成绩信息,内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
A、功能要求:
(1) 信息维护:
要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息
(2) 信息查询:
要求:查询时可实现按姓名查询、按学号查询
(3) 成绩统计:
要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。
(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)
谢谢了
真的很急 展开
1个回答
展开全部
/***********************************************
设计题目:成绩管理系统
有学生成绩信息,内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
A、功能要求:
(1) 信息维护:
要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。
此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息
(2) 信息查询:
要求:查询时可实现按姓名查询、按学号查询
(3) 成绩统计:
要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),
统计出在此分数段的学生情况。
(4) 排序:能对用户指定的任意课程名,
按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)
(使用多种方法排序者,加分)
---------By kuaidh00 ---2008/01/07----------
**********************************************/
//链表的练习。
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
struct List
{
string m_Name;
string m_ID;//可能有的学号里有字母,所以用string类型。
short int m_Chinese;
short int m_Match;
short int m_English;
struct List *Next; //指针域。
};
typedef struct List Node;
typedef Node *Link;
//---------------函数声明-------------------
Link Create(Link Head);
Link Search(Link Head);
Link Search_front(Link Head);
void Release(Link Head);
void Display(Link Head);
void Display_One(Link Head);
void Display(Link Head,fstream& ofile);
Link AddInfo(Link Head);
Link DelInfo(Link Head);
Link Modify(Link Head);
void Grade_Stat(Link Head);
Link Sort(Link Head);
//---------------函数实现-------------------
Link Create(Link Head)
{
/*构造一个头节点*/
Head=(Link)new Node;
if(!Head)
{
cout<<"分配内存失败。"<<endl;
exit(-1);
}
Head->m_Name="";
Head->m_ID="";
Head->m_Chinese=0;
Head->m_Match=0;
Head->m_English=0;
Head->Next=NULL;
return Head;
}
Link Search(Link Head)
{
cout<<" 1.按姓名查询 2.按学号查询 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
ptr=Head;
if(select==1)
{
string name;
cout<<"请输入要查询的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
else if(select==2)
{
string ID;
cout<<"请输入要查询的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return ptr;
}
Link Search_front(Link Head)
{//返回前驱节点。
cout<<" 1.按姓名删除 2.按学号删除 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
Link front;
ptr=Head->Next;
front=Head;
if(select==1)
{
string name;
cout<<"请输入要删除的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
else if(select==2)
{
string ID;
cout<<"请输入要删除的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return front;
}
void Release(Link Head)
{
Link ptr;
while(Head!=NULL)
{
ptr=Head;
Head=Head->Next;
delete ptr;
}
}
void Display(Link Head)
{
Link ptr;
ptr=Head->Next;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 所有学生信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;
}
}
void Display(Link Head,fstream& ofile)
{
Link ptr;
ptr=Head->Next;
ofile<<"----------------------------------------------------------------------"<<endl;
ofile<<"---------------------------- 所有学生信息 --------------------------"<<endl;
ofile<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
ofile<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;
}
}
void Display_One(Link Head)
{
Link ptr;
ptr=Head;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 查询结果信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
}
Link AddInfo(Link Head)
{
Link ptr;
ptr=Head;
while(ptr->Next!=NULL)
{
ptr=ptr->Next;
}
Link ptr2;
char again;
do
{
ptr2=(Link)new Node;
if(!ptr2)
{
cout<<"内存分配失败!"<<endl;
exit(-1);
}
//数据域
string Name,ID;
short int Chinese,Match,English;
cout<<"输入姓名:";
cin>>Name;
cout<<endl<<"输入学号:";
cin>>ID;
cout<<endl<<"语文成绩:";
cin>>Chinese;
cout<<endl<<"数据成绩:";
cin>>Match;
cout<<endl<<"英语成绩:";
cin>>English;
ptr2->m_Name=Name;
ptr2->m_ID=ID;
ptr2->m_Chinese=Chinese;
ptr2->m_Match=Match;
ptr2->m_English=English;
//指针域
ptr2->Next=NULL;//作为尾节点。
ptr->Next=ptr2;//连接入链表。
ptr=ptr2;//将ptr2作为下一次产生的节点的前驱节点.
cout<<"是否继续输入?(Y/N) ";
cin>>again;
}while(again=='Y'||again=='y');
return Head;
}
Link DelInfo(Link Head)
{
Link ptr;
Link ptr2;
ptr=Head;
Link f_ptr;//前驱节点。
f_ptr=Search_front(ptr);
ptr2=f_ptr->Next;
f_ptr->Next=f_ptr->Next->Next;
delete ptr2;
return Head;
}
Link Modify(Link Head)
{
Link ptr;
ptr=Head;
ptr=Search(ptr);
cout<<"修改前信息为:"<<endl;
Display_One(ptr);
//cout<<"请选择你要修改的选项:A:姓名 B:学号 C:语文成绩 D:数学成绩 E:英语成绩"<<endl;
string name,ID;
float Chinese,Match,English;
cout<<"输入新姓名:";
cin>>name;
cout<<endl<<"输入新学号:";
cin>>ID;
cout<<endl<<"输入新语文成绩:";
cin>>Chinese;
cout<<endl<<"输入新数学成绩:";
cin>>Match;
cout<<endl<<"输入新英语成绩:";
cin>>English;
ptr->m_Name=name;
ptr->m_ID=ID;
ptr->m_Chinese=Chinese;
ptr->m_Match=Match;
ptr->m_English=English;
cout<<endl<<"修改后信息为:"<<endl;
Display_One(ptr);
return Head;
}
void Grade_Stat(Link Head)
{//成绩统计。
Link ptr;
ptr=Head;
cout<<"请输入你要查询的课程名(chinese|match|english)和一个分数范围[min,max]."<<endl;
string name;
short int min,max;
int SwitchNum;
cout<<"课程名:";
cin>>name;
cout<<endl<<"分数下限:";
cin>>min;
cout<<endl<<"分数上限:";
cin>>max;
if(name=="chinese")
SwitchNum=1;
else if(name=="match")
SwitchNum=2;
else if(name=="english")
SwitchNum=3;
else
{
cout<<"请输入一个正确的课程名:"<<endl;
return;
}
while(ptr!=NULL)
{
switch(SwitchNum)
{
case 1:
if(ptr->m_Chinese<=max&&ptr->m_Chinese>=min)
Display_One(ptr);
break;
case 2:
if(ptr->m_Match<=max&&ptr->m_Match>=min)
Display_One(ptr);
break;
case 3:
if(ptr->m_English<=max&&ptr->m_English>=min)
Display_One(ptr);
}
}
}
Link Sort(Link Head)
{//我创建的是带头节点的链表。用直接插入法。
cout<<"请输入你想排序的课程名(用中文):";
string course_name;
cin>>course_name;
if((Head->Next==NULL)||(Head->Next->Next==NULL))//此步条件判断非常有价值。
{
cout<<"数据节点数少于2个,不用排序!"<<endl;
return Head;
}
//-----------第二步;
Link ptr;
Link ptr_F;
Link ptr_N;
ptr=Head->Next->Next;
ptr_F=Head;
Head->Next->Next=NULL;//到此,分成了两个链表。
//第三步。
while(ptr)
{
ptr_N=ptr->Next;
ptr_F=Head;//ptr_F的归位。
while(ptr_F->Next)
{
if(course_name=="语文")
{
if(ptr->m_Chinese>ptr_F->Next->m_Chinese)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="数学")
{
if(ptr->m_Match>ptr_F->Next->m_Match)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="英语")
{
if(ptr->m_English>ptr_F->Next->m_English)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
}//while(ptr_F->Next)
if(ptr_F->Next==NULL)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;//表示插到有序链表的最后面了。
}
ptr=ptr_N;//归位,准备下一次排序。
}//while(ptr)
cout<<"从高到低,排序成功!"<<endl;
return Head;
}
//----------主函数----------------------
int main()
{
fstream ofile;
ofile.open("e:\\student.txt",ios_base::out);
if(!ofile)
{
cout<<"文件打开失败。"<<endl;
exit(-1);
}
Link head=0;
head=Create(head);
while(1)
{
cout<<"*****************************************************"<<endl;
cout<<"*** 1.添加信息 2.修改信息 3.删除信息 4.信息查询 ***"<<endl;
cout<<"*** 5.成绩统计 6.排 序 7.显示/保存 0.退 出 ***"<<endl;
cout<<"*****************************************************"<<endl;
cout<<"请选择正确的菜单项:";
int sel;
cin>>sel;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>sel;
}
switch(sel)
{
case 0:
exit(0);
case 1:
head=AddInfo(head);
break;
case 2:
head=Modify(head);
break;
case 3:
head=DelInfo(head);
break;
case 4:
Search(head);
break;
case 5:
Grade_Stat(head);
break;
case 6:
Sort(head);
break;
case 7:
Display(head);//在标准显示器上显示。
Display(head,ofile);//在文件中显示。
break;
default:
break;
}
}
Release(head);
return 0;
}
设计题目:成绩管理系统
有学生成绩信息,内容如下
姓名 学号 语文 数学 英语
张明明 01 67 78 82
李成友 02 78 91 88
张辉灿 03 68 82 56
王露 04 56 45 77
陈东明 05 67 38 47
…. .. .. .. …
A、功能要求:
(1) 信息维护:
要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。
此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息
(2) 信息查询:
要求:查询时可实现按姓名查询、按学号查询
(3) 成绩统计:
要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),
统计出在此分数段的学生情况。
(4) 排序:能对用户指定的任意课程名,
按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)
(使用多种方法排序者,加分)
---------By kuaidh00 ---2008/01/07----------
**********************************************/
//链表的练习。
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
struct List
{
string m_Name;
string m_ID;//可能有的学号里有字母,所以用string类型。
short int m_Chinese;
short int m_Match;
short int m_English;
struct List *Next; //指针域。
};
typedef struct List Node;
typedef Node *Link;
//---------------函数声明-------------------
Link Create(Link Head);
Link Search(Link Head);
Link Search_front(Link Head);
void Release(Link Head);
void Display(Link Head);
void Display_One(Link Head);
void Display(Link Head,fstream& ofile);
Link AddInfo(Link Head);
Link DelInfo(Link Head);
Link Modify(Link Head);
void Grade_Stat(Link Head);
Link Sort(Link Head);
//---------------函数实现-------------------
Link Create(Link Head)
{
/*构造一个头节点*/
Head=(Link)new Node;
if(!Head)
{
cout<<"分配内存失败。"<<endl;
exit(-1);
}
Head->m_Name="";
Head->m_ID="";
Head->m_Chinese=0;
Head->m_Match=0;
Head->m_English=0;
Head->Next=NULL;
return Head;
}
Link Search(Link Head)
{
cout<<" 1.按姓名查询 2.按学号查询 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
ptr=Head;
if(select==1)
{
string name;
cout<<"请输入要查询的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
else if(select==2)
{
string ID;
cout<<"请输入要查询的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return ptr;
}
ptr=ptr->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return ptr;
}
Link Search_front(Link Head)
{//返回前驱节点。
cout<<" 1.按姓名删除 2.按学号删除 "<<endl;
int select;
cin>>select;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>select;
}
Link ptr;
Link front;
ptr=Head->Next;
front=Head;
if(select==1)
{
string name;
cout<<"请输入要删除的姓名:";
cin>>name;
while(ptr!=NULL)
{
if(ptr->m_Name==name)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
else if(select==2)
{
string ID;
cout<<"请输入要删除的学号:";
cin>>ID;
while(ptr!=NULL)
{
if(ptr->m_ID==ID)
{
Display_One(ptr);
return front;
}
ptr=ptr->Next;
front=front->Next;
}
cout<<"没找到,怎么办?"<<endl;
}
return front;
}
void Release(Link Head)
{
Link ptr;
while(Head!=NULL)
{
ptr=Head;
Head=Head->Next;
delete ptr;
}
}
void Display(Link Head)
{
Link ptr;
ptr=Head->Next;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 所有学生信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;
}
}
void Display(Link Head,fstream& ofile)
{
Link ptr;
ptr=Head->Next;
ofile<<"----------------------------------------------------------------------"<<endl;
ofile<<"---------------------------- 所有学生信息 --------------------------"<<endl;
ofile<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
while(ptr!=NULL)
{
ofile<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
ptr=ptr->Next;
}
}
void Display_One(Link Head)
{
Link ptr;
ptr=Head;
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"---------------------------- 查询结果信息 --------------------------"<<endl;
cout<<"---姓名--------学号-----------语文-----------数学-----------英语------"<<endl;
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Chinese
<<setw(15)<<left<<ptr->m_Match
<<setw(15)<<left<<ptr->m_English<<endl;
}
Link AddInfo(Link Head)
{
Link ptr;
ptr=Head;
while(ptr->Next!=NULL)
{
ptr=ptr->Next;
}
Link ptr2;
char again;
do
{
ptr2=(Link)new Node;
if(!ptr2)
{
cout<<"内存分配失败!"<<endl;
exit(-1);
}
//数据域
string Name,ID;
short int Chinese,Match,English;
cout<<"输入姓名:";
cin>>Name;
cout<<endl<<"输入学号:";
cin>>ID;
cout<<endl<<"语文成绩:";
cin>>Chinese;
cout<<endl<<"数据成绩:";
cin>>Match;
cout<<endl<<"英语成绩:";
cin>>English;
ptr2->m_Name=Name;
ptr2->m_ID=ID;
ptr2->m_Chinese=Chinese;
ptr2->m_Match=Match;
ptr2->m_English=English;
//指针域
ptr2->Next=NULL;//作为尾节点。
ptr->Next=ptr2;//连接入链表。
ptr=ptr2;//将ptr2作为下一次产生的节点的前驱节点.
cout<<"是否继续输入?(Y/N) ";
cin>>again;
}while(again=='Y'||again=='y');
return Head;
}
Link DelInfo(Link Head)
{
Link ptr;
Link ptr2;
ptr=Head;
Link f_ptr;//前驱节点。
f_ptr=Search_front(ptr);
ptr2=f_ptr->Next;
f_ptr->Next=f_ptr->Next->Next;
delete ptr2;
return Head;
}
Link Modify(Link Head)
{
Link ptr;
ptr=Head;
ptr=Search(ptr);
cout<<"修改前信息为:"<<endl;
Display_One(ptr);
//cout<<"请选择你要修改的选项:A:姓名 B:学号 C:语文成绩 D:数学成绩 E:英语成绩"<<endl;
string name,ID;
float Chinese,Match,English;
cout<<"输入新姓名:";
cin>>name;
cout<<endl<<"输入新学号:";
cin>>ID;
cout<<endl<<"输入新语文成绩:";
cin>>Chinese;
cout<<endl<<"输入新数学成绩:";
cin>>Match;
cout<<endl<<"输入新英语成绩:";
cin>>English;
ptr->m_Name=name;
ptr->m_ID=ID;
ptr->m_Chinese=Chinese;
ptr->m_Match=Match;
ptr->m_English=English;
cout<<endl<<"修改后信息为:"<<endl;
Display_One(ptr);
return Head;
}
void Grade_Stat(Link Head)
{//成绩统计。
Link ptr;
ptr=Head;
cout<<"请输入你要查询的课程名(chinese|match|english)和一个分数范围[min,max]."<<endl;
string name;
short int min,max;
int SwitchNum;
cout<<"课程名:";
cin>>name;
cout<<endl<<"分数下限:";
cin>>min;
cout<<endl<<"分数上限:";
cin>>max;
if(name=="chinese")
SwitchNum=1;
else if(name=="match")
SwitchNum=2;
else if(name=="english")
SwitchNum=3;
else
{
cout<<"请输入一个正确的课程名:"<<endl;
return;
}
while(ptr!=NULL)
{
switch(SwitchNum)
{
case 1:
if(ptr->m_Chinese<=max&&ptr->m_Chinese>=min)
Display_One(ptr);
break;
case 2:
if(ptr->m_Match<=max&&ptr->m_Match>=min)
Display_One(ptr);
break;
case 3:
if(ptr->m_English<=max&&ptr->m_English>=min)
Display_One(ptr);
}
}
}
Link Sort(Link Head)
{//我创建的是带头节点的链表。用直接插入法。
cout<<"请输入你想排序的课程名(用中文):";
string course_name;
cin>>course_name;
if((Head->Next==NULL)||(Head->Next->Next==NULL))//此步条件判断非常有价值。
{
cout<<"数据节点数少于2个,不用排序!"<<endl;
return Head;
}
//-----------第二步;
Link ptr;
Link ptr_F;
Link ptr_N;
ptr=Head->Next->Next;
ptr_F=Head;
Head->Next->Next=NULL;//到此,分成了两个链表。
//第三步。
while(ptr)
{
ptr_N=ptr->Next;
ptr_F=Head;//ptr_F的归位。
while(ptr_F->Next)
{
if(course_name=="语文")
{
if(ptr->m_Chinese>ptr_F->Next->m_Chinese)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="数学")
{
if(ptr->m_Match>ptr_F->Next->m_Match)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
if(course_name=="英语")
{
if(ptr->m_English>ptr_F->Next->m_English)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}//if
else
{
ptr_F=ptr_F->Next;
}
}
}//while(ptr_F->Next)
if(ptr_F->Next==NULL)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;//表示插到有序链表的最后面了。
}
ptr=ptr_N;//归位,准备下一次排序。
}//while(ptr)
cout<<"从高到低,排序成功!"<<endl;
return Head;
}
//----------主函数----------------------
int main()
{
fstream ofile;
ofile.open("e:\\student.txt",ios_base::out);
if(!ofile)
{
cout<<"文件打开失败。"<<endl;
exit(-1);
}
Link head=0;
head=Create(head);
while(1)
{
cout<<"*****************************************************"<<endl;
cout<<"*** 1.添加信息 2.修改信息 3.删除信息 4.信息查询 ***"<<endl;
cout<<"*** 5.成绩统计 6.排 序 7.显示/保存 0.退 出 ***"<<endl;
cout<<"*****************************************************"<<endl;
cout<<"请选择正确的菜单项:";
int sel;
cin>>sel;
while(cin.fail())
{
cout<<"请选择正确的菜单项:";
cin.clear();
fflush(stdin);
cin>>sel;
}
switch(sel)
{
case 0:
exit(0);
case 1:
head=AddInfo(head);
break;
case 2:
head=Modify(head);
break;
case 3:
head=DelInfo(head);
break;
case 4:
Search(head);
break;
case 5:
Grade_Stat(head);
break;
case 6:
Sort(head);
break;
case 7:
Display(head);//在标准显示器上显示。
Display(head,ofile);//在文件中显示。
break;
default:
break;
}
}
Release(head);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询