c語(yǔ)言程序設(shè)計(jì)報(bào)告-鏈表實(shí)現(xiàn)學(xué)生信息管理.doc_第1頁(yè)
c語(yǔ)言程序設(shè)計(jì)報(bào)告-鏈表實(shí)現(xiàn)學(xué)生信息管理.doc_第2頁(yè)
c語(yǔ)言程序設(shè)計(jì)報(bào)告-鏈表實(shí)現(xiàn)學(xué)生信息管理.doc_第3頁(yè)
c語(yǔ)言程序設(shè)計(jì)報(bào)告-鏈表實(shí)現(xiàn)學(xué)生信息管理.doc_第4頁(yè)
c語(yǔ)言程序設(shè)計(jì)報(bào)告-鏈表實(shí)現(xiàn)學(xué)生信息管理.doc_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精品文檔C語(yǔ)言課程設(shè)計(jì)報(bào)告鏈表實(shí)現(xiàn)學(xué)生信息管理。1 歡迎下載精品文檔一課程設(shè)計(jì)目標(biāo)C語(yǔ)言課程設(shè)計(jì)的目的是通過(guò)課程設(shè)計(jì)的綜合訓(xùn)練, 培養(yǎng)學(xué)生實(shí)際分析問(wèn)題、編程和動(dòng)手能力, 最終目標(biāo)是通過(guò)這種形式, 幫助學(xué)生系統(tǒng)掌握該門課程的主要內(nèi)容,更好地完成教學(xué)任務(wù)。 本課程設(shè)計(jì)具有如下特點(diǎn): 重點(diǎn)在于 C 語(yǔ)言的基本特征上,涵蓋了 C語(yǔ)言的重要基礎(chǔ)知識(shí)。 結(jié)合了實(shí)際應(yīng)用的要求, 使課程設(shè)計(jì)既涵蓋知識(shí)點(diǎn), 又接近工程實(shí)際需要。 通過(guò)激發(fā)學(xué)習(xí)興趣, 調(diào)動(dòng)學(xué)生主動(dòng)學(xué)習(xí)的積極性,并引導(dǎo)他們根據(jù)實(shí)際編程要求, 訓(xùn)練自己實(shí)際分析問(wèn)題的能力以及編程能力,并養(yǎng)成良好的編程習(xí)慣。另外,在實(shí)際編程中,為了提高編程質(zhì)量, 希望學(xué)

2、生在書(shū)寫(xiě)代碼時(shí), 對(duì)空行、空格和注釋嚴(yán)格按要求處理,以建立良好的編程風(fēng)格。二設(shè)計(jì)項(xiàng)目:學(xué)生學(xué)籍管理該課程設(shè)計(jì)是設(shè)計(jì)一個(gè)模擬學(xué)生信息管理程序, 要求使用鏈表來(lái)實(shí)現(xiàn)。 它具有瀏覽、插入、刪除、修改等功能,并且能夠?qū)?shù)據(jù)進(jìn)行文件存儲(chǔ)和讀出操作。主要功能模塊:1. 瀏覽學(xué)生信息:顯示學(xué)生的信息。2. 插入學(xué)生信息:添加學(xué)生的信息。3. 刪除學(xué)生信息:通過(guò)輸入學(xué)號(hào)刪除學(xué)生的信息。4. 修改學(xué)生信息:通過(guò)輸入學(xué)號(hào)修改學(xué)生的信息。5. 保存學(xué)生信息:將學(xué)生信息保存到文件。0. 退出系統(tǒng):結(jié)束程序的運(yùn)行,結(jié)束前詢問(wèn)是否保存信息。三具體任務(wù)由老師提供主菜單程序以及第0、2 個(gè)模塊。學(xué)生在這個(gè)信息系統(tǒng)中加入四個(gè)模

3、塊, 即 :1. 瀏覽學(xué)生信息3. 刪除學(xué)生信息4. 修改學(xué)生信息5. 保存學(xué)生信息。2 歡迎下載精品文檔。3 歡迎下載精品文檔四、詳細(xì)介紹1、瀏覽學(xué)生信息2、插入學(xué)生信息。4 歡迎下載精品文檔3、刪除學(xué)生信息4、修改學(xué)生信息。5 歡迎下載精品文檔5、信息的寫(xiě)入讀出6、學(xué)生信息的保存與釋放。6 歡迎下載精品文檔五、課程設(shè)計(jì)實(shí)踐小節(jié)這是這學(xué)期的第一次正式的程序設(shè)計(jì), 目的是運(yùn)用鏈表來(lái)實(shí)現(xiàn)學(xué)生的學(xué)籍信息管理。在學(xué)習(xí)過(guò)程中, 我不僅把以前的函數(shù)循環(huán)搭配使用了起來(lái), 也接觸到鏈表這些全新的概念。鏈表的使用在今后的程序設(shè)計(jì)中尤為關(guān)鍵, 他可以保存、 調(diào)用和更改數(shù)據(jù), 在信息時(shí)代的程序設(shè)計(jì)中很重要。在這次

4、的程序設(shè)計(jì)中,老師和同學(xué)都是我強(qiáng)大的后盾。比如之前在 switch 語(yǔ)句下的 break 的使用和 getchar 的重要性,還有在小程序里面的循環(huán), 每一步的程序都很重要。通過(guò)這次的程序設(shè)計(jì), 我了解到我所感興趣的東西并不是感興趣就可以掌握的, 要經(jīng)過(guò)不斷的練習(xí)和調(diào)試, 在一次一次的失敗中找到原因, 團(tuán)結(jié)周圍的所有力量來(lái)突破。最重要的收獲其實(shí)還是寫(xiě)編碼的重要性。 我這邊接觸過(guò)一些華為之類的程序設(shè)計(jì)員,他們都有 c 語(yǔ)言設(shè)計(jì)規(guī)范要求, 每種固定程序的編寫(xiě)都有固定的格式, 不按照格式的都有相應(yīng)的處罰。這次的程序設(shè)計(jì)中我充分的體會(huì)到了格式的重要性,我程序的最大的問(wèn)題就在于 switch 語(yǔ)句里面格

5、式的不對(duì)稱導(dǎo)致的出錯(cuò),最后是老師發(fā)現(xiàn)的,這是個(gè)極大的問(wèn)題。最后在這次的程序設(shè)計(jì)過(guò)程中感謝老師和幫助過(guò)我的同學(xué)!。7 歡迎下載精品文檔六、源程序完整清單#include #include #include #include struct nodechar number12;char name10;char sex6;char classes10;char tel12;struct node *next;typedef struct node NODE;/ 函數(shù)的聲明void Browse(NODE* head);void Insert(NODE* head);void Delete(NODE*

6、head);void Modify(NODE* head);void WriteInfo(NODE* head);void ReadInfo(NODE* head);void FreeList(NODE* head);void Exit(NODE* head);/ 主程序int main()int choice; / a variable accept the users choiceNODE *head;head=(NODE *)malloc(sizeof(NODE); / creat head nodehead-next=NULL; / install a tailReadInfo(hea

7、d); / get info from disk file if file existedwhile(1)/ 主菜單printf(n%s,*學(xué)生信息管理系統(tǒng)*n。8 歡迎下載精品文檔*1.瀏覽學(xué)生信息*n*2.插入學(xué)生信息*n*3.刪除學(xué)生信息*n*4.修改學(xué)生信息*n*5.保存學(xué)生信息*n*0.退出系統(tǒng)*n *n 請(qǐng)按功能代碼選擇 (0 5):);scanf(%d,&choice); / number with return char into the IO butter getchar(); / clear the return char from buffer switch(choice

8、)case 1:Browse(head);break;case 2:Insert(head);break;case 3:Delete(head);break;case 4:Modify(head);break;case 5:WriteInfo(head);break;case 0:Exit(head);exit(0);default:printf(n選擇錯(cuò)誤,請(qǐng)重新輸入!n); / end of switch / end of while(1)return 0;/瀏覽學(xué)生信息void Browse(NODE *head)NODE* p=head;if(p-next=NULL)printf(無(wú)文

9、件記錄!請(qǐng)輸入學(xué)生信息!n);。9 歡迎下載精品文檔return;p=head-next;printf(numbernameclassessex teln);printf(-n);while(p!=NULL)printf(%s%s%s%s%sn,p-number,p-name,p-classes,p-sex,p-tel);p=p-next;void Insert(NODE *head)/定義插入函數(shù)NODE *t,*p;t=(NODE *)malloc(sizeof(NODE); / create a new node and pointed by tp=head; / p is to poi

10、nt to the head node, which is passed from main functionprintf(請(qǐng)輸入學(xué)生學(xué)號(hào):n);scanf(%s,t-number);printf(請(qǐng)輸入學(xué)生姓名:n);scanf(%s,t-name);printf(請(qǐng)輸入學(xué)生性別:n);scanf(%s,t-sex);printf(請(qǐng)輸入學(xué)生班級(jí):n);scanf(%s,t-classes);printf(請(qǐng)輸入學(xué)生電話:n);scanf(%s,t-tel);if(p-next=NULL)/原本無(wú)學(xué)生記錄p-next=t; / new node connect to head nodet-n

11、ext=NULL; / install a tail for the new nodeelse/原本有學(xué)生記錄t-next=p-next; / new node insert to the rear of the head node.p-next=t;/ two stepsvoid Delete(NODE *head)/定義刪除函數(shù)。10 歡迎下載精品文檔NODE* p=head,*t=p-next;char num12;printf(請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):n);scanf(%s,num);while(t!=NULL)if(strcmp(t-number,num)!=0)t=t-next;p

12、=p-next;elsep-next=t-next;free(t);printf(學(xué)生信息刪除成功n);return;printf(該學(xué)生學(xué)號(hào)不存在,請(qǐng)輸入正確的學(xué)生學(xué)號(hào)n);/ 修改學(xué)生信息void Modify(NODE *head)NODE* p=head;p=p-next;char num12;printf(請(qǐng)輸入要修改信息的學(xué)生學(xué)號(hào):n);scanf(%s,num);int choice;while(p!=NULL)if(strcmp(p-number,num)!=0)p=p-next;elseprintf(1.學(xué)號(hào) 2. 姓名 3. 性別 4. 班級(jí) 5. 電話 n 請(qǐng)選擇: );

13、scanf(%d,&choice);switch(choice)case 1:。11 歡迎下載精品文檔printf(請(qǐng)輸入要修改學(xué)生的學(xué)號(hào):n);scanf(%s,p-number);break;case 2:printf(請(qǐng)輸入要修改學(xué)生的姓名:n);scanf(%s,p-name);break;case 3:printf(請(qǐng)輸入要修改學(xué)生的性別:n);scanf(%s,p-sex);break;case 4:printf(請(qǐng)輸入要修改學(xué)生的班級(jí):n);scanf(%s,p-classes);break;case 5:printf(請(qǐng)輸入要修改學(xué)生的電話:n);scanf(%s,p-tel)

14、;break;break;/ 將學(xué)生信息寫(xiě)入文件void WriteInfo(NODE *head)FILE* fp;NODE* p=head;if (fp=fopen(C:Database.txt,wb)=NULL)printf(不能打開(kāi)學(xué)生文件!n);return ;p=p-next;while(p!=NULL)if (fwrite(p,sizeof(NODE),1,fp)!=1) / write info and check sucess or not printf(寫(xiě)入學(xué)生文件錯(cuò)誤!n);p=p-next;fclose(fp);。12 歡迎下載精品文檔/ 將學(xué)生信息從文件讀出void

15、ReadInfo(NODE* head)FILE* fp;NODE* p=head,*t;if (fp=fopen(c:Database.txt,rb)=NULL)printf(學(xué)生數(shù)據(jù)文件不存在,或文件打不開(kāi)!n);return ;p-next=!NULL;while(p-next!=NULL)t=(NODE*)malloc(sizeof(NODE);fread(t,sizeof(NODE),1,fp);p-next=t;p=p-next;fclose(fp);/ 釋放鏈表void FreeList(NODE* head)NODE* p=head,* t=head;while(p!=NULL)p=p-next;free(t);t=p;/ 退出程序void Exit(NODE* head)char ans;int flag=1;if (head-next!=NULL)printf(保存當(dāng)前數(shù)據(jù)嗎?請(qǐng)輸入y/n:);while(flag)。13 歡迎下載精品文檔s

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論