文档详情

本科生导师制问题.doc

发布:2019-04-16约6.27千字共9页下载文档
文本预览下载声明
数据结构实验报告 实验名称:本科生导师制问题 实验类型:综合性实验 实验日期:2012.5.30 1.问题描述 (2)本科生导师制问题 在高校的教学改革中,有很多学校实行了本科生导师制。一个班级的学生被分给几个老师,每个老师带n个学生,如果该老师还带研究生,那么研究生也可直接带本科生。本科生导师制问题中的数据元素具有如下形式: 导师带研究生 (老师,((研究生1,(本科生1,…,本科生m1)),(研究生2,(本科生1,…,本科生m2))…)) 导师不带研究生 (老师,(本科生1,…,本科生m)) 导师的自然情况只包括姓名、职称;研究生的自然情况只包括姓名、班级;本科生的自然情况只包括姓名、班级。 2.数据结构设计 (2)本科生导师制问题 typedef struct GLNode { char name[100]; /*教师或学生的姓名*/ char prof[100]; /*教师结点表示职称,学生结点表示班级*/ int type; /*结点类型:0-教师,1-研究生,2-本科生*/ struct {struct GLNode *hp, *tp;} ptr; /*hp指向同级的下一结点,tp指向下级的首结点*/ }GList; 3.算法设计 (2)本科生导师制问题 建立:建立导师广义表。 插入:将某位本科生或研究生插入到广义表的相应位置。 删除:将某本科生或研究生从广义表中删除。 查询:查询导师、本科生(研究生)的情况。 统计:某导师带了多少个研究生和本科生。 输出:将某导师所带学生情况输出。 退出:程序结束。 4.界面设计 (2)本科生导师制问题 5. 运行、测试与分析 (2)本科生导师制问题 6、源代码: (2)本科生导师制问题 #includeiostream void menu() { printf(*********************************************************************\n); printf(1.%35s\n,建立广义表); printf(2.%35s\n,插入学生); printf(3.%35s\n,删除学生); printf(4.%35s\n,查询信息); printf(5.%35s\n,统计导师的研究生,本科生人数); printf(6.%35s\n,输出广义表); printf(7.%35s\n,退出); printf(*********************************************************************\n); } //这部分源代码/index.php/2012/12/26/137/ int main(int argc,char *argv[]) { typedef *head; char str[100]; int choice; while(1) { menu(); printf(请输入你要选择的序号:\n); scanf(%d,choice); switch(choice) { case 1:{ printf(请输入你想建立的标准广义表,例如:((高老师-教授-0,(李平-一班-2,杨梅-二班-2)),(李平-博士-0,(李平-三班-1,(李平-四班-2))))\n); scanf(%s,str); head=glistcreate(str); } break; case 2:head=studentinsert(head); break; case 3:head=studentdelete(head); break; case 4:enquire(head); break; case 5:studentcount(head); break; case 6:glistprint(head); break; case 7:return 0; } } return 0; } 7.实验收获及思考 熟悉了编译环境,并且对程序调试中出现的一些问题有了较好的解决方法,为以后的实验打下了良好的基础。学会了解决具体问题的方法,增强实践能力,将理论与实践相结合,以便于知识的扎实与巩固。 另一种方法。C语言 #include stdio.h #include string.h #include malloc.h typedef char DataType; #include GList.h void main() { char str1[]=(((a,b
显示全部
相似文档