C語(yǔ)言學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
C語(yǔ)言學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
C語(yǔ)言學(xué)生信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(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ì)學(xué)生信息管理系統(tǒng)姓名洪偉生院系計(jì)算機(jī)學(xué)院日期2015年7月5日目錄第一章設(shè)計(jì)要求?1. 第二章算法分析理論依據(jù)?2. 主要實(shí)現(xiàn)方法?2.1 整體流程圖?2.2 函數(shù)功能和函數(shù)之間的調(diào)用關(guān)系?第三章代碼(源代碼)?第四章分析說(shuō)明?第五章總結(jié)?第一章、設(shè)計(jì)要求1、利用所學(xué)的知識(shí)、理論和實(shí)際結(jié)合,利用資源,采用模塊化的結(jié)構(gòu),使用模仿修改自主設(shè)計(jì)相結(jié)合的方法,鍛煉學(xué)生綜合分析解決實(shí)際問(wèn)題的編程能力;2、通過(guò)C語(yǔ)言各個(gè)函數(shù)功能來(lái)實(shí)現(xiàn)對(duì)學(xué)生信息的管理,學(xué)生信息包括學(xué)生姓名,學(xué)號(hào),各科成績(jī);管理方式包括對(duì)學(xué)生信息的錄入,保存,排序,查找、修改、刪除等功能。第二章、算法分析1、程序理論依據(jù)通過(guò)C

2、語(yǔ)言的程序設(shè)計(jì)基礎(chǔ)的掌握,對(duì)學(xué)生成績(jī)管理系統(tǒng)進(jìn)行編寫(xiě)程序。首先,通過(guò)鏈表這一數(shù)據(jù)結(jié)構(gòu)來(lái)對(duì)學(xué)生的信息進(jìn)行錄入以及操作,在其過(guò)程中,通過(guò)各個(gè)功能語(yǔ)句以及選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)等方式的結(jié)合來(lái)達(dá)到所要實(shí)現(xiàn)的程序功能。最后通過(guò)對(duì)C語(yǔ)言中對(duì)文件的操作,對(duì)已有學(xué)生成績(jī)的讀取和新建學(xué)生成績(jī)的錄入保存。2、主要實(shí)現(xiàn)方法2.1整體流程圖學(xué)生信息管理系統(tǒng)進(jìn)入退出學(xué)生信息錄入學(xué)生信息瀏覽學(xué)生信息查找學(xué)生信息修改2.2、函數(shù)功能和函數(shù)之間的調(diào)用關(guān)系2.2.1、函數(shù)功能:voidMenu_1();/voidMenu_2();/voidswap(structstudent*phead,struct表節(jié)點(diǎn)互換voidSave(s

3、tructstudent*head);盤(pán)voidSearch(structstudent*head);生信息voidRead(structstudent*head);生信息voidSort(structstudent*head);點(diǎn)排序structstudent*Create();錄入structstudent*Readpoint();內(nèi)存structstudent*Modify(structstudent*head);體成員修改structstudent*Add(structstudent*head);點(diǎn)插入主菜單二級(jí)菜單student*pback);/鏈/寫(xiě)入磁/查找學(xué)/顯示學(xué)/鏈表節(jié)/學(xué)

4、生信息手動(dòng)/磁盤(pán)文件寫(xiě)入/鏈表結(jié)構(gòu)/鏈表節(jié)/鏈表節(jié)structstudent*Delete(structstudent*head);點(diǎn)刪除222、函數(shù)之間的調(diào)用關(guān)系:通過(guò)switch語(yǔ)句進(jìn)行指令選擇:case1:學(xué)生信息錄入調(diào)用函數(shù)Create()、Save()、Menu_1()、Menu_2()case2:學(xué)生信息瀏覽調(diào)用函數(shù)Readpoint()、Sort()、Read()、Save()、Menu_1()、Menu_2()case3:學(xué)生信息查找調(diào)用函數(shù)Search()、Readpoint()、Menu_1()、Menu_2()case4:學(xué)生信息修改調(diào)用函數(shù)Modify()、Readpo

5、int()、Save()、Menu_1()、Menu_2()case5:學(xué)生信息增加調(diào)用函數(shù)Add()、Readpoint()、Save()、Menu_1()、Menu_2()case6:學(xué)生信息刪除調(diào)用函數(shù)Delete()、Readpoint()Save()、Menu_1()、Menu_2()case0:返回主菜單調(diào)用函數(shù)Menu_1()/*/#include<stdio.h>#include<stdlib.h>#includevstring.h>structstudentintnum;charname24;charsex5;intChinese;intMath

6、;intEnglish;第三章、代碼(源代碼)學(xué)生信息管理系統(tǒng)/定義結(jié)構(gòu)體structstudent*next;voidSave(structstudent*head);磁盤(pán)/voidSearch(structstudent*head);學(xué)生信息/voidRead(structstudent*head);學(xué)生信息/voidSort(structstudent*head);節(jié)點(diǎn)排序/structstudent*Readpoint();文件寫(xiě)入內(nèi)存/structstudent*Create();/學(xué)生信息手動(dòng)錄入structstudent*Modify(structstudent*head);結(jié)構(gòu)

7、體成員修改/structstudent*Add(structstudent*head);節(jié)點(diǎn)插入/structstudent*Delete(structstudent*head);節(jié)點(diǎn)刪除/鏈表寫(xiě)入查找顯示鏈表磁盤(pán)鏈表鏈表鏈表;voidMenu_1();voidMenu_2();/主菜單二級(jí)菜單voidswap(structstudent*phead,structstudent*pback);/節(jié)點(diǎn)互換intmain(void)Menu_1();return0;voidMenu_1()intnum;printf("tttt學(xué)生信息管理系統(tǒng)ttttn");printf(&qu

8、ot;ttt1:進(jìn)入學(xué)生信息管理n");/主菜單printf("ttt0:退出學(xué)生信息管理n");printf("請(qǐng)您輸入指令:");scanf("%d",&num);switch(num)case1:Menu_2();break;default:printf("學(xué)生信息管理系統(tǒng)您已退出n");break;/*/voidMenu_2()structstudent*head;intnum;printf("ttt歡迎進(jìn)入n");printf("n");print

9、f("ttt1:學(xué)生信息錄入n");printf("ttt2:學(xué)生信息瀏覽n");printf("ttt3:學(xué)生信息查找n");printf("ttt4:/二級(jí)菜單學(xué)生信息修改n");printf("ttt5:學(xué)生信息增加n");printf("ttt6:學(xué)生信息刪除n");printf("ttt0:返回主菜單n");printf("n");printf("請(qǐng)您輸入指令:");scanf("%d"

10、,&num);switch(num)case1:head=Create();Save(head);printf("n");printf("ttt1:返回主菜單n");/手動(dòng)錄入學(xué)生數(shù)據(jù)printf("ttt2:返回二級(jí)菜單n");printf("n");printf("請(qǐng)您輸入指令:");seanf("%d",&num);switch(num)case1:Menu_1();break;case2:Menu_2();break;default:!n")

11、;printf("輸入無(wú)效,返回二級(jí)菜單Menu_2();break;break;case2:head=Readpoint();/寫(xiě)入鏈表,返回頭指針Sort(head);printf("ttt以學(xué)號(hào)升序排列n");Read(head);/鏈表數(shù)據(jù)寫(xiě)入文件Save(head);printf("n");printf("ttt1:返回主菜單n");printf("ttt2:返回二級(jí)菜單n");printf("n");printf("請(qǐng)您輸入指令:");scanf(&qu

12、ot;%d",&num);switch(num)case1:Menu_1();break;case2:Menu_2();break;default:!n");printf("輸入無(wú)效,返回二級(jí)菜單Menu_2();break;break;case3:head=Readpoint();Search(head);/查找學(xué)生信息printf("n");printf("ttt1:返回主菜單n");printf("ttt2:返回二級(jí)菜單n");printf("n");printf(&qu

13、ot;請(qǐng)您輸入指令:");seanf("%d",&num);switch(num)case1:Menu_1();break;case2:Menu_2();break;default:printf("輸入無(wú)效,返回二級(jí)菜單Menu_2();break;break;case4:head=Readpoint();Modify(head);修改結(jié)構(gòu)體成員并保存到文件Save(head);printf("n");printf("ttt1:返回主菜單n");printf("ttt2:返回二級(jí)菜單n"

14、);printf("n");printf("請(qǐng)您輸入指令:");scanf("%d",&num);switch(num)case1:Menu_1();break;case2:Menu_2();break;default:printf("輸入無(wú)效,返回二級(jí)菜單Menu_2();break;!n");!n");/break;case5:head=Readpoint();/增加學(xué)生信Add(head);息并保存到文件Save(head);printf("n");printf(&quo

15、t;ttt1:返回主菜單n");printf("ttt2:返回二級(jí)菜單n");printf("n");printf("請(qǐng)您輸入指令:");scanf("%d",&num);switch(num)case1:Menu_1();break;case2:Menu_2();break;default:printf("輸入無(wú)效,返回二級(jí)菜單!n");Menu_2();break;break;case6:head=Readpoint();head=Delete(head);/刪除學(xué)生信息并

16、保存到文件Save(head);printf("n");printf("ttt1:返回主菜單n");printf("ttt2:返回二級(jí)菜單n");printf("n");printf("請(qǐng)您輸入指令:");scanf("%d",&num);switch(num)case1:Menu_1();break;case2:Menu_2();break;default:printf("輸入無(wú)效,返回二級(jí)菜單!n");Menu_2();break;break;

17、case0:Menu_1();break;default:printf("請(qǐng)重新輸入n");Menu_2();break;/*-*/structstudent*Create()/學(xué)生信息手動(dòng)錄入structstudent*head,*p,*q;intn;p=q=(structstudent*)malloc(sizeof(structstudent);printf("請(qǐng)輸入學(xué)生的姓名、學(xué)號(hào)、性別、語(yǔ)文成績(jī)、高等數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī):n");scanf("%s",q->name);scanf("%d%s%d%d%d"

18、;,&q->num,&q->sex,&q->Chinese,&q->Math,&q->English);n=0;head=NULL;while(q->num!=0)n=n+1;if(n=1)head=q;elsep->next=q;p=q;q=(structstudent*)malloc(sizeof(structstudent);seanf("%s",q->name);scanf("%d%s%d%d%d",&q->num,q->sex,&

19、q->Chinese,&q->Math,&q->English);p->next=NULL;printf("學(xué)生信息錄入成功!n");returnhead;/*-*/structstudent*Readpoint()/學(xué)生信息寫(xiě)入內(nèi)存,便于操作FILE*fp1;structstudent*head,*p,*q;intn;if(fp1=fopen("E:test.txt","rb")=NULL)printf("openfileerror!'n");exit(0);p=q

20、=(structstudent*)malloc(sizeof(structstudent);fscanf(fp1,"%s%d%s%d%d%d",q->name,&q->num,q->sex,&q->Chinese,&q->Math,&q->English);n=0;head=NULL;while(!feof(fp1)n=n+1;if(n=1)head=q;elsep->next=q;p=q;q=(structstudent*)malloc(sizeof(structstudent);fscanf(fp

21、1,"%s%d%s%d%d%d",&q->name,&q->num,&q->sex,&q->Chinese,&q->Math,&q->English);p->next=NULL;fclose(fp1);returnhead;/*-*/voidSwap(structstudent*phead,structstudent*pback)/鏈表元素?cái)?shù)據(jù)交換structstudent*temp=(structstudent*)malloc(sizeof(structstudent);strcpy

22、(temp->name,phead->name);temp->num=phead->num;strcpy(temp->sex,phead->sex);temp->Chinese=phead->Chinese;temp->Math=phead->Math;temp->English=phead->English;strcpy(phead->name,pback->name);phead->num=pback->num;strcpy(phead->sex,pback->sex);phead-

23、>Chinese=pback->Chinese;phead->Math=pback->Math;phead->English=pback->English;strcpy(pback->name,temp->name);pback->num=temp->num;strcpy(pback->sex,temp->sex);pback->Chinese=temp->Chinese;pback->Math=temp->Math;pback->English=temp->English;free(t

24、emp);/*-*/voidSort(structstudent*head)/structstudent*phead=(structstudent*)malloc(sizeof(structstudent);structstudent*pback=(structstudent*)malloc(sizeof(structstudent);phead=head;while(phead)intNum=phead->num;pback=phead->next;while(pback)if(Num>pback->num)Swap(phead,pback);Num=phead-&g

25、t;num;pback=pback->next;phead=phead->next;/*-*/voidRead(structstudent*head)/生信息讀取structstudent*p;p=head;printf("n");printf("學(xué)生的姓名、學(xué)號(hào)、性別、語(yǔ)文成績(jī)、高等數(shù)學(xué)成績(jī)績(jī):n");while(p!=NULL)printf("%st%dt%st%dt%dtt%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->Englis

26、h);學(xué)號(hào)排序英語(yǔ)成p=p->next;printf("n");/*-*/voidSave(structstudent*head)/生信息保存到文件structstudent*p;FILE*fp;if(fp=fopen("E:test.txt","wb")=NULL)printf("openfileerror!'n");exit(0);p=head;while(p匸NULL)fprintf(fp,"%s%d%s%d%d%d",p->name,p->num,p->s

27、ex,p->Chinese,p->Math,p->English);fprintf(fp,"%s","rn");p=p->next;fclose(fp);/*-*/voidSearch(structstudent*head)/學(xué)生信息查找intn;structstudent*p;charname24;intnum;charsex5;intChinese;intMath;intEnglish;printf("您想以何種方式進(jìn)行查找:n");printf("1;姓名n");printf(&quo

28、t;2:學(xué)號(hào)n");printf("3:性別n");printf("4:語(yǔ)文成績(jī)n");printf("5:數(shù)學(xué)成績(jī)n");printf("6:英語(yǔ)成績(jī)n");printf("0:返回二級(jí)菜單n");seanf("%d",&n);switch(n)case1:printf("請(qǐng)輸入姓名:");/按姓名查找scanf("%s",name);p=head;while(strcmp(name,p->name)!=0&a

29、mp;&p->next!=NULL)p=p->next;if(strcmp(name,p->name)=0)printf("%s%d%s%d%d%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);elseprintf("查無(wú)此人!n");break;case2:printf("請(qǐng)輸入學(xué)號(hào):");/按學(xué)號(hào)查找scanf("%d",&num);p=head;while(num!=p-&g

30、t;num&&p->next!=NULL)p=p->next;if(num=p->num)printf("%s%d%s%d%d%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);elseprintf("查無(wú)此人!n");break;case3:printf("請(qǐng)輸入性別:");找scanf("%s",sex);p=head;while(p!=NULL)if(strcmp(sex,p-

31、>sex)=0)/按性別查printf("%s%d%s%d%d%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);p=p->next;break;case4:printf("請(qǐng)輸入語(yǔ)文成績(jī):");/績(jī)查找scanf("%d",&Chinese);p=head;while(p!=NULL)if(Chinese=p->Chinese)printf("%s%d%s%d%d%dn",p->na

32、me,p->num,p->sex,p->Chinese,p->Math,p->English);p=p->next;break;case5:printf("請(qǐng)輸入高等數(shù)學(xué)成績(jī):");/學(xué)成績(jī)查找scanf("%d",&Math);p=head;while(p!=NULL)if(Math=p->Math)printf("%s%d%s%d%d%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->English)

33、;p=p->next;按語(yǔ)文成按高等數(shù)break;case6:printf("請(qǐng)輸入英語(yǔ)成績(jī):");/按英語(yǔ)成績(jī)查找scanf("%d",&English);p=head;while(p!=NULL)if(English=p->English)printf("%s%d%s%d%d%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);p=p->next;break;default:printf("指令錯(cuò)誤

34、返回二級(jí)菜單!n");Menu_2();break;/*-*/structstudent*Modify(structstudent*head)intn;structstudent*p;charname24;intnum;printf("您想以何種方式進(jìn)行修改:n");printf("1;姓名n");printf("2:學(xué)號(hào)n");printf("0:返回二級(jí)菜單n");scanf("%d",&n);switch(n)case1:按姓名查找后printf("請(qǐng)輸入姓名:

35、");/修改信息seanf("%s",name);p=head;while(strcmp(name,p->name)!=0&&p->next!=NULL)p=p->next;if(strcmp(name,p->name)=0)scanf("%s%d%s%d%d%d",p->name,&p->num,p->sex,&p->Chinese,&p->Math,&p->English);printf("修改后:n");prin

36、tf("%s%d%s%d%d%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);elseprintf("查無(wú)此人!n");break;case2:printf("請(qǐng)輸入學(xué)號(hào):");/按學(xué)號(hào)查找后修改信息scanf("%d",&num);p=head;while(num!=p->num&&p->next!=NULL)p=p->next;if(num=p->num)scan

37、f("%s%d%s%d%d%d",p->name,&p->num,p->sex,&p->Chinese,&p->Math,&p->English);printf("修改后:n");printf("%s%d%s%d%d%dn",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);elseprintf("查無(wú)此人!n");break;default:printf(

38、"指令錯(cuò)誤,返回二級(jí)菜單!n");Menu_2();break;returnhead;structstudent*Add(structstudent*head)/增加學(xué)生信息structstudent*p,*q;/為增加的學(xué)生分配內(nèi)存structstudent*add=(structstudent*)malloc(sizeof(structstudent);scanf("%s%d%s%d%d%d",add->name,&add->num,add->sex,&add->Chinese,&add->Mat

39、h,&add->English);q=head;if(head=NULL)head=add;/add->next=NULL;elsewhile(add->num>q->num)&&(q->next!=NULL)占八、p=q;q=q->next;if(add->num<=q->num)if(head=q)head=add;elsep->next=add;/add->next=q;elseq->next=add;/add->next=NULL;空表插入/指向下個(gè)節(jié)/插到首節(jié)點(diǎn)插到中間節(jié)點(diǎn)插到尾節(jié)點(diǎn)returnhead;刪除學(xué)生信structstudent*Delete(structs

溫馨提示

  • 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)論