#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int x;
struct Student
{
char name[20];
long long int num;
float score;
} stu[100];
void shuru()
{
printf("\t\t\t共有多少名学生:\n");
scanf("%d",&x);
for(int i=0; i<x; i++)
{
printf("\t\t\t请输入学生姓名:\n");
scanf("%s",&stu[i].name);
printf("\t\t\t请输入学生学号;\n");
scanf("%lld",&stu[i].num);
printf("\t\t\t请输入学生成绩;\n");
scanf("%f",&stu[i].score);
}
}
void shanchu()
{
long long int n;
printf("\t\t\t请输入你需要删除的学生学号:\n");
scanf("%lld",&n);
int j=0,i;
for(i=0; i<x; i++)
{
if(n!=stu[i].num)
{
stu[j]=stu[i];
j++;
}
}
if(i==j)
{
printf("\t\t\t输入错误!!!\n");
}
else
for(i=0; i<j; i++)
{
printf("%s %lld %.2f\n",stu[i].name,stu[i].num,stu[i].score);
}
x=j;
}
void chaxun()
{
long long int n;
printf("\t\t\t请输入你要查询的学生学号:\n");
scanf("%lld",&n);
for(int i=0; i<x; i++)
{
if(n==stu[i].num)
{
printf("%s %lld %.2f",stu[i].name,stu[i].num,stu[i].score);
break;
}
}
}
void paixu()
{
struct Student stu1;
int t=0;
printf("\t\t\t是否按照成绩降序排序:\n\t\t\t1.是 2.否\n");
scanf("%d",&t);
if(t==1)
{
for(int i=1; i<x; i++)
{
for(int j=0; j<x-i; j++)
if(stu[j].score<stu[j+1].score)
{
stu1=stu[j];
stu[j]=stu[j+1];
stu[j+1]=stu1;
}
}
for(int i=0; i<x; i++)
{
printf("%s %lld %f\n",stu[i].name,stu[i].num,stu[i].score);
}
}
if(t==2)
{
for(int i=1; i<x; i++)
{
for(int j=0; j<x-i; j++)
if(stu[j].score>stu[j+1].score)
{
stu1=stu[j];
stu[j]=stu[j+1];
stu[j+1]=stu1;
}
}
for(int i=0; i<x; i++)
{
printf("%s %lld %f\n",stu[i].name,stu[i].num,stu[i].score);
}
}
}
void xianshi()
{
for(int i=0; i<x; i++)
{
printf("%s %lld %.2f\n",stu[i].name,stu[i].num,stu[i].score);
}
}
void baocun()//文件保存
{
FILE *fpw=fopen("student.txt","w");
for(int i=0; i<x; i++)
{
fprintf(fpw,"%s %lld %f\n",stu[i].name,stu[i].num,stu[i].score);
}
printf("\t\t\t已保存\n");
}
int duwenjian()
{
x=0;
FILE *fpr=fopen("student.txt","r");
if(fpr==NULL)
{
return 0;
}
else
{
while(fscanf(fpr,"%s %lld %f",&stu[x].name,&stu[x].num,&stu[x].score)!=EOF)
{
x++;
}
}
}
int main()
{
int j;
duwenjian();
while(1)
{
system("cls");//清屏
printf("\n\n\n\t\t\t 欢迎使用软工四班学生成绩管理系统\n\n\n");
printf("\t\t\t***************************\n");
printf("\t\t\t* 主菜单 *\n");
printf("\t\t\t***************************\n\n\n");
printf("\t\t 1 成绩输入 2 成绩删除\n\n");
printf("\t\t 3 成绩查询 4 成绩排序\n\n");
printf("\t\t 5 显示成绩 6 成绩保存\n\n");
printf("\t\t 7 退出系统\n\n");
printf("\t\t 请选择[1/2/3/4/5/6/7]:\n");
scanf("%d",&j);
switch(j)
{
case 1:
printf("\t\t\t成绩输入\n");
shuru();
break;
case 2:
printf("\t\t\t成绩删除\n");
shanchu();
break;
case 3:
printf("\t\t\t成绩查询\n");
chaxun();
break;
case 4:
printf("\t\t\t成绩排序\n");
paixu();
break;
case 5:
printf("\t\t\t显示成绩\n");
xianshi();
break;
case 6:
printf("\t\t\t成绩保存\n");
baocun();
break;
case 7:
printf("\t\t\t退出系统\n");
exit(0);//正常运行程序并退出程序
default:
printf("\t\t\t输入错误,请重新输入\n");
break;
}
getch();//我们一般所使用的 getchar() 函数在读入一个字符时 必须按一下 enter 键,该代码才会继续运行;
//但是 getch() 函数读入一个字符时 不用 enter 代码会继续跑;
}
return 0;
}
03-25
1万+

06-24