这个程序和你要求得很接近,可以参考
#include<iostream.h>
#include<stdio.h>
struct trafficaccident
{
int id;
char licenceplate[8];
char name[10];
char sex;
char detail[50];
char time[8];
char address[20];
};
struct trafficaccident acdnt[50]; //数组 存放学员信息
/* 下面的程序不是针对事故的,稍加更改就可以了 */
int count1=0; //学员数
void add() //添加学员信息
{ int i=0;
while(1)
{ char ch;
double avg=0, sum=0;
cout<<"请输入学员信息:"<<endl;
cout<<"编号:";
cin>>stu[i].id;
cout<<"姓名:";
cin>>stu[i].name;
cout<<"性别(F:female M:male):";
cin>>stu[i].sex;
cout<<"成绩:";
for(int j=0;j<3;j++)
{
cin>>stu[i].score[j];
sum+=stu[i].score[j];
}
avg=sum/3;
stu[i].average=avg;
count1++;
cout<<"是否要继续(Y继续,N否):" ;
cin>>ch;
if(ch=='Y')
i++;
if(ch=='N')
break;
}
}
void show() //显示学员信息
{
int i;
cout<<"学员信息为:"<<endl;
for(i=0;i<count1;i++)
{
cout<<"编号: "<<stu[i].id<<" 姓名:"<< stu[i].name<<" 性别:"<<stu[i].sex<<" 成绩: ";
for(int j=0;j<3;j++)
cout<<stu[i].score[j]<<" ";
cout<<"平均成绩:"<<stu[i].average;
cout<<endl;
}
}
void sort() //排序(冒泡排序法)
{ int i,j;
int t;
for(i=count1-1;i>0;i--)
for(j=0;j<i;j++)
if(stu[j].average<stu[j+1].average)
{
t=stu[j].average;stu[j].average=stu[j+1].average;stu[j].average=t;
}
}
void insert()
{
cout<<"请输入要插入的信息:";
double avg=0, sum=0;
cout<<"编号:";
cin>>stu[count1].id;
cout<<"姓名:";
cin>>stu[count1].name;
cout<<"性别(F:female M:male):";
cin>>stu[count1].sex;
cout<<"成绩:";
for(int j=0;j<3;j++)
{
cin>>stu[count1].score[j];
sum+=stu[count1].score[j];
}
avg=sum/3;
stu[count1].average=avg;
count1++;
sort();
}
void del()
{
int id1,j,k;
bool flag;
cout<<"输入要删除的学员编码:";
cin>>id1;
for(int i=0;i<count1;i++)
if (id1==stu[i].id)
{ k=i;flag=true;}
if(flag)
{
if(k==count1-1)
{ count1--;cout<<"删除成功!"<<endl;}
else
{
for(j=k;j<count1-1;j++)
stu[j]=stu[j+1];
count1--;
cout<<"删除成功!"<<endl;
}
}
else
cout<<"编码错误,该学员不存在!";
}
int main()
{
int k;
cout<<"选项:0.退出 1.添加 2.显示 3.插入 4.排序 5.删除 \n"<<endl;
while(1)
{
cout<<"请选择操作(以数字1-6表示):";
cin>>k;
switch(k)
{
case 0:
exit; break;
case 1:
add();
break;
case 2:
show();
break;
case 3:
insert();
break;
case 4:
sort();
break;
case 5:
del();
break;
default :
cout<<"你的输入有问题!请重新输入" ;
break;
}
}
getchar();getchar();
return 0;
}
温馨提示:答案为网友推荐,仅供参考