printf("\n\t学号\t姓名\tC\tJava\tSQL\t总分\t平均分\n");
printf("\t======================================================\n");
for(i=0;i<count;i++)
{
printf("\t%d\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",
stu[i].stuNo,stu[i].name,stu[i].cScore,stu[i].javaScore,stu[i].sqlScore,
stu[i].sumScore,stu[i].avgScore);
}
printf("\t====================================================\n");
printf("\n\t\t\t\t按任意键返回主菜单...");
fflush(stdin);
getch();
}
void sort()
{
int op;
do{
system("cls");//清屏
printf("主界面>>>排序界面");
printf("\n\t\t***********************************************\n");
printf("\n\t\t\t 1.按学号排序<升序> \n");
printf("\n\t\t\t 2.按成绩排序<降序> \n");
printf("\n\t\t\t 0.返回主菜单 \n");
printf("\n\t\t***********************************************\n");
printf("\n\t请选择: ");
scanf("%d",&op);
if(op == 0)
{
break;
}
switch(op)
{
case 1:
sortByNo(); //学号
break;
case 2:
sortByavg(); //平均分
break;
default:
printf("\n\t您输入的选项无效!!!按任意键重新输入...\n");
fflush(stdin);
getch();
}
}while(1); //死循环
}
//按学号排序
void sortByNo()
{
printf("\n\t\t排序进行中,请稍后i...\n");
S
leep(2000);
//冒泡排序
int i,j;
struct student temp; //临时变量
for(i=0;i<count;i++) //控制要冒起的元素的个数
{
for(j=0;j<count-1-i;j++)//控制每冒起一个数,需要经
历的排序次数
{
if(stu[j].stuNo>stu[j+1].stuNo) //">"实现的是升序
{
temp=stu[j+1];
stu[j+1]=stu[j];
stu[j]=temp;
}
}
}
display();
printf("\n\t\t\t排序已完成,按任意键继续...");
fflush(stdin);
getch();
}
//按成绩排序
void sortByavg()
{
int i,j;
struct student temp; //临时变量
for(i=0;i<count;i++)
{
for(j=0;j<count-1-i;j++)
{
if(stu[j].avgScore<stu[j+1].avgScore) //"<"实现的是降序
{
temp=stu[j+1];
stu[j+1]=stu[j];
stu[j]=temp;
}
}
}
display();
printf("\n\t\t\t排序已完成,按任意键继续...");
fflush(stdin);
getch();
}
void insert()
{
int op;
do{
system("cls");//清屏
printf("主界面>>>插入界面");
printf("\n\t\t******************************************************\n");
printf("\n\t\t\t 1.按学号插入<升序>\n");
printf("\n\t\t\t 2.按平均分插入<降序>\n");
printf("\n\t\t\t 0.返回主菜单 \n");
printf("\n\t\t******************************************************\n");
printf("\n\t请选择: ");
scanf("%d",&op);
if(op == 0)
{
break;
}
switch(op)
{
case 1:
insertById(1); //按学号插入
break;
case 2:
insertById(2); //按平均分插入
break;
default:
printf("\n\t您输入的选项无效!!!按任意键重新输入...\n");
fflush(stdin);
getch();
}
}while(1); //死循环
}
//插入学生数据
void insertById(int id)
{
int i;
struct student s = input(); //调用函数,接收要插入的信息
//(1) 查找要插入的数组中的下标位置
for(i=0;i<count;i++)
{
if(id==1) //按学号插入
{
if(s.stuNo<stu[i].stuNo)
break;
}
else if(id==2) //按平均分的降序插入
{
if(s.avgScore > stu[i].avgScore)
break;
}
}
//(2) 循环平移操作---->为要出入的元素预留空间
int j;
for(j=count-1;j>=i;j--)
{
stu[j+1] = stu[j];
}
//(3) 将要插入的元素放入该位置
stu[i] = s;
//(4) 将当前学生人数++
count++;
printf("\n\t学生数据插入完成,按任意键继续...\n");
fflush(stdin);
getch();
}
//删除功能
void del()
{
char ans;
int i;
int sno;//学号
do
{
system("cls");//清屏
printf("主界面>>>删除界面\n");
printf("\n\t*******************************************\n");
printf("\n\t\t请输入需要删除的学号: ");
scanf("%d",&sno);
//1) 查找被删除的学生的学号是否已存在,如果不存在,i即其下标
for(i=0;i<count;i++)
{
if(stu[i].stuNo == sno)
break;
}
//2) 判断是否找到
if(i<count) //找到了
{
//显示需要删除的学生的信息
printf("\n\t需要删除的学生信息如下:\n");
printf("\n\t\t学号\t姓名\tC
\tJava\tSQL\t总分\t平均分\n");
printf("\n\t------------------------------------------------\n");
printf("\n\t\t%d\t%s\t%5.2f\t%