(實驗一)學生資訊

2021-07-22 23:01:55 字數 3438 閱讀 6822

/*順序表*/

#include

#include

#include

#include

#define ok 1

#define error 0

#define overflow -1

using namespace std;

#define maxsize 100

typedef struct

student;

typedef  struct

sqlist;

void menu()

void input(student &e)

void output(student e)

int listinsert(sqlist &l,int i,student e)

int listdelete(sqlist &l,int i)

switch(m)

printf("\n\n");

break;

case 5:

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

scanf("%d",&pos);

printf("請輸入學號:");

scanf("%s",e.num);

printf("請輸入姓名:");

scanf("%s",e.name);

printf("請輸入成績:");

scanf("%d",&e.score);

if(listinsert(l,pos,e))

printf("插入成功!");

else

printf("插入失敗!\n");

printf("\n\n");

break;

case 6:

printf("請輸入要刪除的學生資訊的位置:   ");

scanf("%d",&pos);

if(listdelete(l,pos))

printf("刪除成功!");

else

printf("刪除失敗!\n");

printf("\n\n");

break;

case 7:

printf("學生總數:   %d\n",l.length);

break;}}

return 0;

/********實驗一(鍊錶)***********/

#include

#include

#include

#include

#define len sizeof(lnode)

using namespace std;

typedef struct

student;

typedef  struct lnode

lnode,*linklist;

/*void initlist(linklist &l)//鍊錶初始化

*/void creat(linklist &l,int n)//後插法,建立鍊錶並輸入學生資訊

}void output(linklist &l)//輸出所有學生資訊

dowhile(p!=null);

printf ("顯示完畢!\n");

}void namesearch(linklist l,char str)//按姓名查詢學生資訊

while(p && (strcmp(p->data.name,str)))

p=p->next;

if(!p)

printf("查詢成功!該學生資訊為:\n");

e=p->data;

printf("學號:%s\t姓名:%s\t成績:%d\n",e.num,e.name,e.score);

}int getelem(linklist l,int i,student &e)//查詢指定位置學生資訊

if(!p||j>i) return 0;           //i值不合法i>n或i<=0

e=p->data;

return 1;

}int insertlist(linklist &l,int i,student e)//在i出插入新的學生資訊

if(!p||j>i-1) return 0;          //i值不合法i>n+1或i<1

s=(lnode *)malloc(sizeof(lnode));//生成新節點*s

s->data=e;                       //*s的資料域置為e

s->next=p->next;                 //*s的指標域指向節點ai

p->next=s;                       //將節點*p的指標域指向節點*s

return 1;

}int deletelist(linklist &l,int i)//刪除i處學生資訊

if(!p->next||j>i-1) return 0;//i>n 或 i<1 時,刪除位置不合理

q=p->next;                   //p臨時儲存被刪除節點

p->next=q->next;             //改變刪除節點前驅節點的指標域

free(q);                     //釋放刪除節點的空間

return 1;

}int length(linklist l)//鍊錶總長度(學生總人數)

return len;

}void menu()

int main()

else

printf("查詢失敗!\n");

printf("\n");

break;

case 5:

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

scanf("%d",&pos);

printf("請輸入學號:");

scanf("%s",e.num);

printf("請輸入姓名:");

scanf("%s",e.name);

printf("請輸入成績:");

scanf("%d",&e.score);

if(insertlist(l,pos,e))

printf("插入完成!\n\n");

else

printf("插入失敗!\n\n");

break;

case 6:

printf("請輸入要刪除的學生資訊的位置:   ");

scanf("%d",&pos);

if(deletelist(l,pos))

printf("刪除成功!\n");

else

printf("刪除失敗!\n");

break;

case 7:

l=length(l);

printf("學生總數:   %d\n",l);

break;}}

}return 0;

}

實驗11 2 1 建立學生資訊鍊錶 20分

本題要求實現乙個將輸入的學生成績組織成單向鍊錶的簡單函式。函式介面定義 void input 該函式利用scanf從輸入中獲取學生的資訊,並將其組織成單向鍊錶。鍊錶節點結構定義如下 struct stud node 單向鍊錶的頭尾指標儲存在全域性變數head和tail中。輸入為若干個學生的資訊 學號...

實驗11 2 1 建立學生資訊鍊錶 (20 分)

本題要求實現乙個將輸入的學生成績組織成單向鍊錶的簡單函式。函式介面定義 void input 該函式利用scanf從輸入中獲取學生的資訊,並將其組織成單向鍊錶。鍊錶節點結構定義如下 struct stud node 單向鍊錶的頭尾指標儲存在全域性變數head和tail中。輸入為若干個學生的資訊 學號...

實驗11 2 1 建立學生資訊鍊錶 20 分

本題要求實現乙個將輸入的學生成績組織成單向鍊錶的簡單函式。函式介面定義 void input 該函式利用scanf從輸入中獲取學生的資訊,並將其組織成單向鍊錶。鍊錶節點結構定義如下 struct stud node 單向鍊錶的頭尾指標儲存在全域性變數head和tail中。輸入為若干個學生的資訊 學號...