版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a973893384/article/details/7927649
// 00001.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "windows.h"
#include "iostream"
using namespace std;
struct Stud
{
char name[21];
char sex[5];
int Scor[4];
int stdno;
float avg;
int sum;
}S[101],temp;
int k;
int main(int argc, char* argv[])
{
void Input_();
void Output_();
void Sort_();
void Insert_();
void Delet_();
void Find_();
int t;
puts("1:Input 2:OutPut 3:Sort\n4:Insert 5:Delete 6:Find");
scanf("%d",&t);
while(1)
{
if(t==1)
{Input_();puts("Next:");scanf("%d",&t);system("cls");}
else if(t==2)
{Output_();puts("Next:");scanf("%d",&t);system("cls");}
else if(t==3)
{Sort_();puts("Next:");scanf("%d",&t);system("cls");}
else if(t==4)
{Insert_();puts("Next:");scanf("%d",&t);system("cls");}
else if(t==5)
{Delet_();puts("Next:");scanf("%d",&t);system("cls");}
else if(t==6)
{Find_();puts("Next:");scanf("%d",&t);system("cls");}
}
return 0;
}
void Input_()
{
puts("How much you want input:");
scanf("%d",&k);
for(int i=0;i<k;i++)
{
puts("Name:");
scanf("%s",&S[i].name);
puts("Sex:");
scanf("%s",&S[i].sex);
puts("StdN:");
scanf("%d",&S[i].stdno);
puts("Score:");
scanf("%d %d %d %d",&S[i].Scor[0],&S[i].Scor[1],&S[i].Scor[2],&S[i].Scor[3]);
S[i].sum=S[i].Scor[0]+S[i].Scor[1]+S[i].Scor[2]+S[i].Scor[3];
S[i].avg=float(S[i].sum/4);
}
}
void Output_()
{
for(int i=0;i<k;i++)
printf("Name:%s\tStdN:%d\tSex:%s\tScore:%d %d %d %d\tAvg:%0.2f\tSum:%d\n",
S[i].name,S[i].stdno,S[i].sex,S[i].Scor[0],S[i].Scor[1],S[i].Scor[2],S[i].Scor[3],S[i].avg,S[i].sum);
}
void Sort_()
{
int e;
puts("1:Sort with to StudentNumber\t\t\t2:Sort with to StudentScore");
scanf("%d",&e);
if(e==1)
{
for(int i=0;i<k-1;i++)
for(int j=0;j<k-i-1;j++)
if(S[j].stdno<S[j+1].stdno)
{
temp=S[j];
S[j]=S[j+1];
S[j+1]=temp;
}
}
if(e==2)
{
for(int i=0;i<k-1;i++)
for(int j=0;j<k-i-1;j++)
if(S[j].sum<S[j+1].sum)
{
temp=S[j];
S[j]=S[j+1];
S[j+1]=temp;
}
}
puts("Success!");
}
void Insert_()
{
int e;
puts("Please input you want insert's infomation:");
puts("Name:");
scanf("%s",&temp.name);
puts("Sex:");
scanf("%s",&temp.sex);
puts("StdN:");
scanf("%d",&temp.stdno);
puts("Score:");
scanf("%d %d %d %d",&temp.Scor[0],&temp.Scor[1],&temp.Scor[2],&temp.Scor[3]);
temp.sum=temp.Scor[0]+temp.Scor[1]+temp.Scor[2]+temp.Scor[3];
temp.avg=float(temp.sum/4);
for(int i=0;i<k;i++)
{
if(temp.stdno<S[i].stdno)
e=i;
}
if(temp.stdno>S[i].stdno&&i==k)
S[k]=temp;
else
{
for(int j=e;j<=k;j++)
S[j+1]=S[j];
S[e]=temp;
}
k++;
}
void Delet_()
{
int e,t;
puts("you want Delete:");
scanf("%d",&e);
for(int i=0;i<k;i++)
if(S[i].stdno==e)
{
t=i;
break;
}
for(int j=t;j<k;j++)
{
S[j]=S[j+1];
}
k--;
}
void Find_()
{
int e,t;
char tname[21];
puts("You want find:\n1:StudentNumber\t\t2:StudentName");
scanf("%d",&e);
if(e==1)
{
puts("input StudentNumber:");
scanf("%d",&t);
if(t>=0&&t<=k)
printf("Name:%s\tStdN:%d\tSex:%s\tScore:%d %d %d %d\tAvg:%0.2f\tSum:%d\n",
S[t-1].name,S[t-1].stdno,S[t-1].sex,S[t-1].Scor[0],S[t-1].Scor[1],S[t-1].
Scor[2],S[t-1].Scor[3],S[t-1].avg,S[t-1].sum);
}
if(e==2)
{
puts("StudentName:");
scanf("%s",&tname);
for(int i=0;i<k;i++)
if(strcmp(S[i].name,tname)==0)
{
printf("Name:%s\tStdN:%d\tSex:%s\tScore:%d %d %d %d\tAvg:%0.2f\tSum:%d\n",
S[i].name,S[i].stdno,S[i].sex,S[i].Scor[0],S[i].Scor[1],S[i].
Scor[2],S[i].Scor[3],S[i].avg,S[i].sum);
break;
}
if(strcmp(S[i].name,tname)!=0)
puts("ERROR!");
}
}