首页 > 用户发贴区 > 编程问题提问区 > 我写的成绩管理系统出了什么问题???
2009
03-26

我写的成绩管理系统出了什么问题???

/* 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;
            /*剩下的功能以后再遍
               .
               .
               .
               .
               .
               .
             */    
        }
 }
}
   


 


编译并没有提示出错,但是运行第一个功能时出错。


麻烦朋友运行测试一下很快的,谢谢了 !!!


 
    
    
    
    
    
    
   


我写的成绩管理系统出了什么问题???》有 1 条评论

  1. whos 说:

    简单测试修改了一下之后可以正确运行,改正之后的地方都用红色标记出来了。

    程序中加的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;
     }
    }
     

留下一个回复