去年做这个了,虽然要求不完全一样,修改修改还是可以用的
#include
#include
#include
#include
using namespace std;
#define MAX_NUM 30
//~~~~~~~~~~~~~~~学生结构体~~~~~~~~~~~~~~~
struct STUDENT
{
string stuName; //姓名
int stuNum; //学号
double stuScore[5]; //成绩
double stuAver; //平均成绩
double stuAll; //总分
int stuscore[5]; //学分
int stuGscore[5]; //所得学分
int stusAll; //总学分
};
//~~~~~~~~~~~~~~~~~学生信息输入~~~~~~~~~~~~~~
void inputData(STUDENT stu[],int &ID)
{
cout<<"请分别输入该学生的姓名,学号,5科成绩,5科学分"<
cin>>stu[ID].stuScore[1]>>stu[ID].stuScore[2]>>stu[ID].stuScore[3]
>>stu[ID].stuScore[4];
cin>>stu[ID].stuscore[0]>>stu[ID].stuscore[1]>>stu[ID].stuscore[2]
>>stu[ID].stuscore[3]>>stu[ID].stuscore[4];
//…… 总分,平均分,所得学分,总学分……
stu[ID].stuAll=(stu[ID].stuScore[0]+stu[ID].stuScore[1]
+stu[ID].stuScore[2]+stu[ID].stuScore[3]+stu[ID].stuScore[4]);//总分
stu[ID].stuAver=stu[ID].stuAll/5.0;//平均分
void fun(STUDENT stu[],int ID);//求各科所得学分函数
{
for(int n=0;n<=4;n++)
{
if(stu[ID].stuScore[n]<60)
stu[ID].stuGscore[n]=0;
else
stu[ID].stuGscore[n]=stu[ID].stuscore[n];
}
}
stu[ID].stusAll=(stu[ID].stuGscore[0]+stu[ID].stuGscore[1]
+stu[ID].stuGscore[2]+stu[ID].stuGscore[3]+stu[ID].stuGscore[4]);//总学分
//~~~~~~~~~~~~~~~~~录入文件~~~~~~~~~~~~~~~~~~~~~~
ofstream jilu("d:\\乖猫咪\\chengjijilu.txt");
jilu<<" 姓名 学号 课程1 课程2 课程3 课程4 课程5 "
<<" 成绩1 成绩2 成绩3 成绩4 成绩5 "
<<" 学分1 学分2 学分3 学分4 学分5 "
<<" 所得学分1 所得学分2 所得学分3 所得学分4 所得学分5 "
<
cout<<"录入成功!"<
}
//~~~~~~~~~~~~~~~~~~输出学生信息~~~~~~~~~~~~~~~~~~~~~~~~~
void showTable()
{
cout<<" 姓名 学号 课程1 课程2 课程3 课程4 课程5 总分 "
<<" 1学分 2学分 3学分 4学分 5学分 平均分 "
<<" 1所得学分 2所得学分 3所得学分 4所得学分 5所得学分 总学分 "
<
void showData(STUDENT stu[],int ID)
{
cout<
}
//~~~~~~~~~~~~~~~~~~~按学号查询学生信息~~~~~~~~~~~~~~~~
void queryData(STUDENT stu[],int ID)
{
int stuNum;
cout<<"请输入要查询的学号:";
cin>>stuNum;
cout<
if(stu[i].stuNum==stuNum)
{
cout<<"信息找到"<
showData(stu,i);
system("pause");
return ;
}
}
cout<<"未找到信息"<
//~~~~~~~~~~~~~~~~~~~总分排序~~~~~~~~~~~~~~~~
void sortByAll(STUDENT stu[],int ID)
{
int i,j,m;
STUDENT temp;
for(m=0;m
for(i=0;i
for(j=i+1;j
if (stu[i].stuAll < stu[j].stuAll)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
cout<<"排序成功!"<
showData(stu,m);
}
}
//~~~~~~~~~~~~~学号排序~~~~~~~~~~~~~~~~~~~~~
void sortstuNum(STUDENT stu[],int ID)
{
int i,j,m;
STUDENT temp;
for(m=0;m
for(i=0;i
for(j=i+1;j
if (stu[i].stuNum > stu[j].stuNum)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
cout<<"排序成功!"<
showData(stu,m);
}
}
//~~~~~~~~~~~~~~~~菜单~~~~~~~~~~~~~~~~~~~
void funTable()
{
cout<<"================================="<
//~~~~~~~~~~~~~~~选择输入输出~~~~~~~~~~~~~~
int main()
{
STUDENT stu[MAX_NUM]; //开辟30个空间来存放学生信息;
int ID=0; //用来计数,记当前学生信息的总数
char ch;
bool flag=true;
int i;
while(flag)
{
funTable();
cin>>ch;
switch (ch)
{
case '1':
inputData(stu,ID);
break;
case '2':
queryData(stu,ID);
break;
case '3':
sortByAll(stu,ID);
break;
case '4':
sortstuNum(stu,ID);
break;
case '5':
showTable();
for(i=0;i
showData(stu,i);
}
break;
default:
cout<<"用户选择退出……"<
flag=false;
break;
}
system("pause"); //暂停
system("cls"); //清屏
}
return 0
}
不过我没用链表就是,话说网上那些全是用链表做的,下一个,稍微改一下即可!