版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 課程設(shè)計(jì)報(bào)告(本科)課程:高級(jí)語(yǔ)言程序設(shè)計(jì)學(xué)號(hào):1310411031:錢(qián)軍班級(jí):2013級(jí)計(jì)算機(jī)科學(xué)與技術(shù)教師:鳳時(shí)間:2014年1月計(jì)算機(jī)科學(xué)與技術(shù)系17 / 18設(shè)計(jì)名稱:學(xué)生通訊錄管理系統(tǒng)設(shè)計(jì)設(shè)計(jì)容、目的與要求:設(shè)計(jì)容:設(shè)計(jì)一個(gè)學(xué)生通訊錄,學(xué)生通訊錄數(shù)據(jù)信息構(gòu)成容可自行設(shè)計(jì)(如:、家庭地址、郵政編碼、等等),通訊錄數(shù)據(jù)類型定義為結(jié)構(gòu)類型。目的與要求: 設(shè)計(jì)學(xué)生通訊錄1.主要功能:(1)能建立、修改和增減學(xué)生通訊錄 (2)能夠多種方式進(jìn)行查詢2.要求:界面友好,易于操作,采用文件存儲(chǔ)數(shù)據(jù)。計(jì)劃與進(jìn)度安排:12月20日至12月22日:研究題目的要求與所給條件,綜合分析實(shí)驗(yàn)應(yīng)該達(dá)到的目標(biāo),探
2、討實(shí)驗(yàn)需要使用的方法和解決此問(wèn)題的實(shí)際情況,圖書(shū)館查閱相關(guān)資料,綜合比較;12月23日至12月25日:設(shè)計(jì)解題的方法和具體步驟,并進(jìn)行分步思考,利用主菜單函數(shù)menu()將程序模塊化,在進(jìn)行各個(gè)模塊的設(shè)計(jì)和制作方案,繪制實(shí)驗(yàn)的流程圖,再將各個(gè)模塊綜合,將各個(gè)函數(shù)運(yùn)用于主函數(shù)中,繪制主函數(shù)的流程圖,綜合運(yùn)用所有的函數(shù);12月26日至12月31日:查閱書(shū)籍,仔細(xì)研究書(shū)本上的例題,再結(jié)合網(wǎng)絡(luò)資料,結(jié)合各方面所得的資料,編寫(xiě)程序,仔細(xì)修改程序;1月1日至1月2日:調(diào)試程序,運(yùn)行程序,再次將程序修改;1月3日至1月5日:完善程序,仔細(xì)填寫(xiě)課程設(shè)計(jì)報(bào)告,再次認(rèn)真閱讀程序并熟悉程序,為驗(yàn)收做最后的準(zhǔn)備。設(shè)計(jì)
3、過(guò)程、步驟(可加頁(yè)):整個(gè)程序主要使用了結(jié)構(gòu)體類型,結(jié)構(gòu)體類型充當(dāng)了整個(gè)程序的骨架,將各個(gè)程序段有機(jī)巧妙的結(jié)合在一起。例如: struct student /聲明一個(gè)結(jié)構(gòu)體類型 struct student long num; /學(xué)號(hào) char name20; / int banji; /班級(jí) char tel11; / char Email20; / int sushe; / 宿舍 struct student *next; / next是指針變量,指向結(jié)構(gòu)體變量 ;整個(gè)系統(tǒng)必須有一個(gè)主函數(shù),為了盡量提高程序的易修改性,且不至于相互干擾,將每一個(gè)功能分成不同的模塊,用不同的函數(shù)來(lái)實(shí)現(xiàn),例如在
4、我寫(xiě)的這個(gè)程序中,一共用了9個(gè)函數(shù),分別是:主菜單函數(shù) void menu(void);輸入函數(shù) struct student *shuru(void);輸出單個(gè)學(xué)生信息函數(shù) void shuchu(struct student *s);輸出所有學(xué)生信息函數(shù) void findall();按查找函數(shù) void findname();按學(xué)號(hào)查找函數(shù) void findnum();刪除函數(shù) struct student *stushanchu(struct student *stu);排序函數(shù) void paixu();主函數(shù) void main(),這樣在整個(gè)程序的設(shè)計(jì)過(guò)程中也就一目了然,寫(xiě)起來(lái)
5、也相對(duì)輕松了不少。下面是摘自源程序的主函數(shù): void main() /*主函數(shù)*/ char a; menu(); puts("n您為首次使用本系統(tǒng),建議您按1開(kāi)始錄入學(xué)生信息,"); a=getche(); while(a) puts(""); switch(a) case'0':goto end;break; case '1': puts("n好了,您可以開(kāi)始向本系統(tǒng)錄入學(xué)生通訊錄信息了:"); stu=shuru(); system("cls"); menu(); puts(
6、"n學(xué)生信息錄入完畢,請(qǐng)輸入你的選擇(06):n"); break; case '2':findall();puts("n請(qǐng)輸入你的選擇(06):"); break; case '3':findname();puts("n請(qǐng)輸入你的選擇(06):"); break; case '4':findnum();puts("n請(qǐng)輸入你的選擇(06):"); break; case '5':stu=shanchu(stu);puts("n請(qǐng)輸入你的選擇
7、(06):"); break; case '6':paixu();puts("n請(qǐng)輸入你的選擇(06):"); break; default:puts("輸錯(cuò)了!按數(shù)字1鍵錄入學(xué)生信息吧!"); break; a=getche(); end:; puts("您使用本系統(tǒng),歡迎再次使用!");結(jié)果與分析(可以加頁(yè)): 主界面:按1錄入學(xué)生通訊錄信息:按2查看所有學(xué)生信息:按3按查找學(xué)生信息:按4按學(xué)號(hào)查找學(xué)生信息:按5刪除學(xué)生信息:刪除后:按6將通訊錄信息排序:按0退出: 程序已實(shí)現(xiàn)對(duì)學(xué)生信息的錄入、按查詢、按
8、學(xué)號(hào)查詢和刪減,唯一的不足之處是沒(méi)能實(shí)現(xiàn)對(duì)學(xué)生信息的修改。設(shè)計(jì)體會(huì)與建議: 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在是生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握計(jì)算機(jī)開(kāi)發(fā)技術(shù)十分重要的。具體的各個(gè)函數(shù)是參照課本上鏈表那一章的容的,比如結(jié)構(gòu)體的建立、查找和排序等功能,這些書(shū)上都有類似的,例如在第六章中有一個(gè)用冒泡法排序的例題,我就是仿照這個(gè)模式來(lái)對(duì)結(jié)構(gòu)體進(jìn)行排序的。回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,從從拿到題目到完成整個(gè)編程,從理論到
9、實(shí)踐,在整整半個(gè)學(xué)期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫顧。在課程設(shè)計(jì)過(guò)程中,我
10、學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒,黑夜過(guò)去了,我們收獲的是黎明。在本次實(shí)踐中,給我印象最為深刻的是在文件刪除程序的編譯過(guò)程中,先有我的各個(gè)子程序都已經(jīng)編輯成功,那么這最后的程序就將是我成功的關(guān)鍵。在這個(gè)問(wèn)題的解決上,我打了退堂鼓,我不能忍受長(zhǎng)時(shí)間的無(wú)功而反,時(shí)間正在消磨我的意志。沒(méi)有了柳暗花明的一天,那么我怎么能說(shuō)經(jīng)受住了考驗(yàn)?老師的那句話,她說(shuō):人力有所不能與,然而,人的精神是不會(huì)敗倒的。我鼓起勇氣,到處問(wèn),到處查資料,黃天不負(fù)有心人,在一篇文章上,終于看到了我所特別要求的函數(shù),我實(shí)現(xiàn)了組合是關(guān)鍵的理論。不得不
11、說(shuō)這是精神的勝利,是永不言敗的精神讓我的程序重見(jiàn)天日。我們的課程設(shè)計(jì)結(jié)束了,但是它留給我的印象是不可磨滅的。無(wú)論我以后會(huì)不會(huì)涉與到C語(yǔ)言程序編譯的研究,我想,我至少掌握了一種系統(tǒng)的研究方法,我們學(xué)習(xí)的目的就在于運(yùn)用,我們運(yùn)用這種研究方法的時(shí)候會(huì)很多,我最后要感課程設(shè)計(jì),它的確教會(huì)我很多。附錄:#include<stdio.h>#include<string.h>#include<malloc.h>#include<stdlib.h>#include<conio.h>#define NULL 0struct studentlong nu
12、m;char name20;int banji;char tel11;char Email20;int sushe;struct student *next;struct student *stu;int n;void menu(void) /*主菜單函數(shù)*/system("cls");puts("*");puts("* _學(xué)生通訊錄管理系統(tǒng)_ *");puts("*");puts("* *");puts("* 1=錄入學(xué)生通訊錄信息 *");puts("* 2=列
13、出所有學(xué)生通訊錄 *");puts("* 3=按查詢信息 *");puts("* 4=按學(xué)號(hào)查詢信息 *");puts("* 5=刪除學(xué)生信息 *");puts("* 6=按學(xué)號(hào)將通訊錄排序 *");puts("* 0=退出 *");puts("* *");puts("* *");puts("* *");puts("*");struct student *shuru(void) /*輸入函數(shù)*/system
14、("cls");struct student *s1,*s2;n=1;int num;puts("請(qǐng)輸入學(xué)生個(gè)數(shù)(提示:個(gè)數(shù)不能輸入0?。?quot;);scanf("%d",&num);s1=s2=(struct student *)malloc(sizeof(struct student);puts("*");puts("請(qǐng)輸入學(xué)號(hào):");scanf("%ld",&s1->num);puts("請(qǐng)輸入學(xué)生:");scanf("%
15、s",s1->name);puts("請(qǐng)輸入班級(jí):");scanf("%d",&s1->banji);puts("請(qǐng)輸入:");scanf("%s",s1->tel);puts("請(qǐng)輸入電子:");scanf("%s",s1->Email);puts("請(qǐng)輸入學(xué)生宿舍號(hào):");scanf("%d",&s1->sushe);stu=s1;while(n<num)s2->n
16、ext=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student);puts("*");puts("請(qǐng)輸入學(xué)號(hào):");scanf("%ld",&s1->num);puts("請(qǐng)輸入學(xué)生:");scanf("%s",s1->name);puts("請(qǐng)輸入班級(jí):");scanf("%d",&s1->banji);puts("請(qǐng)輸入:");scanf
17、("%s",s1->tel);puts("請(qǐng)輸入電子:");scanf("%s",s1->Email);puts("請(qǐng)輸入學(xué)生宿舍號(hào):");scanf("%d",&s1->sushe);n=n+1;puts("*");s2->next=s1;s2=s1;s2->next=NULL;return(stu);/system("cls");void shuchu(struct student *s) /*輸出單個(gè)學(xué)生信息*/
18、printf("* %-8ld",s->num);printf("%-15s",s->name);printf("%-8d",s->banji);printf("%-15s",s->tel);printf("%-15s",s->Email);printf("%-5d *n",s->sushe);void findall() /*輸出所有學(xué)生信息*/ system("cls");struct student *s;/if(
19、n=2)/printf("n現(xiàn)在有%d個(gè)學(xué)生信息,分別是:n",n);/elseprintf("n現(xiàn)在有%d個(gè)學(xué)生信息,分別是:n",n);puts("_");puts("* 學(xué)號(hào) 班級(jí) 電子 宿舍 *");s=stu;while(s!=NULL) shuchu(s); s=s->next;puts("_");puts("返回主菜單請(qǐng)按9");if(getche()='9') menu();void findname() /*按查找函數(shù)*/system(
20、"cls");struct student *s;char name20;printf("n請(qǐng)輸入你要查詢的學(xué)生:n");scanf("%s",name);s=stu;while(strcmp(s->name,name)!=0)s=s->next;if(s=NULL)puts("查無(wú)此學(xué)生!");goto end;elseputs("該學(xué)生的信息為:"); puts("* 學(xué)號(hào) 班級(jí) 電子 宿舍 *");shuchu(s);end:;puts("返回主菜
21、單請(qǐng)按9");if(getche()='9') menu();void findnum() /*按學(xué)號(hào)查找函數(shù)*/system("cls");struct student *s;puts("請(qǐng)輸入你要查詢的學(xué)生學(xué)號(hào):");long i;scanf("%ld",&i);s=stu;while(s->num!=i)s=s->next;if(s=NULL)puts("查無(wú)此學(xué)生學(xué)號(hào)!");goto end;elseputs("該學(xué)生的信息為:");puts
22、("* 學(xué)號(hào) 班級(jí) 電子 宿舍 *");shuchu(s);end:;puts("返回主菜單請(qǐng)按9");if(getche()='9') menu();struct student *shanchu(struct student*stu) /*刪除函數(shù)*/system("cls");long num;char s;struct student *s1,*s2;if(stu=NULL)puts("沒(méi)有任何學(xué)生信息。");goto end;puts("請(qǐng)輸入你要?jiǎng)h除的學(xué)生學(xué)號(hào):");
23、scanf("%ld",&num);s1=stu;puts("警告:你確定要?jiǎng)h除這個(gè)學(xué)生的信息嗎(Y/N)?");scanf("%s",&s);if(s='Y')|(s='y') while(num!=s1->num)&&(s1->next!=NULL) s2=s1;s1=s1->next; if(num=s1->num) puts("該學(xué)生的信息為:"); puts("* 學(xué)號(hào) 班級(jí) 電子 宿舍 *");
24、shuchu(s1);if(s1=stu) stu=s1->next; else s2->next=s1->next; puts("注意喲,該學(xué)生的信息已經(jīng)刪除了!剩下的學(xué)生通訊錄信息如下:"); n=n-1; findall();return(stu);end:;puts("返回主菜單請(qǐng)按9");if(getche()='9') menu();void paixu() /*排序函數(shù)*/struct student *p, *p1,*p2;int i,j;int temp; char b20; if(stu=NULL)
25、printf("n學(xué)生信息不存在n"); goto end; for(i=0;i<n-1;i+) p1=stu; for(j=0;j<n-1;j+) p2=p1->next; if(p1->num>p2->num) temp=p1->num;p1->num=p2->num;p2->num=temp; strcpy(b,p1->name);strcpy(p1->name,p2->name);strcpy(p2->name,b); temp=p1->banji;p1->banji=p
26、2->banji;p2->banji=temp; strcpy(b,p1->tel);strcpy(p1->tel,p2->tel);strcpy(p2->tel,b); strcpy(b,p1->Email);strcpy(p1->Email,p2->Email);strcpy(p2->Email,b); temp=p1->sushe;p1->sushe=p2->sushe;p2->sushe=temp; p1=p1->next; p=stu; puts("已按學(xué)生學(xué)號(hào)順序排序完畢!重新排序如下:"); puts("*"); puts("* 學(xué)號(hào) 班級(jí) 電子 宿舍 *");while(p!=NULL)printf("* %-8ld",p->num);printf("%-15s",p->name);printf("%-8d",p->banji);printf("%-15s",p->tel);printf("%-15s&quo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 平?jīng)鍪惺兄睂W(xué)校公開(kāi)招聘2026屆協(xié)議培養(yǎng)師范生23人備考題庫(kù)(第二批)及一套參考答案詳解
- 2025年陽(yáng)春市中醫(yī)院合同制員工(第三批)招聘?jìng)淇碱}庫(kù)及1套參考答案詳解
- 2025年派遣制阜陽(yáng)市婦女兒童醫(yī)院人員招聘11人備考題庫(kù)有答案詳解
- 牙周炎護(hù)理中的營(yíng)養(yǎng)補(bǔ)充建議
- 揚(yáng)州??嫉乩碚骖}試卷及答案
- 清潔護(hù)理的挑戰(zhàn)與機(jī)遇
- 包頭高中會(huì)考試卷及答案
- 生物升學(xué)考試卷子及答案
- 北京東城一模物理試卷及答案
- 固態(tài)存儲(chǔ)模組生產(chǎn)基地項(xiàng)目投資計(jì)劃書(shū)
- 廣東省普通高中學(xué)生檔案
- 冬季預(yù)防疾病版
- 認(rèn)知障礙的護(hù)理及健康宣教
- 兒童孤獨(dú)癥的篩查與轉(zhuǎn)診課件
- 當(dāng)代網(wǎng)絡(luò)文學(xué)中的創(chuàng)新與影響力探究
- 軟件使用授權(quán)書(shū)
- 慰問(wèn)品采購(gòu)?fù)稑?biāo)方案(技術(shù)方案)
- 社會(huì)組織財(cái)務(wù)管理
- 國(guó)家開(kāi)放大學(xué)一網(wǎng)一平臺(tái)電大《建筑測(cè)量》實(shí)驗(yàn)報(bào)告1-5題庫(kù)
- 品質(zhì)異常通知單
- 鼎捷T100-V1.0-總賬管理用戶手冊(cè)-簡(jiǎn)體
評(píng)論
0/150
提交評(píng)論