c語言程序設(shè)計報告鏈表實(shí)現(xiàn)學(xué)生信息管理_第1頁
c語言程序設(shè)計報告鏈表實(shí)現(xiàn)學(xué)生信息管理_第2頁
c語言程序設(shè)計報告鏈表實(shí)現(xiàn)學(xué)生信息管理_第3頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

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

5、現(xiàn)的,這是個極大的問題。最后在這次的程序設(shè)計過程中感謝老師和幫助過我的同學(xué)!word專業(yè)資料.六、源程序完整清單#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>struct nodechar number12;char name10;char sex6;char classes10;char tel12;struct node *next;typedef struct node NODE;/ 函數(shù)的聲明void Browse(NODE* head

6、);void Insert(NODE* head);void Delete(NODE* 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 user's choiceNODE *head;head=(NODE *)malloc(sizeof(NODE); / creat head

7、 nodehead->next=NULL; / install a tailReadInfo(head); / get info from disk file if file existedwhile(1)/ 主菜單word專業(yè)資料.printf("n%s","*學(xué)生信息管理系統(tǒng)*n""*1.瀏覽學(xué)生信息*n""*2.插入學(xué)生信息*n""*3.刪除學(xué)生信息*n""*4.修改學(xué)生信息*n""*5.保存學(xué)生信息*n""*0.退出系統(tǒng)*n&quo

8、t;" *n"" 請按功能代碼選擇 (0 5):");scanf("%d",&choice); / number with return char into the IO butter getchar(); / clear the return char from buffer switch(choice)case 1:Browse(head);break;case 2:Insert(head);break;case 3:Delete(head);break;case 4:Modify(head);break;case 5:W

9、riteInfo(head);break;case 0:Exit(head);exit(0);default:printf("n選擇錯誤,請重新輸入!n"); / end of switch / end of while(1)return 0;/瀏覽學(xué)生信息void Browse(NODE *head)NODE* p=head;if(p->next=NULL)word專業(yè)資料.printf("無文件記錄!請輸入學(xué)生信息!n");return;p=head->next;printf("numbernameclassessex teln

10、");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 point to the head node, wh

11、ich is passed from main functionprintf("請輸入學(xué)生學(xué)號:n");scanf("%s",t->number);printf("請輸入學(xué)生姓名:n");scanf("%s",t->name);printf("請輸入學(xué)生性別:n");scanf("%s",t->sex);printf("請輸入學(xué)生班級:n");scanf("%s",t->classes);printf("

12、;請輸入學(xué)生:n");scanf("%s",t->tel);if(p->next=NULL)/原本無學(xué)生記錄p->next=t; / new node connect to head nodet->next=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 stepsword專業(yè)資料.void Delete(NOD

13、E *head)/定義刪除函數(shù)NODE* p=head,*t=p->next;char num12;printf("請輸入要刪除學(xué)生的學(xué)號:n");scanf("%s",num);while(t!=NULL)if(strcmp(t->number,num)!=0)t=t->next;p=p->next;elsep->next=t->next;free(t);printf("學(xué)生信息刪除成功n");return;printf("該學(xué)生學(xué)號不存在,請輸入正確的學(xué)生學(xué)號n");/ 修改

14、學(xué)生信息void Modify(NODE *head)NODE* p=head;p=p->next;char num12;printf("請輸入要修改信息的學(xué)生學(xué)號:n");scanf("%s",num);int choice;while(p!=NULL)if(strcmp(p->number,num)!=0)p=p->next;elseprintf("1. 學(xué)號 2. 姓名 3. 性別 4. 班級 5.n 請選擇: "); scanf("%d",&choice);switch(choic

15、e)word專業(yè)資料.case 1:printf("請輸入要修改學(xué)生的學(xué)號:n");scanf("%s",p->number);break;case 2:printf("請輸入要修改學(xué)生的姓名:n");scanf("%s",p->name);break;case 3:printf("請輸入要修改學(xué)生的性別:n");scanf("%s",p->sex);break;case 4:printf("請輸入要修改學(xué)生的班級:n");scanf(&

16、quot;%s",p->classes);break;case 5:printf("請輸入要修改學(xué)生的:n");scanf("%s",p->tel);break;break;/ 將學(xué)生信息寫入文件void WriteInfo(NODE *head)FILE* fp;NODE* p=head;if (fp=fopen("C:Database.txt","wb")=NULL)printf("不能打開學(xué)生文件!n");return ;p=p->next;while(p!=N

17、ULL)if (fwrite(p,sizeof(NODE),1,fp)!=1) / write info and check sucess or not printf("寫入學(xué)生文件錯誤!n");p=p->next;word專業(yè)資料.fclose(fp);/ 將學(xué)生信息從文件讀出void ReadInfo(NODE* head)FILE* fp;NODE* p=head,*t;if (fp=fopen("c:Database.txt","rb")=NULL)printf("學(xué)生數(shù)據(jù)文件不存在,或文件打不開!n"

18、;);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)word專業(yè)資料.printf("保存當(dāng)前數(shù)據(jù)嗎?請

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論