注册 登录
编程论坛 C语言论坛

学生信息链表的创建和输出

黑暗骑士5DSB 发布于 2021-04-11 09:36, 1544 次点击
在定义一个包含学生信息(学号、姓名、成绩)的链表基础上,读入相应的学生数据来完成学生信息链表的创建,然后统计学生表中的学生个数,同时逐行输出每个学生的信息。要求完成创建链表函数和输出显示学生链表信息函数。

函数接口定义:
int CreateList(LinkList &L,Student b);
int PrintList(LinkList &L);
其中 L 和 b 都是用户传入的参数。 L 是创建的学生信息链表; b 是要输入的一个学生的结构体数据。

裁判测试程序样例:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2

typedef struct tagStudent
{
    char no[20],name[50];
    float score;
}Student;
typedef struct LNode
{
    Student data;
    struct LNode *next;
}LNode,*LinkList;
int ListInit(LinkList &L)
{
    L=new LNode;
    L->next=NULL;
    return OK;
}
int ListEmpty(LinkList L){
   if(L->next)   
     return 0;
   else
     return 1;
}
int  ListLength(LinkList L){
    LinkList p;
    p=L->next;  
    int i=0;            
    while(p){
           i++;
           p=p->next;   
    }
    return i;                             
 }
int CreateList(LinkList &L,Student b);
int PrintList(LinkList &L);
int main()
{
    LinkList L,head;
    ListInit(L);                       
    head=L;                        
    Student s;
    while(cin>>s.no>>s.name>>s.score)     //输入no、name、score
    {
        if(!strcmp(s.no,"0")&&!strcmp(s.name,"0")&&s.score==0.0)
            break;                  //0 0 0 时结束
        CreateList(L,s);
    }
    cout<<ListLength(head)<<endl;
    PrintList(head);            
    return 0;                  
}
/* 请在这里填写答案 */
输入样例:
输入n+1行,其中前n行是n个学生的信息(学号、姓名、成绩),每个学生信息占一行,学号、姓名、成绩用空格分隔,成绩之后没有空格。最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0)。其中学号和姓名为字符串类型,成绩为浮点数类型。

9787302257646 Jack 95
9787302164340 Sam 80
9787302219972 Marry 82
9787302203513 David 86
9787810827430 Susan 86
9787302257800 Dora 89
9787811234923 Lily 85
9787822234110 Kimi 88
0 0 0
输出样例:
总计n+1行,第1行是所创建的学生表中的学生个数,后n行是n个学生的信息(学号、姓名、成绩),每个学生信息占一行,学号、姓名、成绩用空格分隔。其中成绩输出保留一位小数。

8
9787302257646 Jack 95.0
9787302164340 Sam 80.0
9787302219972 Marry 82.0
9787302203513 David 86.0
9787810827430 Susan 86.0
9787302257800 Dora 89.0
9787811234923 Lily 85.0
9787822234110 Kimi 88.0
Press any key to continue

咋做的呢,完全没思路
1 回复
#2
rjsp2021-04-12 09:01
你这是C代码,还是C++代码?
1