收藏 分享(赏)

建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:.docx

上传人:cjc2202537 文档编号:4564373 上传时间:2019-01-02 格式:DOCX 页数:24 大小:325.59KB
下载 相关 举报
建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:.docx_第1页
第1页 / 共24页
建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:.docx_第2页
第2页 / 共24页
建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:.docx_第3页
第3页 / 共24页
建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:.docx_第4页
第4页 / 共24页
建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、云南大学物理实验教学中心实验报告课 程 名 称 : 计算机软件技术基础实 验 项 目 : 线性表(链式存储)及其应用学生姓名: 学号: 学 院 系 级 专业成绩指 导 教 师 : 实 验 时 间 : 年 时 分至 时 分实 验 地 点 :实 验 类 型 : 教 学 ( 演 示 验证 综 合 设计) 学生科研 课外开放 测试 其它1一、实验目的:掌握链式存储结构下线性表的建立及基本操作。二、问题:建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:输出、查找、插入、删除功能,并计算出平均成绩和总成绩。三、程序的编写与调试1、原程序:#include#

2、includeusing namespace std;struct node int num; char name10;float score;node *next;class linked_list private:node *head;public:linked_list();void prt_linked_list();Comment A1: error C2533: linked_list:linked_list : constructors not allowed a return typeerror C2264: linked_list:linked_list : error in

3、 function definition or declaration; function not called错误原因:“”后缺少“;”改正:在“”后面加上“;”2void ins_num_linked_list(int i,node *b);void ins_name_linked_list(char name,node *b);int del_num_linked_list(node);int del_name_linked_list(node);int sear_num_linked_list(int);void sear_name_linked_list(node);void cou

4、nt_linked_list(); /*建立链表*/ linked_list:linked_list()node *p,*q;p=new node;q=new node;p-num=101;strcpy(p-name,“aaa“);p-score=98; q-num=104;strcpy(q-name,“ddd“);q-score=95; head=p;p-next=q;q-next=NULL; return ;/* 输出*/void linked_list:prt_linked_list()node *p;Comment A2: error C2001: newline in constan

5、terror C2143: syntax error : missing ; before elseerror C2181: illegal else without matching iferror C2601: ins_num_linked_list : local function definitions are illegalerror C2601: ins_name_linked_list : local function definitions are illegalerror C2601: del_num_linked_list : local function definiti

6、ons are illegalerror C2601: del_name_linked_list : local function definitions are illegalerror C2601: sear_num_linked_list : local function definitions are illegalerror C2601: sear_name_linked_list : local function definitions are illegalerror C2601: count_linked_list : local function definitions ar

7、e illegalerror C2601: main : local function definitions are illegalfatal error C1004: unexpected end of file found错误原因:符号错误,“”为中文引号。改正:把中文引号改为英文引号即可。3p=head;if(head=NULL)coutnumnamescorenext;while(p!=NULL);return;/*按学号插入*/void linked_list:ins_num_linked_list(int i,node *b) node *q;if(head=NULL)b-nex

8、t=NULL;head=b;return;if(head-num=i)b-next=head;head=b;return;q=head;while(q-next!=NULL)if(q-next=NULL)coutnext=q-next;q-next=b; return;Comment A3: error C2143: syntax error : missing ; before return错误原因:return 前面缺少“;”改正:在 return前面加上“;”。4/*按姓名插入*/void linked_list:ins_name_linked_list(char name,node *

9、b)node *q;if(head=NULL)b-next=NULL;head=b;return;if(strcmp(head-name,name)=0)b-next=head;head=b return;q=head;while(q-next!=NULL)if(q-next=NULL)coutnext=q-next;q-next=b; return;/*按学号删除*/int linked_list:del_num_linked_list( node x ) node *p,*q;if(head=NULL)coutnum=x.num)Comment A4: 错误:error C2561: de

10、l_name_linked_list : function must return a value错误原因:返回值出错;必须要返回一个值。改正:把“return”改为“return 1”5p=head-next;delete head;head=p;return 1;q=head;while(q-next!=NULL)if(q-next=0)coutnext;q-next=p-next;delete p;return 1;/*按姓名删除*/int linked_list:del_name_linked_list( node x ) node *p,*q;if(head=NULL)coutnam

11、e,x.name)=0)p=head-next;delete head;head=p;return ;q=head;while(q-next!=NULL)if(q-next=0)coutnext;q-next=p-next;delete p;Comment A5: warning C4715: linked_list:sear_num_linked_list : not all control paths return a value警告原因:没有控制返回值。改正:在“”前面加上返回语句“return 1;”Comment A6: error C2562: sear_name_linked_l

12、ist : void function returning a valu错误原因:返回值出错,不能返回0。改正:删除 return后面的 0.6return 1;/*按学号查找*/int linked_list:sear_num_linked_list( int i ) node *q; if(head=NULL)coutnext!=NULL)if(q-num)!=i)coutnumnamescorenext!=NULL)if(strcmp(p-name,x.name)!=0)coutnumnamescorescore;p=p-nxt;n+;ave=sum/n;coutmx;switch(mx

13、) case 1: s1.prt_linked_list(); break;case 2: node *b=new node;int mx1;coutmx1;switch(mx1)case 1: couti;coutb-numb-nameb-score ; s1.ins_num_linked_list(i,b);9s1.prt_linked_list(); break;case 2: char name10;coutname;coutb-numb-nameb-score ; s1.ins_name_linked_list(name,b); s1.prt_linked_list();break;

14、case 0: coutmx2;switch(mx2)case 1: coutx.num;s1.del_num_linked_list(x);s1.prt_linked_list();break;Comment A9: error C2018: unknown character 0xa1error C2018: unknown character 0xa3error C2679: binary : no operator defined which takes a right-hand operand of type struct node (or there is no acceptabl

15、e conversion)error C2146: syntax error : missing ; before identifier nameerror C2065: name : undeclared identifier错误原因:符号错误。改正:把“。”改为“.”即可。10case 2: coutx。name; s1.del_name_linked_list(x);s1.prt_linked_list();break;case 0: coutmx3;switch(mx3)case 1:int i;couti; s1.sear_num_linked_list(i) ; break;cas

16、e 2:node x;coutx.name; s1.sear_name_linked_list(x) ; break;11case 0: cout#includeusing namespace std;struct node int num; char name10;float score;node *next;class linked_list 12private:node *head;public:linked_list();void prt_linked_list();void ins_num_linked_list(int i,node *b);void ins_name_linked

17、_list(char name,node *b);int del_num_linked_list(node);int del_name_linked_list(node);int sear_num_linked_list(int);void sear_name_linked_list(node);void count_linked_list(); /*建立链表*/ linked_list:linked_list()node *p,*q;p=new node;q=new node;p-num=101;strcpy(p-name,“aaa“);p-score=98; q-num=104;strcp

18、y(q-name,“ddd“);q-score=95; head=p;p-next=q;q-next=NULL; 13return ;/* 输出*/void linked_list:prt_linked_list()node *p;p=head;if(head=NULL)coutnumnamescorenext;while(p!=NULL);return;/*按学号插入*/void linked_list:ins_num_linked_list(int i,node *b) node *q;if(head=NULL)b-next=NULL;head=b;return;if(head-num=i

19、)b-next=head;head=b;return;q=head;14while(q-next!=NULL)if(q-next=NULL)coutnext=q-next;q-next=b; return;/*按姓名插入*/void linked_list:ins_name_linked_list(char name,node *b)node *q;if(head=NULL)b-next=NULL;head=b;return;if(strcmp(head-name,name)=0)b-next=head;head=b;return;q=head;while(q-next!=NULL)if(q-

20、next=NULL)coutnext=q-next;q-next=b; return;15/*按学号删除*/int linked_list:del_num_linked_list( node x ) node *p,*q;if(head=NULL)coutnum=x.num)p=head-next;delete head;head=p;return 1;q=head;while(q-next!=NULL)if(q-next=0)coutnext;q-next=p-next;delete p;return 1;/*按姓名删除*/int linked_list:del_name_linked_li

21、st( node x ) node *p,*q;if(head=NULL)coutname,x.name)=0)p=head-next;delete head;head=p;return 1;q=head;while(q-next!=NULL)if(q-next=0)coutnext;q-next=p-next;delete p;return 1;/*按学号查找*/int linked_list:sear_num_linked_list( int i ) node *q; if(head=NULL)coutnext!=NULL)if(q-num)!=i)coutnumnamescorenext

22、!=NULL)if(strcmp(p-name,x.name)!=0)coutnumnamescorescore;p=p-next;n+;ave=sum/n;coutmx;switch(mx) case 1: s1.prt_linked_list(); break;case 2: node *b=new node;int mx1;coutmx1;switch(mx1)case 1: int i; couti;coutb-numb-nameb-score ; s1.ins_num_linked_list(i,b);s1.prt_linked_list(); break;case 2: char

23、name10;coutname;coutb-numb-nameb-score ; s1.ins_name_linked_list(name,b); s1.prt_linked_list();break;case 0: coutmx2;switch(mx2)20case 1: coutx.num;s1.del_num_linked_list(x);s1.prt_linked_list();break;case 2: coutx.name; s1.del_name_linked_list(x);s1.prt_linked_list(); break;case 0: coutmx3;switch(m

24、x3)case 1:int i;couti; 21s1.sear_num_linked_list(i) ; break;case 2:node x;coutx.name; s1.sear_name_linked_list(x) ; break;case 0: cout“退出“endl; return 0; break; case 5:s1.count_linked_list();break;case 0: cout“程序结束“endl; return 0; return 0;22运行结果:23四、实验总结通过此次试验,加深了我对线性表(链式存储)的学习,使我对线性表(链式存储)有了深刻地认识,并学会了如何建立一个线性链表,以及如何根据自己的需求修改线性链表(插入元素、删除元素以及查找元素);同时也提高了自己的编程能力,知道了自己在编程方面的不足之处以及常犯的错误,使自己得到了很好的锻炼。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报