编制一个c语言成绩记录簿,每个学生信息包括:学号,姓名,c语言成绩. 具体功能:(1)创建信息链表并以磁盘文

dd

#include<stdio.h>
#include<conio.h>
#include<malloc.h>
struct student //定义结构体
{
int SerialNumber;
char Name[20];
int Grade;
struct student *next;
};
struct student *found(void) //创建
{
struct student *head,*NEW,*trail;
char a;
head=trail=NULL;
do{
NEW=(struct student *)malloc(sizeof(struct student));
printf("请输入学号:\t");
scanf("%d",&NEW->SerialNumber);
printf("请输入姓名:\t");
scanf("%s",NEW->Name);
printf("请输入成绩:\t");
scanf("%d",&NEW->Grade);
if(head==NULL&&trail==NULL)
{
head=NEW;
trail=NEW;
}else
{
trail->next=NEW;
trail=NEW;
}
printf("是否还要继续输入学生数据?<y/n>");
fflush(stdin);
scanf("%c",&a);
}while(a=='y');
NEW->next=NULL;
return head;
}
void show(struct student *head)//输出
{
struct student *sto;
system("cls");
printf("学号\t\t\t姓名\t\t\t成绩\n=====================================================================\n");
sto=head;
if(head==NULL)
{
printf("没有信息");
}
while(sto!=NULL){

printf("%d\t\t\t%s\t\t\t%d",sto->SerialNumber,sto->Name,sto->Grade);
printf("\n");
sto=sto->next;
}
printf("\n");
}
int Select(struct student *sc)//查找
{
struct student *s;
int a,x;
s=sc;
if(s==NULL)
{
printf("你当前的表是空表是否插入数据<y/n>");
scanf("%d",&a);
if('y'==a)
{
found();
}else{

return 0;
}
}else{
printf("请输入你要查寻的序号:");
scanf("%d",&x);
printf("查询结果:\n");
printf("学号\t\t\t姓名\t\t\t成绩\n=====================================================================\n");
do{
if(s->SerialNumber==x)
{

printf("%d\t\t\t%s\t\t\t%d\n",s->SerialNumber,s->Name,s->Grade);
}
s=s->next;
}while(s!=NULL);
}
}
void main()
{
struct student *StorStr;
StorStr=found();
show(StorStr);
Select(StorStr);
getch();

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-19
呵呵,哪个大学的期末作业?