


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)說明書題目:數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)學(xué)院(系):專業(yè)班級(jí):學(xué) 號(hào):學(xué)生:指導(dǎo)教師:教師職稱:起止時(shí)間:號(hào) 學(xué)課程設(shè)計(jì) (論文) 題目數(shù)課程設(shè)計(jì)論文>任務(wù)外 E 另在 現(xiàn)O 實(shí) 子 序 勺 程劇 、H目 語 勸 C 、義 的。眺 準(zhǔn)可加 。 標(biāo)即FX高 用法I 能 目算S4W 題c、>汕 盡 個(gè) 訂 率 每美單t儲(chǔ)效 求探0苗 呦 要腐制陽m ,肛有動(dòng)閘算 目壽吋 K,呈 O , O 個(gè)5F時(shí)不歹入度性 一她序久曲輸雜定 擇心陽牟位帥>用 目®,亦】選血!1傀 題題予血目»法序 個(gè)號(hào)題2題的算排 十則個(gè)M據(jù)入析證 從耐每耐根輸分驗(yàn) 宀元22”33d55
2、s指導(dǎo)教師評(píng)語及成績(jī)?nèi)赵轮赋稍海ㄏ担赫n程設(shè)計(jì)(論文)任務(wù)及評(píng)語教研室:軟件工程目錄第 1 章 課程設(shè)計(jì)目的與要求 1_1.1 課程設(shè)計(jì)目的 1_1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境 1_1.3 課程設(shè)計(jì)的預(yù)備知識(shí) 1_1.4 課程設(shè)計(jì)要求 1_第 2 章 課程設(shè)計(jì)容 2_2.1 題目的選擇 2_2.2 題目的具體實(shí)現(xiàn) 2_2.3 思考題解析 1_2總結(jié): 1_4第1章 課程設(shè)計(jì)目的與要求1.1課程設(shè)計(jì)目的本課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)、軟件工程專業(yè)的專業(yè)技術(shù)實(shí)踐課。本實(shí)踐課的主要目的是:使學(xué)生學(xué)會(huì)利用在課堂中學(xué)過的理論知識(shí),解決相應(yīng)的實(shí) 際問題,深入理解和靈活掌握所學(xué)的容,培養(yǎng)學(xué)生理論和實(shí)踐相結(jié)合的
3、能力,培養(yǎng)學(xué)生分析問題解決問題的能力。同時(shí),在實(shí)驗(yàn)步驟規(guī)化、程序設(shè)計(jì)方法等方面受到比較系統(tǒng) 和規(guī)的訓(xùn)練。通過實(shí)踐設(shè)計(jì)使學(xué)生進(jìn)一步加深對(duì)程序設(shè)計(jì)的規(guī)化及對(duì)復(fù)雜程序設(shè)計(jì)步驟 的理解。通過課程設(shè)計(jì),加深對(duì)數(shù)據(jù)結(jié)構(gòu)這一課程所學(xué)容的進(jìn)一步理解與鞏固。通 過課程設(shè)計(jì),加深對(duì)結(jié)構(gòu)化設(shè)計(jì)思想的理解,能對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模 塊化結(jié)構(gòu)。通過課程設(shè)計(jì),提高程序開發(fā)功能, 能運(yùn)用合理的控制流程編寫清晰高效的 程序。通過課程設(shè)計(jì),訓(xùn)練 C程序調(diào)試能力,能將一個(gè)中小型各級(jí)組織系統(tǒng)聯(lián)調(diào)通過。 通過課程設(shè)計(jì),開發(fā)一個(gè)中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過程。通話課程設(shè)計(jì),培養(yǎng)分析 問題、解決實(shí)際問題的能力。1.2課程設(shè)計(jì)
4、的實(shí)驗(yàn)環(huán)境PC 機(jī),WindowsXP,C+。1.3課程設(shè)計(jì)的預(yù)備知識(shí)C語言程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)。1.4課程設(shè)計(jì)要求(1) 認(rèn)真查找資料,分析每個(gè)題目應(yīng)選擇的數(shù)據(jù)結(jié)構(gòu)(邏輯結(jié)構(gòu)和物理結(jié)構(gòu));(2) 按時(shí)到實(shí)驗(yàn)室調(diào)試程序,遵守實(shí)驗(yàn)室的規(guī)章制度,愛護(hù)設(shè)備;(3) 每個(gè)題目編寫源程序時(shí),每個(gè)子功能定義為相應(yīng)的子函數(shù),在主函數(shù)中調(diào)用各子 函數(shù),程序結(jié)構(gòu)清晰,有必要的注釋,可讀性強(qiáng)。(4) 程序健壯性強(qiáng),當(dāng)數(shù)據(jù)輸入錯(cuò)誤時(shí),要進(jìn)行相應(yīng)的處理;(5) 分析算法的時(shí)間復(fù)雜度,要求算法的效率盡可能高;(6) 對(duì)于排序算法,要驗(yàn)證排序算法的穩(wěn)定性。第2章課程設(shè)計(jì)容2.1題目的選擇6學(xué)生成績(jī)管理系統(tǒng)2.2題目的具體實(shí)
5、現(xiàn)(1) 題目應(yīng)實(shí)現(xiàn)的具體功能; 錄入學(xué)生成績(jī)信息并保存; 可查詢顯示所有學(xué)生的個(gè)人信息;可查詢顯示所有學(xué)生的所學(xué)課程信息;®按學(xué)號(hào)或查詢成績(jī)信息;能添加、刪除和修改學(xué)生的成績(jī)信息;(2) 題目所選擇的數(shù)據(jù)結(jié)構(gòu)及存儲(chǔ)結(jié)構(gòu); 采用線性數(shù)據(jù)結(jié)構(gòu)及鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(3) 完整的源程序#i nclude<stdio.h>#i nclude<stdlib.h>#i ncludevstri ng.h>struct studlong num;char n ame20;double score1,score2;typedef struct stucodestruct stu
6、d stude nt ;struct stucode *n ext;L;void menu();void createlist(struct stucode *r);void out(struct stucode *r);void search1(struct stucode *r);void search2(struct stucode *r);void del(struct stucode *r);void insert(struct stucode *r);void change(struct stucode *r);void main()char choose;int flag=1;s
7、truct stucode *r=NULL; while(flag) system("cls");menu();choose=getchar(); switch(choose)case '1': createlist(&r);out(r);printf("Testing function 1nPress any key to continuen"); getchar();getchar();break;case '2': search1(r);printf("Testing function 1nPres
8、s any key to continuen"); getchar();getchar();break;case '3':search2(r);printf("Testing function 1nPress any key to continuen"); getchar();getchar();break;case '4': del(&r);out(r);printf("Testing function 1nPress any key to continuen"); getchar();getchar(
9、);break;case '5': insert(&r);out(r);printf("Testing function 1nPress any key to continuen"); getchar();getchar();break;case '6':out(r);printf("Testing function 1nPress any key to continuen"); getchar();getchar();break;case '7': change(&r);out(r);pr
10、intf("Testing function 1nPress any key to continuen"); getchar();getchar();break;case '0':flag=0;printf("The end.n");break;default: printf("nWrong Selection!( 選擇錯(cuò)誤 ,請(qǐng)重選 !)n"); getchar();getchar();void createlist(struct stucode *r)struct stucode *p,*t;long n;char
11、 a20;double s1,s2;if(*r) *r=NULL;n");printf(" n 請(qǐng)輸入: n 學(xué)號(hào) 分?jǐn)?shù) 1 分?jǐn)?shù) 2(若要結(jié)束請(qǐng)輸入四個(gè)為零) scanf("%ld%s%lf%lf",&n,a,&s1,&s2);if(n=0) return;p=(L *)malloc(sizeof(L); p->student.num=n; strcpy(p->,a);p->student.score1=s1;p->student.score2=s2; p->next=NUL
12、L;*r=p; scanf("%ld%s%lf%lf",&n,a,&s1,&s2);while(n)t=p;p=(L *)malloc(sizeof(L);p->student.num=n;strcpy(p->,a);p->student.score1=s1;p->student.score2=s2;p->next=NULL;t->next=p;scanf("%ld%s%lf%lf",&n,a,&s1,&s2);void search1(struc
13、t stucode *r)long x; struct stucode *p=r;if(!r)printf(" 沒有學(xué)生信息可查詢 !n");return ;printf(" 請(qǐng)輸入要查詢的學(xué)生信息的學(xué)生學(xué)號(hào) :n");scanf("%ld",&x);while(p&&p->student.num!=x)p=p->next;if(p=NULL)printf("Error! No such student !n");elseprintf("%ld%s%.2lf%.2lfn
14、",p->student.num,p->,p->student.score1,p->student.s core2);void search2(struct stucode *r)char m20;if(!r)printf(" 沒有學(xué)生信息可查詢 !n");return ;printf(" 請(qǐng)輸入要查詢的學(xué)生信息的學(xué)生 :n");scanf("%s",m);while(r&&strcmp(r->,m)r=r->next;if(
15、r=NULL)printf("Error! No such student !n");elseprintf("%ld%s%.2lf%.2lfn",r->student.num,r->,r->student.score1,r->student.sc ore2);void del(struct stucode *r)long k;struct stucode *p=*r,*t;if(!(*r)printf(" 沒有學(xué)生信息可刪除 !n");return ;printf(" 請(qǐng)輸入要
16、刪除的學(xué)生信息的學(xué)生學(xué)號(hào) :n"); scanf("%ld",&k);if(p->student.num=k)*r=(*r)->next,free(p);else while(p->next&&p->next->student.num!=k) p=p->next;if(p->next=NULL)printf("Error! No such student !n");elset=p->next;p->next=p->next->next;free(t);vo
17、id insert(struct stucode *r)long n;char a20;double s1,s2;L *p,*t,*k;printf(" 請(qǐng)輸入要插入的學(xué)生信息的學(xué)生學(xué)號(hào) 分?jǐn)?shù) 1 分?jǐn)?shù) 2 :n"); scanf("%ld%s%lf%lf",&n,a,&s1,&s2);p=(L *)malloc(sizeof(L);p->student.num=n; p->student.score1=s1;p->student.score2=s2;strcpy(p->,a);if
18、(!(*r)*r=p;(*r)->next=NULL;return ;if(p->student.num<(*r)->student.num)p->next=(*r),(*r)=p;elset=*r;k=t;while(t->next&&t->next->student.num<=p->student.num)t=t->next;p->next=t->next;t->next=p;*r=k;void out(struct stucode *r)printf("nn");if(
19、!r)printf(" 沒有學(xué)生信息可輸出 !n");return ;while(r)printf("%ld%s%.2lf%.2lfn",r->student.num,r->,r->student.score1,r->student.sc ore2);r=r->next;printf("nn");void change(struct stucode *r)struct stucode *p=*r;long x;long n;char a20;double s1,s2;printf(
20、" 更改的學(xué)生的信息 n");printf(" 請(qǐng)輸入要查詢的學(xué)生信息的學(xué)生學(xué)號(hào) :n");scanf("%ld",&x);while(p&&p->student.num!=x)p=p->next;if(p=NULL)printf("Error! No such student !n");elseprintf("%ld%s%.2lf%.2lfn",p->student.num,p->,p->student.score1
21、,p->student.s core2);printf(" 請(qǐng)輸入要修改的學(xué)生信息 :n"); scanf("%ld%s%lf%lf",&n,a,&s1,&s2); p->student.num=n; strcpy(p->,a); p->student.score1=s1; p->student.score2=s2;void menu()printf("n 學(xué)生成績(jī)管理系統(tǒng) n");printf("n 菜單 nn");printf(&qu
22、ot;n 1 建立鏈表 n");printf("n 2 查找某學(xué)號(hào)的學(xué)生信息 n"); printf("n 3 查找某的學(xué)生信息 n"); printf("n 4 刪除某學(xué)號(hào)的學(xué)生信息 n"); printf("n 5 插入新的學(xué)生信息 n"); printf("n 6 顯示所有學(xué)生的個(gè)人信息 n"); printf("n 7 更改學(xué)生個(gè)人信息 n"); printf("n 0 退出 n");printf("n 請(qǐng)選擇您要執(zhí)行的選項(xiàng) :
23、n");4)程序的輸入和輸出學(xué)生成績(jī)管理系統(tǒng)菜單1建立犍表2查找某學(xué)號(hào)的學(xué)生信息 渣找某姓名的學(xué)生信息4刪除某學(xué)號(hào)的學(xué)生信息 囁入新的學(xué)生信息 百顯示所有學(xué)生的個(gè)人信息 丁更改學(xué)生個(gè)人信息0退出請(qǐng)選»您要扶行的選項(xiàng):按學(xué)生學(xué)號(hào)查找結(jié)果:建立錯(cuò)表渣找某學(xué)號(hào)的學(xué)生信息喳找某姓名的學(xué)生信息觀滕某學(xué)號(hào)的學(xué)生信息遍入新的學(xué)主信息6顯示所有學(xué)生的個(gè)人信息7更改學(xué)生個(gè)人信息退出請(qǐng)選»您要扶行的選項(xiàng)匕 備輸入要查詢的學(xué)二信息的學(xué)生學(xué)號(hào): 1010021010021139.02.00Testing function 1Press ankey to continue按學(xué)生查找:i建立
24、錐表渣找某學(xué)號(hào)的學(xué)生信息 d查拱某姓名的學(xué)生信息 4刪除某學(xué)號(hào)的學(xué)生信息 囁入新的學(xué)生信息 逼示所有學(xué)生的個(gè)人信息 丁更改學(xué)生個(gè)人信息退岀請(qǐng)選S您要技行的選頂:入要查詢的學(xué)生信息的學(xué)生姓名:11101002 H39.0092.00Testing function 1Press any key to CDnitinne圖3刪除某學(xué)生的運(yùn)行結(jié)果:1建立鏈表渣找茶學(xué)號(hào)的宇生信息喳我某姓名的學(xué)生信息4刪徐某學(xué)號(hào)的學(xué)牛信息5插入新的學(xué)生信息6顯示所有學(xué)生的個(gè)人宿息7更改學(xué)生個(gè)人信息0退出請(qǐng)選S您要扶行的運(yùn)珈冷輸入蘿刪除的學(xué)生信息的學(xué)生學(xué)號(hào):1Q1Q82插入某學(xué)生的運(yùn)行結(jié)果:11建立錐表查戎某學(xué)號(hào)的學(xué)生宿
25、息弓查我某姓名的學(xué)生信息4刪除某學(xué)號(hào)的學(xué)生信息囁入新的學(xué)生信息G顯示所有學(xué)生的個(gè)人信息丁更改學(xué)生個(gè)人信息目退岀:情選擇您要執(zhí)行的選珈r請(qǐng)輸入曼插入的學(xué)生信息的學(xué)生學(xué)號(hào)姓名分?jǐn)?shù)i分?jǐn)?shù)?; 1B1002 11 29 92lBieOlsLin4B.0083 .001016021137*0072.00iei6O3wng85,00E4.H0顯示所有學(xué)生的信息:建立鏈裊、査找某學(xué)號(hào)的學(xué)生信息耳査找某姓名的學(xué)生信息 、刪除某學(xué)號(hào)的學(xué)生信息 、插入新的學(xué)生信息6顯示所有學(xué)生的個(gè)人信息7更改學(xué)生個(gè)人信息請(qǐng)迅擇您要執(zhí)行的選頂:lBlQ01sun8.e083,0Q101002113?.0092.00101003wa
26、nsf®5 .00&4.00(5)調(diào)試程序中遇到的問題及解決方案在調(diào)試searchi子函數(shù)由于在查找中移動(dòng)了原指針,導(dǎo)致searchi中不能查找, 解決方法設(shè)一結(jié)構(gòu)體類型的指針,將原指針賦給該指針,將該指針進(jìn)行移動(dòng)查找。 在調(diào) 試chance()中,如何對(duì)已有的記錄進(jìn)行從新輸入更改。解決方案為在chanee(子函數(shù)中加入一個(gè)查找的程序,也就是說先找到要修改的學(xué)生信息,用 scanf語句對(duì)要修改的學(xué) 生的信息進(jìn)行重新輸入, 再將所賦的信息通過賦值語句將修改后的學(xué)生信息賦給該學(xué)生 對(duì)應(yīng)的結(jié)構(gòu)體。如何返回一個(gè)結(jié)構(gòu)體息,解決方案是采用指針類型, 將變量的地址作為 實(shí)參賦給子函數(shù)。數(shù)組
27、名代表數(shù)組首地址,用sca nf語句賦值字符串時(shí),不用加地址操作符。2.3 思考題解析所選擇的思考題: 編寫一個(gè)算法,構(gòu)造一棵哈夫曼樹程序如下:typedef structunsigned int weight;unsigned int parent,lchild,rchild;HTNode,*HuffmanTree;typedef char * *HuffmanCodevoid HnffCodeding(HnffmanTree &HT,&HC,int *w,int n)if(n<=i) return;m=2*n-i;HT=(HuffmanTree)malloc(m+i)
28、*sizeof(HTNode); for(p=HT;i=i;i<=n;+i,+,+w) *p= *w,0,0,0; for(;i<=m;+i,+p) *p= *w,0,0,0; for(i=n+i;i<=m;+i)Select(HT,i-i,si,s2);HTsi.parent=i; HTs2.parent=i;HTi.lchild=si; HTi.rchild=s2;HTi.weight=HTsi.weight+HTs2.weight;HC=(HuffmanCode)malloc(n+i)*size(char *); cd=(char *)malloc(n*sizeof(char);cdn-i=0;for(i=i;i<=n;+i)start=n-1;for(c=i;f=HTi.parent;f!=0;c=f,f=HTf.parent) if(HTf.lchild=c) cd-start="0" else cd-start="1"HCi=(c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南工程職業(yè)學(xué)院《重金屬冶金學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆應(yīng)用職業(yè)技術(shù)學(xué)院《外國(guó)戲劇史》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆河南省駐馬店市驛城區(qū)高三上學(xué)期一模歷史試卷
- 黑龍江職業(yè)學(xué)院《勞動(dòng)定額學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年浙江省部分重點(diǎn)高中高二上學(xué)期12月月考?xì)v史試卷
- 九江學(xué)院《文具設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海師范大學(xué)《汽車電子電氣A》2023-2024學(xué)年第二學(xué)期期末試卷
- 煙臺(tái)理工學(xué)院《中國(guó)古代文學(xué)作品》2023-2024學(xué)年第二學(xué)期期末試卷
- 南陽農(nóng)業(yè)職業(yè)學(xué)院《就業(yè)與創(chuàng)業(yè)教育》2023-2024學(xué)年第二學(xué)期期末試卷
- 桂林信息工程職業(yè)學(xué)院《生物質(zhì)能源概論》2023-2024學(xué)年第二學(xué)期期末試卷
- ESD技術(shù)要求和測(cè)試方法
- 正確認(rèn)識(shí)民族與宗教的關(guān)系堅(jiān)持教育與宗教相分離
- 宜黃縣二都鎮(zhèn)高山飾面用花崗巖開采以及深加工項(xiàng)目環(huán)評(píng)報(bào)告
- 血液科護(hù)士的惡性腫瘤護(hù)理
- 畜禽廢棄物資源化利用講稿課件
- 土地糾紛調(diào)解簡(jiǎn)單協(xié)議書
- 服裝倉(cāng)庫(kù)管理制度及流程
- 《餐飲渠道開發(fā)方案》課件
- 架子工安全教育培訓(xùn)試題(附答案)
- 一中師德考核評(píng)估制度
- 春節(jié)習(xí)俗中的傳統(tǒng)茶文化與茶藝
評(píng)論
0/150
提交評(píng)論