用二叉树来实现学生健康情况管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档