资源简介
利用二叉排序树实现学生成绩处理
(1)每个学生信息包括:学号,姓名,成绩三个字段
(2)创建:按成绩构建二叉排序树,存储学生数据;
(3)查找:在建立好的二叉排序树中,根据学号或姓名查找学生成绩;
(4)排序:对学生信息按照成绩进行排序;
代码片段和文件信息
#include
#include
#include
# define max 100
# define null 0
struct student //定义学生实体结构体
{
int id;
char name[15];
float score;
struct student *lchild*rchild;
};
struct student *inserttree(struct student *tree);//录入信息的函数
struct student *find_id(struct student *tree int x);//按学号查找
struct student *find_name(struct student *treechar *name);//按姓名查找
void midorder(struct student *tree);//中序输出信息
int main() //主函数
{
int choose;
struct student *tree *findi;
int flag id;
char name[15];
flag=1;
tree=null;
do
{
printf(“\n\n************************************************\n\n\n“);
printf(“----------------欢迎使用本系统\n\n1----------创建排序二叉树并录入学生信息\n\n“);
printf(“2----------按学号查找\n\n3----------按姓名查找\n\n“);
printf(“4----------按成绩排序输出\n\n“);
printf(“\n\n************************************************\n“);
scanf(“%d“&choose);
switch(choose)
{
case 1:
tree=inserttree(tree);
break;
case 2:
printf(“请输入要查找的学生的学号:“);
scanf(“%d“&id);
findi=find_id(treeid);
if(findi==null)
printf(“没有找到符合要求的学生\n\n“);
else
printf(“该学生信息为学号%d\t姓名%s\t分数%.1f\n\n“findi->idfindi->namefindi->score);
break;
case 3:
printf(“请输入要查找的学生的姓名:“);
scanf(“%s“&name);
findi=find_name(treename);
if(findi==null)
printf(“没有找到符合要求的学生\n\n“);
else
printf(“该学生信息为学号%d\t姓名%s\t分数%.1f\n\n“findi->idfindi->namefindi->score);
break;
case 4:
if(tree!=NULL)
{
printf(“学生信息为:\n\n\n“);
midorder(tree);
}
else
printf(“暂时没有学生信息!\n\n\n“);
break;
default: printf(“error\n“);
}
printf(“继续操作请
评论
共有 条评论