收藏 分享(赏)

本科生导师制问题设计方案.doc

上传人:myk79025 文档编号:6202413 上传时间:2019-04-02 格式:DOC 页数:5 大小:108KB
下载 相关 举报
本科生导师制问题设计方案.doc_第1页
第1页 / 共5页
本科生导师制问题设计方案.doc_第2页
第2页 / 共5页
本科生导师制问题设计方案.doc_第3页
第3页 / 共5页
本科生导师制问题设计方案.doc_第4页
第4页 / 共5页
本科生导师制问题设计方案.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、本科生导师制问题设计方案 1. 问题描述在高校的教学改革中,有很多学校实行了本科生导师制。一个班级的学生被分给几个老师,每个老师带领 n 个学生,如果老师还带研究生,那么研究生也可直接负责本科生。本科生导师制问题中的数据元素具有如下形式: 导师带研究生:(老师,( 研究生 1,(本科生 1, , 本科生 m), ) 导师不带研究生:(老师,(本科生 1, , 本科生 m)导师的自然情况只包括姓名、职称;研究生的自然情况只包括姓名、班级;本科生的自然情况只包括姓名、班级。2. 功能要求要求完成以下功能: 插入:将某位本科生或研究生插入到广义表的相应位置; 删除:将某本科生或研究生从广义表中删除;

2、 查询:查询导师、本科生(研究生)的情况; 统计:某导师带了多少个研究生和本科生; 输出:将某导师所带学生情况输出。3 实现要点对广义表采用头尾表示方的存储结构,在建立广义表时,由广义表的书写形式转化头尾存储结构,还要把人员信息的书面形式转化为具体的类。人员信息的书面形式用这样的形式:高老师-教授-0、李刚-二班 -1、李明-二班-2人员信息中的姓名、职称、班级、人员类型用“-”隔开,如:高老师 -教授-0 ,高老师表示姓名,教师表示职称,0 表示人员的类型是教师;李刚表示姓名,二班表示班级,1 表示人员的类型是研究生;李明表示姓名,二班表示班级,2 表示人员的类型是本科生4 类定义为人员信息

3、对象(存储学生、老师的姓名、班级或职称信息)建立 Personnel 类,其类定义如下:class Personnelpublic:Personnel(string st); Personnel();string GetPersonnelinfo();int GetTag();/返回人员类型string GetPersonnelname(); /返回人员姓名private:int tag; /标识人员的类型string personnelinfo; /学生班级和教师职称string personnelname; /人员姓名;在 Personnel 类中,提供了如下成员函数:(1)函数声明 :

4、Personnel(string st)完成的功能:有参构造函数,把 st 表示的信息转化为人员的相应信息(2)函数声明 : Personnel()完成的功能: 无参构造函数,初始化人员信息(3)函数声明 : string GetPersonnelinfo()完成的功能: 返回学生班级和教师职称信息(4)函数声明 : int GetTag() 完成的功能: 返回人员类型 (5)函数声明 : string GetPersonnelname ()完成的功能: 返回人员姓名为广义表的节点信息建立 GLNode 类,其类定义如下:template struct GLNodeint tag; T dat

5、a; struct atomGLNode *hp, *tp; ptr;为广义表建立 GLists 类,其类定义如下:template class GListspublic:GLists();GLists(string st);GLists(GLists ls1, GLists ls2); GLists( )delete ls; int Depth( ); GLists *Head( ); GLists *Tail( ); void Prnt(); void QueryInfo(GLNode * ls,string manname);void StatisticInfo(GLNode * ls,

6、string mannameg);void StudentInfo(GLNode * ls,string mannameg);bool DelStudent(GLNode * ls,string mannameg); bool InsertStudent(GLNode * ls,string mannameg,string stuinfo); void Setinfo();void Outinfo();GLNode * Getls();void OutStatisticinfo() ; private:GLNode * ls; string stprt;void Server(string G

7、LNode * Crtlists(string st);void Ena(string str);void Prt(GLNode * ls);int NumberStudent; int Numbergraduate;bool outflag ;在 GLists 类中,提供了如下成员函数:(1) 函数声明 : GLists() 完成的功能:初始化为空的广义表(2)函数声明 : GLists(string st)完成的功能: 按广义表的书面格式建立广义表的存储结构截图:(3)函数声明 : GLists(GLists ls1, GLists ls2)完成的功能: 用表头 ls1 和表尾 ls2 构

8、造广义表(4)函数声明 : GLists( ) 完成的功能: 释放广义表中各结点的存储空间 (5)函数声明 : int Depth( )完成的功能: 求广义表的深度(6)函数声明 : GLists *Head( ) 完成的功能: 求广义表的表头(7)函数声明 : GLists *Tail( )完成的功能: 求广义表的表尾(8)函数声明 : void Prnt()完成的功能: 将广义表显示出来(9)函数声明 : void QueryInfo(GLNode * ls,string manname) 完成的功能: 查询 ls 所指的广义表中的姓名为 manname 的信息 截图:(10)函数声明:

9、void StatisticInfo(GLNode* ls,string mannameg) 完成的功能: 统计 ls 所指的广义表中的姓名为 mannameg 的老师所带的学生人数截图: (11) 函数声明 : void StudentInfo(GLNode * ls,string mannameg) 完成的功能: 显示 ls 所指的广义表中的姓名为 manname 的老师所带的学生截图:(12)函数声明: bool DelStudent(GLNode * ls,string mannameg)完成的功能: 删除 ls 所指的广义表中的姓名为 mannameg 的学生截图:(13)函数声明:

10、bool InsertStudent(GLNode * ls,string mannameg,string stuinfo)完成的功能: 把学生信息为 stuinfo 的学生插入到 ls 所指的广义表中的姓名为 mannameg 的后边截图:(14)函数声明: void Setinfo() 完成的功能: 初始化广义表的信息 (15)函数声明: void Outinfo()完成的功能: 输出广义表的信息(16) 函数声明 : GLNode * Getls() 完成的功能: 输出广义表的 ls 成员(17)函数声明: void OutStatisticinfo()完成的功能: 显示统计姓名为 manname 的老师所带的学生人数的信息(18)函数声明: void Server(string &st,string &hst)完成的功能: 从 st 中取出第一成员存入到 hst,其余的成员留在 st 中(19)函数声明: GLNode * Crtlists(string st)完成的功能: 把广义表的书面格式 st 转化为广义表的头尾存储结构 (20)函数声明: void Ena(string str)完成的功能: 把 str 表示信息存储到 stprt 中,已备以后显示(21)函数声明: void Prt(GLNode * ls)完成的功能: 将 ls 所指的广义表显示出来

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 解决方案

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报