版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 一、需求分析:本程序設(shè)計的名稱是學(xué)生成績信息記錄簿的設(shè)計,設(shè)計內(nèi)容是設(shè)計一個學(xué)生成績記錄簿系統(tǒng),該系統(tǒng)要求對學(xué)生成績信息進(jìn)行管理和維護(hù)。任務(wù)和要求:編制一個C語言成績記錄簿,每個學(xué)生信息包括:學(xué)號、姓名、C語言成績。具體功能:(1)創(chuàng)建信息鏈表并以磁盤文件保存;(2)讀取磁盤文件并顯示輸出所有學(xué)生的成績;(3)按學(xué)號或姓名查詢成績;(4)添加成績記錄;(5)修改指定姓名或?qū)W號的學(xué)生的成績并可存盤;(6)顯示輸出60
2、分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息(可選項(xiàng))。此編程用于對學(xué)生的餓C語言成績進(jìn)行管理。</p><p><b> 二、算法設(shè)計:</b></p><p><b> 流程圖:</b></p><p><b> 、</b></p><p> 重要
3、的數(shù)據(jù)結(jié)構(gòu):(1)有主菜單menu();的編寫,用printf();將相應(yīng)的選項(xiàng)輸出在屏幕上,便于操作者進(jìn)行選擇,menu();中包括學(xué)生成績信息記錄簿設(shè)計,主菜單,1、輸入所有學(xué)生的學(xué)號、姓名、C語言分?jǐn)?shù)2、顯示所有學(xué)生的信息3、按學(xué)號或姓名查詢成績4、添加成績記錄5、修改指定姓名或?qū)W號的學(xué)生的成績并可存盤6、輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息7、結(jié)束;(2)子函數(shù):主要有creat();input(
4、);search()</p><p> Insert();modi()以及sort();(3)主函數(shù):main();主要使用了switch()語句。</p><p> 主要算法思想:運(yùn)行程序后,會顯示主菜單,根據(jù)主菜單中的提示選擇相應(yīng)的數(shù)字鍵,會實(shí)現(xiàn)相應(yīng)的功能。主要使用了界面的制作、使用了相應(yīng)的子函數(shù),同時使用了動態(tài)鏈表的創(chuàng)建、文件的讀寫等。本程序主要有三大設(shè)計模塊,第一模塊是主菜單m
5、enu();的編寫,其作用是便于操作者進(jìn)行相應(yīng)問題的選擇,具有提示信息的作用。第二模塊是相應(yīng)子函數(shù)的編寫,第一個子函數(shù)creat();主要思想是運(yùn)用了鏈表的動態(tài)創(chuàng)建,使用了malloc函數(shù),將每位學(xué)生的信息動態(tài)傳遞下去,并使用了文件的讀取操作,使用了文件中w+的打開模式,讀取磁盤文件并顯示所有學(xué)生的信息。主要作用是在顯示屏及磁盤文件stut.txt中顯示每個學(xué)生的信息。</p><p> 第二個子函數(shù)input
6、();主要使用了文件中r+的打開模式,打開已有文件stut.txt,并在顯示屏中顯示所有學(xué)生的信息</p><p> 第三個子函數(shù)search();主要實(shí)現(xiàn)了當(dāng)輸入一個學(xué)生的姓名或?qū)W號時,顯示屏中會顯示該學(xué)生的所有信息,該子函數(shù)實(shí)現(xiàn)了子函數(shù)的調(diào)用,即子函數(shù)調(diào)用子函數(shù),調(diào)用了name();和num();兩個子函數(shù),當(dāng)輸入學(xué)生的姓名或?qū)W號與文件中的name或num相等時,即strcmp(xs.name,name)=
7、=0或xs.num==num時輸出該生的所有信息包括學(xué)號、姓名以及C語言的成績。</p><p> 第四個子函數(shù)insert();即插入一個學(xué)生的信息并可以讀取到磁盤文件中,主要運(yùn)用了結(jié)構(gòu)體數(shù)組及文件的讀取操作。</p><p> 第五個子函數(shù)modi();實(shí)現(xiàn)修改指定姓名或?qū)W號的學(xué)生的成績并可存盤,該子函數(shù)主要使用了結(jié)構(gòu)體數(shù)組及文件的打開操作,打開已有文件找到要修改的學(xué)生的成績并修改
8、該生的成績,修改后進(jìn)行存盤操作。</p><p> 第六個子函數(shù)sort();主要是篩選顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息,將篩選后的結(jié)果顯示在屏幕上,在該子函數(shù)中主要使用了動態(tài)鏈表、結(jié)構(gòu)體數(shù)組即文件的打開操作;利用鏈表使學(xué)生的信息動態(tài)傳遞下去,使用結(jié)構(gòu)體數(shù)組將各個分?jǐn)?shù)段的學(xué)生的信息存儲下來,利用文件的r+打開模式將文件打開并通過篩選,輸出各個分?jǐn)?shù)段的學(xué)生。最后一個模塊即主
9、函數(shù)main();主要使用了switch語句對各個子函數(shù)進(jìn)行操作選擇,主要實(shí)現(xiàn)了與主菜單的對應(yīng),選擇case中相應(yīng)的數(shù)字鍵,會運(yùn)行相應(yīng)的子函數(shù)并實(shí)現(xiàn)主菜單中相應(yīng)的要求。</p><p> 3、實(shí)現(xiàn)注釋:該設(shè)計的主要任務(wù)是編制一個C語言成績記錄簿,每個學(xué)生信息包括:學(xué)號、姓名、C語言成績。具體要求:(1)創(chuàng)建信息鏈表并以磁盤文件保存;(2)讀取磁盤文件并顯示輸出所有學(xué)生的成績;(3)按學(xué)號或姓名查詢成績;(4)添
10、加成績記錄;(5)修改指定姓名或?qū)W號的學(xué)生的成績并可存盤;(6)顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息。本程序主要運(yùn)用了六個子函數(shù)來實(shí)現(xiàn)相應(yīng)的要求;對于第一個要求:創(chuàng)建信息鏈表并以磁盤文件保存,實(shí)現(xiàn)程度為:當(dāng)根據(jù)提示顯示數(shù)字鍵1時,會提示你輸入學(xué)生數(shù),輸入學(xué)生數(shù)后,按下Enter鍵,會提示操作者輸入學(xué)生的學(xué)號、姓名以及C語言的成績。同時在會形成一個stut.txt文件夾,文件中中即磁盤文件中讀入了所有學(xué)
11、生的學(xué)號、姓名及C語言的成績;第二個讀取磁盤文件并顯示輸出所有學(xué)生的成績,實(shí)現(xiàn)程度為:當(dāng)執(zhí)行了第一步操作后,再執(zhí)行第二部就會將磁盤文件中的內(nèi)容再次顯示在顯示屏上;第三個按學(xué)號或姓名查詢成績,實(shí)現(xiàn)程度為:當(dāng)選擇數(shù)字鍵3時,會出現(xiàn)一個提示,提示你選擇姓名還是學(xué)號查找,選擇后,會在顯示屏上出現(xiàn)該生的信息;第四個添加成績記錄;實(shí)現(xiàn)程度為:當(dāng)</p><p> 4、算法設(shè)計中的一些新的想法:該算法的應(yīng)用是對學(xué)生C語言成績
12、進(jìn)行管理和維護(hù),是一個C語言程序記錄本,算法中不足之處有不能使用二級菜單,插入學(xué)生的學(xué)號或姓名時沒能按成績進(jìn)行排序一下,還可以對學(xué)生的成績進(jìn)行排序一下。</p><p><b> 三、用戶手冊</b></p><p> 課程設(shè)計的使用說明:輸入數(shù)據(jù)時,要根據(jù)顯示屏上的格式要求,使得整個界面變得好看些,還有根據(jù)提示選擇相應(yīng)的數(shù)字鍵,輸入完畢后按Enter鍵會執(zhí)行下一
13、步操作,操作者可根據(jù)提示進(jìn)行操作,整個操作簡單易行。有些操作是要有上一步的操作基礎(chǔ)才能進(jìn)行,例如必須有學(xué)生記錄才能查找,所以操作者在操作時要認(rèn)清每個數(shù)字鍵相應(yīng)子函數(shù)的功能。</p><p><b> 四、調(diào)試及測試</b></p><p> 調(diào)試過程中主要遇到了主菜單制作的界面掌握不好,頭文件的少寫或多寫,鏈表的動態(tài)創(chuàng)建掌握不熟及子函數(shù)中少寫參數(shù)、文件的讀寫具體流
14、程掌握模糊、子函數(shù)和主函數(shù)不能很好的相應(yīng)結(jié)合、類型的定義出錯或少定義、指針用法不熟、前后子函數(shù)不能很好的相互利用等;解決方法:查閱參考文獻(xiàn)、詢問同學(xué),讓同學(xué)幫忙改一下自己改不出來的錯誤、及詢問老師;測試數(shù)據(jù)集:</p><p><b> 現(xiàn)在的界面:</b></p><p> 本課程的設(shè)計經(jīng)驗(yàn)和體會:經(jīng)驗(yàn):學(xué)習(xí)不僅僅只學(xué)好學(xué)校發(fā)的教材書,還有好多教材書上沒有的知識
15、也需要掌握,C語言是一門很大的課程,有許多知識點(diǎn)需要掌握,在學(xué)習(xí)中不懂的去讀書管借書,在設(shè)計中不會的函數(shù)或知識可以查閱參考書或詢問老師,課程設(shè)計的大程序需要有一個很清晰的思路并對各個知識點(diǎn)掌握很熟悉,能夠?qū)⒏鱾€知識點(diǎn)有效地連接在一起,并能很好的運(yùn)用在實(shí)際中。體會:我覺得C語言學(xué)的不扎實(shí),各個知識點(diǎn)的漏洞太多,會寫一些小程序并可以運(yùn)行但是遇到大一點(diǎn)的程序,就不能將各個知識點(diǎn)很好的加以利用就需要有扎實(shí)的C語言基礎(chǔ),用到的知識很全面,在這次C
16、語言課程設(shè)計中我學(xué)到了自己的C語言學(xué)的不是很全面,各個知識點(diǎn)的不能很好的連接在一起,需要進(jìn)一步加強(qiáng)。</p><p> 五、小結(jié):在本次課程設(shè)計中,我的設(shè)計題目是學(xué)生成績信息記錄簿的設(shè)計。任務(wù)和要求為:編制一個C語言成績記錄簿,每個學(xué)生信息包括:學(xué)號、姓名、C語言成績。具體功能:(1)創(chuàng)建信息鏈表并以磁盤文件保存;(2)讀取磁盤文件并顯示輸出所有學(xué)生的成績;(3)按學(xué)號或姓名查詢成績;(4)添加成績記錄;(5)
17、修改指定姓名或?qū)W號的學(xué)生的成績并可存盤;(6)顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息(可選項(xiàng))。此編程用于對學(xué)生的餓C語言成績進(jìn)行管理。收獲:在設(shè)計過程中,我學(xué)會了菜單的制作、鏈表的創(chuàng)建、鏈表的插入、查找、文件的讀寫及子函數(shù)的正確運(yùn)用等等并可以很好的將這些知識點(diǎn)連接在了一起,并發(fā)現(xiàn)了自己C語言學(xué)習(xí)的不足:掌握的知識點(diǎn)漏洞太多,許多函數(shù)不能正確的運(yùn)用,看的書太少僅限于書本上的知識和老師發(fā)的講義,不能很好的
18、將各個知識點(diǎn)連接在一起。本次課程設(shè)計,使得自己第一次將理論很好的聯(lián)系實(shí)際,寫的程序能運(yùn)用到實(shí)際中,而且我學(xué)會了將參考書上的知識很好的運(yùn)用在自己的系統(tǒng)中,不會的知識點(diǎn)也可以向老師或同學(xué)進(jìn)行詢問。在調(diào)試過程中,可以進(jìn)行一個子函數(shù)一個子函數(shù)的調(diào)試,并改錯。在設(shè)計過程中,往</p><p><b> 六、參考文獻(xiàn):</b></p><p> [1] 黃明等編著《C語言課程
19、設(shè)計》北京:電子工業(yè)出版社</p><p> [2] 郭翠英編著《C語言課程設(shè)計案例精編》北京:中國水利水電出版社</p><p> [3] 寧正元《數(shù)據(jù)結(jié)構(gòu)(c語言)》 南京:東南大學(xué)出版社。2000年6月第1版</p><p> [4] 嚴(yán)蔚敏等 《數(shù)據(jù)結(jié)構(gòu)(c語言版)》 北京:清華大學(xué)出版社,1997年4月第1版</p><p>
20、 [5] 譚浩強(qiáng)編著《C程序設(shè)計題解與上機(jī)指導(dǎo)(第3版) 》北京:清華大學(xué)出版社</p><p> [6] 譚浩強(qiáng)編著《C程序設(shè)計(第3版) 》北京:清華大學(xué)出版社</p><p><b> 附錄:</b></p><p> 源程序清單:#include<stdio.h></p><p> #inc
21、lude<stdlib.h></p><p> #include<malloc.h></p><p> #include<string.h></p><p> #define N 100</p><p> typedef struct student</p><p><
22、b> {</b></p><p><b> long num;</b></p><p> char name[4];</p><p> float score;</p><p> struct student *next;</p><p><b> }stu
23、;</b></p><p><b> FILE *fp;</b></p><p> void menu()//在這里進(jìn)行主菜單的調(diào)用</p><p><b> {</b></p><p> printf("\n");</p><p>
24、 printf("\n\t\t\t*******************************\n");</p><p> printf("\n\t\t\t* 學(xué)生成績信息記錄簿設(shè)計 *\n");</p><p> printf("\n\t\t\t*******************************\n\n&quo
25、t;);</p><p> printf("\t\t\t-----------主菜單------------\n\n");</p><p> printf("\t\t1、\t輸入所有學(xué)生的學(xué)號、姓名、C語言分?jǐn)?shù)\n\n");</p><p> printf("\t\t2、\t顯示所有學(xué)生的信息\n\n"
26、;);</p><p> printf("\t\t3、\t按學(xué)號或姓名查詢成績\n\n");</p><p> printf("\t\t4、\t 添加成績記錄\n\n");</p><p> printf("\t\t5、\t修改指定姓名或?qū)W號的學(xué)生的成績并可存盤\n\n");</p>&
27、lt;p> printf("\t\t6、\t輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息\n\n");</p><p> printf("\t\t7、\t==================結(jié)束===================");</p><p><b> }</b></p>
28、;<p> struct student *creat()//創(chuàng)建學(xué)生信息鏈表,將學(xué)生信息動態(tài)傳遞下去</p><p><b> {</b></p><p> struct student *head,*p,*q;</p><p> int i=0,n;</p><p> printf("
29、;\n-----請輸入學(xué)生數(shù):");</p><p> scanf("%d",&n);</p><p> printf("\n\t\t\t 學(xué)生的信息如下:\n");</p><p> printf("\n\t\t\t學(xué)號======姓名=======分?jǐn)?shù)\n");</
30、p><p><b> do </b></p><p><b> {</b></p><p> p=(struct student *)malloc(sizeof(struct student));//申請內(nèi)存</p><p> printf("\t\t\t");</p&
31、gt;<p> scanf("%ld%s%f",&p->num,&p->name,&p->score);//鏈表的傳遞</p><p><b> i++;</b></p><p><b> if(i==1)</b></p><p><b
32、> head=p;</b></p><p><b> else</b></p><p> q->next=p;</p><p><b> q=p;</b></p><p><b> }</b></p><p> wh
33、ile(i<n);</p><p> q->next=NULL;</p><p> return head;</p><p><b> }</b></p><p> void print(struct student *head)//在這里使用文件中的w+打開模式將學(xué)生信息讀入磁盤文件</p&g
34、t;<p><b> {</b></p><p> struct student *p=head;</p><p> fp=fopen("stut.txt","w");</p><p> while(p!=NULL)</p><p><b> {&
35、lt;/b></p><p> fprintf(fp,"%d %s %f\n",p->num,p->name,p->score);</p><p> p=p->next;</p><p><b> }</b></p><p> fclose(fp);//關(guān)閉文件&
36、lt;/p><p><b> }</b></p><p> void input()//具體功能是將文件中的內(nèi)容讀取到顯示屏上,主要使用了文件中的r+打開模式</p><p><b> {</b></p><p><b> FILE *fp;</b></p>
37、<p><b> stu *p;</b></p><p> if((fp=fopen("stut.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("File open error!\n")
38、;</p><p><b> exit(0);</b></p><p><b> }</b></p><p> p=(stu *)malloc(sizeof(stu));</p><p> while((fscanf(fp,"%ld%s%f",&p->num
39、,&p->name,&p->score))!=EOF)</p><p> printf(" %ld %s %f\n",p->num,p->name,p->score);</p><p> fclose(fp);</p><p><b> }</b></p>
40、;<p> //查找,實(shí)現(xiàn)了按學(xué)號或姓名查找,里面采用了子函數(shù)調(diào)用子函數(shù)的方法實(shí)現(xiàn)了該功能</p><p> void name()</p><p><b> {</b></p><p> FILE *fp=NULL;</p><p> stu *xs=NULL,*temp=NULL,*pr=NU
41、LL;</p><p> char name[10];</p><p> int flag=1;</p><p> printf("\n輸入要查學(xué)生的姓名: ");</p><p> scanf("%s",name);</p><p> if((fp=fopen(&qu
42、ot;stut.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("can't open file!\n");</p><p><b> exit(0);</b></p><p>
43、<b> }</b></p><p><b> temp=xs;</b></p><p><b> do </b></p><p><b> {</b></p><p> pr=(stu *)malloc(sizeof(stu));
44、 </p><p> if(pr==NULL)</p><p> printf("申請內(nèi)存失??!"),exit(0);</p><p> if(xs==NULL)</p><p><b> xs=pr;</b></p><p><b> else</b
45、></p><p><b> {</b></p><p><b> temp=xs;</b></p><p> while(temp->next!=NULL)</p><p> temp=temp->next;</p><p> temp->
46、next=pr;</p><p><b> }</b></p><p><b> temp=pr;</b></p><p> temp->num=0;</p><p> fscanf(fp,"%d%s%f",&temp->num,temp->na
47、me,&temp->score);</p><p> temp->next=NULL;</p><p> }while(pr->num!=0);</p><p><b> pr=xs; </b></p><p> while(pr!=NULL) </p><p&g
48、t;<b> {</b></p><p> if(strcmp(xs->name,name)==0)//當(dāng)找到該生時輸出該生的信息</p><p><b> {</b></p><p> printf("\n\t\t該學(xué)生的信息如下:\n"); </p><p>
49、 printf("\t");</p><p> printf("%10s %6d %6.2f\n",xs->name,xs->num,xs->score);</p><p><b> flag=0;</b></p><p><b> break;</b>&l
50、t;/p><p><b> }</b></p><p> pr=pr->next;</p><p><b> }</b></p><p><b> if(flag)</b></p><p> printf("沒有找到該生的信息!&q
51、uot;);</p><p> fclose(fp);</p><p><b> }</b></p><p> void num()//按學(xué)號查找</p><p><b> {</b></p><p> FILE *fp=NULL;</p><p
52、> stu *xs=NULL,*temp=NULL,*pr=NULL; </p><p><b> long num;</b></p><p> int flag=1;</p><p> printf("\n輸入要查學(xué)生的學(xué)號: ");</p><p> scanf("%
53、ld",&num); </p><p> if((fp=fopen("stut.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("can't open file!\n");</p>
54、<p><b> exit(0);</b></p><p><b> }</b></p><p><b> temp=xs;</b></p><p><b> do </b></p><p><b> {</
55、b></p><p> pr=(stu *)malloc(sizeof(stu)); </p><p> if(pr==NULL)</p><p> printf("申請內(nèi)存失?。?quot;),exit(0);</p><p> if(xs==NULL)</p><p><b>
56、; xs=pr;</b></p><p><b> else</b></p><p><b> {</b></p><p><b> temp=xs;</b></p><p> while(temp->next!=NULL)</p>&
57、lt;p> temp=temp->next;</p><p> temp->next=pr;</p><p><b> }</b></p><p><b> temp=pr;</b></p><p> temp->num=0;</p><p>
58、; fscanf(fp,"%d%s%f",&temp->num,temp->name,&temp->score);</p><p> temp->next=NULL;</p><p> }while(pr->num!=0);</p><p><b> pr=xs;</b>
59、</p><p> while(pr!=NULL)</p><p><b> {</b></p><p> if(pr->num==num)</p><p><b> {</b></p><p> printf("\n\n====學(xué)生的信息如下:\n
60、"); </p><p> printf("-----");</p><p> printf("%10s %6d %6.2f\n",pr->name,pr->num,pr->score);</p><p> flag=0; </p><p><b>
61、 }</b></p><p> pr=pr->next;</p><p><b> }</b></p><p><b> if(flag)</b></p><p> printf("沒有找到該生的信息!"); </p><p>
62、 fclose(fp);</p><p><b> }</b></p><p> void search()//主函數(shù)中的子函數(shù)調(diào)用了兩個子函數(shù),使用switch語句實(shí)現(xiàn)</p><p><b> {</b></p><p> int chioce;</p><p>
63、 system("cls");</p><p> printf("\t\t1-----姓名查詢信息-----\n");</p><p> printf("\n\t\t2-----學(xué)號查詢信息-----\n");</p><p> printf("\n請選擇以何種方式進(jìn)行查詢:")
64、;</p><p> scanf("%d",&chioce);</p><p> switch(chioce) </p><p><b> {</b></p><p> case 1:name(); </p><p><b> break;
65、</b></p><p> case 2:num(); </p><p><b> break;</b></p><p><b> default:</b></p><p> printf("選擇錯誤!\n");</p><p>&
66、lt;b> }</b></p><p><b> }</b></p><p><b> //插入學(xué)生的信息</b></p><p> void insert()</p><p><b> { </b></p><p><
67、;b> int n=0;</b></p><p><b> int i,j;</b></p><p> struct student s,sx[N];</p><p> printf("\n請輸入插入的學(xué)生的姓名:"); </p><p> scanf("
68、%s",s.name);</p><p> printf("\n學(xué)生的學(xué)號:"); </p><p> scanf("%ld",&s.num);</p><p> printf("\n學(xué)生的成績:"); </p&g
69、t;<p> scanf("%f",&s.score);</p><p> if((fp=fopen("stut.txt","r+"))==NULL) </p><p><b> {</b></p><p> printf("can't
70、open file!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> while((fscanf(fp,"%ld%s%f",&sx[n].num,sx[n].name,&sx[n].score))!=E
71、OF)</p><p><b> {</b></p><p><b> n++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p> for(i=0;i<n;i++)</p>
72、;<p><b> {</b></p><p> if(s.score<sx[i].score)</p><p><b> break; </b></p><p><b> }</b></p><p> for(j=n;j>=i;j--)&l
73、t;/p><p> {sx[j+1]=sx[j];}</p><p><b> sx[i]=s;</b></p><p> if((fp=fopen("stut.txt","w"))==NULL) </p><p> {printf("不能建立文件!\n")
74、;exit(0);}</p><p><b> else</b></p><p> {for(i=0;i<=n;i++)</p><p> {fprintf(fp,"%d %s %f\n",sx[i].num,sx[i].name,sx[i].score);} </p><p> fcl
75、ose(fp);}</p><p><b> }</b></p><p> void modi(stu *head)</p><p><b> {</b></p><p> stu *xs=head;</p><p> char name[10];</p>
76、;<p> int flag=1;</p><p> system("cls");</p><p> printf("\n輸入要修改學(xué)生的姓名: ");</p><p> scanf("%s",name);</p><p> fp=fopen("st
77、ut.txt","a+");</p><p> while(xs!=NULL)</p><p> {if(strcmp(xs->name,name)==0)/*判斷輸入要修改的姓名是否存在*/</p><p><b> { </b></p><p> fprintf(fp,&
78、quot;\n====修改前學(xué)生的信息如下:\n");</p><p> fprintf(fp,"\n%10s %6s %6s\n","姓名","學(xué)號","C語言的成績");</p><p> fprintf(fp,"\n%10s %6d %6.2f \n",xs->na
79、me,xs->num,xs->score);</p><p> printf("\n請輸入該生的C語言成績:");</p><p> scanf("%f",&xs->score);</p><p><b> flag=0;</b></p><p>&
80、lt;b> break;</b></p><p> }xs=xs->next;</p><p><b> }</b></p><p> fprintf(fp,"\n====修改后的學(xué)生的信息如下:\n");</p><p> fprintf(fp,"\n%1
81、0s %6s %6s\n","姓名","學(xué)號","C語言的成績");</p><p> fprintf(fp,"\n%10s %6d %6.2f\n",xs->name,xs->num,xs->score);</p><p><b> if(flag)</b>
82、;</p><p> printf("\n學(xué)生不存在,修改失敗!!"); </p><p> fclose(fp);</p><p> getchar();</p><p><b> }</b></p><p> void sort(stu *head)</p&
83、gt;<p><b> {</b></p><p> stu *p=head;</p><p> printf("60分以下:\n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p
84、> if(p->score<60)</p><p> printf("%d\t%s\t%f\n",p->num,p->name,p->score);</p><p> p=p->next;</p><p><b> }</b></p><p>&l
85、t;b> p=head;</b></p><p> printf("60~79分:\n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->score>60 && p->
86、score<79)</p><p> printf("%d\t%s\t%f\n",p->num,p->name,p->score);</p><p> p=p->next;</p><p><b> }</b></p><p><b> p=head;
87、</b></p><p> printf("80~89:\n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->score>80 && p->score<89)</
88、p><p> printf("%d\t%s\t%f\n",p->num,p->name,p->score);</p><p> p=p->next;</p><p><b> }</b></p><p><b> p=head;</b></p&
89、gt;<p> printf("90分以上:\n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->score>90)</p><p> printf("%d\t%s\t%f\n&qu
90、ot;,p->num,p->name,p->score);</p><p> p=p->next;</p><p><b> }</b></p><p> fclose(fp);</p><p> getchar();</p><p><b> }&l
91、t;/b></p><p> void main()</p><p><b> {</b></p><p> int chioce;</p><p> stu *head;</p><p><b> menu();</b></p><p&
92、gt; printf("\n\n-----請選擇序號:");</p><p> scanf("%d",&chioce);</p><p> while(chioce!=0)</p><p><b> {</b></p><p> switch(chioce)&l
93、t;/p><p><b> {</b></p><p><b> case 1: </b></p><p> head=creat();</p><p> print(head);</p><p><b> break;</b></p>
94、<p> case 2:input();</p><p><b> break;</b></p><p> case 3:search();</p><p><b> menu();</b></p><p><b> break;</b></p&
95、gt;<p> case 4:insert();</p><p><b> break;</b></p><p> case 5:modi(head);</p><p><b> menu();</b></p><p><b> break;</b>&
96、lt;/p><p> case 6:sort(head);</p><p><b> break;</b></p><p> case 7:exit(0);</p><p><b> }</b></p><p> printf("\n請繼續(xù)輸入你想選擇的:&q
97、uot;);</p><p> scanf("%d",&chioce);</p><p><b> }</b></p><p><b> }</b></p><p> 測試數(shù)據(jù)集:選擇序號1、請輸入學(xué)生數(shù)2學(xué)生的信息:1001 張銳 78 1002
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--學(xué)生成績記錄簿
- c學(xué)生成績記錄簿課程設(shè)計
- c語言課程設(shè)計成績記錄簿
- c語言課程設(shè)計成績記錄簿
- 課程設(shè)計---學(xué)生成績記錄簿設(shè)計
- 學(xué)生籍貫信息記錄簿(c語言課程設(shè)計報告)
- c語言課程設(shè)計--學(xué)生籍貫信息記錄簿設(shè)計
- c語言課程設(shè)計報告---學(xué)生籍貫信息記錄簿系統(tǒng)
- 成績記錄簿課程設(shè)計報告
- c語言課程設(shè)計實(shí)驗(yàn)報告成績記錄簿
- c語言課程設(shè)計實(shí)驗(yàn)報告成績記錄簿
- 課程設(shè)計報告-成績記錄簿
- 成績記錄簿課程設(shè)計
- 課程設(shè)計--- 成績記錄簿
- 學(xué)生籍貫信息記錄簿課程設(shè)計報告
- 課程設(shè)計報告---學(xué)生籍貫信息記錄簿
- c語言課程設(shè)計學(xué)生成績統(tǒng)計設(shè)計報告
- 基于c++的學(xué)生籍貫信息記錄簿設(shè)計
- c語言課程設(shè)計報告-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計報告學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論