查詢 排序的應用

2021-07-25 10:51:12 字數 1630 閱讀 3599

查詢、排序的應用

一、實驗目的

1、本實驗可以使學生更進一步鞏固各種查詢和排序的基本知識。

2、學會比較各種排序與查詢演算法的優劣。

3、學會針對所給問題選用最適合的演算法。

4、掌握利用常用的排序與選擇演算法的思想來解決一般問題的方法和技巧。

二、實驗內容

[問題描述]

學生資訊管理系統 [

基本要求]

設計乙個學生資訊管理系統,學生物件至少要包含:學號、姓名、性別、成績1、成績2、總成績等資訊。要求實現以下功能:

1.試選擇一種方式實現:基於陣列、鍊錶或檔案方式

2.總成績要求自動計算;

3.查詢:分別給定學生學號、姓名、性別,能夠查詢到學生的基本資訊(要求至少用兩種查詢演算法實現);

4、排序:分別按學生的學號、成績1、成績2、總成績進行排序(要求至少用兩種排序演算法實現)。 [

測試資料]

由學生依據軟體工程的測試技術自己確定。

1、總體設計(設計思想):

用結構體陣列儲存學生資訊,輸入單科成績後,系統自動計算每個學生的總成績,查詢方法用到折半查詢和順序查詢,排序方法用到氣泡排序和簡單插入排序。

2、詳細設計:

程式執行,先建立學生資訊庫,即結構體陣列,然後再對學生資訊進行其他的操作;查詢的時候,順序查詢就是從頭開始乙個乙個對比,比較簡單,折半查詢前先對學生進行從大到小排序,然後再每次和中間的學生對比,縮小範圍,最後找到給學生。排序的時候:氣泡排序比較簡單,簡單插入排序也是比較簡單,每次把乙個學生插入到已經排好的學生序列中。

3、功能展示及截圖:

4、程式清單:

#include#include#include#define maxsize 100  //設記錄不超過20個

using namespace std;

typedef struct //定義每個記錄的結構

recordtype;

typedef struct //定義順序表的結構

sqlist;

void menu(sqlist &st);

void creatlist(sqlist &st) //建立學生的相關資訊

cout

switch(m)

output(st);

cout

switch(c) }

int main()/*3

456a126

23326b2

2648

225c135

95*/

C 排序 查詢的應用

1 定義控制台應用程式的入口點。2 34 include stdafx.h 5 include string.h 6 include 7 8 define length 26 9using namespace std 10 選擇排序 11 void order char a,int n 12 242...

拓撲排序的應用

adjlist.h有向無環圖的鄰接表儲存結構 include include include define max vertex num 10 define max name 10 typedef char vertexdata max name typedef struct arcnode arc...

排序演算法的應用

假設序列中有n個元素,取其前k個組成乙個最大堆。由於最大堆的堆頂為序列中最大元素,所以組成的最大堆的堆頂是前k個元素中最大的元素。依次用第k 1到第n個元素與堆頂進行比較,如果比堆頂元素大,那麼該元素肯定不會是前k個最小的元素 如果比堆頂小,那麼堆頂的元素肯定不是前k個最小的元素,此時更新堆頂元素,...