- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验五 查找、排序的应用
一、实验目的
1、本实验可以使学生更进一步巩固各种查找和排序的基本知识。
2、学会比较各种排序与查找算法的优劣。
3、学会针对所给问题选用最适合的算法。
4、掌握利用常用的排序与选择算法的思想来解决一般问题的方法和技巧。
二、实验内容
[问题描述]
对学生的基本信息进行管理。
[基本要求]
设计一个学生信息管理系统,学生对象至少要包含:学号、姓名、性别、成绩1、成绩2、总成绩等信息。要求实现以下功能:
1.总成绩要求自动计算;
2.查询:分别给定学生学号、姓名、性别,能够查找到学生的基本信息(要求至少用两种查找算法实现);
3、排序:分别按学生的学号、成绩1、成绩2、总成绩进行排序(要求至少用两种排序算法实现)。
[测试数据]
由学生依据软件工程的测试技术自己确定。
三、程序清单
#include iostream
using namespace std;
#include string
#define MAXSIZE 100 //设记录不超过20个
typedef struct //定义每个记录(数据元素)的结构
{
string xingming; //姓名
string xingbei; //性别
float xuehao; //学号
float chengji1,chengji2; //成绩1,成绩2
float zong; //总分
}RecordType;
typedef struct //定义顺序表的结构
{
RecordType r[ MAXSIZE +1 ]; //存储顺序表的向量
int length; //顺序表的长度
}SqList;
void caidan(SqList ST);
void CreatList(SqList ST)//创建学生的相关信息
{
cout输入学生个数endl;
cinST.length;
for(int i=0;iST.length;i++)
{
cout输入第i+1学生的信息endl;
cout学号endl;
cinST.r[i].xuehao;
cout姓名endl;
cinST.r[i].xingming;
cout性别endl;
cinST.r[i].xingbei;
cout成绩1endl;
cinST.r[i].chengji1;
cout成绩2endl;
cinST.r[i].chengji2;
}
cout输入完毕endl;
}
void zong(SqList ST) //计算总分
{
for(int i=0;iST.length;i++)
{
ST.r[i].zong=ST.r[i].chengji1+ST.r[i].chengji2;
}
}
void shuchu(SqList ST)//输出
{
cout学生的信息如下endl;
cout学号 姓名 性别 成绩1 成绩2 总分 endl;
for(int i=0;iST.length;i++)
{
coutST.r[i].xuehao ST.r[i].xingming ST.r[i].xingbei ST.r[i].chengji1 ST.r[i].chengji2 ST.r[i].zong endl;
}
}
void chaxun(SqList ST) //查询信息
{
l1: coutendl;
cout(1)根据学号查询endl;
cout(2)根据姓名查询endl;
cout(3)根据性别查询endl;
cout(4)退出endl;
int n,m;
string name;
string xb;
cinm;
if(m==1) //折半查找
{
RecordType LI; //使学号变为有序
for(int i=1;iST.length;i++)
for(int j=i;j=1;j--)
if(ST.r[j].xuehaoST.r[j-1].xuehao)
{
LI=ST.r[j];
ST.r[j]=ST.r[j-1];
ST.r[j-1]=LI;
}
l2: int a=0;
cout输入要查找的学号endl;
cinn;
int
文档评论(0)