資源簡介
設計你的學校的平面圖,至少包括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‘:
- 上一篇:C++ 分治法解決郵局選址問題
- 下一篇:SLR1分析表的生成
評論
共有 條評論