下面是数据的输入与输出的代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include"qtsm.h"
extern int read_dir, write_dir, insure;
void set_up_list()
{
p1 = p2 =head= NULL;
int w = 0;
char dex[30];
p1 = p2 = head = malloc(sizeof(infor));
printf("请输入学生信息,\n按 姓名 学号 性别 数学 语文 英语 物理 化学成绩格式输入!\n""输入以输入学生姓名为0结束\n");
if (scanf("%s", dex)&&strcmp(dex,"0")==0) { return 0; }
else
{
strcpy(p1->name, dex);
}
scanf("%s", p1->number);
scanf("%s", p1->gender);
scanf("%d", &p1->math);
scanf("%d", &p1->chi);
scanf("%d", &p1->Eng);
scanf("%d", &p1->phy);
scanf("%d", &p1->chem);
while (scanf("%s", dex) && strcmp(dex, "0") != 0)
{
w++;
if (w != 1)p2->next = p1;
p2 = p1;
p1 = malloc(sizeof(infor));
strcpy(p1->name, dex);
getchar();
scanf("%s", p1->number);
getchar();
scanf("%s", p1->gender);
scanf("%d", &p1->math);
scanf("%d", &p1->chi);
scanf("%d", &p1->Eng);
scanf("%d", &p1->phy);
scanf("%d", &p1->chem);
} p2->next = p1;
p1->next = NULL;
insure = 1;
}
int stdout_grade()
{
printf("姓名 学号 性别 数学 语文 英语 物理 化学\n");
for (infor *list1 = head; list1 != NULL; list1 = list1->next)
{
printf("%3s %s %s %3d %3d %3d %3d %3d\n", list1->name, list1->number, list1->gender, list1->math, list1->chi, list1->Eng, list1->phy, list1->chem);
}
return 0;
}
void stdout_infor()
{
printf("姓名 学号 性别 数学 语文 英语 物理 化学 总分 平均分 名次\n");
for (infor *list1 = head; list1 != NULL; list1 = list1->next)
{
printf("%3s %s %s %3d %3d %3d %3d %3d %3d %.2lf %d\n", list1->name, list1->number, list1->gender, list1->math, list1->chi, list1->Eng, list1->phy, list1->chem, list1->sum, list1->average, list1->rank);
}
}
void stdout_infor1()
{
printf("姓名 学号 性别 数学 语文 英语 物理 化学 总分 平均分\n");
for (infor *list1 = head; list1 != NULL; list1 = list1->next)
{
printf("%3s %s %s %3d %3d %3d %3d %3d %3d %.2lf\n", list1->name, list1->number, list1->gender, list1->math, list1->chi, list1->Eng, list1->phy, list1->chem, list1->sum, list1->average);
}
}