首页 > 其他分享 >C语言江苏大学校园导航系统

C语言江苏大学校园导航系统

时间:2023-01-01 11:55:05浏览次数:62  
标签:药学院 大学校园 查询 地点 校园 号门 导航系统 短路线 C语言

C语言江苏大学校园导航系统

2 江苏大学校园导航系统的设计与实现

2.1 题目简述

本次课题要求针对江苏大学校园实现一个景点/地点导航系统,提供查看学校地图、查看地点信息查询各地点间可行路径、查看各地点间最短路径、更改图信息、退出查询等功能。系统用户包括管理员和一般用户两类,管理员负责管理校园景点维护;一般用户可以根据自己的需求对景点进行各种信息查询,及路线导航等。

课题总体要求如下:

  1. 设计校园平面图。其中具有代表性的地点至少含有 12 个,平面图中顶点表示校内代表性的地点,边上的权值表示两地点之间的距离,一般情况下,校园的道路是双向通行的,因此校园平面图可以设计为一个无向网;
  2. 为实现校园导航系统子功能的管理,设计主控菜单;
  3. 为来访客人提供图中任意地点相关信息的查询;
  4. 为来访客人提供图中任意两地点之间最短路线的查询,指点地点到其他所有地点最短路线的查询。

2.2 系统功能需求

本次课程设计要求能提供一个友好的功能菜单,菜单中应至少包括(但不限于)以下几个基本功能:

  1. 初始化系统:
     基本信息初始化,包括校园地点编号、地点名称、地点简介、地点之间的路程等;
     基本要求:将校园景点的基本信息存于文件,每次运行程序时,通过文件对基本信息初始化;系统初始化后,能显示校园的平面图,校园平面图可以用邻接矩阵形式展示(如图 1 所示,仅供参考格式,内容自行修改),也可以用图形展示。
三江楼 三山楼 材料大楼 机械大楼
三江楼 0 100 100 ∞
三山楼 100 0 50 70
材料大楼 ∞ 50 0 60
机械大楼 ∞ 70 60 0

图 1 校园平面图邻接矩阵展示
2) 查询功能:
 景点查找与排序:
查找:从键盘输入地点名称或地点编号,查找成功时显示该地点的简介以及该地点可直接到达的周边地点,查找不成功显示不存在;
排序:按照地点的岔路数对地点进行排序,排序算法可采用快速、直接插入、堆排序等。
 路线导航
两地点间的最短路线和最短路线距离查询:输入起始地点序号或名称,查询结果显示:起点到终点的最短路线和最短路线距离。如:

起点:1(江苏大学 1 号门)
终点:5(药学院)
最短路线:江苏大学 1 号门→医学院→药学院
最短路线距离:400 米

两地点间的最少中转路线查询:输入起始地点序号或名称,查询结果显示:
起点到终点的路线中路径长度(指中转路线长度)最短的路线。如:

起点:1(江苏大学 1 号门)
终点:5(药学院)
最短中转路线:江苏大学 1 号门→医学院→药学院
江苏大学 1 号门→图书馆→药学院
备注:假设图中 1 号门到药学院的路线有:
江苏大学 1 号门→医学院→药学院
江苏大学 1 号门→图书馆→药学院
江苏大学 1 号门→计算机大楼→图书馆→药学院

(最短中转路线至少列出一条,有能力的同学可以把所有路线都列举出来,此项为加分项)
3) 校园平面图信息维护:
提供图的编辑功能,增、删顶点,增删、道路,修改已有信息;修改之后的信息写回文件,便于下一次初始化;
4)用户角色:
分为管理员和普通用户,管理员可以进行初始化、地图信息维护和查询功能;普通用户只可以使用查询功能。

2.3 系统的其他需求

可根据自己的创意添加更多的功能。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

标签:药学院,大学校园,查询,地点,校园,号门,导航系统,短路线,C语言
From: https://www.cnblogs.com/codewriter/p/17017914.html

相关文章

  • C语言两结构体之间的成员互换
    今天在写一个通讯录实现程序的时候,遇到个让我突然卡壳的问题,不知道怎么进行两个结构体之间的成员互换......结构体成员有“姓名”,“性别”,“年龄”,“地址”,“电话”,目的就......
  • 用c语言将三个数字从大到小排列
    #include<stdio.h>intmain(){inta=0;intb=0;intc=0;scanf("%d%d%d",&a,&b,&c);//先确定最大值a,然后比较b和c的大小if(a<b){inttmp=a;a=b;b=......
  • 初识C语言,两变量相加
    #include<stdio.h>intmain(){intnum1=0;intnum2=0;printf("输入两个整数,用逗号隔开:");scanf_s("%d,%d",&num1,&num2);//&表示取地址符号printf("num1=%......
  • C语言中的标识符
    如果说道C语言中的标识符,估计很多人就是:标识符是数字、下划线、小写及大写拉丁字母。但是也可以以 \u 及 \U 转义记号指定的Unicode字符 (C99起)的任意长度序列。......
  • 数据结构与算法(C语言 严蔚敏)二
    前言有误的地方还请大家指出来,我会一一改正,也会在评论区置顶更正的记录;如果是因为不同的教材导致的错误,请把教材名、著作者、版次一并提供,供大家一起督促一起学习,本篇参考......
  • asm: gcc - c语言的内联汇编学习(linux_gcc_c)
    asm: gcc-c语言的内联汇编学习(linux_gcc_c)    一、基本说明 1、操作系统:rockylinux9[root@rockyc]#uname-a......
  • 浅谈C语言编译原理
    C语言我们在学习计算机学科时,往往最先接触到的编程语言是C,它是所有语言中,最接近底层的高级语言之一,因而它具有执行速度快的优点。但它又具有开发周期长和对于经验不足......
  • 用c语言打印1000到2000的闰年
    #include<stdio.h>intmain(){intyeaar=0;for(year=1000;year<=2000;year++){if(year%4==0&&year%100!=0)printf("%d",year);elaeif(year%400==0)......
  • C语言有符号数和无符号数的左移和右移
    参考:https://blog.csdn.net/xiaohuihui1994/article/details/110498343?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-......
  • C语言--函数2--递归1
    8、递归函数直接或间接调用函数本身“自己调用自己”解决一个问题时,解决思路化成与问题本身类似的问题的时候=>递归C语言能够解决的递归问题满足两个条件:a问......