ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:140.58KB ,
资源ID:10610585      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10610585.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验七查找.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验七查找.docx

1、实验七 查找 实验七 查找、排序的应用一、实验目的1、本实验可以使学生更进一步巩固各种查找和排序的基本知识。2、学会比较各种排序与查找算法的优劣。3、学会针对所给问题选用最适合的算法。4、掌握利用常用的排序与选择算法的思想来解决一般问题的方法和技巧。二、实验内容问题描述对学生的基本信息进行管理。 基本要求设计一个学生信息管理系统,学生对象至少要包含:学号、姓名、性别、成绩1、成绩2、总成绩等信息。要求实现以下功能:1总成绩要求自动计算;2查询:分别给定学生学号、姓名、性别,能够查找到学生的基本信息(要求至少用两种查找算法实现);3 排序:分别按学生的学号、成绩1、成绩2、总成绩进行排序(要求至

2、少用两种排序算法实现)。3主要功能:实现学生成绩的录入,并分别按照学号,姓名和性别进行查询,按照成绩1,2和总成绩分别排序。4主要实现函数1.折半查找for(i=1;i=1;j-) if(ST.rj.numST.rj-1.num) LI=ST.rj; ST.rj=ST.rj-1; ST.rj-1=LI;2.顺序查找=0; cout输入要查找的姓名name; for(i=0;iST.length;i+) if(name=ST.ri.name) coutST.ri.num ST.ri.name ST.ri.sex ST.ri.className ST.ri.mark1 ST.ri.mark2 ST

3、.ri.mark1+ST.ri.mark2endl;a=1;3.选择法排序for(i=0; iST.length;i+) for (j=i+1;jST.rj.sum) LI=ST.rj; ST.rj=ST.ri; ST.ri=LI;五源程序 #include #include #include using namespace std; #define MAXSIZE 100 typedef struct float num;/学生学号 string name;/学生姓名 string sex;/性别 char className20;/班级名称 float mark1;/第1门成绩 float

4、 mark2;/第2门成绩 float sum;/第3门成绩 DataType; typedef struct /定义顺序表的结构 DataType r MAXSIZE +1 ; /存储顺序表的向量 int length; /顺序表的长度 SqList; int menu() int i; cout /endl; cout 学生信息管理系统n endl; cout /endl; cout 1.输入成绩endl; cout 2.查询成绩endl; cout 3.成绩排序endl; cout 4.退出endl; cout请选择1-4:i; while(i4) cout对不起, 您输入错误!endl

5、; /提示输入是否错误 cout请重新输入1-4: i; return i; void CreatList(SqList &ST) /创建学生的相关信息 cout请输入学生的个数ST.length; cout 学号 姓名 性别 班级 成绩1 成绩2 endl; for(int i=0;iST.length;i+) cout输入第i+1学生的信息ST.ri.numST.ri.nameST.ri.sexST.ri.classNameST.ri.mark1ST.ri.mark2; cout完成输入endl; void output(SqList &ST)/输出 cout学生的信息如下endl; co

6、ut 学号 姓名 性别 班级 成绩1 成绩2 总分 endl; for(int i=0;iST.length;i+) coutsetw(6)ST.ri.numsetw(6)ST.ri.namesetw(6)ST.ri.sexsetw(6)ST.ri.classNamesetw(8)ST.ri.mark1setw(8)ST.ri.mark2setw(8)ST.ri.mark1+ST.ri.mark2 endl; void Query(SqList &ST) /查询信息 coutendl; cout (1)根据学号查询endl; cout (2)根据姓名查询endl; cout (3)根据性别查询

7、endl; cout (4)退出m; switch(m) case 1: /折半查找 for(i=1;i=1;j-) if(ST.rj.numST.rj-1.num) LI=ST.rj; ST.rj=ST.rj-1; ST.rj-1=LI; a=0; cout输入要查找的学号n; low=0;high=ST.length-1; / 置区间初值 while (low=high) mid=(low+high)/2; if(n=ST.rmid.num) coutST.rmid.num ST.rmid.name ST.rmid.sex ST.rmid.className ST.rmid.mark1 S

8、T.rmid.mark2 (ST.rmid.mark1+ST.rmid.mark2)endl; a=1; break; else if(nST.rmid.num) high=mid-1; / 继续在前半区间进行查找 else low=mid+1; / 继续在后半区间进行查找 if(!a) cout所查信息不存在!endl; cout请重新输入endl; break; case 2: /顺序查找 a=0; cout输入要查找的姓名name; for(i=0;iST.length;i+) if(name=ST.ri.name) coutST.ri.num ST.ri.name ST.ri.sex

9、ST.ri.className ST.ri.mark1 ST.ri.mark2 ST.ri.mark1+ST.ri.mark2endl; a=1; if(!a) cout所查信息不存在!endl; cout请重新输入endl; break; case 3: /顺序查找 a=0; cout输入要查找性别xb; for(i=0;iST.length;i+) if(xb=ST.ri.sex) coutST.ri.num ST.ri.name ST.ri.sex ST.ri.className ST.ri.mark1 ST.ri.mark2 ST.ri.mark1+ST.ri.mark2endl; a

10、=1; if(!a) cout所查信息不存在!endl; cout请重新输入endl; break; case 4: menu(); break; void sort(SqList &ST) /排序 int n,i,j; DataType LI; /定义存储学号向量 coutendl; cout (1)根据学号排序 endl; cout (2)根据成绩1排序endl; cout (3)根据成绩2排序endl; cout (4)根据总成绩排序endl; cout (5)退出n; switch(n) case 1: /按学号排序,使用插入排序 for(i=1;i=1;j-) if(ST.rj.nu

11、mST.rj-1.num) LI=ST.rj; ST.rj=ST.rj-1; ST.rj-1=LI; output(ST); cout排序成功endl; break; case 2: /按成绩1排序,用选择排序 for(i=0; iST.length;i+) for (j=i+1;jST.rj.mark1) LI=ST.rj; ST.rj=ST.ri; ST.ri=LI; output(ST); cout排序成功endl; break; case 3: / 根据成绩2排序,使用选择法排 for(i=0; iST.length;i+) for (j=i+1;jST.rj.mark2) LI=ST

12、.rj; ST.rj=ST.ri; ST.ri=LI; output(ST); cout排序成功endl; break; case 4: /根据总成绩排序,使用选择法排序 for(i=0; iST.length;i+) for (j=i+1;jST.rj.sum) LI=ST.rj; ST.rj=ST.ri; ST.ri=LI; output(ST); cout排序成功endl; break; case 5: /退出 menu(); break; void main() SqList ST; while(1) switch(menu() case 1: coutendl; cout endl;

13、 cout 1.成绩的输入 endl; cout endl; CreatList(ST); break; case 2: cout endl; cout 2.成绩的查询 endl; cout endl; Query(ST); break; case 3: cout endl; cout 3.成绩的排序 endl; cout endl; sort(ST); break; case 4: cout endl; cout 4.退出 endl; cout endl; exit(0); break; 六运行界面1.主界面2.输入界面3.按学号查询界面4.按姓名查询5.按性别查询6.按成绩1排序7.按成绩2 8.总成绩

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1