要求设计的管理系统能够实现以下功能:
1.每一条记录包括一个学生的学号、姓名、3个成绩(平时成绩、作业成绩、考试成绩)
2.成绩录入功能:(成绩信息用文件保存,可以一次完成若干条记录)
3.成绩信息显示浏览功能,完成全部学生记录的显示。
4.查询功能:完成按姓名查找学生记录,并显示
5.成绩信息的删除:按学号进行删除某学生的成绩
6.排序功能:按学生总成绩进行排序
#include
#include
#include
int AddStu(); //添加学生信息
void Stu_delete(); //删除某个学生的信息
void Stu_alldisplay(); //显示所有人的学生信息
void Stu_find(); //按名字查找
int Stu_findcode(char number[10]); //按照学号查找
void Stu_sort(); //排序
void Stu_display(int num); //显示某个学生的信息
void read_studentdata();
void edit_studentdata1(); //将刚输入的数据存入文件中
void edit_studentdata2(); //将排序后的数据存入文件中
int Stu_findname(char name[]); //通过名字返回数组下标
void mei();
char *xingm;
struct student
{
char name[10];
char number[10];
char usual[10];
char homework[10];
char exam[10];
double all;
};
int X;
int num = 0;
struct student Stu[1000];
int main()
{
read_studentdata();
mei();
while(1)
{
printf(" ✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡学生成绩管理系统✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡\n");
printf(" ✡ 1. 加入学生信息 2. 删除学生信息 ✡\n");
printf(" ✡ 3. 显示浏览学生信息 4. 按姓名查找学生记录并显示 ✡\n");
printf(" ✡ 5. 按总成绩进行排序 6. 退 出 ✡\n");
printf(" ✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡欢迎使用✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡\n");
printf("\n 请选择(1-6): \n\n");
scanf("%d",&X);
getchar();
switch(X)
{
case 1:
AddStu();
edit_studentdata1();//数据写入文件
mei();
break;
case 2:
Stu_delete();
edit_studentdata1();//数据写入文件
mei();
break;
case 3:
Stu_alldisplay();
mei();
break;
case 4:
Stu_find();
mei();
break;
case 5:
Stu_sort();
edit_studentdata2();//数据写入文件
mei();
break;
case 6:
exit(0);
break;
}
}
return 0;
}
//添加学生
int AddStu()
{
while(1)
{
printf("Please input the name:");
scanf("%s",Stu[num].name);
printf("Please input the No.(学号) :");
scanf("%s",Stu[num].number);
printf("Please input the usual gride :");
scanf("%s",Stu[num].usual);
printf("Please input the homework's gride:");
scanf("%s",Stu[num].homework);
printf("Please input the exam gride:");
scanf("%s",Stu[num].exam);
double grade1 = atoi(Stu[num].usual);
double grade2 = atoi(Stu[num].homework);
double grade3 = atoi(Stu[num].exam);
Stu[num].all = grade1 + grade2 + grade3;//计算总成绩
num++;//学生数目的计数器,也会进入文件
printf("请问您是否要添加学生信息?(y for yes or n for no ?)");
getchar();
if(getchar() == 'n')
{
break;//直到在此处输入n,添加学生的循环才会停止
}
}
return num;
}
//删除某个学生
void Stu_delete()
{
int i;
while(1)
{
char numbers[20];
int index;
printf("请输入要删除的学生的学号:\n");
scanf("%s",numbers);
getchar();
index = Stu_findcode(numbers);//查找该学生是否存在
if (index==-1){printf("学生不存在!\n");}
else
{
printf("你要删除的学生信息是:\n");
printf("------学号-----姓名-----平时成绩------作业成绩------考试成绩------总成绩\n");
Stu_display(index);
printf("是否真的要删除?(y for yes and n for no/n)");
if (getchar()== 'y')
{
printf("学号为 %s 的学生已被删除!\n",numbers);
for (i=index;i>>");
printf("\n\n\n\n\n\n\n从键盘上输入任意键,进入学生成绩管理系统\n");
getchar();
printf("\n\n");
}