优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

PDA创新课程中项目的设计与实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
系统设计与实现
2.1系统功能概述
2.1.1学生信息管理系统
学生信息管理系统实现对学生信息的管理,其中包括学院信息管理,教师信息管理,课程信息管理,成绩管理等。可对学院,教师等信息进行添加,更新,删除,查询等操作。通过该项目的实现可以基本掌握数据结构课程,面向对象课程及程序设计课程的大部分知识,使学生能从该项目中体会到更多所学的知识,印象更为深刻。
2.1.2校园导游系统
校园导游系统设计一个学校的校园平面图,所含景点不少于10个(食堂.教学楼….等)。景点在校园的位置以坐标给定,以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息;假设校园建在平原上,最开始各景点之间没有任何路径到达。为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
2.2系统设计
该项目力求将数据结构课程中的大部分数据结构应用到项目中,以达到从项目让学生理解数据结构课程,从项目的设计及实现中深刻体会课上所学到的知识的目的。数据结构包括线性表,哈希表,索引技术,树,图,堆栈,等等,这些数据结构在科学中应用得很广泛,通过设计与实现将使学生获得更多的理解。

内容来自think58 [资料来源:www.THINK58.com]


2.2.1学生信息管理系统
学生信息管理系统的设计任务:设计一个学生信息管理系统,用计算机实现学生信息的管理,包括:学生信息注册、查询、修改、删除、统计等功能。项目要求采用顺序表、链表、平衡二叉树、哈西表等不同数据结构实现学生信息的存储,对于采用顺序表存储时要求对不同关键字建立索引。对于不同的存储结构要求实现所要求的各种操作,并且要求对于在不同数据结构上同一种操作的效率做出比较和分析。
线性表在系统中的应用:采用顺序表作为课程信息的存储容器,并实现插入,删除,查找,修改,统计等功能。采用单链表作为学院信息,教师信息,成绩信息的存储容器,实现插入,删除,查找,修改,统计等功能。
二叉树在系统中的应用:以学生信息为来源建立平衡二叉树,以studentId为判断依据。并实现在此数据结构中的插入,删除,查找,修改,统计等功能。
哈希表在系统中的应用:以课程编号为依据建立哈希表,采用线性探测再散列法处理冲突,并实现哈希表的插入,删除,查找,修改等功能。
排序在系统中的应用:实现对二叉树的中序访问,以得到有序的学生信息。在成绩列表中,可以对成绩按高低来进行排序。
学生信息管理系统中,学生信息,学院信息,教师信息,课程信息及成绩信息分别存储到不同的文件中。在系统初始化时,从这些文件中读取信息到各自的数据结构中去,存储在内存中。初始化后,系统就可以对这些信息进行查询,添加等操作。 think58 [来源:http://www.think58.com]
2.2.2校园导游系统
校园导游系统的设计任务:使用数据结构课程中的类,图等数据结构实现一个校园导游系统,使用户可以方便地查询到两个地点间的最短路径等功能。
图在系统中的应用:应用在校园导游系统中,以各个建筑作为结点,建立校园图,采用Prim算法生成最小树,采用Dijkstra算法计算最短路径。
校园导游系统的初始化工作是把校园内的建筑物放到校园平面图中,并记录每一个建筑物的坐标,将两个建筑物间的距离作为权值。以些结构为基础来计算两个建筑的最短路径及生成最小树。
2.3数据文件的设计
2.3.1数据库设计方案
由于本系统的目的在于锻炼学生在数据结构方面的理解,故将数据存储在文件当中,而不采取已有的数据库系统,学生可以通过读取文件中的信息并将其以数据结构的形式存储到内存中,再在内存里对数据进行操作。
虽然不采用已有的数据库系统,但是数据的一致性还是需要保证。在该系统中,数据的约束主要是通过界面中控件的约束来达到目的。即,在某一个文本框中只允许输入数字时,通过VC的NUMBER约束来达到目的。在需要选择教师或是学院信息时,给用户提供下拉框,使其无法输入错误信息,达到避免用户输入非法内容的作用。
当修改到的字段是其它文件中的外键时,则需要同时修改其它文件中该字段的值,以保证数据的一致性。 think58
[资料来源:http://www.THINK58.com]

本系统将不同的表存储到不同的文件中去。在文件中,以空格作标志,分离出各个字段来,每一行是一条记录。更进行更新或删除操作时,该字段在其它文件中是外键,则需要对其它表中的信息进行更新。
学院信息管理模块
学院信息管理模块的作用是提供学院信息的管理,包括,学院的添加,更新,删除,查找等功能。该模块提供了链表的新建,插入,更新,删除,查找及文件的读写操作,完成该模块学生可以从中体会到链表的操作及文件读写的操作。
学院的添加:输入学院编号,学院名称,点OK键添加,若学院编号已存在则给出提示,添加不成功,否则,将该条学院记录添加到学院链表中,并更新学院文件。
所使用的函数:void CCollegeAdd::OnOK(),函数中检查所添加的学院编号是否已存在,若已存在则给出警告,并return,否则将界面中所输入的信息存储到一个新的节点中,并找到学院链表的最后一个节点,将新节点插入到该链表中。用写文件流ofstream打开学院文件,在末行增加新学院记录。
学院的更新:用鼠标点选列表中要更新的一栏,在编辑框内输入所要更新的内容,回车,点击OK键。若所更新的内容符合要求的格式,则更新成功,否则给出更新不成功的提示。更新学院链表,并更新学院文件。
所使用的关键函数 think58好,好think58 [来源:http://www.think58.com]
void CCollegeList::OnClickCollegelist(NMHDR* pNMHDR, LRESULT* pResult);
void CCollegeList::OnOK();
void CCollegeList::OnbtnOk();
void CCollegeList::updateClg(bclTree *root, long old_cId, long new_cId, CStudentInfoMngApp *theApp);
void CCollegeList::updateClg(mstTree *root, long old_cId, long new_cId, CStudentInfoMngApp *theApp)
void CCollegeList::updateClg(dctTree *root, long old_cId, long new_cId, CStudentInfoMngApp *theApp)
函数OnClickCollegelist是响应列表中的单击事件,获取单击时所选列表的行和列及该栏的值,把该值填入隐藏的文本框,并将隐藏的文本框显示到所在的一栏。待信息修改后,回车,由OnOK()函数来响应该事件,将修改的内容写到所要修改的一栏中。点击OK按钮就由OnbtnOk()来响应事件,检查所填信息是否符合格式,如果不符合,则给出提示,并return,否则查找学院链表,找到所要修改的节点,将修改的内容更新到节点对应的属性中,用ofstream打开学院文件,重写整个文件,关闭文件流。若修改的是学院编号,则使用updateClg函数查找本科生树,研究生树和博士树,若有节点的学院属性与该更新的学院属性一致,修改该节点。所有节点修改完后,打开文件流,重写所有学生信息文件,关闭文件流。 think58好,好think58

[来源:http://think58.com]