本科生导师制问题.doc
文本预览下载声明
数据结构实验报告
实验名称:本科生导师制问题
实验类型:综合性实验
实验日期: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.htypedef char DataType;#include GList.hvoid main(){ char str1[]=(((a,b
显示全部