新手不知道做程序框图 求人教教我! 程序在下面!
#include<stdio.h>#include<string.h>
#include<stdlib.h>
#include<conio.h>
struct student
{ char num[10];
char name[12];
int age;
int grade[3];
}stu[20];
int k=0;
void input();
void outputgrade();
void change();
void del();
void allgrade();
void paixu();
void main()
{
int a;
do
{
printf("\t\t\t\t\n");
printf("\t\t\t\t学生成绩管理系统\n");
printf("\n");
printf("\t\t\t作者:梁天江 班级:072084-31 学号:20081004528\n");
printf("\t\t\t-------------------------------------------\n\n");
printf("\t 1.插入新的学生记录\n");
printf("\t 2.修改学生记录\n");
printf("\t 3.删除学生记录\n");
printf("\t 4.显示学生成绩和总分\n");
printf("\t 5.浏览全班成绩\n");
printf("\t 6.退出\n\n");
printf(" 输入你要操作的序号 : ");
scanf("%d",&a);
switch(a)
{
case 1:printf("\n");input();break;
case 2:printf("\n");change();break;
case 3:printf("\n");del();break;
case 4:printf("\n");allgrade();break;
case 5:printf("\n");paixu();break;
case 6:printf("\n");exit(0);break;
default:printf("\nThe choice is between 1 to 6.\n");
}
}while(a!=0);
}
void input()
{ int j;
char ch[20];
printf("\n输入学生信息:\n");
do
{ printf("\n学号: ");
scanf("%s",stu[k].num);
printf("\n姓名: ");
scanf("%s",stu[k].name);
printf("\n年龄: ");
scanf("%d",&stu[k].age);
for(j=0;j<3;j++)
{ printf("\n成绩%d: ",j+1);
scanf("%d",&stu[k].grade[j]); }
k++;
printf("\n如要继续,请输入学生信息(y/n): ");
scanf("%s",ch);
}while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0);
outputgrade();
}
void outputgrade()
{ int i;
printf(" 学生信息是:\n");
for(i=0;i<k;i++)
{ printf("\t%s \t%s \t%d \t%d \t%d \t%d",stu[i].num,stu[i].name,stu[i].age,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2]);
printf("\n"); }
}
void change()
{
int i,j;
char a[20],ch[10];
printf("\n输入你要修改的学生学号:");
scanf("%s",a);
for(i=0;i<k;i++)
{
if(strcmp(stu[i].num,a)==0)
{ printf("\n你确定要修改学号吗?(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nnum:"); scanf("%s",stu[i].num);}
printf("\n你确定要修改学生姓名吗?(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nname"); scanf("%s",stu[i].name);}
printf("\n你确定要修改学生成绩吗?(y/n): ");
scanf("%s",ch);
printf("\n");
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
for(j=0;j<3;j++)
{ printf("grade%d:",j+1); scanf("%d",&stu[i].grade[j]); printf("\n"); }
}
}
outputgrade();
}
void del()
{
int i,j;
char c[20];
printf("\n输入你要删除的学生学号 :\n");
printf("num:");
scanf("%s",&c);
for(i=0;i<3;i++)
if(strcmp(c,stu[i].num)==0) break;
for(j=i;j<=2;j++)
stu[j]=stu[j+1];
printf("\t\t\t你已经删除 %s的信息\n",c);
k--;
outputgrade();
}
void allgrade()
{ int i; float sum=0;
for(i=0;i<k;i++)
{ printf("\t%d \t%d \t%d\n",stu[i].grade[0],stu[i].grade[1],stu[i].grade[2]);
sum=sum+stu[i].grade[0]+stu[i].grade[1]+stu[i].grade[2] ; }
printf("总成绩是 %f",sum);
}
void paixu()
{ struct student temp;
int i,j;
for(i=0;i<k-1;i++)
{
for(j=i+1;j<k;j++)
{
if(stu[i].num<stu[j].num)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
} }
outputgrade();
}