《数据结构》实验二: 线性表综合实验——(1)顺序表
来源:互联网 发布:韩子高 网络剧 编辑:程序博客网 时间:2024/06/05 07:12
《数据结构》实验二:
线性表综合实验
一.实验目的
巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。
二.实验时间
准备时间为第3周到第4周,具体集中实验时间为第4周第2次课。2个学时。
三..实验内容
1.建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。
要求如下:
1)用顺序表来实现。
2)用单链表来实现。
3)用双链表实现。
4)用静态链表实现。
5)用间接寻址实现。
分开写程序,可以一个方法分别写一博客文章上交作业。
2.实现两个集合的相等判定、并、交和差运算。要求:
1)自定义数据结构
2)自先存储结构,并设计算法。在VC中实现。
以上三题,第1题必须完成。第2和第3题可以作为选做题。
四.实验报告
1.在博客中先写上实习目的和内容,画出主要操作运算算法图,然后分别上传程序代码。插入调试关键结果截图。
2.单独写一个博文,比较总结线性表的几种主要存储结果。
1)用顺序表来实现。(C++)
1、操作运算算法图:
删除数据函数:
修改数据函数:
查找(按学号或姓名)函数:
遍历函数:
2、实验代码:
头文件:
#include<iostream>#include<iomanip>#include<string>using namespace std;
Student 结构体:
static int length=0;//计算已录入的学生人数struct Student//建立Student结构体{string name;int number;int chinese;int english;int sum;}stu[50];
插入数据函数:
void Insert(string na,int n,int c,int e){ stu[length].name=na;stu[length].number=n;stu[length].chinese=c;stu[length].english=e;stu[length].sum=c+e;length++;}
删除数据函数:
void Delete(int i){cout<<setw(10)<<stu[i].name<<setw(8)<<stu[i].number<<setw(10)<<stu[i].chinese<<setw(10)<<stu[i].english<<setw(8)<<stu[i].sum<<endl;for(int j=0;j<length-i;j++){stu[i-1+j]=stu[i+j];}length--;}
修改数据函数:
void Change(){int j;int k;int i;int n;string m;do{cout<<"请输入需要修改的序号。"<<endl;cin>>i;cout<<"若修改名字,请输入1;若修改学号,请输入2;"<<endl; cout<<"若修改语文成绩,请输入3;若修改英语成绩,请输入4!"<<endl;cin>>j;cout<<"请输入正确的信息!"<<endl;switch(j){case 1:cin>>m;stu[i-1].name=m;break;case 2:cin>>k;stu[i-1].number=k;break;case 3:cin>>k;stu[i-1].chinese=k;break;case 4:cin>>k;stu[i-1].english=k;break; default:cout<<"输入有误,请重新操作!"<<endl;} stu[i-1].sum=stu[i-1].chinese+stu[i-1].english; cout<<setw(10)<<stu[i-1].name<<setw(8)<<stu[i-1].number<<setw(10)<<stu[i-1].chinese<<setw(10)<<stu[i-1].english<<setw(8)<<stu[i-1].sum<<endl;cout<<"若需继续修改请输入1,否则输入0!"<<endl;cin>>n;}while(n==1);}
查找数据函数(按位置):
void Get(int i){ cout<<setw(10)<<stu[i].name<<setw(8)<<stu[i].number<<setw(10)<<stu[i].chinese<<setw(10)<<stu[i].english<<setw(8)<<stu[i].sum<<endl;}
查找数据函数(按学号或姓名):
void Locate(){int i,n;int t=0;int j;string m;do{cout<<"若依据学号查找,请输入1;若依据姓名查找,请输入2!"<<endl;cin>>i;switch(i){case 1:cout<<"请输入学生学号!"<<endl;cin>>j;for(n=0;n<length-1;n++){if(stu[n].number == j){cout<<setw(10)<<stu[n].name<<setw(8)<<stu[n].number<<setw(10)<<stu[n].chinese<<setw(10)<<stu[n].english<<setw(8)<<stu[n].sum<<endl;}}break; case 2:cout<<"请输入学生姓名!"<<endl;cin>>m;for(n=0;n<length-1;n++){if(stu[n].name == m){cout<<setw(10)<<stu[n].name<<setw(8)<<stu[n].number<<setw(10)<<stu[n].chinese<<setw(10)<<stu[n].english<<setw(8)<<stu[n].sum<<endl;}}break; default:cout<<"输入有误,请重新操作!"<<endl;}cout<<"若需继续查找请输入1,否则输入0!"<<endl;cin>>t;}while(t==1);}
遍历函数:
void Printlist(){for(int m=0;m<length;m++){for(int n=0;n<length;n++){if(stu[n].sum<stu[n+1].sum){ Student s;s = stu[n];stu[n] = stu[n+1];stu[n+1] = s;}}} cout<<setw(4)<<"序号"<<setw(10)<<"姓名"<<setw(8)<<"学号"<<setw(10)<<"语文成绩"<<setw(10)<<"英语成绩"<<setw(8)<<"总分"<<endl;for(int i=0;i<length;i++){cout<<setw(4)<<i+1<<setw(10)<<stu[i].name<<setw(8)<<stu[i].number<<setw(10)<<stu[i].chinese<<setw(10)<<stu[i].english<<setw(8)<<stu[i].sum<<endl;}}
主函数:
void main(){//第一次录入数据Insert("张三",01,85,95); Insert("里斯",02,75,85); Insert("王果",03,86,87); Insert("范德萨",04,93,96); Insert("郭芙蓉",05,84,82);Printlist();cout<<setw(1)<<endl; //添加数据 Insert("温热",06,85,79);Printlist();cout<<setw(1)<<endl; //修改数据Change();cout<<setw(1)<<endl; //按照名字和学号查找Printlist();cout<<setw(1)<<endl;Locate();cout<<setw(1)<<endl;//按照位置查找Get(3);cout<<setw(1)<<endl;//删除数据Delete(3);cout<<setw(1)<<endl;Printlist();}
3、实验截图:
第一次录入数据:
添加数据:
修改数据:
按照名字和学号查找:
按照位置查找:
删除数据:
阅读全文
0 0
- 《数据结构》实验二: 线性表综合实验——(1)顺序表
- 数据结构:实验二线性表综合实验①顺序表
- 实验二 线性表综合实验——顺序表
- 《数据结构》实验二 线性表综合实验
- 数据结构线性表的综合实验——顺序表
- 《数据结构》实验二:线性表综合实验——(4)静态链表
- 《数据结构》实验二:线性表综合实验——(2)单链表
- 《数据结构》实验二:线性表综合实验——(3)双链表
- 《数据结构》实验二:线性表综合实验——(5)间接寻址
- 实验二 线性表综合实验(1)
- 《数据结构》实验二:线性表的实验(顺序表)
- 《数据结构》实验二:线性表的实验(顺序表)
- 实验二 线性表综合实验之顺序表
- 实验二 线性表综合实验之《顺序表》
- 实验二线性表综合实验-顺序表
- 数据结构:实验二线性表综合实验②单链表
- 数据结构:实验二线性表综合实验③双链表
- 实验二 线性表综合实验——单链表
- AsyncTask 源码解析
- db2中的常用数据类型
- linux终端常用快捷键
- [siggraph17]《使命召唤13:无限战争》光照技术
- JDK 、Tomcat、 Mysql, 安装、配置、优化
- 《数据结构》实验二: 线性表综合实验——(1)顺序表
- jcaptcha实现字母验证码
- Java for Web学习笔记(八五):SOAP(2)小例子
- Gym
- Dagger & Konlin
- 每日掌握一个Linux命令 之 显示或设置系统时间与日期 date命令
- 数据结构——第三讲、树(上)(2)
- PHP环境搭建
- 闲下来的程序员能做点什么