版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告 書</p><p> 所屬課程名稱 C語言課程設(shè)計 </p><p> 題 目 學生信息管理系統(tǒng) </p><p> 2012年6月14日</p><p> 目 錄</p><p><b> 需
2、求分析 </b></p><p><b> 整體設(shè)計 </b></p><p><b> 詳細設(shè)計 </b></p><p><b> 系統(tǒng)測試 </b></p><p><b> 課程設(shè)計心得</b></p><p
3、><b> 參考文獻 </b></p><p> 第一章 設(shè)計內(nèi)容及要求</p><p> 設(shè)計“學生信息管理系統(tǒng)”使其具有學生信息錄入功能,修改、刪除、顯示和查詢功能。</p><p> ?。?)包括創(chuàng)建學生個人信息:學生學號、姓名、年齡、號碼、地址。</p><p> ?。?)學生信息添加功能。&
4、lt;/p><p> ?。?)學生信息刪除功能。</p><p> (3)學生信息修改功能。</p><p> ?。?)查詢學生信息功能。</p><p> ?。?)顯示全部學生信息功能。</p><p> 第二章 總體設(shè)計思路</p><p> 1>程序設(shè)計組成框圖</p&
5、gt;<p> 2>程序流程圖(見下頁)</p><p> 第三章 詳細設(shè)計說明</p><p><b> 1>頭文件</b></p><p> #include <stdio.h></p><p> #include<stdlib.h></p>
6、;<p> #include<string.h></p><p> #include<conio.h></p><p> #define Nsizeof(struct stud)</p><p><b> 2>數(shù)入口說明</b></p><p> main();主函數(shù)
7、;</p><p> void menu();主菜單界面;</p><p> void add();添加新的學生信息;</p><p> void print(int i);打印學生信息;</p><p> void scan();查找學生信息;</p><p> void res();檢索學生信息界面;&
8、lt;/p><p> void res_name();按姓名檢索;</p><p> void res_num();按學號檢索;</p><p> void del(int i);刪除學生信息;</p><p> void modify(int i);修改學生信息;</p><p> void fileope
9、n();打開文件;</p><p> void filesave();保存文件;</p><p><b> 3>調(diào)用關(guān)系</b></p><p> 第四章 調(diào)試與測試</p><p><b> 1>編譯工具</b></p><p><b>
10、 VC++6.0</b></p><p><b> 2>主菜單</b></p><p> 第五章 心得體會</p><p> 通過這次C程序課程設(shè)計,我感受到了編程是一項非常煩瑣周密的活動,它不但需要一個人周密的思考問題的能力,處理問題的能力,還需要有足夠的耐心和嚴謹治學的作風,來不得半點馬虎,一點小的錯誤就可能導
11、致整個程序不能運行。我初步學會了課程設(shè)計的基本方法,學會了怎樣去借鑒別人的方法和經(jīng)驗,知道如何去查找資料和整合處理這些資料的能力,使我收益最大的是享受到了一種成功的喜悅。</p><p> 因為C語言底子比較差,我選擇的是相對容易的學生信息管理系統(tǒng)。先開始,比較快速的把大體程序代碼寫出來了,然后是進行編譯,這個環(huán)節(jié)是一個非常痛苦和艱難的,常常會因為一小點的錯誤而在編譯失敗與再次修改的漫漫循環(huán)之路中,但失敗的越多
12、,對人的考驗就越多,在編譯運行成功之后的享受成功的喜悅也就越多,另外在調(diào)試程序的過程中不斷的思考和運用已經(jīng)學到的知識,這對于自己是有很大的提高的。 </p><p> 由于所學的知識不多,自己的編程經(jīng)驗不足,仍存在一些問題,如不能實現(xiàn)模糊查找等功能。按現(xiàn)有的知識水平有些東西暫時還無法解決,還有待于在以后的學習中不斷提高和改進</p><p><b&g
13、t; 參考文獻</b></p><p> 1.謝希仁. 計算機網(wǎng)絡(luò)(第五版)[M]. 北京:電子工業(yè)出版社,2008年2月</p><p> 2.胡小強 計算機網(wǎng)絡(luò)[M] 北京:北京郵電大學出版社2005年1月</p><p> 3. 李麗娟 《C語言程序設(shè)計教程》(第二版)[M] 人民郵電出版社,2009年3月</p>
14、<p> 4.李麗娟 《C語言程序設(shè)計教程習題答案與實驗指導》(第二版)[M] 人民郵電出版社附件 程序源代碼</p><p> #include <stdio.h> </p><p> #include <stdlib.h></p><p> #include <string.h> </p>
15、<p> # include <conio.h> </p><p> # define N sizeof(struct stud) //測結(jié)構(gòu)體變量的大小// </p><p> typedef struct stud </p><p><b> { </b></p><p> c
16、har number[20]; </p><p> char name[20]; </p><p> char sex[20]; </p><p> char call[20]; </p><p> char add[20]; </p><p> struct stud *next; </p>
17、<p> }fun; //為結(jié)構(gòu)體命名// </p><p> fun *creatlink(void) //創(chuàng)建鏈表信息// </p><p><b> { </b></p><p> fun *p1,*p2,*head; //p1為前驅(qū),p2為后繼// </p><p><b&g
18、t; int i=1; </b></p><p> char choice; </p><p> head=p2=(fun *)malloc(N); </p><p> head->next=NULL; </p><p> choice='y'; </p><p> for
19、(i=1;choice=='y'||choice=='Y';i++) </p><p><b> { </b></p><p> p1=(fun *)malloc(N); </p><p> printf("*********************************************
20、**********************************\n\n"); </p><p> printf("請輸入第%d個學生的信息:\n",i); </p><p> printf("學號:"); </p><p> scanf("%s",p1->number); <
21、;/p><p> printf("\n姓名:"); </p><p> scanf("%s",p1->name); </p><p> printf("\n性別:"); </p><p> scanf("%s",p1->sex); </p&g
22、t;<p> printf("\n電話:"); </p><p> scanf("%s",p1->call); </p><p> printf("\n宿舍號:"); </p><p> scanf("%s",p1->add); </p>
23、<p> p2->next=p1; </p><p><b> p2=p1; </b></p><p> printf("\n是否繼續(xù)?(Y/N):"); </p><p> choice=getche(); </p><p> printf("\n");
24、 </p><p><b> } </b></p><p> p2->next=NULL; </p><p> return(head); </p><p><b> } </b></p><p> void savelink(fun *h) //保存鏈表
25、信息// </p><p><b> { </b></p><p><b> fun *p; </b></p><p> FILE *fp; </p><p> char fliename[20]; </p><p> printf("\n請輸入你要保存的
26、文件名?"); </p><p> scanf("%s",fliename); </p><p> if((fp=fopen(fliename,"wt"))==NULL) </p><p><b> { </b></p><p> printf("寫文件
27、出錯?按任意鍵退出!"); </p><p> getche(); </p><p><b> exit(1); </b></p><p><b> } </b></p><p> for(p=h->next;p!=NULL;p=p->next) </p>
28、<p> fprintf(fp,"%s %s %s %s %s %s\n",p->number,p->name,p->sex,p->call,p->add); </p><p> //向文件中寫入數(shù)據(jù)// </p><p> printf("文件已成功保存?按任意鍵返回!"); </p>
29、;<p> getche(); </p><p> fclose(fp); </p><p><b> } </b></p><p> fun *readlink(void) //讀出已保存文件的信息// </p><p><b> { </b></p>&
30、lt;p> fun *head,*p,*q; </p><p> FILE *fp; </p><p> char filename[20]; </p><p> printf("\n請輸入要打開的文件名:"); </p><p> scanf("%s",filename); </
31、p><p> if((fp=fopen(filename,"rt"))==NULL) </p><p><b> { </b></p><p> printf("讀文件出錯?按任意鍵退出!"); </p><p> getche(); </p><p>
32、<b> exit(1); </b></p><p><b> } </b></p><p> head=q=(fun *)malloc(N); </p><p> head->next=NULL; </p><p> while(!feof(fp)) </p><
33、;p><b> { </b></p><p> p=(fun *)malloc(N); //建立新鏈表,并從文件中讀出數(shù)據(jù)// </p><p> fscanf(fp,"%s %s %s %s %s %s\n",p->number,p->name,p->sex,p->call,p->add); <
34、/p><p> q->next=p; </p><p><b> q=p; </b></p><p><b> } </b></p><p> q->next=NULL; </p><p> fclose(fp); </p><p>
35、 printf("文件信息已正確讀出?按任意鍵返回!"); </p><p><b> getch(); </b></p><p> return head; </p><p><b> } </b></p><p> fun *insert(fun *head)
36、//插入信息// </p><p><b> { </b></p><p><b> fun *p; </b></p><p> p=(fun *)malloc(N); </p><p> printf("\n請輸入要插入學生的信息:\n"); </p>&
37、lt;p> printf("\n學號?"); </p><p> scanf("%s",p->number); </p><p> printf("\n姓名:"); </p><p> scanf("%s",p->name); </p><p
38、> printf("\n性別:"); </p><p> scanf("%s",p->sex); </p><p> printf("\n電話:"); </p><p> scanf("%s",p->call); </p><p>
39、printf("\n宿舍號:"); </p><p> scanf("%s",p->add); </p><p> if(head->next!=NULL) </p><p><b> { </b></p><p> p->next=head->ne
40、xt; //插入數(shù)據(jù)操作代碼// </p><p> head->next=p; </p><p><b> } </b></p><p> printf("\n學生信息插入成功!按任意鍵繼續(xù)!"); </p><p> getche(); </p><p>
41、 return head; </p><p><b> } </b></p><p> fun *delet(fun *p0) //刪除信息// </p><p><b> { </b></p><p> char num[20]; </p><p><b
42、> fun *p; </b></p><p> char choice; </p><p> if(p0->next==NULL) </p><p><b> { </b></p><p> printf("信息出錯!按任意鍵退出!"); </p>&l
43、t;p><b> getch(); </b></p><p><b> exit(1); </b></p><p><b> } </b></p><p> printf("\n請輸入要刪除學生的學號?"); </p><p> scanf(
44、"%s",num); </p><p> for(p=p0->next;strcmp(p->number,num)!=0;p0=p,p=p->next) ; //找到要刪除的學生的信息// </p><p> printf("你要刪除的信息如下,請確認是否刪除:\n"); </p><p> pri
45、ntf("\n 學號:%s 姓名:%s 性別:%s 電話:%s 宿舍號:%s\n\n",p->number,p->name,p->sex,p->call,p->add); </p><p> printf("\n是Y,否N:"); //顯示要刪除的學生的信息// </p><p> choice=getch
46、e(); </p><p> if(choice=='Y'||choice=='y') </p><p><b> { </b></p><p> p0->next=p->next; </p><p><b> free(p); </b></
47、p><p> printf("\n文件刪除成功!"); </p><p><b> } </b></p><p> printf("\n按任意鍵結(jié)束!"); </p><p> getche(); </p><p> return p0; </p
48、><p><b> } </b></p><p> fun *modify(fun *h) //修改信息// </p><p><b> { </b></p><p> char num[20]; </p><p><b> fun *p; </b&
49、gt;</p><p> char choice; </p><p> printf("\n請輸入要修改學生信息的學號?"); </p><p> scanf("%s",num); </p><p> for(p=h;strcmp(p->number,num)!=0;p=p->nex
50、t) ; //找到要刪除的學生的信息// </p><p><b> while(1) </b></p><p><b> { </b></p><p> printf("請輸入修改后學生的信息?\n"); </p><p> printf("學號?&q
51、uot;); </p><p> scanf("%s",p->number); </p><p> printf("\n姓名:"); </p><p> scanf("%s",p->name); </p><p> printf("\n性別:"
52、); </p><p> scanf("%s",p->sex); </p><p> printf("\n電話:"); </p><p> scanf("%s",p->call); </p><p> printf("\n宿舍號:"); &l
53、t;/p><p> scanf("%s",p->add); </p><p> printf("修改后學生信息如下:\n"); </p><p> printf("\n 學號:%s 姓名:%s 性別:%s 電話:%s 宿舍號:%s\n\n",p->number,p->name,p
54、->sex,p->call,p->add); </p><p> printf("\n確認?是Y否N:"); </p><p> choice=getche(); </p><p> if(choice=='y'||choice=='Y') break; </p><p&
55、gt;<b> } </b></p><p> printf("\n修改成功,按任意鍵繼續(xù)!"); </p><p> getche(); </p><p> return h; </p><p><b> } </b></p><p> vo
56、id find(fun *h) //查詢信息// </p><p><b> { </b></p><p> char num[20]; </p><p><b> fun *p; </b></p><p> printf("\n請輸入你要查找的學生的學號?");
57、</p><p> scanf("%s",num); </p><p> for(p=h;strcmp(p->number,num)!=0;p=p->next) ; </p><p> printf("你查找的學生信息如下:\n"); </p><p> printf("\
58、n 學號:%s 姓名:%s 性別:%s 電話:%s 宿舍號:%s\n\n",p->number,p->name,p->sex,p->call,p->add); </p><p> printf("按任意鍵繼續(xù)!"); </p><p> getche(); </p><p><b>
59、} </b></p><p> void print(fun *p) //顯示全部信息// </p><p><b> { </b></p><p> p=p->next; </p><p> while(p!=NULL) </p><p><b> {
60、 </b></p><p> printf("\n 學號:%s 姓名:%s 性別:%s 電話:%s 宿舍號:%s\n",p->number,p->name,p->sex,p->call,p->add); </p><p> p=p->next; </p><p><b> }
61、 </b></p><p> printf("\n按任意鍵繼續(xù)!"); </p><p> getche(); </p><p><b> } </b></p><p> fun *sort(fun *head) </p><p><b&g
62、t; { </b></p><p> fun *q,*t,*p; </p><p> p=head; </p><p><b> t=NULL; </b></p><p> while(t!=head->next) </p><p><b&g
63、t; { </b></p><p> p=head; </p><p> q=p->next; </p><p> while(q->next!=t) </p><p><b> { </b></p><p> if(strcmp(p-
64、>next->number,q->next->number)>0) /*前結(jié)點和后結(jié)點比</p><p><b> 較大小*/ </b></p><p><b> { </b></p><p> p->next=q->next; </p><
65、p> q->next=q->next->next; </p><p> p->next->next=q; </p><p><b> } </b></p><p> p=p->next; </p><p> q=p->next;
66、 </p><p><b> } </b></p><p><b> t=q; </b></p><p><b> } </b></p><p> printf("學生信息排序完畢?按任意鍵繼續(xù)!"); </p>
67、<p> getche(); </p><p> print(head); </p><p> return(head); /*返回頭指針*/ </p><p><b> } </b></p><p> void main() </p><p><b>
68、 { </b></p><p> int choice=1,i,ok=1; //choice用于選擇對數(shù)據(jù)執(zhí)行操作,i循環(huán),ok主界面選擇// </p><p> fun *head,*h; </p><p> head=NULL; </p><p> for(i=1;ok!=0;i++) </p>&
69、lt;p><b> { </b></p><p> system("cls"); </p><p> printf("\n歡迎來到學生信息管理系統(tǒng)主界面!\n\n\n"); </p><p> printf("\n\n\n 1.創(chuàng)建新
70、文件.\n\n\n"); </p><p> printf(" 2.讀取原文件,并執(zhí)行相應(yīng)操作.(原文件名為:jxx)"); </p><p> printf("\n\n\n 0.退出?"); </p><p> p
71、rintf("\n\n\n\n\n請選擇你要執(zhí)行的操作:"); </p><p> scanf("%d",&ok); </p><p> if(ok==1) </p><p><b> { </b></p><p> system("cls")
72、; </p><p> head=creatlink(); //創(chuàng)建新鏈表并保存文件// </p><p> savelink(head); </p><p><b> } </b></p><p> if(ok==2) </p><p><b> { </b>
73、;</p><p> head=readlink(); //進入文件,對已知數(shù)據(jù)進行操作// </p><p> for(i=1;choice!=0;i++) </p><p><b> { </b></p><p> system("cls"); </p><p>
74、; printf("************歡迎來到學生信息管理系統(tǒng)************\n\n\n"); </p><p> printf(" 1. 添加學生信息? \n\n"); </p><p> printf("
75、 2. 刪除學生信息? \n\n"); </p><p> printf(" 3. 修改學生信息? \n\n"); </p><p> printf("
76、 4. 查詢學生信息? \n\n"); </p><p> printf(" 5. 顯示全部信息? \n\n"); </p><p> printf(" 6.
77、排序全部信息? \n\n"); </p><p> printf(" 0. 退 出 ? \n\n"); </p><p> printf("請輸入你要執(zhí)行的操作代碼?"); </p><p>
78、 scanf("%d",&choice); </p><p> switch(choice) </p><p><b> { </b></p><p> case 1: h=insert(head);savelink(h);break; //執(zhí)行增,刪,改完畢后對新信息進行保存// </p>&l
79、t;p> case 2: h=delet(head);savelink(h);break; </p><p> case 3: h=modify(head);savelink(h);break; </p><p> case 4: find(head);break; </p><p> case 5: print(head);break; </p
80、><p> case 6: h=sort(head);savelink(h);break; </p><p> case 0: break; </p><p><b> } </b></p><p><b> } </b></p><p><b> } &
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--- 學生信息管理系統(tǒng)
- c語言課程設(shè)計--學生信息管理系統(tǒng)
- c語言課程設(shè)計——學生信息管理系統(tǒng)
- c語言課程設(shè)計---學生信息管理系統(tǒng)
- 學生信息管理系統(tǒng)-c語言課程設(shè)計
- c語言課程設(shè)計---學生信息管理系統(tǒng)
- c語言課程設(shè)計--學生信息管理系統(tǒng)
- c語言課程設(shè)計-學生信息管理系統(tǒng)
- c語言課程設(shè)計-學生信息管理系統(tǒng)
- c語言課程設(shè)計--學生信息管理系統(tǒng)
- c語言課程設(shè)計--學生信息管理系統(tǒng)
- c語言課程設(shè)計-學生信息管理系統(tǒng)
- c語言課程設(shè)計-學生信息管理系統(tǒng)
- c語言課程設(shè)計---學生信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計----學生信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計--學生信息管理
- 學生信息管理系統(tǒng)c語言課程設(shè)計報告
- c語言課程設(shè)計--學生信息管理系統(tǒng) (2)
- c語言課程設(shè)計--學生信息管理系統(tǒng) (2)
- c語言課程設(shè)計報告----學生信息管理系統(tǒng)
評論
0/150
提交評論