/* Note:Your choice is C IDE */
#include “stdio.h”
#include “stdlib.h”
#define Max 15
struct Student
{
int Number;
int Name[Max];
char Sex;
int Age;
struct Student *Next;
};
typedef struct Student Stu;
typedef Stu* p;
p Create_List(p Head)
{
int Age;
char Sex;
p New;
p Pointer;
int Name[Max];
int Number;
int i;
Head=(p)malloc(sizeof(Stu));
if(Head==NULL)
printf(“记录程序打开出错 !”);
else
{
printf(“请输入这个学生的学号 : “);
scanf(“%d”,&Number);
Head->Number=Number;
printf(“请输入这个学生的名字 : “);
scanf(“%s”,Name);
for(i=0;i<Max;i++)
{
Head->Name[i]=Name[i];
}
printf(“请输入该学生的性别 :”);
scanf(“%c”,&Sex);
Head->Sex=Sex;
printf(“最后请输入该学生的年纪大小 : “);
scanf(“%d”,&Age);
Head->Next=NULL;
Pointer=Head;
while(1)
{
New=(p)malloc(sizeof(Stu));
printf(“请输入这个学生的学号 : “);
scanf(“%d”,&Number);
Number=New->Number;
printf(“请输入这个学生的名字 : “);
scanf(“%s”,Name);
if(Name==0)break;
for(i=0;i<Max;i++)
{
Name[i]=New->Name[i];
}
printf(“请输入该学生的性别(F/M) :”);
scanf(“%c”,Sex);
printf(“最后请输入该学生的年纪大小 : “);
scanf(“%d”,Age);
New->Next=NULL;
Pointer->Next=New;
Pointer=New;
}
return Head;
}
}
void Print_List(p Head)
{
p Pointer;
Pointer=Head;
while(Pointer->Next!=NULL)
{
printf(“这个学生的学号是:%d”,Pointer->Number);
printf(“这个学生的名字是: %s”,Pointer->Name);
printf(“这个学生的性别是:%c”,Pointer->Sex);
printf(“这个学生的年龄是:%d”,Pointer->Age);
Pointer=Pointer->Next;
}
}
void main()
{
p Head=NULL;
int a;
while(1)
{
printf(“\n\n\n\t\t ********************简易成绩管理系统************\n”);
printf(“\t\t** (1).录入成员 **\n”);
printf(“\t\t** (2).输出成员 **\n”);
printf(“\t\t** (3).查询成员 **\n”);
printf(“\t\t** (4).删除成员 **\n”);
printf(“\t\t** (5).离开程序 **\n”);
printf(“\t\t*******************出品人 :方萌 ****************\n\t\t”);
printf(“请选择功能:”);
scanf(“%d”,&a);
switch(a)
{
case 1 : Head=Create_List(Head);break;
case 2 : Print_List(Head);break;
/*剩下的功能以后再遍
.
.
.
.
.
.
*/
}
}
}
编译并没有提示出错,但是运行第一个功能时出错。
麻烦朋友运行测试一下很快的,谢谢了 !!!
>> 本文固定链接: http://www.vcgood.com/archives/3114
简单测试修改了一下之后可以正确运行,改正之后的地方都用红色标记出来了。
程序中加的getchar();是为了接收输入姓名之后输入的回车键。测试的时候没有getchar(),则性别的值就是回车键键值。
输出数据的格式显得有点乱,所以在每个输入语句后面加了一个换行符\n。
顺便提醒一下,记得离开程序的时候释放链表的存储空间。
呵呵……
p Create_List(p Head)
{
int Age;
char Sex;
p New;
p Pointer;
int Name[Max];
int Number;
int i;
Head=(p)malloc(sizeof(Stu));
if(Head==NULL)
printf(“记录程序打开出错 !”);
else
{
printf(“请输入这个学生的学号 : “);
scanf(“%d”,&Number);
Head->Number=Number;
printf(“请输入这个学生的名字 : “);
scanf(“%s”,Name);
getchar();
for(i=0;i<Max;i++)
{
Head->Name[i]=Name[i];
}
printf(“请输入该学生的性别 :”);
scanf(“%c”,&Sex);
Head->Sex=Sex;
printf(“最后请输入该学生的年纪大小 : “);
scanf(“%d”,&Age);
Head->Age=Age;
Pointer=Head;
while(1)
{
New=(p)malloc(sizeof(Stu));
printf(“请输入这个学生的学号 : “);
scanf(“%d”,&Number);
if(Number==0){
free(New);
break;
}
New->Number=Number;
printf(“请输入这个学生的名字 : “);
scanf(“%s”,Name);
getchar();
for(i=0;i<Max;i++)
{
New->Name[i]=Name[i];
}
printf(“请输入该学生的性别(F/M) :”);
scanf(“%c”,&Sex);
New->Sex=Sex;
printf(“最后请输入该学生的年纪大小 : “);
scanf(“%d”,&Age);
New->Age=Age;
Pointer->Next=New;
Pointer=New;
}
Pointer->Next=NULL;
return Head;
}
}
void Print_List(p Head)
{
p Pointer;
Pointer=Head;
while(Pointer!=NULL)
{
printf(“这个学生的学号是:%d\n“,Pointer->Number);
printf(“这个学生的名字是: %s\n“,Pointer->Name);
printf(“这个学生的性别是:%c\n“,Pointer->Sex);
printf(“这个学生的年龄是:%d\n“,Pointer->Age);
Pointer=Pointer->Next;
}
}