校园导航——数据结构作业(一)

本文探讨了如何运用Dijkstra最短路径算法和深度优先搜索(DFS)解决校园导航的问题,通过数据结构邻接矩阵进行路径规划。
摘要由CSDN通过智能技术生成

算法:Dijkstra最短路,DFS
数据结构:邻接矩阵

// xydy.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include "iostream"
#include "cstdio"
#include "string"
#include "cstring"
#include "stack"
#define N 100
#define INF 200
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
using namespace std;

struct Node
{
    int num;    //景点代码
    string name;//景点名称
    string pro; //简介
};
Node school[N]= 
{ 
    { 1,"行政楼","" },{ 2,"食堂","" },
    { 3,"赛博楼","信息分院办公室所在地"},{ 4,"求是楼","实验楼计算机中心"},
    { 5,"格致楼","法学管理学院" },{ 6,"工程实习中心","金工实习" },
    { 7,"仰仪楼","机电计测分院" },{ 8,"体育馆","旁边有篮球场`足球场`还有网球场" },
    { 9,"一号教学楼","主要以阶梯教室为主"},{ 10,"二号教学楼","小教室为多" } 
};

long long Edge[N][N];  //邻接矩阵存路径

int nodenum;   //节点总数

void Initial()
{
    nodenum = 10;
    memset(Edge, -1, sizeof(Edge));
}

void Insert_node()
{
    cout << "请输入:编号(0结束添加)  景点名  简介" << endl;
    int n;
    while (cin >> n&&n)
    {
        bool flag = 0;
        string name, pro;
        cin >> name >> pro;
        for (int i = 0; i < nodenum; i++)
        {
            if (school[i].num == n)
            {

                cout << "编号重复,请重新输入编号" << endl;
                flag = 1;
                break;
            }
        }
        if (flag == 1)
            continue;
        nodenum++;
        school[nodenum - 1].num = n;
        school[nodenum - 1].name = name;
        school[nodenum - 1].pro = pro;
    }
}

void Insert_edge()
{
    cout << "请输入:起始景点编号   终止景点编号  路径长度(0 0 -1结束)" << endl;
    int from, to;
    long long value;
    while (cin >> from >> to >> value && from && to && (value!=-1))
    {
        bool flag1 = 0, flag2 = 0;
        
设计你的学校的平面图,至少包括10个以上的景点(场所),每两个景点间可以有不同的路,且路长也可能不同,找出从任意景点到达另一景点的最佳路径(最短路径)。 要求: (1)以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。 (4)提供图的编辑功能:增加、修改、删除景点;增加、修改、删除道路等。 (5)校园导游图的仿真界面。 8.学生成绩管理系统 学生成绩管理是高等学校教务管理的重要组成部分,主要包括学生注册、考试成绩的录入及修改、成绩的统计分析等等。设计一个系统实现对学生成绩的管理。 要求系统应具有以下基本功能: (1)学生注册登记; (2)增加、删除某一班级的学生; (3)成绩录入:输入学生的考试成绩; 要求采用二叉排序树存放学生成绩,一门课程对应一棵二叉排序树; (4)成绩修改:若输入错误可进行修改; (5)统计分析:对某个班级学生的单科成绩进行统计,求出平均成绩;求出成绩处于指定分数段内的学生人数;求出每个学生一学期各科的平均成绩等; (6)查找:查找某个学生的某门课程成绩,查找某门课程成绩处于指定分数段内的学生名单等等。 (7)打印:打印一个班级学生的单科成绩;打印某一课程成绩处于指定分数段内的学生名单;打印学生在某一学期的成绩报告单。
【摘要】西南科技大学抓住西部大开发和绵阳科技城建设的历史机遇,践行“厚德、博学、笃行、创新”校训,建设出一座美丽的校园。为此通过对《数据结构》这一课程的应用,用图的模型对学校景点抽象。用邻接矩阵存储方法和狄克斯特拉算法及图的遍历实现对校园导游系统的模拟。此系统七个功能:浏览学校景点、查看单个景点信息、查看校园地图、导游推荐、查两景点最短路线、查两景点所有景点、退出系统。 目 录 一、问题描述及设计思路..............................................3 二、详细设计过程....................................................3 2.1设计校园平面图...............................................3 2.1.1景点分析.......................................................4 2.1.2平面图.........................................................4 2.2实现景点信息查询.............................................4 2.2.1景点存储.......................................................5 2.2.2景点信息查询功能实现...........................................5 2.3图实现路径查询...............................................5 2.3.1图的建立.......................................................5 2.3.2最短路径实现...................................................6 2.3.3两点间所有路径.................................................8 2.3.4路径查找设计结果...............................................8 三、结论体会.......................................................11 四、附录...........................................................12 4.1.1Mai.cpp.......................................................124.1.3Sight.h.......................................................13 4.1.2G.h...........................................................15 五、参考文献.......................................................20
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值