用二叉树来实现学生健康情况管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【综设实验题目】
实现学生健康情况管理的几个操作功能(新建、插入、删除、从文件读取、写入文件和查询、屏幕输出等功能)。健康表中学生的信息有学号、姓名、出生日期、性别、身体状况等。
实验内容
1.利用二叉树来实现
2.系统的菜单功能项如下:
1------新建学生健康表
2------向学生健康表插入学生信息
3------在健康表删除学生信息
4------从文件中读取健康表信息
5------向文件写入学生健康表信息
6------在健康表中查询学生信息(按学生学号来进行查找)
7------在屏幕中输出全部学生信息
8-----退出
【中文摘要】这次实验主要用二叉树来实现简单的学生健康管理系统,为了方便查找,进一步使用排序二叉树来实现。系统的功能包括:向学生健康表插入学生信息,在健康表删除学生信息,从文件中读取健康表信息,向文件写入学生健康表信息,在健康表中查询学生信息(按学生学号来进行查找),在屏幕中输出全部学生信息等。健康表中学生的信息有学号、姓名、出生日期、性别、身体状况等。
【关键词】排序二叉树学生健康管理系统学生信息
【前言】
本次实验是为了进一步熟悉和掌握VC环境下的编译、调试和执行的方法及步骤,熟悉二叉树存储的实现方式及其应用。
【实验设计】
以排序二叉树为储存机制,可以方便的实现插入或删除学生信息。每个学生的信息储存在一个结构体Sstudent中,并且这个结构体带有输出学生信息的函数ouput()。然后以这个结构体作为二叉树节点的数据类型,这样就实现了学生信息的储存。在创建二叉树对象时将已存储在文件中的学生信息写入二叉树,在析构函数里实现将学生信息写入文件。
【实验实现】
软件平台:VC++ 6.0
硬件平台:32位机器
主要功能模块分析:
1、储存一个学生的信息:
/******************************************************************* Sstudent.h 文件
*******************************************************************/ #ifndef _Sstudent_h_
#define _Sstudent_h_
#include
using namespace std;
struct birthday //出生日期
{
unsigned short day;
unsigned short month;
unsigned short year;
};
struct Sstudent //一个学生的基本信息
{
char number[12]; //学号
char name[12]; //名字
struct birthday bd; //出生日期
char gender[4]; //性别
char healthcase[10]; //健康情况
Sstudent(){}
void input(); //输入学生的基本信息
void output(); //输出学生的基本信息
void operator =(Sstudent s);
bool operator < (Sstudent &s);
bool operator == (Sstudent s);
bool operator > (Sstudent &s);
};
void Sstudent::input() //输入一个学生的信息
{
cout<<"请输入学生信息:"< cout<<"请输入学生的学号:"; cin>>number; cout<<"请输入学生的名字:"; cin>>name; cout<<"请输入学生的性别:"; cin>>gender; cout<<"请输入学生生日的日期(年、月、日):"; cin>>bd.year>>bd.month>>bd.day; cout<<"请输入学生的健康情况(良好或差):"; cin>>healthcase; cout< 1 } void Sstudent::output() //输出一个学生的信息 { cout<<"学号: "< <<"姓名: "< <<"性别: "< <<"生日: "< <<"健康情况: "< } void Sstudent::operator =(Sstudent s) { strcpy(number,s.number); strcpy(name,); strcpy(gender,s.gender); bd.year=s.bd.year; bd.month=s.bd.month; bd.day=s.bd.day; strcpy(healthcase,s.healthcase); } bool Sstudent::operator < (Sstudent &s) { if(strcmp(number,s.number) == -1) //若number 小于 s.number return true; else return false; } bool Sstudent::operator == (Sstudent s) { if( !strcmp(name,) ) //若name 等于 s.number if( !strcmp(number,s.number) ) //若num 等于 s.number return true; return false; } bool Sstudent::operator > (Sstudent &s) { if(strcmp(number,s.number) == 1) //若number 大于 s.number return true; else return false; } #endif 2、将文件中的学生健康信息写进排序二叉树 2