• 大小: 9KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-07-14
  • 语言: C/C++
  • 标签:

资源简介

设计你的学校的平面图,至少包括10个以上的景点(场所),每两个景点间可以有不同的路,且路长也可能不同,找出从任意景点到达另一景点的最佳路径(最短路径)。 要求: (1)以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。 (4)提供图的编辑功能:增加、修改、删除景点;增加、修改、删除道路等。 (5)校园导游图的仿真界面。 8.学生成绩管理系统 学生成绩管理是高等学校教务管理的重要组成部分,主要包括学生注册、考试成绩的录入及修改、成绩的统计分析等等。设计一个系统实现对学生成绩的管理。 要求系统应具有以下基本功能: (1)学生注册登记; (2)增加、删除某一班级的学生; (3)成绩录入:输入学生的考试成绩; 要求采用二叉排序树存放学生成绩,一门课程对应一棵二叉排序树; (4)成绩修改:若输入错误可进行修改; (5)统计分析:对某个班级学生的单科成绩进行统计,求出平均成绩;求出成绩处于指定分数段内的学生人数;求出每个学生一学期各科的平均成绩等; (6)查找:查找某个学生的某门课程成绩,查找某门课程成绩处于指定分数段内的学生名单等等。 (7)打印:打印一个班级学生的单科成绩;打印某一课程成绩处于指定分数段内的学生名单;打印学生在某一学期的成绩报告单。

资源截图

代码片段和文件信息

#include “string.h“ 
#include “stdio.h“ 
#include “stdio.h“
#include “malloc.h“
#include “stdlib.h“
#define Max 20000
#define NUM 10
typedef struct ArcCell{
int adj;  /* 相邻接的景点之间的路程 */
}ArcCell;   /* 定义边的类型 */
typedef struct VertexType{
int number;  /* 景点编号 */
char* sight;  /* 景点名称 */
char* info; /* 景点描述 */
}VertexType;   /* 定义顶点的类型 */
typedef struct{
VertexType vex[NUM]; /* 图中的顶点,即为景点 */
ArcCell arcs[NUM][NUM]; /* 图中的边,即为景点间的距离 */
int vexnumarcnum; /* 顶点数,边数 */
}MGraph;   /* 定义图的类型 */
MGraph G;   /* 把图定义为全局变量 */
int P[NUM][NUM];  /*  */
long int D[NUM];  /* 辅助变量存储最短路径长度 */
int   x[9]={0}; 
void CreateUDN(int vint a); /* 造图函数 */
void narrate();   /*说明函数*/
void ShortestPath(int num); /*最短路径函数*/
void output(int sight1int sight2); /*输出函数*/
char Menu();   /* 主菜单 */
void search();   /* 查询景点信息 */
char SearchMenu();  /* 查询子菜单 */
void   HaMiTonian(int);   /* 哈密尔顿图的遍历 */
void   NextValue(int);   
void   display(); /* 显示遍历结果 */
void main() /* 主函数 */
{

int v0v1;
char ck;
CreateUDN(NUM11);
do
{  
  ck=Menu();
  switch(ck)
  {
  case ‘1‘:
   system(“cls“);
   narrate();       /* 输出景点列表 */
   printf(“\n\n\t\t\t请选择起点景点(0~9):“);
   scanf(“%d“&v0);
   printf(“\t\t\t请选择终点景点(0~9):“);
   scanf(“%d“&v1);
   ShortestPath(v0);  /* 计算两个景点之间的最短路径 */
   output(v0v1);     /* 输出结果 */
   printf(“\n\n\t\t\t\t请按任意键继续...\n“);
   getchar();
   getchar();
   break;
  case ‘2‘:search();
   break;
  case ‘3‘:
   system(“cls“);
   narrate();
   x[0]=1;   
   HaMiTonian(1); 
   printf(“\n\n\t\t\t\t请按任意键继续...\n“);
   getchar();
   getchar();
   break;
  };
}while(ck!=‘e‘);


}
char Menu()  /* 主菜单 */
{
char c;
int flag;
do{
  flag=1;
  system(“cls“);
  narrate();                /* 输出景点列表 */
  printf(“\n\t\t\t┏━━━━━━━━━━━━━━━┑\n“);
  printf(“\t\t\t┃                              ┃\n“);
  printf(“\t\t\t┃      1、查询景点路径         ┃\n“);
  printf(“\t\t\t┃      2、查询景点信息         ┃\n“);
  printf(“\t\t\t┃      3、推荐参观路线         ┃\n“);
  printf(“\t\t\t┃      e、退出                 ┃\n“);
  printf(“\t\t\t┃                              ┃\n“);
  printf(“\t\t\t┗━━━━━━━━━━━━━━━┛\n“);
  printf(“\t\t\t\t请输入您的选择:“);
  scanf(“%c“&c);
  if(c==‘1‘||c==‘2‘||c==‘3‘||c==‘e‘)
   flag=0;
}while(flag);
return c;

char SearchMenu()  /* 查询子菜单 */
{
char c;
int flag;
do{
  flag=1;
  system(“cls“);
  narrate();
  printf(“\n\t\t\t┏━━━━━━━━━━━━━━━┑\n“);
  printf(“\t\t\t┃                              ┃\n“);
  printf(“\t\t\t┃      1、按照景点编号查询     ┃\n“);
  printf(“\t\t\t┃      2、按照景点名称查询     ┃\n“);
  printf(“\t\t\t┃      e、返回                 ┃\n“);
  printf(“\t\t\t┃                              ┃\n“);
  printf(“\t\t\t┗━━━━━━━━━━━━━━━┛\n“);
  printf(“\t\t\t\t请输入您的选择:“);
  scanf(“%c“&c);
  if(c==‘1‘||c==‘2‘||c==‘e‘)
   flag=0;
}while(flag);
return c;
}
void search()  /* 查询景点信息 */
{
int num;
int i;
char c;
char name[20];

do
{
  system(“cls“);
  c=SearchMenu();
  switch (c)
  {
  case ‘1‘:

评论

共有 条评论

相关资源