#include"Student.h"
void main()
{
int count=0,count1=0;
int i=0;
char c;
c='y';
display1();
printf("是否要进入本系统?<y or n>");
fflush(stdin);
c=getchar();
if(c!='y')goto label ;
else {system("cls");};
label1:
{system("cls");};
printf("请输入学员信息:\n");
do{
c=' ';
stu[i++]=Add();
printf("还要继续输入吗?<y or n>");
fflush(stdin);
c=getchar();
count++;
}while(c=='y');
printf("排序前的学员成绩如下:\n");
display(stu);
printf("排序后的学员成绩如下:\n");
paixu(stu,&count);
display(stu);
do
{
printf("是否要插入新学员?<y or n>");
fflush(stdin);
c=getchar();
if(c!='y')break;
else
{
printf("请输入要插入的学员的信息:\n");
stu[i++]=Add();
count1++;
}
printf("插入新学员后学员的信息如下:\n");
display(stu);
}while(c=='y');
count+=count1;
paixu(stu,&count);
do
{
int n;
printf("是否要删除某学员?<y or n>");
fflush(stdin);
c=getchar();
if(c!='y')break;
else
{
printf("请输入要删除第几个学员:");
scanf("%d",&n);
Delete(&stu[n-1]);\*这里好像删除的人还是不对啊·~多加几个人删的就不是那个人了 */
}
printf("删除后学员的信息如下:\n");
display(stu);
}while(c=='y');
printf("您还需要继续输入吗?<y or n>");
fflush(stdin);
c=getchar();
if(c!='y')goto label;
else goto label1 ;
label:exit(0);
}
//『#include"Student.h"』
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define N 50
//声明学员结构
struct Student
{
int flag;
char xuehao[10];
char name[10];
float score[3];
float average[N];
}stu[N],*p;
void display1()
{
for(int i=0;i<8;i++)
{
for(int j=0;j<55555555;j++);
printf("☆★☆★☆☆★☆★☆☆★☆★☆☆★☆★☆");
}
printf("\n\n\n\n\n");
printf("\n\n\n\t☆★☆★☆『欢迎使用学员信息系统』☆★☆★☆\n\n");
printf("\n\n\n\n\n");
for(i=0;i<8;i++)
{
for(int j=0;j<55555555;j++);
printf("☆★☆★☆☆★☆★☆☆★☆☆★☆★☆☆★");
}
printf("\n");
}
void paixu(Student stu[]);
//添加学员信息
Student Add()
{
Student stu;
stu.flag=1;
printf("学号:");
scanf("%s",stu.xuehao);
printf("姓名:");
scanf("%s",stu.name);
printf("三门成绩:\n");
printf("成绩1: ");
scanf("%f",&stu.score[0]);
printf("成绩2: ");
scanf("%f",&stu.score[1]);
printf("成绩3: ");
scanf("%f",&stu.score[2]);
return stu;
}
//计算平均成绩
float pingjun(Student stu)
{
stu.average[N]=(stu.score[0]+stu.score[1]+stu.score[2])/3;
return stu.average[N];
}
//显示学员信息
void display(Student stu[N])
{
printf("flag\t学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n");
for(int i=0;i<N;i++)
{
if(stu[i].flag==0)continue;
printf("%d\t",stu[i].flag);
printf("%s\t",stu[i].xuehao);
printf("%s\t",stu[i].name);
printf("%-6.2f\t%-6.2f\t%-6.2f\t",stu[i].score[0],stu[i].score[1],stu[i].score[2]);
printf("%-6.2f\t\n",pingjun(stu[i]));
}
}
//删除某学员
void Delete(Student *stu)
{
stu->flag=0;
}
//排序学员组
void paixu(Student stu[],int *count)
{
Student temp[N]={0};
for(int i=0;i<*count;i++)
{
for(int j=0;j<*count-i-1;j++)
{
if(pingjun(stu[j])<pingjun(stu[j+1]))
{
temp[j]=stu[j+1];
stu[j+1]=stu[j];
stu[j]=temp[j];
}
}
}
}
[此贴子已经被作者于2006-9-17 23:56:24编辑过]