版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告專 業(yè)信息管理與信息系統(tǒng)班 級(jí) 學(xué) 號(hào)學(xué)生姓名 指導(dǎo)老師 河南科技大學(xué)管理學(xué)院2014年11月20日實(shí)驗(yàn)一、順序表的應(yīng)用、實(shí)驗(yàn)?zāi)康氖炀氄莆站€性表的順序存儲(chǔ)結(jié)構(gòu)的建立方法以及基本操作算法, 并根據(jù)實(shí)際問題 的要求,靈活運(yùn)用。讓學(xué)生能夠初步了解并理解學(xué)生信息管理系統(tǒng)的建立以及每一步 的運(yùn)行,為以后的實(shí)驗(yàn)奠定基礎(chǔ)。二、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)要求驗(yàn)證以班級(jí)學(xué)生信息作為管理對(duì)象, 實(shí)現(xiàn)順序表各種基本運(yùn)算的 C 語(yǔ)言程序。通過本次實(shí)驗(yàn)練習(xí),要求學(xué)生對(duì) C 語(yǔ)言各個(gè)知識(shí)點(diǎn)進(jìn)行復(fù)習(xí)領(lǐng)會(huì),學(xué)習(xí)如何利 用 C 語(yǔ)言建立班級(jí)學(xué)生信息線性表的順序存儲(chǔ)結(jié)構(gòu),如何使用順序表的基本操作算 法,實(shí)現(xiàn)對(duì)班級(jí)學(xué)生信息的
2、管理,包括學(xué)生信息的插入、學(xué)生信息的刪除、學(xué)生信息 的查詢和學(xué)生信息線性表的輸出。1、學(xué)生信息管理主控程序?qū)W生信息管理系統(tǒng)1、學(xué)生信息線性表的建立2、插入學(xué)生信息3、查詢學(xué)生信息4、刪除學(xué)生信息5、輸出所有學(xué)生信息0、退出管理系統(tǒng)請(qǐng)選擇05:2、學(xué)生信息管理功能函數(shù)( 1) 函數(shù) createList(), 建立學(xué)生信息順序表;( 2) 函數(shù) printList(),輸出學(xué)生信息順序表中的各項(xiàng)內(nèi)容;( 3) 函數(shù) insert(), 在學(xué)生信息順序表中插入新的學(xué)生信息結(jié)點(diǎn);( 4) 函數(shù) findList(),在學(xué)生信息順序表中實(shí)現(xiàn)按學(xué)號(hào)和姓名兩種方式查詢學(xué)生信息;( 5) 函數(shù) delNod
3、e() ,在學(xué)生信息順序表中刪除指定學(xué)生的信息;三、完成情況在充分了解實(shí)驗(yàn)?zāi)康呐c實(shí)驗(yàn)內(nèi)容的基礎(chǔ)上,將下列程序在 VC+ 6 中運(yùn)行,會(huì)得 出相應(yīng)的結(jié)果。并能充分認(rèn)識(shí)到學(xué)生信息管理系統(tǒng)。#include <stdio.h>#include <string.h>#define MAXSIZE 100 typedef structchar num8;/*學(xué)號(hào) */char name9;/*姓名 */char gender3;/*性別 */int score;/*成績(jī) */DataType;typedef structDataType stuMAXSIZE; int lengt
4、h;sequenlist;int menu_select()int sn;prin tf("n管理學(xué)院信管131班 王娟n");printf("=n");printf("n學(xué)生信息管理系統(tǒng) n");printf("=n");printf("1.學(xué)生信息線性表的建立 n");printf("2.插入學(xué)生信息n");printf("3.查詢學(xué)生信息n");printf("4.刪除學(xué)生信息n");printf("5.輸 出 所有學(xué)生
5、信息 n");printf("0.退出管理系統(tǒng)n");printf("=n");printf(" 請(qǐng)選擇 0-5:n");for(;)scanf("%d",&sn);if (sn<0 | sn>5) printf("nt 輸入錯(cuò)誤,重選 0-5n");else break;return sn;void createList(sequenlist *L)int n,i;printf(" 有幾位學(xué)生?請(qǐng)輸入: n"); fflush(stdin);s
6、canf("%d",&n);printf(”以下請(qǐng)輸入這dB學(xué)生的信息:n",n);for(i=0;i<n;i+)printf("第dB學(xué)生:",i);printf("n學(xué)號(hào)(8)姓名(8)性別成績(jī)n");fflush(stdin);scanf("%s%s%s%d",L->stui.num,L->,L->stui.gender,&L->stui .score);L->length=n;void printList(sequenlist
7、*L)int i;printf("n 學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n");printf("n");for(i=0;i<L->length;i+)printf("第4位學(xué)生:",i);printf("%s,%s,%s,%dn",L->stui.num,L->,L->stui.gender,L->s tui.score);printf("-n");int insert(sequenlist *L,DataType *student,int
8、i)int j;if(L->length=MAXSIZE)printf("overflow!");return 0;else if(i<0)|(i>L->length)printf("error,please input the right 'i'");return 0;elsefor(j=L->length-1;j>=i;j-)strcpy(L->stuj+1.num,L->stuj.num); strcpy(L->stuj+1.name,L->); strc
9、py(L->stuj+1.gender,L->stuj.gender); L->stuj+1.score=L->stuj.score;strcpy(L->stui.num,student->num); strcpy(L->,student->name); strcpy(L->stui.gender,student->gender); L->stui.score=student->score;L->length=L->length+1;return 1;int findList(sequenli
10、st *L)char num8; char name9;int i=0,xz;printf("=n");printf("1 、按學(xué)號(hào)查詢 n");printf("2 、按姓名查詢 n"); printf("=n"); printf(" 請(qǐng)選擇: ");fflush(stdin); scanf("%d",&xz);if (xz=1)printf(" 請(qǐng)輸入要查找學(xué)生的學(xué)號(hào): "); scanf("%s",num); for(i=0
11、;i<L->length;i+)if(strcmp(L->stui.num,num)=0) return i;else if (xz=2)printf(" 請(qǐng)輸入要查找學(xué)生的姓名: ");scanf("%s",name); for(i=0;i<L->length;i+) if(strcmp(L->,name)=0)return i;return -1;/* 如果沒找到,返回 -1 。否則直接返回,不會(huì)執(zhí)行本句 */void delNode(sequenlist *L)int i,j;printf(&q
12、uot; 請(qǐng)先查找您要?jiǎng)h除的學(xué)生信息: n");i=findList(L);if(i=-1)printf(" 沒有查到要?jiǎng)h除的學(xué)生信息 ");return;for(j=i;j<L->length;j+)L->stuj.score=L->stuj+1.score; strcpy(L->stuj.num,L->stuj+1.num); strcpy(L->,L->stuj+1.name); strcpy(L->stuj.gender,L->stuj+1.gender);L->lengt
13、h-;printf(" 該學(xué)生信息已被刪除! n");void main()sequenlist *L;DataType *student;int i;L=(sequenlist *)malloc(sizeof(sequenlist); while(1)switch(menu_select()case 1:printf("*n");printf("學(xué)生信息線性表的建立n");- 5 -printf("*n");createList(L); break;case 2:printf("f*n");p
14、rintf("添加學(xué)生信息 n");printf("請(qǐng)輸入要添加的學(xué)生信息: n");printf("n 學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n");printf("f*n");student=(DataType *)malloc(sizeof(DataType);fflush(stdin);scanf("%s%s%s%d",student->num,student->name,student->gender,&student->sco re);printf(&qu
15、ot;請(qǐng)輸入要插入的位置: n");fflush(stdin);scanf("%d",&i);insert(L,student,i);break;case 3:printf("f*n");printf("查詢學(xué)生信息 n");printf("f*n");i=findList(L);if(i!=-1)姓名(8)性別 成績(jī)n");printf(" 您要查的學(xué)生為: n 學(xué)號(hào)( 8)printf("n");printf("%s,%s,%s,%dn&quo
16、t;,L->stui.num,L->,L->stui.gender,L->s tui.score);printf("-n"); elseprintf("沒有您要查詢的學(xué)生信息! ");break;case 4:printf("f*n");printf("刪除學(xué)生信息 n");printf("f*n");delNode(L);break;case 5:prin tf("*n");-11 -printf("輸出所有學(xué)生信息n&q
17、uot;);prin tf("*n");prin tList(L); break;case 0:printf("再見! n"); getch();return;四、實(shí)驗(yàn)結(jié)果 學(xué)生信息表的建立并輸出驗(yàn)證管理學(xué)院 信管丄吐班王娟學(xué)生信息管理系統(tǒng)一建息息自S息統(tǒng) 一囪 亠=日 -系 一性三二二二學(xué)里 一區(qū)X盂齋管 一知入詢掘出 一學(xué)插查諏超 11 一 11 -12 3 4 5 0敏真 )s)-li («王學(xué)(«犁軌錢牌號(hào)字/ 以辜1辜01辜01名88姓女ft4耳學(xué)生信息線性表的建立成績(jī)成績(jī)成績(jī)請(qǐng)選擇0-5:前岀所有學(xué)生信息也匕牟土"
18、;: 了種并逐盤二圧弼坯:書 插入學(xué)生信息并輸出驗(yàn)證管理學(xué)院信管賞丄班±1學(xué)生信息管理系統(tǒng)建息息息息統(tǒng) 的/=R 性二二二匚一學(xué)里 /#小74二宀二有 息亠盂管 蘭口 、獲詢雖岀 學(xué)插杳12 3 4 5 0的學(xué)生信息:學(xué)號(hào)(叮姓名(8)性別成績(jī)請(qǐng)選擇4 5 :【1位學(xué)生;啦血李喜朋"女託區(qū)位學(xué)生;0115,劉麗敏”女丄7M位學(xué)生:012錢素真女8 兩種方法查詢學(xué)生信息管理學(xué)院信管1吐班王娟學(xué)生信息管理系統(tǒng)立 建息息息息統(tǒng) 的 蘭R 性一二-二二學(xué) g 線4 一匸二上-有土 息宀XSI'HSH 亠一s、 L±1入詢蚩岀 s_il 1 2 3 4* 5 0請(qǐng)i
19、詢學(xué)生信息Hi請(qǐng)選擇1魅生的學(xué)號(hào)/于土為=旌名(8)性別成績(jī)查詢學(xué)生信息:ISlSil選查學(xué) 請(qǐng)霜8) 入杳(輸要號(hào)“乩李喜朋女怖 刪除學(xué)生信息(此處只列出一種:按學(xué)號(hào)刪除。按姓名刪除的方法一樣。)管理學(xué)院信管1葩班王娟學(xué)牛信息管理系統(tǒng)建息自心息息統(tǒng) 的 蘭刀系 性二一 -里 44- -U-U -j/rpnA 2人詢蚩出 s*_n Il 12 3 4 5 0請(qǐng)選擇0-5 :o除學(xué)生信息請(qǐng)先查找您要?jiǎng)h除的學(xué)生信息:軟慮攣勒勰學(xué)號(hào) 該學(xué)生稽息已被刪除!10110 輸出所有學(xué)生信息(既是對(duì)的輸出,又是對(duì)整體的輸出。)繭出所有學(xué)生信息學(xué)號(hào)(8)姓名性別申績(jī)第0位學(xué)生:0128,女巫第丄位學(xué)生:0115
20、,1麗敏,女7第2位學(xué)生0121,錢素真女胡8O退出管理系統(tǒng)管理學(xué)院信管燈丄班王娟學(xué)生信息管理系統(tǒng)建息息息自心統(tǒng) 的 士日系 墾生生辭理 息宀ssr'RKM 亠一S、 ±1入詢蚩岀 學(xué)插查® 12 3 4 5 0五、問題與解決(小四號(hào)字,宋體)1 實(shí)驗(yàn)中遇到的問題及解決過程2 實(shí)驗(yàn)中產(chǎn)生的錯(cuò)誤及原因分析首先寫出執(zhí)行語(yǔ)句不成功的時(shí)候系統(tǒng)報(bào)告的錯(cuò)誤信息。然后分析錯(cuò)誤原因,并給出解決辦法六、實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)之前只有完全理解實(shí)驗(yàn)的基本目的和內(nèi)容, 將實(shí)驗(yàn)的程序與課本中的內(nèi)容聯(lián) 系起來,才能更好的把所學(xué)內(nèi)容運(yùn)用到實(shí)際中,才真正掌握課本中的知識(shí)。實(shí)驗(yàn)二、單鏈表的應(yīng)用、實(shí)驗(yàn)?zāi)康氖炀氄?/p>
21、握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的建立方法以及基本操作算法, 并根據(jù)實(shí)際問題 的要求,靈活運(yùn)用。二、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)要求以班級(jí)學(xué)生信息作為管理對(duì)象, 根據(jù)實(shí)驗(yàn)一建立班級(jí)學(xué)生信息線性 表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu), 并練習(xí)使用單鏈表的基本操作算法, 實(shí)現(xiàn)對(duì)班級(jí)學(xué)生信息的管理, 包括學(xué)生信息的插入、學(xué)生信息的刪除、學(xué)生信息的查詢和學(xué)生信息線性表的輸出。1、學(xué)生信息管理主控程序的設(shè)計(jì)學(xué)生信息管理系統(tǒng)1、學(xué)生信息線性表的建立2、插入學(xué)生信息3、查詢學(xué)生信息4、刪除學(xué)生信息5、輸出所有學(xué)生信息0、退出管理系統(tǒng)請(qǐng)選擇05:2、學(xué)生信息管理功能函數(shù)的設(shè)計(jì)( 1) 設(shè)計(jì)函數(shù) createList(), 建立學(xué)生信息單鏈表;( 2)
22、 設(shè)計(jì)函數(shù) printList(), 輸出學(xué)生信息單鏈表中的各項(xiàng)內(nèi)容;( 3) 設(shè)計(jì)函數(shù) insert(), 在學(xué)生信息單鏈表中插入新的學(xué)生信息結(jié)點(diǎn);( 4) 設(shè)計(jì)函數(shù) findList(), 在學(xué)生信息單鏈表中實(shí)現(xiàn)按學(xué)號(hào)和姓名兩種方 式查詢學(xué)生信息;( 5) 設(shè)計(jì)函數(shù) delNode() ,在學(xué)生信息單鏈表中刪除指定學(xué)生的信息;三、完成情況#include <stdio.h>#include <string.h>#include <malloc.h> typedef structchar num8;/* 學(xué)號(hào) */ char name9;/*姓名 */ch
23、ar gender3;/*性別 */int score;/*成績(jī) */DataType;typedef struct LNodeDataType stu; struct LNode *next;LNode, *LinkList;int menu_select()int sn;printf(" 管理學(xué)院 信管 131 班 王娟 n"); printf("n 學(xué)生信息管理系統(tǒng) n"); printf("=n");printf(" printf("1.2.學(xué)生信息線性表的建立 n");插入學(xué)生信息 n"
24、;);printf("3.查詢學(xué)生信息 n");printf("4.刪除學(xué)生信息 n");printf("5.輸 出 所有學(xué)生信息 n");printf("0.退出管理系統(tǒng) n");printf("=printf("請(qǐng)選擇 0-5:n");for(;) scanf("%d",&sn); if (sn<0 | sn>5) printf("nt 輸入錯(cuò)誤,重選 0-5n"); else break;return sn;LinkLi
25、st CreateList(LinkList L)int n,i;LinkList p;printf(" 有幾位學(xué)生?請(qǐng)輸入: n");fflush(stdin);scanf("%d",&n);printf(”以下請(qǐng)輸入這dB學(xué)生的信息:n",n);L=(LinkList)malloc(sizeof (LNode);L->next=NULL;for(i=n;i>0;-i)printf("第dB學(xué)生:",i);printf("n 學(xué)號(hào)(8) 姓名(8)性別 成績(jī)n");p=(LinkLi
26、st) malloc (sizeof(LNode);scanf("%s%s%s%d",p->stu.num,p->,p->stu.gender,&p->stu.score);p->next=L->next;L->next=p;return L;/CreateList_Lvoid printList(LinkList L)int i=0;LinkList p;printf("n學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n");printf("n");p=L->next;wh
27、ile(p!=NULL)printf("第4位學(xué)生:",+i);printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.sc ore);p=p->next;printf("-n");void insert(LinkList L,DataType *stu,int i)int j=0;LinkList p,s;p=L;while(p&&j<i-1)p=p->next;+j;if(!p|j>i-1)
28、printf("ERRORn");s=(LinkList)malloc(sizeof(LNode);strcpy(s->stu.num,stu->num);strcpy(s->,stu->name);strcpy(s->stu.gender,stu->gender);s->stu.score=stu->score;s->next=p->next;p->next=s;int findList(LinkList L)char num8; char name9;int i=0,xz; LinkLis
29、t p; p=L->next;printf("=n");printf("1 、按學(xué)號(hào)查詢 n");printf("2 、按姓名查詢 n"); printf("=n"); printf(" 請(qǐng)選擇: ");fflush(stdin);scanf("%d",&xz);if (xz=1)printf(" 請(qǐng)輸入要查找學(xué)生的學(xué)號(hào): ");scanf("%s",num);while(p!=NULL)if(strcmp(p->s
30、tu.num,num)=0)成績(jī)printf(" 您要查的學(xué)生為: n 學(xué)號(hào)(8) 姓名( 8) 性別 n");printf("n");printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.score)printf("-n");return i;elsep=p->next;i+;return -1;else if (xz=2)printf(" 請(qǐng)輸入要查找學(xué)生的姓名: "); scanf(
31、"%s",&name);while(p!=NULL) if(strcmp(p->,name)=0) printf("您要查的學(xué)生為:n學(xué)號(hào)(8) 姓名(8) 性別成績(jī)n");printf("n");printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.score)printf("-n");return i;elsep=p->next;i+;return -1;
32、/* 如果沒找到,返回 -1 。否則直接返回,不會(huì)執(zhí)行本句 */void delNode(LinkList L)char num8;LinkList p,q;p=L;printf(" 請(qǐng)先查找您要?jiǎng)h除的學(xué)生學(xué)號(hào): n");scanf("%s",&num);while(strcmp(p->next->stu.num,num)!=0)p=p->next;if(!(p->next)printf("ERRORn");elseq=p->next;p->next=q->next;free(q);p
33、rintf(" 該學(xué)生信息已被刪除! n");void main()LinkList L;DataType *stu; int i;L=(LinkList)malloc(sizeof(LNode); while(1) switch(menu_select()case 1:printf("*n");- 17 -printf("學(xué)生信息線性表的建立n");printf("*n");L=CreateList(L); break;case 2:printf("f*n");printf("添加學(xué)
34、生信息 n");printf("請(qǐng)輸入要添加的學(xué)生信息: n");printf("n學(xué)號(hào)(8) 姓名(8)性別成績(jī)n");printf("f*n");stu=(DataType *)malloc(sizeof(LNode);fflush(stdin);scanf("%s%s%s%d",stu->num,stu->name,stu->gender,&stu->score);printf("請(qǐng)輸入要插入的位置: n");fflush(stdin); scan
35、f("%d",&i);insert(L,stu,i);break;case 3:printf("f*n");printf("查詢學(xué)生信息 n");printf("f*n");i=findList(L);if(i=-1)printf(" 沒有查詢到此學(xué)生信息 n"); elseprintf(" 查詢成功! n"); break;case 4:printf("f*n");printf("刪除學(xué)生信息 n");printf("
36、;f*n");delNode(L);break;case 5:prin tf("*n");-23 -printf("輸出所有學(xué)生信息n");prin tf("*n");prin tList(L); break;case 0:printf("再見! n"); getchar();return;四、實(shí)驗(yàn)結(jié)果學(xué)生信息線性表的建立并輸出驗(yàn)證fsW信管婦創(chuàng)學(xué)生信息管理系統(tǒng)立 K 建息息息息統(tǒng)“ 的 蘭口 性一二二二二學(xué) g 一J 一一 息宀ssi管一 蘭口卻入詢番出 學(xué)插查-12 3 4 5 0 三01kL成績(jī)性別
37、咸績(jī)咸績(jī)性別性別(8)87插入學(xué)生信息并輸出驗(yàn)證 查詢學(xué)生信息(兩種方法都有)管理學(xué)院信管1葩班王娟 學(xué)牛信息管理系統(tǒng)立“ 建息自S息息統(tǒng)* 的:宿“系二 性1二匸匕斗-T-里一 常生穽有孑“ 息嚴(yán)sIHrhi管一=口知入詢脣岀二 i*_sl 一 1 2 3 4 5 0 -畫詢學(xué)生信息【iotilie嗎(選查學(xué)請(qǐng)夢(mèng)的8)1s 3118性別成績(jī)1込李喜朋茂品I查詢成功!:soil名姓1 內(nèi) 00 Hen 選查學(xué) 請(qǐng)書8) 人杳(輸要號(hào) 刪除學(xué)生信息并輸出驗(yàn)證管理學(xué)院信管但班 SI學(xué)生信息管理系統(tǒng)建息息息息統(tǒng) 的 r,丿< 性士三一二學(xué)里 二 4二 4- Hv 息盂*£管 蘭口、
38、也入詢醫(yī)岀 學(xué)插杳蟲韻 12 3 4 5 0請(qǐng)選擇滬5 :刑除學(xué)生信息請(qǐng)先查找您要?jiǎng)h除的學(xué)生學(xué)號(hào)該學(xué)牛信息已補(bǔ)刪除f貳貝;女川*嚳I:需嘰”3辰學(xué)生;0128,1 輸出所有學(xué)生信息管理學(xué)院 信管燈丄班王娟學(xué)生信息管理系統(tǒng)建惠息息息統(tǒng) 的 亠一耳系 /a一二一二-二學(xué)里 -aJI二 嶷筈盂襦管亠召知入詢啓岀 宀S聲一1 2 3 4 5 B青選擇0-£:弐號(hào)(8)姓名(8)性別成績(jī)Bi:驕霉餐爲(wèi)壽生;0128,王娼妥胡8O退出管理系統(tǒng)管理學(xué)院 信管甘班王娟學(xué)生信息管理系統(tǒng)五、建息自瓷息統(tǒng) 的 亠一耳 ,-ft二 _ 一二-二學(xué)里 £4- 一_±. 自童Z盂管 言 J
39、J 肘入詢豎出問題與解決(小四號(hào)字,宋體)1 實(shí)驗(yàn)中遇到的問題及解決過程2 實(shí)驗(yàn)中產(chǎn)生的錯(cuò)誤及原因分析首先寫出執(zhí)行語(yǔ)句不成功的時(shí)候系統(tǒng)報(bào)告的錯(cuò)誤信息。然后分析錯(cuò)誤原因,并給出解決辦法六、實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)體會(huì)和收獲。 (小四號(hào)字,宋體)- 27 -實(shí)驗(yàn)三、棧和隊(duì)列的應(yīng)用一、實(shí)驗(yàn)?zāi)康?熟練掌握棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)以及基本操作算法,并根據(jù)實(shí)際問題的要求, 靈活運(yùn)用。二、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)仍以班級(jí)學(xué)生信息作為管理對(duì)象, 首先,建立班級(jí)學(xué)生信息棧的數(shù)據(jù)存 儲(chǔ)結(jié)構(gòu),然后利用學(xué)生信息棧數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)學(xué)生信息單鏈表的逆置。實(shí)驗(yàn)提示 1、學(xué)生信息棧數(shù)據(jù)結(jié)構(gòu)的定義 已知學(xué)生的信息包括如下內(nèi)容:學(xué)號(hào)、姓名、性別、成績(jī),
40、可定義學(xué)生信息棧為 以下的數(shù)據(jù)結(jié)構(gòu)。typedef structchar num8;/*學(xué)號(hào) */char name9;/* 姓名 */char gender3;/* 性別 */int score;/*成績(jī) */DataType; / 學(xué)生結(jié)構(gòu)體定義typedef struct ListNodeDataType data;struct node *next;ListNode , *LinkList;/ 結(jié)點(diǎn)定義typedef structDataType *base;DataType *top;int stacksize;SqStack;/ 順序棧定義2、學(xué)生信息棧實(shí)現(xiàn)學(xué)生信息單鏈表的逆置功能
41、函數(shù)的設(shè)計(jì)( 1)設(shè)計(jì)函數(shù) CreateList() ,建立一個(gè)帶頭結(jié)點(diǎn)的學(xué)生信息單鏈表;( 2)設(shè)計(jì)函數(shù) PrintList(L),將學(xué)生信息單鏈表按從表頭到表尾的順序輸出;( 3)設(shè)計(jì)函數(shù) RevLinkList(L) ,將學(xué)生信息單鏈表逆置:首先將單鏈表中的結(jié) 點(diǎn)數(shù)據(jù)信息依次入棧, 然后數(shù)據(jù)依次出棧, 賦值給單鏈表中結(jié)點(diǎn)的數(shù)據(jù)域, 然后調(diào)用 Prin tList(L)輸出即可!當(dāng)然,我們還需提供或使用棧的初始化,入棧和出棧操作函數(shù)!三、完成情況#include <stdio.h>#include <string.h>#include <malloc.h>
42、;#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef structchar num8;/* 學(xué)號(hào) */ char name9;/*姓名 */char gender3;/*性別 */int score;/*成績(jī) */DataType;typedef struct LNodeDataType stu; struct LNode *next;LNode, *LinkList;typedef structDataType *base;DataType *top; int stacksize;SqStack;/ 順序棧定義int men
43、u_select()int sn;printf(" 管理學(xué)院 信管 131 班 王娟 n"); printf("n 學(xué)生信息管理系統(tǒng) n"); printf("=n");printf("1.請(qǐng)輸入學(xué)生信息單鏈表的信息 :n");printf("2.這是初始的學(xué)生信息單鏈表 :n");printf("3.這是逆置以后的學(xué)生信息單鏈表 :n");printf("0.退 出 管 理 系 統(tǒng) n");printf("=n");printf(&q
44、uot; 請(qǐng)選擇 0-3:n");for(;) scanf("%d",&sn); if (sn<0 | sn>3) printf("nt 輸入錯(cuò)誤,重選 0-3n"); else break;return sn;LinkList CreateList(LinkList L)int n,i;LinkList p;printf(" 有幾位學(xué)生?請(qǐng)輸入: n");fflush(stdin);scanf("%d",&n);printf(” 以下請(qǐng)輸入這dB學(xué)生的信息:n",n
45、);L=(LinkList)malloc(sizeof (LNode);L->next=NULL;for(i=n;i>0;-i)printf("第dB學(xué)生:",i);printf("n學(xué)號(hào)(8)姓名(8)性別 成績(jī)n");p=(LinkList) malloc (sizeof(LNode);scanf("%s%s%s%d",p->stu.num,p->,p->stu.gender,&p->stu.score); p->next=L->next;L->next
46、=p;return L;/CreateList_Lvoid printList(LinkList L)int i=0;LinkList p;printf("n學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n");printf("n");p=L->next;while(p!=NULL)printf("第cB學(xué)生:",+i);printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.sc ore);p=p->next;pr
47、intf("-n");LinkList RevLinkList(LinkList L)SqStack s;LinkList p,q;p=L->next;s.base=(DataType *)malloc(STACK_INIT_SIZE * sizeof(DataType); if(!s.base)printf(" 存儲(chǔ)空間分配失敗: ");s.top=s.base;s.stacksize=STACK_INIT_SIZE;while(p)*s.top+=p->stu;p=p->next;q=L->next;while(s.top!=
48、s.base)q->stu=*-s.top; q=q->next;return L;void main()LinkList L;DataType stu;int i;L=(LinkList)malloc(sizeof(LNode);while(1)switch(menu_select()case 1:printf("*n");printf("請(qǐng)輸入學(xué)生信息單鏈表的信息n");printf("*n");L=CreateList(L); break;case 2:printf("f*n");printf(&
49、quot;這是初始的學(xué)生信息單鏈表:n");printf("f*n");printList(L);break;case 3:prin tf("*n")L=RevLi nkList(L);printf(”這是逆置以后的學(xué)生信息單鏈表:n");prin tf("*n");prin tList(L);break;case 0:printf("再見! n"); getchar();return;四、實(shí)驗(yàn)結(jié)果建立學(xué)生信息單鏈表管理學(xué)院信管班王娟學(xué)生信息管理系統(tǒng)-31 -表 “ 息2鏈" 魯息 K
50、 畫信 鏈息生統(tǒng)一一 單W-息生 ill K 生啟壬一一 學(xué)讐管一一 Aii 一一 請(qǐng)這這退一一12 3 0主冃初始的學(xué)生信息單鏈表管理學(xué)院信管1竝班學(xué)生信息管理系統(tǒng)-表 a軫 H 豎息 畫信 鏈息生統(tǒng) 單塩于 思生 H- 生股 學(xué)曹官 Alt 暫¥ 請(qǐng)這這退12 3 0青選擇了:逆置以后的學(xué)生信息單鏈表管理學(xué)院信管伽班王娟學(xué)生信息管理系統(tǒng)=表 息:強(qiáng) 屠息 表單信 鏈息羞 單華 息生 華后里 生欽士 學(xué)薔管 請(qǐng)這這退這是逆置以后的學(xué)生信息單槌表:)姓名性別成績(jī)第驛I;第屮立0ii5,vi7 88 3 ,8女軋 曇MO退出管理系統(tǒng)管理學(xué)院信管垢1班王娟學(xué)生信息管理系統(tǒng):表 K 息:錯(cuò)
51、 一一 黑息 = 畫信 槌息生統(tǒng)= 單草 息圭一一 億子后里= 生段:Ba請(qǐng)這這退12 3 8五、問題與解決(小四號(hào)字,宋體)1 實(shí)驗(yàn)中遇到的問題及解決過程2 實(shí)驗(yàn)中產(chǎn)生的錯(cuò)誤及原因分析首先寫出執(zhí)行語(yǔ)句不成功的時(shí)候系統(tǒng)報(bào)告的錯(cuò)誤信息。然后分析錯(cuò)誤原因,并給出解決辦法六、實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)體會(huì)和收獲。(小四號(hào)字,宋體)實(shí)驗(yàn)四、查找和排序算法的應(yīng)用、實(shí)驗(yàn)?zāi)康氖炀氄莆枕樞虿檎液投植檎宜惴ㄒ约笆炀氄莆彰芭菖判蛩惴ǘ?、?shí)驗(yàn)內(nèi)容 本次實(shí)驗(yàn)仍以班級(jí)學(xué)生信息作為管理對(duì)象,以學(xué)生信息中的學(xué)生成績(jī)?yōu)殛P(guān)鍵字, 實(shí)現(xiàn)學(xué)生信息的排序和查找。實(shí)驗(yàn)提示1、學(xué)生信息查找表記錄結(jié)構(gòu)的定義 已知學(xué)生的信息包括如下內(nèi)容:學(xué)號(hào)、姓名、性
52、別、成績(jī),可定義學(xué)生信息 表的結(jié)構(gòu)如下。typedef int KeyType;typedef struct KeyType score;/* 成績(jī)?yōu)榕判蚝筒檎业年P(guān)鍵字 */char num8;/* 學(xué)號(hào) */char name9;/*姓名 */char gender3;/*性別 */DataType ;2、功能函數(shù)的設(shè)計(jì)( 1)設(shè)計(jì)功能函數(shù) seqSearch() ,在學(xué)生信息查找表中實(shí)現(xiàn)順序查找。( 2)設(shè)計(jì)功能函數(shù) BubbleSort() ,對(duì)學(xué)生信息表中的數(shù)據(jù)元素按關(guān)鍵字進(jìn)行冒 泡排序。( 3)設(shè)計(jì)功能函數(shù) BinSearch() ,使用二分查找算法,在學(xué)生信息查找表中查 找關(guān)鍵字值
53、等于給定值的記錄。三、完成情況#include <stdio.h>#include <string.h>#include <malloc.h>#define MAXSIZE 100 typedef int KeyType;typedef structKeyType score;/* 成績(jī)?yōu)榕判蚝筒檎业年P(guān)鍵字 */ char num8;/* 學(xué)號(hào) */char name8;/* 姓名 */char gender3;/* 性別 */DataType;typedef structDataType stuMAXSIZE; int length;SSTable;int menu_select()int sn;prin tf("n管理學(xué)院信管131班王娟n");printf("=n"); printf("n學(xué)生信息管理系統(tǒng) n");printf("=n"); printf("1.學(xué)生信息線性表的建立 n");printf("2.利用關(guān)鍵字順序查找學(xué)生信息n");printf(" 3.利用關(guān)鍵字對(duì)學(xué)生信息進(jìn)行冒泡排序 n");printf("4.利用關(guān)鍵字二分查找學(xué)生信息n");printf(&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲乙丙房屋買賣合同全解讀
- 消防工程招投標(biāo)文書
- 服務(wù)合同協(xié)議權(quán)威解讀
- 童鞋品牌代理經(jīng)銷合同
- 施工安全保證書樣本
- 信用擔(dān)保借款合同的修改注意事項(xiàng)
- 標(biāo)準(zhǔn)借款協(xié)議書格式
- 糧油食品供應(yīng)協(xié)議
- 室內(nèi)外照明設(shè)計(jì)招標(biāo)
- 批發(fā)兼零售合作勞務(wù)合同
- 用戶管理模塊
- Unit 1 Making friends Part B Lets learn(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 防火門及防火卷簾施工方案
- 廣東省廣州市越秀區(qū)2022-2023學(xué)年八年級(jí)上學(xué)期期末歷史試題(含答案)
- 古代漢語(yǔ)專題-003-國(guó)開機(jī)考復(fù)習(xí)資料
- 【MOOC】跨文化交際通識(shí)通論-揚(yáng)州大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 學(xué)歷提升之路
- 播音主持專業(yè)教學(xué)計(jì)劃
- 《半導(dǎo)體的基本知識(shí)》教學(xué)設(shè)計(jì)
- GB/T 44787-2024靜電控制參數(shù)實(shí)時(shí)監(jiān)控系統(tǒng)通用規(guī)范
- 電梯困人應(yīng)急演練方案
評(píng)論
0/150
提交評(píng)論