| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3767 人关注过本帖
标题:用链表存储数据
只看楼主 加入收藏
iambeliveble
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-2
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:13 
用链表存储数据
现有学生成绩信息文件1(1.txt),内容如下
姓名    学号   语文  数学   英语   
张明明  01     67    78      82
李成友  02     78    91      88
张辉灿  03     68    82      56
王露    04     56    45      77
陈东明  05     67    38      47
学生成绩信息文件2(2.txt),内容如下:
姓名    学号   语文  数学   英语   
陈果    31     57    68      82
李华明  32     88    90      68
张明东  33     48    42      56
李明国  34     50    45      87
陈道亮  35     47    58      77
 用c++工具怎样实现用链表和数组存储呢使用结构体?
搜索更多相关主题的帖子: 链表 数据 
2009-09-02 12:45
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:0 
链表
struct link{
    string lpname;
    string lpno;
    int   nchinesescore;
    int   nmathscore;
    int   nenglishscore;
    struct link* next;
};
结构体
struct link{
    string lpname;
    string lpno;
    int   nchinesescore;
    int   nmathscore;
    int   nenglishscore;
};
数组
string a[5][5];
2009-09-02 13:48
iambeliveble
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-2
收藏
得分:0 
谢谢
如果这样的 怎样写构造函数呢?还有一样就是,在main函数当中该如何调用构造函数呢 比如:
void main()
{
   student<int 还是char呢> a(这个实参又该怎么写呢) 这一点上我很晕啊,希望高手多多指教
}
2009-09-02 19:33
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:0 
你这个问题搞到类摸板去了,这个我不是太懂,弄了一个,希望向别人取取经。
struct linkstudent{
    string lpname;
    string lpno;
    int   nchinesescore;
    int   nmathscore;
    int   nenglishscore;
    struct link* next;
};

struct ststudent{
    string lpname;
    string lpno;
    int   nchinesescore;
    int   nmathscore;
    int   nenglishscore;
};

template<typename T>
class student
{
public:
    student(int nstudentNum=KstudentNum);
...........
protected:
    T* mstudentinfo;
    int mstudentNum;
};
student<ststudent> mystudent1;
student<linkstudent> mystudent2;
student<string*>mystudent3;



        
2009-09-02 20:15
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:0 
我建议你多看看书,看了你的程序发现你没有C++基础,而且是连最基本的都不会,一下子搞类模块不合适,针对你的问题我写了下面代码。
#include <iostream>
#include <string>
#include<stdlib.h>
using namespace std;

template<class U>
struct Node
{
    U name;
    U number;
    U chinese;
    U math;
    U english;
    Node<U> *next;
};

template <class T,typename cont=Node<T> >
class student
{
    public:
        student();//建立构造函数
    private:
        cont *first;//单链表的头指针
};

template <class T,typename cont>
student<T,cont>::student()
{
     int n;
     cont *p,*s;

     T name1,number1,chinese1,math1,english1;   
     cout<<"请输入总人数";
     cin>>n;
     p=NULL;
     for(int i=1;i<=n;i++)
     {
         s=new cont;
         cout<<"请输入姓名";
         fflush(stdin);
         cin>>name1;
         s->name=name1;
         cout<<"请输入学好";
         fflush(stdin);
         cin>>number1;
         s->number=number1;
         cout<<"请输入语文成绩";
         fflush(stdin);
         cin>>chinese1;
         s->chinese=chinese1;
         cout<<"请输入数学成绩";
         fflush(stdin);
         cin>>math1;
         s->math=math1;
         cout<<"请输入英语成绩";
         fflush(stdin);
         cin>>english1;
         s->english=english1;
         s->next=NULL;
         //头节点直接插入。
         if(p){
                p->next=s;
                p=p->next;
         }else {
             first=s;
             p=s;
         }

     }

}
void main()
{
     
     student<string> student;
      
}
2009-09-03 10:51
iambeliveble
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-2
收藏
得分:0 
回复 7楼 xufen340


#include <iostream.h>
#include <string.h>
#include<stdlib.h>
template<class T>
struct Node
{
    T name;
    T number;
    T chinese;
    T math;
    T english;
    Node<T> *next;
};

template <class T>
class student
{
    public:
        student();//建立构造函数
    private:
        Node<T> *first;//单链表的头指针
        Node<T> *p,*s;
};
template <class T>
student<T>::student()
{
     int n;
     //Node *p,*s;
     T name1,number1,chinese1,math1,english1;   
     cout<<"请输入总人数";
     cin>>n;
     p=NULL;
     for(int i=1;i<=n;i++)
     {
         s=new Node<T>;
         cout<<"请输入姓名";
         //fflush(stdin);
         cin>>name1;
         cout<<endl;
         s->name=name1;
         cout<<"请输入学好";
         //fflush(stdin);
         cin>>number1;
         cout<<endl;
         s->number=number1;
         cout<<"请输入语文成绩";
         //fflush(stdin);
         cin>>chinese1;
         cout<<endl;
         s->chinese=chinese1;
         cout<<"请输入数学成绩";
         //fflush(stdin);
         cin>>math1;
         cout<<endl;
         s->math=math1;
         cout<<"请输入英语成绩";
         //fflush(stdin);
         cin>>english1;
        cout<<endl;
         s->english=english1;
         s->next=NULL;
         //头节点直接插入。
         if(p){
                p->next=s;
                p=p->next;
         }
         else
         {
             first=s;
             p=s;
         }
     }
}
void main()
{
   
     student<char> student;
     
}
呵呵,
你看一下,我稍微做了下改动,能运行出来,但在输入数据时出现了问题,输入一个数出一个,输入两个数出现三个。
2009-09-03 12:35
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:0 
在cin>>name1;后加

cin.ignore(cin.rdbuf()->in_avail());
2009-09-03 19:53
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:20 
每个cin后加

cin.ignore(cin.rdbuf()->in_avail());
2009-09-03 19:54
iambeliveble
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-2
收藏
得分:0 
回复 10楼 xufen340
呵呵 你的QQ是多少,我现在在做题目,急需向前辈讨教
2009-09-03 20:49
iambeliveble
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-2
收藏
得分:0 
回复 10楼 xufen340
呵呵 你的QQ是多少,我现在在做题目,急需向前辈讨教
2009-09-03 20:50
快速回复:用链表存储数据
数据加载中...
 
   



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

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