資料結構第一次上機(學生資訊管理 線性表 順序表)

2021-08-09 09:55:04 字數 3165 閱讀 3927

課程名:資料結構

實驗目的:

1、掌握線性表的定義;

2、掌握線性表的基本操作,如建立、查詢、插入和刪除等。

實驗要求:定義乙個包含學生資訊(學號,姓名,成績)的順序表和煉表,使其具有如下功能:

(1) 根據指定學生個數,逐個輸入學生資訊;

(2) 逐個顯示學生表中所有學生的相關資訊;

(3) 根據姓名進行查詢,返回此學生的學號和成績;

(4) 根據指定的位置可返回相應的學生資訊(學號,姓名,成績);

(5) 給定乙個學生資訊,插入到表中指定的位置;

(6) 刪除指定位置的學生記錄;

(7) 統計表中學生個數。

實驗題目:線性表的基本操作及其作用

實驗過程:

按照實驗要求編寫相應程式**,並除錯執行。

附:順序表與鍊錶操作的主函式**。

執行演示過程如下(

這部分不需要寫到報告上):

1、 建立乙個學生表(5個學生);

2、 顯示該表中所有的元素;

3、 根據姓名查詢到第3個學生的資訊並顯示;

4、 插入乙個新的學生並顯示全部學生資訊;

5、 刪除第3個學生的資訊並顯示全部學生資訊;

6、 統計學生表中元素的個數(即學生人數);

7、 退出

實驗結果:

能夠順利完成順序表和單鏈表的建立、插入、刪除等操作。

實驗分析:

1、順序表和單鏈表在各種操作實現過程中的差別

2、程式除錯執行中出現的錯誤資訊原因分析。

definition of structure student

typedef struct student;

definition of sequential list:

typedef  struct sqlist;

definition of linked list

typedef struct lnodelnode,*linklist;  

實驗要求:

(1) 程式要新增適當的注釋,程式的書寫要採用

縮排格式。

(2) 程式要具在一定的健壯性,即當輸入資料非法時,程式也能適當地做出反應,如

插入刪除時指定的位置不對

等等。

(3) 程式要做到介面友好,在程式執行時使用者可以根據相應的提示資訊進行操作。

(4)上傳源程式到課堂派。順序表的源程式儲存為

sqlist.cpp

,鍊錶的源程式儲存為

linklist.cpp

code:

#include#include#include#include#include#include#include#include#define ok 1

#define error 0

//#define overflow -1

#define maxsize 100

using namespace std;

typedef int status; //定義函式返回值型別

typedef struct

student;

typedef student elemtype;

typedef struct

sqlist;

//typedef struct lnode

//lnode,*linklist;

status inilist(sqlist &l) //構造乙個空的順序表l

elemtype getelem(sqlist l,int i)

int locationelem(sqlist l,char str) //根據名字查詢,返回其在順序表中的序號

return 0;

}status listinsert(sqlist &l,int i,elemtype e) //在第i個位置插入學生資訊

status listdelete(sqlist &l,int i) //在順序表中刪除i位置的學生資訊

void input(elemtype &e) //輸入

void output(elemtype &e) //輸出

void function()

int main()

switch(choose)

l.length=x;

break;

case 3:

for(int i=1;i<=x;i++)

break;

case 4:

char s[20];

printf("請輸入要查詢的學生姓名:");

scanf("%s",s);

if(locationelem(l,s))

output(l.elem[locationelem(l,s)]);

else

puts("對不起,查無此人");

break;

case 5:

printf("請輸入要查詢的位置:");

int id1;

scanf("%d",&id1);

b=getelem(l,id1);

output(b);

break;

case 6:

printf("請輸入要插入的位置:");

int id2;

scanf("%d",&id2);

printf("請輸入學生資訊:\n");

input(c);

if(listinsert(l,id2,c))

else

break;

case 7:

printf("請輸入要刪除的位置:");

int id3,ok;

scanf("%d",&id3);

printf("確認刪除學生資訊?\n確認請按1,取消請按2\n");

if(scanf("%d",&ok),ok==1)

else

}break;

case 8:

printf("已錄入的學生個數為:%d\n\n",l.length);

break; }

}return 0;

}

資料結構262 學生資訊管理

某班學生的資訊存放在乙個線性單鏈表中,但每學期都有學生因故退學。現要求根據退學學生的學號,將其資訊從鍊錶中刪除。假設學生的資料只儲存姓名 學號 性別,並採用結構體型別描述。若煉表中有退學學生,輸出刪除該學生後的學生資料 如果鍊錶中沒有該學生,則輸出錯誤資訊no。例1 lidong 1001 m zh...

資料結構262 學生資訊管理

試題名稱 學生資訊管理 時間限制 1 秒 記憶體限制 10000kb 問題描述 某班學生的資訊存放在乙個線性單鏈表中,但每學期都有學生因故退學。現要求根據退學學生的學號,將其資訊從鍊錶中刪除。假設學生的資料只儲存姓名 學號 性別,並採用結構體型別描述。輸入說明 輸入n個學生資料 1 n 10 每行乙...

第一次上機

1 已知a,b均是整型變數,寫出將a,b兩個變數中 的值互換的程式。知識點 變數和運算子綜合 應用 2 給定乙個0 1000的整數,求各位數的和,例 如345的結果是3 4 5 12注 分解數字既可以先 除後模也可以先模後除 知識點 變數和運算子 綜合應用 3 華氏溫度和攝氏溫度互相轉換,從華氏度變...