以下为《算法与数据结构 课程 第四次实验报告》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
XX农业大学 2021 –2022 学年 第一学期
算法与数据结构 课程 第四次实验报告
学生姓名:梁某某 学号:***50119 专业班级:电信2001班 ***:机电***
同组人: 指导教师:范某某 批阅日期: 成 绩:
一、实验目的
设计并实现一个学生管理系统,即定义一个包含学生信息(学号,姓名,成绩)的的顺序表,可以不考虑重名的情况,系统至少包含以下功能:
(1)根据指定学生个数,逐个输入学生信息;
(2)逐个显示学生表中所有学生的相关信息;
(3)给定一个学生信息,插入到表中指定的位置;
(4)删除指定位置的学生记录;
(5)统计表中学生个数;
(6)利用快速排序按照学号进行排序;
(7)分别利用直接插入排序和折半插入排序按照成绩进行排序;
(8)根据成绩进行折半查找,成功返回此学生的学号和姓名。
二、实验设备及器件
Dev-C++
三、实验原理及内容
/
#include
#include
#include
#include
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100
typedef int Status; // 定义函数返回值类型
typedef struct
{
double no; // 学号
char name[20]; // 姓名
double grade; // 成绩
}student;
typedef student ElemType;
typedef struct
{
ElemType *elem; // 存储空间的基地址
int length; // 当前长度
}SqList;
Status InitList(SqList *L) // 构造空的顺序表 L
{
L->elem=(ElemType *)malloc(sizeof(ElemType)*MAXSIZE);//为顺序表分配一个大小为MAXSIZE的空间
if(!L->elem) exit(OVERFLOW);
L->length=0;
return OK;
}
ElemType GetElem(SqList &L,int i) // 访问顺序表,找到 i位置,返回给 e
{
return L.elem[i];
}
void Input(ElemType* e)
{
printf("学号:"); scanf("%lf", &e->no);
printf("姓名:"); scanf("%s", &e->name);
printf("成绩:"); scanf("%lf", &e->grade);
printf("输入完成\n\n");
}
void Output(ElemType* e)
{
printf("学号(6位某某):%-10.0lf\t 姓名:%-20s\t 成绩:%-10.1lf\t\n", e->no, e->name, e- 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 :\n");
scanf("%d",&f);
Search(&L,f);
puts("\n");
break;
}
}
printf("\n\n谢谢您的使用,请按任意键退出\n\n\n");
system("pause");
return 0;
}
四、总结与反思
本次实验较为困难,让我充分认识到了自己的不足,尤其是在实验过程中不能充分的应用各种较为便利的实验方法,同时也无法合理的做到更好的总结,希望以后能加强个人能力,以便更好地完成实验内容。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《算法与数据结构 课程 第四次实验报告》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。