| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:简单学生管理,说不上系统,大哥大姐来看看哪里错了!!
只看楼主 加入收藏
zhangxingjun
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-4-9
结帖率:0
收藏
 问题点数:0 回复次数:0 
简单学生管理,说不上系统,大哥大姐来看看哪里错了!!
为什么打印函数和输入函数分不开啊,还有删除和插入函数不能运行,高手指点啊

 #include<stdio.h>
 #include<stdlib.h>
  #define Null 0
  typedef struct LNode
  {
    int number;
    char name[10];
    double mathstore;
    struct LNode *next;
  }LNode,*Linklist;
  typedef struct STU
  {
   
  int number;
    char name[10];
    double mathstore;
  
  }STU;
Linklist createlist(int n);
void print_list(Linklist l);
void InsertList(LNode *L,struct STU t,int i);
void DeleteList(LNode *L,int i);
int n,i;  
STU t;
int main()
{
    int x;
    Linklist l;
   
    printf("\n\n**********************************学生信息管理系统******************************\n");
    printf("选项如下:\n");
    printf("1、录入学生信息:\n");
    printf("2、打印学生信息:\n");
    printf("3、添加新生信息:\n");
    printf("4、删除学生信息:\n");

    while(x!=-1)
    {Linklist w;
   
     scanf("%d",&x);
        switch(x)
     {
     case 1:printf("请输入需要输入的学生人数:\n");
            scanf("%d",&n);
         createlist(n);break;
     case 2:w=createlist(n);
         print_list(w);break;
     case 3:InsertList(l,t,i);break;
     case 4:DeleteList(l,i);break;

    }
   printf("请继续选择输入:\n");

    }
    printf("输入错误!!\n");
    return 0;

}

Linklist createlist(int n)
{
    Linklist L,cur;
    LNode *p;
    char ch;
    int j=0;
    L=(Linklist)malloc(sizeof(LNode));
    cur=(Linklist)malloc(sizeof(LNode));
    L->next=NULL;   //建一个空表。

    cur=L; //cur初始化指向最后一个元素,尾插法

    for(int i=n;i>0;i--)
    {
        p=(Linklist)malloc(sizeof(LNode));//生成新节点。
        
        printf("请输入学生的学号:\n");
        scanf("%d",&p->number);        

        printf("请输入该生的姓名:\n");
        
        getchar();//接收上一次输入的回车符号
        ch=getchar();

        j=0; // j循环初始化
        while(ch!='\n')
        {
            //scanf("%c",&p->name[j]);
            p->name[j]=ch;
            j++;
            ch=getchar();
        }
        p->name[j]='\0';

        printf("请输入该生的数学成绩:\n");
        scanf("%lf",&p->mathstore);

        p->next=NULL;

        cur->next = p;        

      
        
        cur=p;
    }
    return L;
}                  

void print_list(Linklist l)
{
    l=l->next;
       printf("        数学成绩表\n");
    printf("学号\t姓名\t数学成绩\n");
    while(l)
    {
        printf("%d,%s,%2.2lf\n",l->number,l->name,l->mathstore);
        l=l->next;
    }
   
}






void InsertList(Linklist l, STU t,int i)
{
Linklist pre,s,p;
int j;
p=l->next;
pre=l;
j=p->number;

printf("请输入需要插入的学生学号:\n");
scanf("%d",&i);
while(pre!=NULL && j<i-1 )
{pre=pre->next;
j++;
}
if((j!=i-1)||(pre==NULL))
{printf("\n no posstion Error\n");return;}
s=(Linklist)malloc(sizeof(LNode));
printf("依次输入学生的学号,姓名,数学成绩:\n");
scanf("%d%s%lf",&t.number,t.name,&t.mathstore);
s->number=t.number;
//s->name=t.name;
s->mathstore=t.mathstore;
s->next=pre->next;
pre->next=s;
}




        
void DeleteList(Linklist l,int i)//i为学号;

{Linklist pre,r;
int j;
j=0;
pre=l;
printf("请输入需要删除的学生学号:\n");
scanf("%d",&i);
while(pre->next!=NULL && j<i-1)
{pre=pre->next;
j++;
}
if((j!=i-1)||(pre->next=NULL) )
{printf("\nPostion Error\n");return;}
r=pre->next;
pre->next=r->next;
free(r);
}

搜索更多相关主题的帖子: include double number 大哥 
2011-10-04 21:18
快速回复:简单学生管理,说不上系统,大哥大姐来看看哪里错了!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022685 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved