版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、云南大学物理实验教学中心实验报告课程名称: 计算机软件技术基础实验项目: 线性表(链式存储)及其应用学生姓名:学号: 学院系级 专业成绩指导教师: 实验时间:年 时 分至 时 分实验地点:实验类型:教学(演示 验证 综合 设计)学生科研 课外开放测试其它23一、实验目的:掌握链式存储结构下线性表的建立及基本操作。二、问题:建立一个采用链式存储的线性表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:输出、查找、插入、删除功能,并计算出平均成绩和总成绩。三、程序的编写与调试1、原程序:#include<iostream>#include<iomanip>
2、;using 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();void 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(
3、node);int sear_num_linked_list(int);void sear_name_linked_list(node);void count_linked_list(); error C2533: 'linked_list:linked_list' : constructors not allowed a return typeerror C2264: 'linked_list:linked_list' : error in function definition or declaration; function not called错误原因:
4、“”后缺少“;”改正:在“”后面加上“;” /*建立链表*/ 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_l
5、ist()node *p;p=head;if(head=NULL)cout<<"空链表!”error C2001: newline in constanterror C2143: syntax error : missing '' before 'else'error C2181: illegal else without matching iferror C2601: 'ins_num_linked_list' : local function definitions are illegal error C2601:
6、39;ins_name_linked_list' : local function definitions are illegalerror C2601: 'del_num_linked_list' : local function definitions are illegalerror C2601: 'del_name_linked_list' : local function definitions are illegalerror C2601: 'sear_num_linked_list' : local function def
7、initions are illegalerror C2601: 'sear_name_linked_list' : local function definitions are illegalerror C2601: 'count_linked_list' : local function definitions are illegalerror C2601: 'main' : local function definitions are illegalfatal error C1004: unexpected end of file foun
8、d错误原因:符号错误,“”为中文引号。改正:把中文引号改为英文引号即可。<<endl;return; else docout<<p->num<<" "<<p->name<<" "<<p->score<<endl;p=p->next;while(p!=NULL);return;/*按学号插入*/void linked_list:ins_num_linked_list(int i,node *b) node *q;if(head=NULL)b->
9、next=NULL;head=b;return;if(head->num=i)b->next=head;head=b;return;q=head;while(q->next!=NULL)&&(q->next)->num)!=i)q=q->next;if(q->next=NULL)cout<<"无此元素"<<endl;return; b->next=q->next;q->next=b; return;/*按姓名插入*/void linked_list:ins_name_link
10、ed_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;error C2143: syntax error : missing '' before 'return'错误原因:return前面缺少“;”改正:在return前面加上“;”。q=head;while(q->next!=NULL)&&(strcmp(q->n
11、ext)->name,name)!=0)q=q->next;if(q->next=NULL)cout<<"无此元素"<<endl;return; b->next=q->next;q->next=b; return;/*按学号删除*/int linked_list:del_num_linked_list( node x ) node *p,*q;if(head=NULL)cout<<"空链表!"<<endl;return 0;if(head->num=x.num)p=
12、head->next;delete head;head=p;return 1;q=head;while(q->next!=NULL)&&(q->next)->num)!=x.num)q=q->next;if(q->next=0)cout<<"链表中无此元素"<<endl;return 0;p=q->next;q->next=p->next;delete p;return 1;/*按姓名删除*/int linked_list:del_name_linked_list( node x
13、) node *p,*q;if(head=NULL)cout<<"空链表!"<<endl;return 0;if(strcmp(head->name,)=0)p=head->next;delete head;head=p;return ;错误:error C2561: 'del_name_linked_list' : function must return a value错误原因:返回值出错;必须要返回一个值。改正:把“return”改为“return 1”q=head;while(q->next!=N
14、ULL)&&(strcmp(q->next)->name,)!=0)q=q->next;if(q->next=0)cout<<"链表中无此元素"<<endl;return 0;p=q->next;q->next=p->next;delete p;return 1;/*按学号查找*/int linked_list:sear_num_linked_list( int i ) node *q; if(head=NULL)cout<<"空链表!"<&l
15、t;endl;return 0;q=head;while(q->next!=NULL)&&(q->num)!=i)q=q->next;if(q->num)!=i)cout<<"无此元素"<<endl;return 0;cout<<q->num<<" "<<q->name<<" "<<q->score<<endl;warning C4715: 'linked_list:sear
16、_num_linked_list' : not all control paths return a value警告原因:没有控制返回值。改正:在“”前面加上返回语句“return 1;”/*按姓名查找*/void linked_list:sear_name_linked_list(node x ) node *p; if(head=NULL)cout<<"空链表!"<<endl;return;p=head;while(p->next!=NULL)&&(strcmp(p->name,)!=0)p=p-&
17、gt;next;if(strcmp(p->name,)!=0)cout<<"无此元素"<<endl;return 0error C2562: 'sear_name_linked_list' : 'void' function returning a valu错误原因:返回值出错,不能返回0。改正:删除return后面的0.;cout<<p->num<<" "<<p->name<<" "<<p
18、->score<<endl;/*计算*/void linked_list:count_linked_list() float sum=0,ave;int n=0;node *p;p=head;if(p=0)cout<<"空链表"<<endl;else while(p!=0)sum=sum+p->score; p=p->nxt;error C2039: 'nxt' : is not a member of 'node'错误原因:字符出错,输入时输入出错。改正:把“nxt”改为“next”。
19、n+;ave=sum/n;cout<<"总 分="<<sum<<endl;cout<<"平均分="<<ave<<endl;return ;/*主函数*/int main() int mx;linked_list s1; while(1) cout<<"1.输出 2.插入 3.删除 4.查找 5.计算 0.退出"<<endl; cout<<"请输入0-5:" cin>>mx; switch(mx)
20、case 1: s1.prt_linked_list(); break;case 2: node *b=new node; int mx1;cout<<" 1.按学号插入 2.按姓名插入 0.退出"<<endl; cout<<"输入0-2:" cin>>mx1;switch(mx1) case 1error C2065: 'i' : undeclared identifier错误原因:没有对变量“i”定义。改正:对“i”进行定义,即在case 1后面加上语句“int i;”: cout<
21、;<"请输入要插入位置的学号(在此之前一位插入):" cin>>i; cout<<"请输入要插入的学号、姓名、成绩:"cin>>b->num>>b->name>>b->score ; s1.ins_num_linked_list(i,b); s1.prt_linked_list();break;case 2: char name10; cout<<"请输入要插入位置的姓名(在此之前一位插入):"cin>>name;cout<
22、;<"请输入要插入的学号、姓名、成绩:" cin>>b->num>>b->name>>b->score ; s1.ins_name_linked_list(name,b); s1.prt_linked_list();break;case 0: cout<<"退出"<<endl; return 0;break;case 3: int mx2; node x;cout<<"请输入要删除的: 1.按学号删除 2.按姓名删除 0.退出"<&l
23、t;endl;cout<<"输入0-2:" cin>>mx2;switch(mx2)case 1: cout<<"请输入要删除的学号:" cin>>x.num; s1.del_num_linked_list(x);s1.prt_linked_list();break;case 2: cout<<"请输入删除姓名:" cin>>x。error C2018: unknown character '0xa1'error C2018: unknown ch
24、aracter '0xa3'error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'struct node' (or there is no acceptable conversion)error C2146: syntax error : missing '' before identifier 'name'error C2065: 'name' : undecla
25、red identifier错误原因:符号错误。改正:把“。”改为“.”即可。name; s1.del_name_linked_list(x); s1.prt_linked_list();break;case 0: cout<<"退出"<<endl; return 0; break; case 4: int mx3; cout<<"1.按学号查找 2.按姓名查找 0.退出"<<endl;cout<<"输入0-2:" cin>>mx3; switch(mx3)cas
26、e 1:int i; cout<<"请输入要查找的学号:" cin>>i; s1.sear_num_linked_list(i) ; break;case 2:node x; cout<<"请输入要查找的姓名:" cin>>; s1.sear_name_linked_list(x) ; break;case 0: cout<<"退出"<<endl; return 0; break; case 5:s1.count_linked_list();break
27、;case 0: cout<<"程序结束"<<endl; return 0; return 0;2、正确程序:#include<iostream>#include<iomanip>using 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();void ins_num_link
28、ed_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 count_linked_list(); /*建立链表*/ linked_list:linked_list()node *p,*q;p=new node;q=new node;p->num=101;s
29、trcpy(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;p=head;if(head=NULL)cout<<"空链表!"<<endl; return; else docout<<p-
30、>num<<" "<<p->name<<" "<<p->score<<endl;p=p->next;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)b->next=head;head=b;return;q=head
31、;while(q->next!=NULL)&&(q->next)->num)!=i)q=q->next;if(q->next=NULL)cout<<"无此元素"<<endl;return; b->next=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;i
32、f(strcmp(head->name,name)=0)b->next=head;head=b;return;q=head;while(q->next!=NULL)&&(strcmp(q->next)->name,name)!=0)q=q->next;if(q->next=NULL)cout<<"无此元素"<<endl;return; b->next=q->next;q->next=b; return;/*按学号删除*/int linked_list:del_num_link
33、ed_list( node x ) node *p,*q;if(head=NULL)cout<<"空链表!"<<endl;return 0;if(head->num=x.num)p=head->next;delete head;head=p;return 1;q=head;while(q->next!=NULL)&&(q->next)->num)!=x.num)q=q->next;if(q->next=0)cout<<"链表中无此元素"<<endl;
34、return 0;p=q->next;q->next=p->next;delete p;return 1;/*按姓名删除*/int linked_list:del_name_linked_list( node x ) node *p,*q;if(head=NULL)cout<<"空链表!"<<endl;return 0;if(strcmp(head->name,)=0)p=head->next;delete head;head=p;return 1;q=head;while(q->next!=NULL)
35、&&(strcmp(q->next)->name,)!=0)q=q->next;if(q->next=0)cout<<"链表中无此元素"<<endl;return 0;p=q->next;q->next=p->next;delete p;return 1;/*按学号查找*/int linked_list:sear_num_linked_list( int i ) node *q; if(head=NULL)cout<<"空链表!"<<en
36、dl;return 0;q=head;while(q->next!=NULL)&&(q->num)!=i)q=q->next;if(q->num)!=i)cout<<"无此元素"<<endl;return 0;cout<<q->num<<" "<<q->name<<" "<<q->score<<endl;return 1;/*按姓名查找*/void linked_list:sear_
37、name_linked_list(node x ) node *p; if(head=NULL)cout<<"空链表!"<<endl;return;p=head;while(p->next!=NULL)&&(strcmp(p->name,)!=0)p=p->next;if(strcmp(p->name,)!=0)cout<<"无此元素"<<endl;return;cout<<p->num<<" "
38、;<<p->name<<" "<<p->score<<endl;/*计算*/void linked_list:count_linked_list() float sum=0,ave;int n=0;node *p;p=head;if(p=0)cout<<"空链表"<<endl;else while(p!=0)sum=sum+p->score; p=p->next; n+;ave=sum/n;cout<<"总 分="<<
39、;sum<<endl;cout<<"平均分="<<ave<<endl;return ;/*主函数*/int main() int mx;linked_list s1; while(1) cout<<"1.输出 2.插入 3.删除 4.查找 5.计算 0.退出"<<endl; cout<<"请输入0-5:" cin>>mx; switch(mx) case 1: s1.prt_linked_list(); break;case 2: node
40、 *b=new node; int mx1;cout<<" 1.按学号插入 2.按姓名插入 0.退出"<<endl; cout<<"输入0-2:" cin>>mx1;switch(mx1) case 1: int i; cout<<"请输入要插入位置的学号(在此之前一位插入):"cin>>i; cout<<"请输入要插入的学号、姓名、成绩:"cin>>b->num>>b->name>>b->score ; s1.ins_num_linked_list(i,b); s1.prt_linked_list();break;case 2: char name10; cout<<"请输入要插入位置的姓名(在此之前一位插入):
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新学期学习进步承诺保证书
- 输送带安装手册协议
- 瓷砖购买销售合同模板
- 控制电缆采购招标条件
- 2024投资合同范本中外合资经营企业合同(9)
- 2024建筑工程外架合同
- 2024游戏源码生成植入sdk服务合同
- 2021年注册会计师《公司战略与风险管理》考试题库及答案解析
- 新能源技术与智能电网建设考核试卷
- 党校培训处理结果汇报
- 2024年全国企业员工全面质量管理知识竞赛活动题库(完整)
- CJ/T 158-2002 城市污水处理厂管道和设备色标
- AQ/T 9009-2015 生产安全事故应急演练评估规范(正式版)
- 国家开放大学《心理学》形考任务1-4参考答案
- 三查四定表完整版本
- 乐山印象城市介绍旅游宣传PPT
- 国家开放大学《人文英语3》章节测试参考答案
- 水利工程常见图例
- 铁路站前工程承台工艺试验方案
- 精装修施工进度计划
- 城市综合管廊管线入廊协议示范文本(试行)
评论
0/150
提交评论