数据结构 本科生导师制问题
复旦大学大数据学院本科生课程学习手册

复旦大学大数据学院本科生课程学习手册目录第一章前言 (2)第二章大数据学院本科生培养模式 (3)2.1培养理念 (3)2.2数据科学与大数据技术“2+2”培养模式 (4)第三章课程体系 (4)3.1“2+2”培养体系 (5)3.2卓越计划 (10)第四章主要课程简介 (12)4.1专业必修课程 (12)4.2专业选修课程 (19)第五章未来发展 (25)5.1 未来深造 (25)5.2 就业前景 (27)第一章前言大数据伴随着信息技术革命应运而生, 互联网、物联网、移动通讯、行业企业等数据的大量汇聚使得数据演化为重要的生产力,逐渐成为经济的新资源、发展的新引擎、信息的新矿山、科研的新依据、决策的新源泉。
大数据的存取、交换、分析、应用对相关学科带来了诸多新挑战,在极大程度上改变了计算机科学、统计学和计算数学的内涵与外延:从硬件到软件、从存储到超算、从数据库到数据安全、从网络传输到并行计算、从数据分析到统计建模、从科学计算到优化方法等。
数据科学与大数据技术专业是教育部2015年批准新增设立的本科专业。
数据科学植根于数学、统计学、计算机科学等学科,但是在研究对象、方法论、学科体系等方面又与这些学科有显著不同。
数据科学的内涵包含了两个层次,第一个层次是以来源多样、结构各异、规模巨大、传输高速、应用广泛的大数据为研究对象,解决大数据在获取、处理、分析、展示与应用领域的理论与实践问题,如数据挖掘、机器学习、人工智能、数据库、统计计算等领域;第二个层次则是以大数据为研究手段的数据交叉科学,如生物信息、精准医疗、电子商务、大数据金融、智能电网、智慧城市等领域,大数据分析技术为这些学科提供了新的研究范式、也在解决这些学科计算复杂性问题的过程中获得近一步的发展。
由此可见,数据科学与大数据技术专业的内涵已经超出了传统学科的范畴,而是通过将统计分析、系统计算、交叉科学等有机整合,形成一套面向大数据分析全流程、大数据应用全产业链的完整知识体系,培养大数据复合型人才。
VR虚拟实现专业人才培养方案

VR虚拟实现专业人才培养方案随着科技的飞速发展,虚拟现实(VR)技术已经逐渐融入了我们的日常生活。
然而,与这种发展趋势相匹配的专业人才却十分稀缺。
为了满足这一需求,我们提出了一套全面的VR虚拟实现专业人才培养方案。
一、培养目标我们的培养目标是培养出具备VR技术应用、项目开发、创意设计等多方面能力的专业人才。
这些人才应能够熟练掌握VR技术,理解并能够实现客户需求,同时具备创新思维和良好的团队协作能力。
二、课程设置1、VR技术基础:包括计算机图形学、虚拟现实技术基础、传感器技术等课程,帮助学生了解VR技术的基本原理和实现方式。
2、VR开发实战:通过实际项目开发,让学生在实际操作中掌握VR 开发的全过程,包括需求分析、场景设计、代码编写、测试发布等环节。
3、创意设计:通过设计思维和创意思维的训练,提高学生的创新设计能力,能够根据客户需求设计出独特的VR体验。
4、团队协作:通过团队项目和实践,让学生了解并学会在团队中发挥自己的作用,提高团队协作能力。
三、教学方法我们将采取理论教学与实践教学相结合的方式,以项目为导向,通过案例分析和实际操作,让学生更好地理解和掌握VR技术。
同时,我们将鼓励学生自主学习和研究,提供必要的指导和资源支持。
四、实践教学我们将提供丰富的实践教学资源,包括VR实验室、项目案例、实习机会等。
学生可以通过实践,更好地理解和应用VR技术,提高自己的实际操作能力和问题解决能力。
五、师资力量我们将聘请具有丰富经验和专业背景的教师和行业专家来授课和指导,确保教学质量和学生学习效果。
六、行业合作我们将积极与相关行业合作,为学生提供实习机会和就业渠道。
同时,我们也将与行业保持紧密,及时了解行业动态和技术发展趋势,以便更新教学内容和方法。
七、评估与反馈我们将建立完善的评估和反馈机制,通过学生的课程成绩、实践表现、毕业设计等各方面来评价学生的学习效果。
我们也将听取学生和行业的反馈,不断改进和优化培养方案。
医学信息工程培养方案

医学信息工程培养方案一、课程设置1.医学基础课程医学信息工程的学生需要具备扎实的医学基础知识,包括解剖学、生理学、病理学、医学影像学等方面的知识。
这些基础课程将为学生后续的专业学习和实践打下坚实基础。
2.信息工程基础课程信息工程基础课程包括计算机科学导论、数据结构与算法、数据库原理与应用、操作系统原理等内容。
这些课程将帮助学生建立起信息工程的基本概念和技能。
3.医学信息工程专业课程专业课程包括医学信息学、医学数据库系统、医学图像处理、医学大数据分析等内容,旨在培养学生对医学信息工程领域的深入理解和技能掌握。
4.实践教学课程为了让学生学以致用,实践教学课程包括医学信息工程实验、项目设计与开发、临床实习等内容,以培养学生的实际操作能力和临床实践经验。
二、实践教学1.实验室建设医学信息工程实验室应该配备先进的医学影像处理设备、计算机软硬件设备和模拟临床实验设备,以满足学生的实践教学需求。
2.项目设计与开发学生需要参与项目设计与开发,例如医学信息系统、医学影像处理软件等项目,以培养学生的团队合作能力和实际问题解决能力。
三、实习实训1.临床实习医学信息工程的学生需要参与临床实习,了解医务人员的工作流程和临床需求,从而更好地设计和开发医学信息系统。
2.企业实习学生还应该参与医学信息工程相关企业的实习,了解行业动态,培养实际工作能力和职业素养。
四、科研创新1.科研导师制为了激发学生的科研兴趣和创新能力,学校需要建立科研导师制度,指导学生进行科研项目设计和实施。
2.科研项目学校需要鼓励学生积极参与科研项目,提供科研课题和资金支持,鼓励学生发表论文和参加学术会议。
总之,医学信息工程是一门前沿交叉学科,培养医学信息工程人才需要综合医学和信息工程的教育资源,注重实践教学和科研创新,以培养具有深厚医学知识和优秀信息工程技能的复合型人才。
学校应该根据这一特点,做好课程设置、实践教学、实习实训和科研创新等方面的工作,为医学信息工程学生提供全方位的培养和支持。
一级学科——精选推荐

科二级学科序号对应专业名称所属学院专哲学哲学类1哲学社科学院01经济学经济学类2经济学国际工商与管理学院、房地产学院023国际经济与贸易国际工商与管理学院、悉尼工商学院024财政学国际工商与管理学院025金融学国际工商与管理学院、悉尼工商学院02法学法学类6法学法学院03社会学类7社会学文学院038社会工作文学院03文学中国语言文学类9汉语言文学文学院0510汉语言国际交流学院0511对外汉语文学院05外国语言文学类12英语外国语学院0513日语外国语学院05新闻传播学类14新闻学影视艺术技术学院0515广播电视新闻学影视艺术技术学院0516广告学影视艺术技术学院05艺术类17音乐学数码艺术学院0518绘画美术学院0519雕塑美术学院0520美术学美术学院0521艺术设计美术学院、影视艺术技术学院、数码艺术学院0522动画数码艺术学院0523广播电视编导影视艺术技术学院0524会展艺术与技术美术学院05历史学历史学类25历史学文学院06理学数学类26数学与应用数学理学院0727信息与计算科学理学院07物理学类28应用物理学理学院07化学类29应用化学理学院07力学类30理论与应用力学理学院07电子信息科学类31电子信息科学与技术理学院0732微电子学理学院07材料科学类33材料物理材料科学与工程学院07工学材料类34冶金工程材料科学与工程学院0835金属材料工程材料科学与工程学院0836无机非金属材料工程材料科学与工程学院0837高分子材料与工程材料科学与工程学院08机械类38机械工程及自动化机电工程与自动化学院0839工业设计机电工程与自动化学院08仪器仪表类40测控技术与仪器机电工程与自动化学院08理学院数学、物理、力学综合班为适应21世纪科学技术发展及我国现代化建设的需要,上海大学从1996年起,以理学院为基地创办了 "数学、物理、力学"综合班。
该班为上海大学基础强化特色教育的重要组成部分。
本科生——清华学堂计算机科学实验班(姚班)

本科生——清华学堂计算机科学实验班(姚班)
佚名
【期刊名称】《计算机教育》
【年(卷),期】2011(000)023
【摘要】目标:培养领跑国际拔尖创新计算机科学人才姚期智院士凭借美国MIT、Stanford、Princeton等经验亲自制定培养方案和教学计划,精心设置专业核心课程18门,覆盖计算机科学前沿领域,全英文教学,并亲自授课6门。
【总页数】5页(P4-8)
【正文语种】中文
【中图分类】TP3
【相关文献】
1.艺术专业教育的路径——上海视觉艺术学院德稻实验班首届本科生毕业观感 [J], 孙乃树
2.中医专业推行本科生导师制探微--以广州中医药大学中医实验班为例 [J], 梁飞
红
3.浅谈高校计算机科学与技术专业实验班《数据结构》教学改革 [J], 赵鹏
4.基于"一制三化"的计算机科学与技术专业创新型人才培养机制研究——以河南理工大学计算机科学与技术专业创新人才实验班培养为例 [J], 赵珊; 贾宗璞
5.姚期智清华发起“软件科学实验班” [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
自动化专业-北京化工大学教务处

自动化专业自动化专业创建于1958年建校伊始,本专业所依托的控制科学与工程学科是我校“211工程"重点建设学科、北京市重点学科,是国家级特色专业、北京市特色专业,在2017年全国高校学科评估中获得B+。
作为教育部第一批“卓越工程师教育培养计划”试点专业之一,本专业创办了自动化卓越工程师班,并于2018年6月开展了自动化专业工程教育认证工作.自动化专业为我校主体专业群中的重要组成部分,具有多学科交叉,内涵丰富、外延宽广的特点。
随着专业建设的逐步深入,形成了三个特色鲜明的专业方向:控制理论及应用、化工控制工程、人工智能与机器人。
自动化专业是现代工业生产的重要组成部分,在未来中国制造2025计划中,在智能生产,尤其是流程工业中的智能生产中起到关键性作用。
我校自动化专业在传统的特色领域如石油、化工、轻工等流程工业中保持强大的竞争力.取得的教学和科研成果在本领域有着很好的口碑和认知度,已具备很强的综合实力和鲜明特色。
自动化专业的专业基础课程包括:电路原理,数字电子技术,电子技术实验(I)、电子技术实验(II),模拟电子技术,自动化导论,化工原理等,自动控制原理(I)、自动控制原理(II),自动化装置,微机原理及应用,自动检测技术及仪表,过程控制工程等。
专业方向课程包括:控制理论与应用方向:系统辨识,最优控制,先进控制技术,控制系统辅助设计等。
化工控制工程方向:系统建模与仿真,过程设计控制与优化,计算机控制系统,先进控制技术等。
人工智能与机器人方向:人工智能及应用,数字图像处理,模式识别与机器学习,机器人导论等。
特色课程包括:北京市精品课程:过程控制工程、自动化装置、过程系统及控制工程仿真实践.校级精品课程:自动化控制原理I、II,控制工程设计。
双语课程:过程控制工程、自动化控制原理、计算机控制系统、微机原理及接口技术。
专业实践包括:控制系统辅助设计、化工过程与控制仿真实习、机器人仿真与应用实践、电气工程综合实践、控制工程综合实践、认识实习、生产实习、控制工程课程设计、应用软件实践、工程实训(卓越工程师实验班)等。
级计算机科学与技术专业培养方案
杭州电子科技大学计算机科学与技术专业Computer Science and Technology培养方案UndergraduateEducation Program计算机学院制定2015年5月学院负责人:余日泰专业负责人:戴国骏计算机科学与技术专业本专业培养适应经济建设和社会发展需要,具有良好的科学素养和职业道德,系统地掌握计算机科学理论、计算机硬件/软件系统及应用知识,具备较强的工程实践能力和创新意识,能在企、事业单位和行政管理部门从事计算机系统应用、开发和科学研究的计算机科学与技术学科的高级工程技术人才。
计算机科学与技术专业期待毕业生几年之内达到以下目标:(1)能运用专业知识和技术,设计计算机软件/硬件系统的解决方案,并成功实现;(2)在团队工作中,有良好的领导、组织和协作能力;(3)具有较强的项目管理和沟通表达能力;(4)通过继续教育或其他终身学习渠道,具备良好的适应性和自我提升能力;二、毕业要求本专业对学生的毕业要求如下:(1)工程知识:能够将数学、自然科学、工程基础和专业知识用于解决复杂工程问题。
(2)问题分析:能够应用数学、自然科学和工程科学的基本原理,识别、表达、并通过文献研究分析复杂工程问题,以获得有效结论。
(3)设计/开发解决方案:能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。
(4)研究:能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。
(5)使用现代工具:能够针对复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。
(6)工程与社会:能够基于工程相关背景知识进行合理分析,评价专业工程实践和复杂工程问题解决方案对社会、健康、安全、法律以及文化的影响,并理解应承担的责任。
论信息时代的图书情报人才培养
论信息时代的图书情报人才培养[摘要]鉴于原有图书情报专业教学结构下培养出来的学生,已不能适应新技术环境下的图书情报工作,论文强调当前应发展图书情报专业学历教育。
结合我国实际,应从七个方面寻找图情教育改革的突破口,并在学历教育的基础上开展多种方式的继续教育。
[关键词]图书情报;图情改革;学历教育;人才培养[分类号]G252图书情报专业教育一直是以培养图书情报机构所需的专业人才为主要目标,服务对象以各类文献为主,以手工作业为基本手段。
原有教学结构下培养出来的学生已不能适应新技术环境下的图书情报工作,很难进行信息处理业务。
针对以上情况,应有的放矢地调整图书情报人员的培养目标和培养模式。
一、发展图书情报专业学历教育随着网络化的到来,准确、迅速地提供某一学科领域的信息日益重要。
因此,图书情报人员必须熟练掌握必备的图书情报专业知识。
学历教育作为培养高水平的图书情报人员的主要方式,地位显得尤为重要。
在图书情报专业学历教育中,应以本科教育为基础,适当发展研究生教育,大力发展成人教育和高职教育。
1.坚持本科教育的中心地位为什么我们必须坚持图书情报专业本科教育的中心地位呢?因为,图书情报这个职业需要有正规的、大学水平的专业教育来对应,它是有学又有术的职业,不是简单的职业技能培养所能完成的。
另一方面,图书情报学科体系是围绕着知识展开的,加之图书馆、情报所等单位有自己独特的社会功能、职业理念和运作方式,必须有专门的学科教育来提供人才保障。
那么我们如何做好图书情报本科学历教育呢?1.1调整高校信息专业、图书情报专业课程结构图书馆学本科课程存在的一大问题就是课程体系设置老化。
在网络时代,实践领域已经发生变化,课程更新要反映图书馆实践工作的需要,积极引入新东西,如除了传统的文献信息编目,要介绍DC元数据、XML等信息描述方式。
还要介绍门户网站,学科导航系统等新的检索手段。
情报学教育要凸显学科发展知识化倾向,增设知识库建设、知识地图设计、知识管理、知识资产运营、知识分析与预测、知识集成服务等内容。
华科工程硕士计算机技术专业学位研究生培养方案
工程硕士计算机技术专业学位 研究生培养方案工程硕士计算机技术专业学位研究生培养方案 (代码: 085211 ,授工程硕士专业学位)一、培养目标1. 培养适应国家建设需要的、热爱祖国、遵纪守法、德智体全面发展、具备严谨科学态度和敬业精神的计算机科学与技术人才。
2. 掌握计算机领域坚实的基础知识和系统的专门知识;掌握计算机领域的基本研究方法与技能,具备一定的研究实际问题的能力,并具有较强的计算机系统分析、设计及实现能力;3. 掌握并能熟练运用一门外国语;4. 培养严谨求实的学习态度和工作作风;5. 可胜任计算机领域的相关的工作。
二、主要研究方向1. 复杂软件设计与实现;2.并行分布式计算理论与技术;3. 多核、虚拟化技术及云计算技术;4.现代存储理论与技术;5. 智能控制与嵌入式系统;6.信息安全理论与技术;7. 软件工程方法与技术; 8.多媒体计算技术;9. 数据管理与数据工程; 10.人工智能与知识工程。
11. 大数据技术三、学习年限与培养方式计算机技术专业采用课程学习、实践教学、生产实习和学位论文相结合的培养方式。
课程设置体现厚基础理论、重实际应用、强系统工程能力、博前沿知识,着重突出专业实践类课程和工程实践类课程。
专业硕士学位的学习年限一般为两年。
四、学分要求与分配总学分要求≥37学分,其中学位课学分要求≥19学分,研究环节要求≥18学分,具体学分分配如下表:总学分 ≥37学分修课 学 分 ≥19学分校级公共课程≥7学分,其中:英语2学分,思政类2、数学3专业领域基础课≥3学分(必修)专业选修课≥6 学分实践教学(实验、设计、调查分析)≥3 学分补修课程、任选课程只计成绩,不计学分研 究环 节 ≥18学分专业课程实习实践(含报告) 4 实践环节≥4学分 专业实训(含报告) 4专业综合实习实践(含报告) 4 必修开(选)题报告 1 必修论文中期进展报告 1 必修专业学位论文 8 必修五、课程设置及学分分配计算机技术专业学位硕士研究生课程设置类别 课程课程代码课程名称学时 学分 季节 开课单位备注学位课程≥18学分 公共课程≥ 7学分411.500 第一外国语(英语) 32 2 秋 外语学院 必修408.601 中国特色社会主义理论与实践研究 36 2 秋 马院 011.700 应用高等工程数学48 3 秋 数学学院 专业 领域 基础课≥3学分 210.501 高级计算机系统结构32 2 秋 计算机学院210.502 现代计算机网络32 2 秋 计算机学院210.503 并行处理 32 2 秋 计算机学院 210.554 现代数据管理理论与技术(必修) 32 2 秋 计算机学院 210.555 多媒体基础32 2 秋 计算机学院 210.557 密码学与访问控制32 2 秋 计算机学院 专业 选修课 限定选修≥6学分方向任选一210.562 大型信息系统工程理论与实践 32 2 秋 计算机学院 210.563数据集成与服务技术(必修) 32 2 秋 计算机学院 210.564大数据技术 32 2 秋 计算机学院 210.565嵌入式多媒体系统软件设计与优化 32 2 秋 计算机学院 210.566数据中心技术 32 2 秋 计算机学院 210.567 数字图像处理技术与应用 32 2 秋 计算机学院 210.568搜索引擎原理与实践 32 2 秋 计算机学院 210.569Hadoop/MapReduce 编程模型与应用 32 2 秋 计算机学院 210.570 移动互联网络安全技术 32 2 秋 计算机学院 210.571软件逆向分析技术及应用 32 2 秋 计算机学院 210.572 基于GPU 的程序设计32 2 秋 计算机学院 210.522数据库安全理论与技术(实验室开) 32 2 秋 计算机学院 210.527 分布式系统与中间件 32 2 秋 计算机学院 210.581 深度学习 32 2 秋 计算机学院 210.533 项目管理32 2 秋 计算机学院 210.573研究方向的技术讲座或研究进展课程(必修) 1 计算机学院 210.574 参加学术讲座或学术报告(必修)1 计算机学院实践教学(实验、设计、调查分析) ≥3学分 210.575实验 2 计算机学院 二选一(必选) 210.576 设计 2 计算机学院 210.577项目或工程的调查分析报告 1 计算机学院 二选一 (必选) 210.578 行业(专业)发展报告 1 计算机学院 非学补修课 210.579 计算机组成原理322计算机学院 本科非计算位课 程210.580 数据结构 32 2 计算机学院机类的硕士生必修实践研究环节≥18学分 650.705 专业课程实习实践(含报告) 4 二选一(必选)计算机学院 实践环节必修学分≥4 650.706 专业实训(含报告) 4 计算机学院650.707 专业综合实习(含报告) 4 计算机学院 必修 650.708 开(选)题报告 1 计算机学院 必修 650.709 论文中期进展报告(硕) 1 计算机学院 必修 650.710 专业学位论文(硕) 8 计算机学院 必修六、实践教学和实践教学环节描述研究方向的技术讲座或研究进展课程,指的是学生在一定范围内,就其研究方向的某一个问题就其研究结果做学术报告,分析国内外发展的现状,给出可能的解决方向,并尽可能地给出自己较为详细的解决方案,并回答质询的问题。
计算机科学与技术专业本科培养计划卓越工程师教育培养计划实验班
计算机科学与技术专业本科培养计划(卓越工程师教育培养计划实验班)Undergraduate Program for Specialty in Computer Science & Technology(Undergraduate Experimental Program for Exemplary Engineer Education)一'培养目标I. Educational Objectives培养德、智、体全面发展,具有系统、扎实的信息学科和计算机学科的理论基础,在信息的获取、传递、处理及应用等方面,不仅具有扎实、宽广的理论基础,而且具有较强工程实践能力和创新能力的计算机工程研究人才。
毕业生具有良好的人文素质、较强的英语能力及工程实践能力,能在信息技术产业,科研部门,高等院校及其相关领域从事信息科学与技术的应用研究、设计、开发及管理等方面的工作,并可继续攻读计算机科学与技术、相关学科与交叉学科的硕士学位。
This program is designed to produce the individuals with thorough theoretical grounding, strong practical ability and innovative capacity in the information and computer discipline, including information retrieval, transformation, processing and application. Students with good command of English, humanistic quality and practical engineering ability can be prepared for any professional role they might choose —research, design, development, management in information technology industries, research institutes, universities, the professions and other community groups, and pursue their advanced degrees in computer science and technology, other related fields and cross subjects.二、基本规格要求II. Skills Profile毕业生应获得以下几个方面的知识和能力:1.具有较扎实的信息学科所需的数理基础;2.掌握信息学科、计算机科学与技术的基本理论和方法;3.了解信息学科、计算机学科的发展动态;4.具备良好的工程意识、工程素质和工程实践能力5.具有计算机软硬件系统及其应用系统的设计、开发、集成的能力;6.具有综合运用计算机理论、软件项目管理及政策法规等知识和方法,完成软硬件项目组织及管理的能力,特别是项目中的协调、管理、竞争与团队合作能力;7.具有良好的中外文交流沟通、文档撰写、环境适应和知识更新能力;8.具有较好的人文社科知识、人文素质和良好的职业道德,对职业、社会、环境有强烈的责任感和使命感。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术学院实验课程归档材料规范
实验报告一
实验课名称:数据结构与程序设计实验
实验名称:本科生导师制问题 实验类型:设计型实验
班级: 学号: 姓名: 时间:
一、问题描述
在高校的教学改革中,有很多学校实行了本科生导师制。一个班级的学生被
分给几个老师,每个老师带n个学生,如果该老师还带研究生,那么研究生也可
直接带本科生。本科生导师制问题中的数据元素具有如下形式:
导师带研究生
(老师,((研究生1,(本科生1,…,本科生m1)),(研究生2,(本科
生1,…,本科生m2))…))
导师不带研究生
(老师,(本科生1,…,本科生m))
导师的自然情况只包括姓名、职称;研究生的自然情况只包括姓名、班级;
本科生的自然情况只包括姓名、班级。
二、数据结构设计
本实验使用的数据结构是广义表,广义表采用头尾链表存储结构来实现。
定义教师、学生结点结构体如下:
typedef struct GLNode
{
char name[100]; /*教师或学生的姓名*/
char prof[100]; /*教师结点表示职称,学生结点表示班级*/
int type; /*结点类型:0-教师,1-研究生,2-本科生*/
struct {struct GLNode *hp, *tp;} ptr;
/*hp指向同级的下一结点,tp指向下级的首结点*/
}GList;
人员信息的表示形式为:高老师-教授-0、李刚-二班-1、李明-二班-2.
人员信息中的姓名、职称、班级、人员类型用“-”隔开,如高老师-教授-0,
“高老师”表示姓名,“教师”表示职称,“0”表示人员的类型是教师;李刚-
二班-1,“李刚”表示姓名,“二班”表示班级,“1”表示人员的类型是研究生;
李明-二班-2,“李明”表示姓名,“二班”表示班级,“2”表示人员的类型是本
科生。
广义表((高老师-教授-0,(李明-一班-2,王平-二班-2)),(李老师-副教授-0,
(白梅-二班-1,(李刚-一班-2)))可以用图3表示。
高老师
教授
0
李明
一班
2^
王平
二班
2^^
李老师
副教授
0^
白梅
二班
1^
李刚
一班
2^^
图3 导师制用广义表实现示例
三、算法设计
建立:建立导师广义表。
GList InitGList(){
GList L = NULL, *l;
GList e;
e = InitGLNode("teacherli", "fujiaoshou", 0);
InsertFirst_GL(&L, e);
e = InitGLNode("teachergao", "jiaoshou", 0);
InsertFirst_GL(&L, e);
l = &((L->ptr).tp);
e = InitGLNode("wangping", "erban", 2);
InsertFirst_GL(l, e);
e = InitGLNode("liming", "yiban", 2);
InsertFirst_GL(l, e);
l = &((((L->ptr).hp)->ptr).tp);
e = InitGLNode("baimei", "erban", 1);
InsertFirst_GL(l, e);
l = &(((*l)->ptr).tp);
e = InitGLNode("ligang", "yiban", 2);
InsertFirst_GL(l, e);
return L;
}
插入:将某位本科生或研究生插入到广义表的相应位置。
int InsertFirst_GL(GList *L, GLNode *e){
(e->ptr).hp = *L;
*L = e;
return 1;
}
删除:将某本科生或研究生从广义表中删除。
GList DeleteGLNode(GList *L, char *name){
GList *l = L, *p, temp;
if(l){
if(!strcmp((*l)->name, name)){
temp = *l;
*l = ((*l)->ptr).hp;
return temp;
}
if(((*l)->ptr).tp){
p = &(((*l)->ptr).tp);
temp = DeleteGLNode(p, name);
if(temp) return temp;
}
if(((*l)->ptr).hp){
p = &(((*l)->ptr).hp);
temp = DeleteGLNode(p, name);
if(temp) return temp;
}
}else{
return NULL;
}
}
查询:查询导师、本科生(研究生)的情况。
GList TravGList(GList L, char *name){
GList l;
while(L!=NULL){
if(!strcmp(L->name,name)) return L;
l = TravGList((L->ptr).tp, name);
if(l) return l;
L = (L->ptr).hp;
}
return NULL;
}
统计:某导师带了多少个研究生和本科生。
int countStud(GList L, int *i, int *j){
if(L){
if(L->type == 1){
(*i)++;
}else if(L->type == 2)
(*j)++;
else;
countStud((L->ptr).tp, i, j);
countStud((L->ptr).hp, i, j);
}
return 1;
}
输出:将某导师所带学生情况输出。
void PrintGLNode(GLNode *e){
if(e==NULL) return;
printf("%s-%s-%d", e->name, e->prof, e->type);
}
打印:将广义表整个输出。
void PrintGList(GList L){
if(L==NULL) return;
printf("(");
while(L!=NULL){
PrintGLNode(L);
PrintGList((L->ptr).tp);
printf(" ");
L = (L->ptr).hp;
}
printf(")");
}
退出:程序结束
四、界面设计
五、运行测试与分析
六、实验收获与思考
1.掌握本科生导师制问题的思想与算法
2.使用数据结构广义表实现本科生导师制问题
3.结合理论,深入掌握知识
教师评分:
教师签字: