版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C語言課程設(shè)計(jì)報(bào)告</b></p><p> 題 目: 學(xué)生成績(jī)管理系統(tǒng)</p><p> 院系名稱: 計(jì)算機(jī)學(xué)院</p><p> 專業(yè)名稱: 計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 班 級(jí): </p><
2、;p> 學(xué)生姓名: </p><p> 學(xué)號(hào)(8位): </p><p> 指導(dǎo)教師: </p><p> 設(shè)計(jì)起止時(shí)間:2012年6月6日~2012年6月15日</p><p><b> 一. 設(shè)計(jì)目的</b></p><
3、p> 強(qiáng)化上機(jī)動(dòng)手能力,在理論和實(shí)踐的基礎(chǔ)上進(jìn)一步鞏固《C語言程序設(shè)計(jì)》課程學(xué)習(xí)的內(nèi)容,掌握工程化軟件設(shè)計(jì)的基本方法</p><p> 學(xué)會(huì)將知識(shí)應(yīng)用于實(shí)際的方法,提高分析和解決問題的能力,增加綜合能力</p><p> 為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ)</p><p><b> 二. 設(shè)計(jì)內(nèi)容</b></p>
4、<p><b> 1、密碼登錄;</b></p><p> 2、通過鍵盤輸入學(xué)生信息,包括學(xué)生學(xué)號(hào)、姓名、成績(jī);</p><p> 3、將輸入的信息保存到指定文件中;</p><p> 4、從文件中讀取學(xué)生信息;</p><p> 5、顯示全部學(xué)生信息;</p><p>
5、6、按學(xué)生總分進(jìn)行降序排序;</p><p><b> 7、刪除學(xué)生信息;</b></p><p> 8、查找學(xué)生信息,可以通過學(xué)號(hào)查找,也可以通過姓名查找;</p><p> 9、統(tǒng)計(jì)學(xué)生信息,統(tǒng)計(jì)出最高分和學(xué)生人數(shù);</p><p><b> 10、退出系統(tǒng);</b></p>
6、<p><b> 三.概要設(shè)計(jì)</b></p><p><b> 1.功能模塊圖;</b></p><p> 2.各個(gè)模塊詳細(xì)的功能描述。</p><p> 1、密碼登錄:進(jìn)入系統(tǒng)前需輸入密碼口令,此處的密碼分為管理員登錄密碼“abcde”,學(xué)生登錄密碼“12345”;</p><
7、p> 2、輸入信息:輸入學(xué)生信息,包括:學(xué)號(hào)、姓名、成績(jī);</p><p> 3、顯示信息:顯示輸入的信息或者經(jīng)過處理后的信息</p><p> 4、查找信息:查找學(xué)生信息,可以按學(xué)號(hào)查找,也可以按姓名查找;</p><p> 5、修改信息:修改學(xué)生的任何信息;</p><p> 6、刪除信息:通過查找學(xué)生姓名刪除該學(xué)生信息;
8、</p><p> 7、排序信息:將輸入的學(xué)生信息排序,按總分成績(jī)降序排列;</p><p> 8、統(tǒng)計(jì)信息:統(tǒng)計(jì)出所有信息中的最高分成績(jī)的學(xué)生的信息和學(xué)生人數(shù)。</p><p><b> 四.詳細(xì)設(shè)計(jì)</b></p><p> 1.功能函數(shù)的調(diào)用關(guān)系圖</p><p> 2.各功能函數(shù)
9、的數(shù)據(jù)流程圖</p><p><b> 1、主函數(shù)模塊</b></p><p><b> 2、輸入模塊</b></p><p><b> 2、輸出與排序模塊</b></p><p> 3、刪除與修改信息模塊</p><p><b>
10、4、統(tǒng)計(jì)信息模塊</b></p><p><b> 4、查找信息模塊</b></p><p><b> 3.重點(diǎn)設(shè)計(jì)及編碼</b></p><p> 此程序的重點(diǎn)是既能把學(xué)生信息保存到文件中,又能保存到磁盤中,方便實(shí)用與讀取,代碼如下:</p><p> struct stude
11、nt *creat(struct student *p)//創(chuàng)建鏈表</p><p><b> {</b></p><p> struct student *p1 = NULL;</p><p> p1 = (struct student*)malloc(sizeof (struct student));</p><p
12、> p -> next = p1;</p><p> p1 -> next = NULL;</p><p> printf("請(qǐng)輸入要添加的學(xué)生的信息\n");</p><p> printf("學(xué)號(hào):"); scanf("%s",p1 -> num);</p&
13、gt;<p> printf("姓名: "); scanf("%s",p1 -> name);</p><p> printf("數(shù)學(xué)成績(jī):"); scanf("%d",&p1 -> scorem);</p><p> printf("英語成績(jī):&quo
14、t;); scanf("%d",&p1 -> scoree);</p><p> printf("C成績(jī):"); scanf("%d",&p1 -> scorec);</p><p> p1 -> sum = 0;</p><p> p1 -> sum =
15、 p1 -> scorem + p1 -> scorec + p1 -> scoree; </p><p> printf("總分:%d",p1 -> sum);</p><p> return p1;</p><p><b> }</b></p><p> void
16、save1(struct student *p)//將鏈表從內(nèi)存保存到文件中</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","ab+")) ==
17、 NULL)</p><p> printf("創(chuàng)建失敗!\n");</p><p> while(p != NULL)</p><p><b> {</b></p><p> fwrite(p,sizeof(struct student),1,fp);</p><p>
18、; p = p -> next;</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("保存成功!\n");</p><p><b> }</b></p><p> void s
19、ave2(struct student *p)//將以變動(dòng)的鏈表信息存入到文件中</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","wb")) =
20、= NULL)</p><p> printf("創(chuàng)建失敗!\n");</p><p> while(p != NULL)</p><p><b> {</b></p><p> fwrite(p,sizeof(struct student),1,fp);</p><p&g
21、t; p = p -> next;</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> struct student *read()//把文件中的數(shù)據(jù)讀到鏈表中</p><p>
22、;<b> {</b></p><p><b> FILE *fp;</b></p><p> struct student *head=NULL,*p1=NULL,*p2=NULL;</p><p> if ((fp=fopen ("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","rb+&qu
23、ot;))==NULL)</p><p><b> {</b></p><p> printf ("讀取時(shí),文件打開失敗!\n");</p><p> return NULL;</p><p><b> }</b></p><p> head=p
24、1=(struct student *)malloc (sizeof (struct student ));</p><p> while (fp != NULL) </p><p><b> {</b></p><p> if (fread(p1,sizeof (struct student ),1,f
25、p) != 1)break;</p><p> p1 -> next = (struct student *)malloc (sizeof (struct student ));</p><p> p2= p1; </p><p> p1= p1 -> next;</p><
26、p><b> }</b></p><p> p2->next = NULL;</p><p> fclose (fp);</p><p> return head;</p><p><b> }</b></p><p> 五.測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果<
27、;/p><p> 正常測(cè)試數(shù)據(jù)和運(yùn)行結(jié)果</p><p><b> 1.按總分排序</b></p><p> 2.刪除某個(gè)學(xué)生信息</p><p><b> 查找學(xué)生信息</b></p><p><b> 異常測(cè)試數(shù)據(jù)及運(yùn)行</b></p&g
28、t;<p><b> 刪除信息出現(xiàn)異常</b></p><p> 2.修改學(xué)生信息出現(xiàn)異常</p><p> 六.調(diào)試情況,設(shè)計(jì)技巧及體會(huì)</p><p> 1、對(duì)自己設(shè)計(jì)進(jìn)行評(píng)價(jià) </p><p> 不夠細(xì)心,開始的時(shí)候出現(xiàn)很多錯(cuò)誤</p><p><b>
29、沒有寫登錄函數(shù)</b></p><p> 寫的過于簡(jiǎn)短,且大部分都是書上照抄的</p><p> 2 .調(diào)試上得到的體會(huì):在最后的調(diào)試過程中,發(fā)現(xiàn)有時(shí)候系統(tǒng)報(bào)錯(cuò),指出了錯(cuò)誤所在的具體位置,可是檢查的時(shí)候發(fā)現(xiàn)該位置并未出錯(cuò),這樣的錯(cuò)誤首先要查找前后幾行,如果還未檢查出錯(cuò)誤,那就很有可能在該函數(shù)的首部或是主函數(shù)的調(diào)用語句中出現(xiàn)錯(cuò)誤。發(fā)現(xiàn)該部分并未出現(xiàn)語法錯(cuò)誤,即編譯不報(bào)錯(cuò),程序
30、運(yùn)行后,有時(shí)候會(huì)出現(xiàn)意想不到的結(jié)果,會(huì)在想不到的地方跳出程序,甚至不知道程序的什么地方就跳出了,用在不同的地方加不必要的printf語句!以檢查是否運(yùn)行到printf語句。</p><p> 3.設(shè)計(jì)上得到的體會(huì):在初步設(shè)計(jì)時(shí)要明確要使用的數(shù)據(jù)結(jié)構(gòu)和類型,明確設(shè)計(jì)的基本思想,清楚所寫程序的邏輯結(jié)構(gòu)和執(zhí)行順序,在調(diào)試時(shí)才能在出現(xiàn)問題時(shí)及時(shí)的找到問題的所在.在完成了初步的設(shè)計(jì)并調(diào)試完成后,要進(jìn)一步優(yōu)化程序的結(jié)構(gòu),使
31、程序更簡(jiǎn)潔,執(zhí)行效率更高.</p><p> 總之,第一次完成比較正式的程序,在開始的時(shí)候遇到了不少問題,包括怎么排序,怎么添加,怎么查找,怎么刪除等一系列問題,但我并沒有慌張,而是由一個(gè)問題入手,最后將它們一一攻破,順利而又艱難的完成了這次任務(wù);通過這次實(shí)習(xí),我的編程能力得到了很大的提高,算法思路也比以前清晰多了,基本上掌握了C語言的課程內(nèi)容,雖然只有為期兩周的實(shí)習(xí),但是我的C語言還是得到了進(jìn)一步的提高。不過
32、要想使自己的水平提高,還有待練習(xí)。雖然實(shí)習(xí)結(jié)束了,但是以后在工作中可能會(huì)經(jīng)常使用,這次的實(shí)習(xí)的確是一個(gè)很好的鍛煉機(jī)會(huì),它一定會(huì)使我受益終身的!</p><p><b> 七.參考文獻(xiàn)</b></p><p> 《C語言程序設(shè)計(jì)》 (第二版),</p><p> 《數(shù)據(jù)結(jié)構(gòu)(C語言)》 清華大學(xué)出版社</p><p&
33、gt;<b> 八.附錄:</b></p><p><b> 源代碼(電子版)</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h>&
34、lt;/p><p> struct student</p><p><b> {</b></p><p> char num[9];</p><p> char name[9];</p><p> int scorem;</p><p> int scoree;&l
35、t;/p><p> int scorec;</p><p><b> int sum;</b></p><p> struct student *next;</p><p><b> };</b></p><p> struct student *creat(struc
36、t student *p)//創(chuàng)建鏈表</p><p><b> {</b></p><p> struct student *p1 = NULL;</p><p> p1 = (struct student*)malloc(sizeof (struct student));</p><p> p -> n
37、ext = p1;</p><p> p1 -> next = NULL;</p><p> printf("請(qǐng)輸入要添加的學(xué)生的信息\n");</p><p> printf("學(xué)號(hào):"); scanf("%s",p1 -> num);</p><p>
38、 printf("姓名: "); scanf("%s",p1 -> name);</p><p> printf("數(shù)學(xué)成績(jī):"); scanf("%d",&p1 -> scorem);</p><p> printf("英語成績(jī):"); scanf(&quo
39、t;%d",&p1 -> scoree);</p><p> printf("C成績(jī):"); scanf("%d",&p1 -> scorec);</p><p> p1 -> sum = 0;</p><p> p1 -> sum = p1 -> score
40、m + p1 -> scorec + p1 -> scoree; </p><p> printf("總分:%d",p1 -> sum);</p><p> return p1;</p><p><b> }</b></p><p> void save1(struct st
41、udent *p)//將鏈表從內(nèi)存保存到文件中</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","ab+")) == NULL)</p>
42、;<p> printf("創(chuàng)建失敗!\n");</p><p> while(p != NULL)</p><p><b> {</b></p><p> fwrite(p,sizeof(struct student),1,fp);</p><p> p = p ->
43、next;</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("保存成功!\n");</p><p><b> }</b></p><p> void save2(struct stu
44、dent *p)//將以變動(dòng)的鏈表信息存入到文件中</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","wb")) == NULL)</p&g
45、t;<p> printf("創(chuàng)建失敗!\n");</p><p> while(p != NULL)</p><p><b> {</b></p><p> fwrite(p,sizeof(struct student),1,fp);</p><p> p = p ->
46、 next;</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> struct student *read()//把文件中的數(shù)據(jù)讀到鏈表中</p><p><b> {&l
47、t;/b></p><p><b> FILE *fp;</b></p><p> struct student *head=NULL,*p1=NULL,*p2=NULL;</p><p> if ((fp=fopen ("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","rb+"))==NULL)<
48、;/p><p><b> {</b></p><p> printf ("讀取時(shí),文件打開失敗!\n");</p><p> return NULL;</p><p><b> }</b></p><p> head=p1=(struct stude
49、nt *)malloc (sizeof (struct student ));</p><p> while (fp != NULL) </p><p><b> {</b></p><p> if (fread(p1,sizeof (struct student ),1,fp) != 1)break;
50、</p><p> p1 -> next = (struct student *)malloc (sizeof (struct student ));</p><p> p2= p1; </p><p> p1= p1 -> next;</p><p><b>
51、 }</b></p><p> p2->next = NULL;</p><p> fclose (fp);</p><p> return head;</p><p><b> }</b></p><p> struct student *input()//添加函數(shù)
52、</p><p><b> {</b></p><p><b> char ch;</b></p><p> struct student *p = NULL,*head=NULL;</p><p> head=p = (struct student*)malloc(sizeof(struc
53、t student));</p><p> p-> next = NULL;</p><p> printf("請(qǐng)輸入要添加的學(xué)生的信息\n");</p><p> printf("學(xué)號(hào):"); scanf("%s",p -> num);</p><p>
54、 printf("姓名: "); scanf("%s",p -> name);</p><p> printf("數(shù)學(xué)成績(jī):"); scanf("%d",&p -> scorem);</p><p> printf("英語成績(jī):"); scanf(&
55、quot;%d",&p -> scoree);</p><p> printf("C成績(jī):"); scanf("%d",&p -> scorec);</p><p> p -> sum = 0;</p><p> p -> sum = p -> scorem
56、 + p -> scorec + p -> scoree; </p><p> printf("總分:%d",p -> sum);</p><p> for (;;) </p><p> {</p><p> printf ("\n是否繼續(xù)輸入學(xué)生信息?
57、( y / n ):\n");</p><p> getchar( );</p><p> ch = getchar ( );</p><p> if (ch == 'y'|| ch == 'Y')</p><p> p = creat(p);</p><p> e
58、lse if(ch=='n'|| ch=='N') </p><p><b> {</b></p><p> save1 (head);</p><p><b> break;</b></p><p><b> }</b></p&
59、gt;<p><b> else </b></p><p> printf ("您的輸入有誤,請(qǐng)重新輸入,");</p><p><b> }</b></p><p> return p->next;</p><p><b> }<
60、;/b></p><p> struct student *output()//輸出函數(shù),查看全部學(xué)生信息</p><p><b> {</b></p><p> struct student *p ;</p><p> p = read(); </p><p> if(read=
61、=NULL)</p><p><b> exit(1);</b></p><p> printf("\n *************************STUDENT***********************\n");</p><p> printf(" -------------------
62、------------------------------------\n");</p><p> printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p> printf(" -------------------------------------------
63、------------\n");</p><p> while (p != NULL)</p><p><b> {</b></p><p> p -> sum = 0;</p><p> p -> sum = p -> scorem + p -> scoree + p -&g
64、t; scorec;</p><p> printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",p->num,</p><p> p->name,p->scorem,p->scoree,p->scorec,p->sum);</p><p&
65、gt; printf(" -------------------------------------------------------\n");</p><p> p = p -> next;</p><p><b> }</b></p><p><b> return p;</b>
66、</p><p><b> }</b></p><p> struct student *search()//查找函數(shù)</p><p><b> {</b></p><p><b> int n;</b></p><p> char a[9],
67、b[9];</p><p> struct student *p = NULL,*head = NULL;</p><p> printf("請(qǐng)您選擇要查找的方式:1 按姓名 2 按學(xué)號(hào)\n");</p><p> scanf("%d",&n);</p><p><b> i
68、f(n==1)</b></p><p><b> {</b></p><p> printf("請(qǐng)輸入您要查找的學(xué)生的姓名:\n");</p><p> scanf("%s",a);</p><p> p=head=read();</p><
69、p> while(p!=NULL)</p><p><b> {</b></p><p> if(p==NULL)</p><p><b> {</b></p><p> printf("對(duì)不起,沒有您要找的人。\n");</p><p>
70、<b> }</b></p><p> if(strcmp(p -> name,a)==0)</p><p><b> {</b></p><p> printf("\n *************************STUDENT***********************\n"
71、;);</p><p> printf(" -------------------------------------------------------\n");</p><p> printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p>
72、 printf(" -------------------------------------------------------\n");</p><p> printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",p->num,</p><p> p->
73、name,p->scorem,p->scoree,p->scorec,p->sum);</p><p> printf(" -------------------------------------------------------\n");</p><p><b> break;</b></p>&
74、lt;p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> }</b></p><p><b> if(n==2)</b></p><p&
75、gt;<b> {</b></p><p> printf("請(qǐng)輸入您要查找的學(xué)生的學(xué)號(hào):\n");</p><p> scanf("%s",b);</p><p> p=head=read();</p><p> while(p!=NULL)</p>&l
76、t;p><b> {</b></p><p> if(p==NULL)</p><p><b> {</b></p><p> printf("對(duì)不起,沒有您要找的人。\n");</p><p><b> }</b></p>&
77、lt;p> if(strcmp(p -> num,b)==0)</p><p><b> {</b></p><p> printf("\n *************************STUDENT***********************\n");</p><p> printf(&qu
78、ot; -------------------------------------------------------\n");</p><p> printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p> printf(" ------------------
79、-------------------------------------\n");</p><p> printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",p->num,</p><p> p->name,p->scorem,p->scoree,p->
80、;scorec,p->sum);</p><p> printf(" -------------------------------------------------------\n");</p><p><b> break;</b></p><p><b> }</b></p
81、><p> p=p->next;</p><p><b> }</b></p><p><b> }</b></p><p> return head;</p><p><b> }</b></p><p> str
82、uct student *dele()//刪除函數(shù)</p><p><b> {</b></p><p> struct student *p1=NULL,*p2=NULL,*head=NULL;</p><p> char a[9];</p><p><b> output();</b>&
83、lt;/p><p> printf ("請(qǐng)輸入需要?jiǎng)h除信息的人的姓名:\n");</p><p> scanf ("%s",a);</p><p> p1=head=read();</p><p> if(head==NULL)</p><p><b> {<
84、;/b></p><p> printf("對(duì)不起,暫時(shí)沒有信息,無法刪除。\n");</p><p><b> }</b></p><p> while (head!=NULL)</p><p><b> {</b></p><p> i
85、f(strcmp(a,head -> name) != 0 && p1->next!=NULL )</p><p><b> {</b></p><p><b> p2=head ;</b></p><p> head= head->next ;</p><p&g
86、t; if(head==NULL) break;</p><p><b> }</b></p><p> if(strcmp(a,head -> name) == 0 && p1==head)</p><p><b> {</b></p><p> p1=head-&
87、gt;next ;</p><p><b> }</b></p><p> if(strcmp(a,head->name)==0)</p><p><b> {</b></p><p> p2->next=head->next;</p><p>
88、save2(p1);</p><p> printf("該學(xué)生的信息刪除成功!");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p>
89、 if(head==NULL)</p><p> printf("對(duì)不起,沒有該學(xué)生的信息。\n");</p><p> return head;</p><p><b> }</b></p><p> struct student *change()//修改函數(shù)</p>&l
90、t;p><b> {</b></p><p><b> int a;</b></p><p> char x[9];</p><p> struct student *p = NULL,*head = NULL,*q = NULL;</p><p><b> output(
91、);</b></p><p> p = head = read();</p><p> printf("請(qǐng)輸入要修改的人的姓名:\n");</p><p> scanf("%s",x);</p><p> if(p == NULL)</p><p><b
92、> {</b></p><p> printf("沒有這個(gè)人!\n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> while (p != NULL)</p><p&
93、gt;<b> {</b></p><p> if (strcmp(p -> name,x) == 0)</p><p><b> {</b></p><p><b> q = p;</b></p><p><b> break;</b>&
94、lt;/p><p><b> }</b></p><p> p = p -> next;</p><p><b> }</b></p><p> if(p!=NULL)</p><p><b> {</b></p><p&
95、gt; printf("請(qǐng)選擇修改的內(nèi)容:\n");</p><p> printf("1.姓名\n");</p><p> printf("2.學(xué)號(hào)\n"); </p><p> printf("3.數(shù)學(xué)成績(jī)\n"); </p><p> prin
96、tf("4.英語成績(jī)\n"); </p><p> printf("5.C成績(jī)\n"); </p><p><b> do </b></p><p><b> {</b></p><p> scanf ("%d",&a);
97、</p><p> if(a < 0 || a > 6)</p><p> printf ("您輸入的數(shù)字有誤,請(qǐng)重新輸入:\n");</p><p> }while (a<=0||a>=6);</p><p> switch (a)</p><p><b>
98、; {</b></p><p> case 1 :printf("請(qǐng)輸入更改后的姓名:\n"); scanf("%s",p -> name); break;</p><p> case 2 :printf("請(qǐng)輸入更改后的學(xué)號(hào):\n"); scanf("%s",p -
99、> num); break;</p><p> case 3 :printf("請(qǐng)輸入更改后的數(shù)學(xué)成績(jī):\n");scanf("%d",&p -> scorem);break;</p><p> case 4 :printf("請(qǐng)輸入更改后的英語成績(jī):\n");scanf("%d&quo
100、t;,&p -> scoree);break;</p><p> case 5 :printf("請(qǐng)輸入更改后的C成績(jī):\n"); scanf("%d",&p -> scorec);break;</p><p><b> }</b></p><p> p
101、->sum =0;</p><p> p->sum=p->scorem +p->scoree +p->scorec ;</p><p> printf("更改后的總分:%d",p->sum);</p><p> save2 (head);</p><p><b> ou
102、tput();</b></p><p><b> }</b></p><p> if(p==NULL)</p><p><b> {</b></p><p> printf("對(duì)不起,沒有這個(gè)人。\n");</p><p><b&
103、gt; }</b></p><p> return head;</p><p><b> }</b></p><p> struct student *sortsum(struct student *head)//排序函數(shù) </p><p><b> {</b></p&
104、gt;<p> struct student *p,*p1,*p2,*p3;</p><p> struct student m, n;</p><p> if (head == NULL) return NULL;</p><p> m.next=head;</p><p><b> p=&m;&
105、lt;/b></p><p> while (p->next!=NULL)</p><p><b> {</b></p><p> p=p->next;</p><p><b> }</b></p><p> p=p->next=&n
106、;</p><p> while (p!=m.next)</p><p><b> {</b></p><p><b> p3=&m;</b></p><p> p1=p3->next;</p><p> p2=p1->next;</p&g
107、t;<p> while (p2!=p) </p><p><b> {</b></p><p> if ((p1 -> sum) < (p2 -> sum) ) </p><p><b> {</b></p><p> p1->next=p2->
108、;next;</p><p> p2->next=p1;</p><p> p3->next=p2;</p><p><b> p3=p2; </b></p><p> p2=p1->next;</p><p><b> }</b></p&g
109、t;<p><b> else</b></p><p><b> {</b></p><p><b> p3=p1;</b></p><p><b> p1=p2;</b></p><p> p2=p2->next;</
110、p><p><b> }</b></p><p><b> }</b></p><p><b> p=p1;</b></p><p><b> }</b></p><p> while (p->next!=&n)
111、</p><p><b> {</b></p><p> p=p->next;</p><p><b> }</b></p><p> p->next=NULL;</p><p> return m.next;</p><p>&
112、lt;b> }</b></p><p> struct student *outputsortsum()//總分排序輸出</p><p><b> {</b></p><p><b> int i=0;</b></p><p> struct student *head
113、= NULL , *p = NULL;</p><p> head = read();</p><p> p = sortsum(head);</p><p> printf("\n *************************STUDENT****************************\n");</p&g
114、t;<p> printf(" ------------------------------------------------------------\n");</p><p> printf(" | 名次 | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><
115、p> printf(" ------------------------------------------------------------\n"); </p><p> while(p != NULL)</p><p><b> {</b></p><p><b> i++;<
116、;/b></p><p> printf(" | %3d | %4s | %-4s | %3d | %3d | %3d | %3d |\n",i,p->num,</p><p> p->name,p->scorem,p->scoree,p->scorec,p->sum);</p>
117、<p> printf(" ------------------------------------------------------------\n");</p><p> p=p->next;</p><p><b> }</b></p><p> return head;<
118、;/p><p><b> }</b></p><p> struct student *statistic()//統(tǒng)計(jì)函數(shù)</p><p><b> {</b></p><p> int m = 0;</p><p> struct student *head=NULL
119、;</p><p> struct student *p,*q;</p><p> p = head = read();</p><p> while( p != NULL)</p><p><b> {</b></p><p><b> m++;</b></
120、p><p> p = p -> next;</p><p><b> }</b></p><p> printf("總共有%d個(gè)學(xué)生信息.\n\n",m);</p><p> q= sortsum(head);</p><p> printf("分?jǐn)?shù)最高的
121、學(xué)生的信息:\n");</p><p> printf("\n ***********************STUDENT*************************\n");</p><p> printf(" ---------------------------------------------------
122、----\n");</p><p> printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p> printf(" -------------------------------------------------------\n");&l
123、t;/p><p> printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",q->num,</p><p> q->name,q->scorem,q->scoree,q->scorec,q->sum);</p><p> pr
124、intf(" -------------------------------------------------------\n");</p><p> return head;</p><p><b> }</b></p><p> void mima1 ()</p><p>&l
125、t;b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> int a=1;</b></p><p><b> int i;</b></p>
126、;<p> char ch[10];</p><p> char num[20]={"abcde"};</p><p> printf("進(jìn)入管理員成績(jī)管理系統(tǒng)之前請(qǐng)先輸入密碼\n");</p><p> printf("請(qǐng)輸入您的密碼 :\n");</p><p&
127、gt; for(i=0;i<10;i++)</p><p><b> {</b></p><p> ch[i]=getch();</p><p> if(ch[i]==13 ) break;</p><p> putchar('*');</p><p><b&
128、gt; }</b></p><p> ch[i]='\0';</p><p> if(strcmp(num,ch)==0)</p><p><b> a = 0;</b></p><p><b> if(a==0)</b></p><p>
129、;<b> {</b></p><p> printf("\n歡迎進(jìn)入管理員管理系統(tǒng) !\n");</p><p> getchar();</p><p><b> break;</b></p><p><b> }</b></p>
130、<p><b> else </b></p><p><b> {</b></p><p> printf("\n這個(gè)密碼是錯(cuò)誤的! ");</p><p> printf("\n請(qǐng)輸入正確的密碼:");</p><p><b>
131、 }</b></p><p><b> }</b></p><p><b> }</b></p><p> void mima2 ()</p><p><b> {</b></p><p><b> while(1)<
132、;/b></p><p><b> {</b></p><p><b> int a=1;</b></p><p><b> int i;</b></p><p> char ch[10];</p><p> char num[20]={
133、"12345"};</p><p> printf("進(jìn)入學(xué)生成績(jī)管理系統(tǒng)之前請(qǐng)先輸入密碼\n");</p><p> printf("請(qǐng)輸入您的密碼 :\n");</p><p> for(i=0;i<10;i++)</p><p><b> {</b
134、></p><p> ch[i]=getch();</p><p> if(ch[i]==13 ) break;</p><p> putchar('*');</p><p><b> }</b></p><p> ch[i]='\0';</p
135、><p> if(strcmp(num,ch)==0)</p><p><b> a = 0;</b></p><p><b> if(a==0)</b></p><p><b> {</b></p><p> printf("\n歡迎進(jìn)
136、入學(xué)生成績(jī)管理系統(tǒng) !\n");</p><p> getchar();</p><p><b> break;</b></p><p><b> }</b></p><p><b> else </b></p><p><b&g
137、t; {</b></p><p> printf("\n這個(gè)密碼是錯(cuò)誤的! ");</p><p> printf("\n請(qǐng)輸入正確的密碼:");</p><p><b> }</b></p><p><b> }</b></p&g
138、t;<p><b> }</b></p><p> void menu1()</p><p><b> {</b></p><p> system("cls");</p><p> printf("\n\n
139、 歡迎進(jìn)入管理員管理系統(tǒng)!\n\n");</p><p> printf("\n *******************************主菜單****************************\n");</p><p> printf(" * 1 添加
140、學(xué)生成績(jī) *\n");</p><p> printf(" * * 2 查找學(xué)生成績(jī) * *\n");</p><p> printf(" * * *
141、3 刪除指定學(xué)生 * * *\n");</p><p> printf(" * * * 4 修改學(xué)生信息 * * *\n");</p><p> printf(" * * *
142、 5 總分排序信息 * * *\n");</p><p> printf(" * * 6 查看全部信息 * *\n");</p><p> printf(" *
143、 7 統(tǒng)計(jì)學(xué)生人數(shù) *\n"); </p><p> printf(" * 8 停止程序運(yùn)行 *\n"); </p><p> printf("
144、 *****************************************************************\n");</p><p><b> } </b></p><p> void menu2()
145、 </p><p><b> { </b></p><p> system("cls");</p><p> printf("\n\n 歡迎進(jìn)入學(xué)生管理系統(tǒng)!\n\n&
146、quot;);</p><p> printf("\n *******************************主菜單****************************\n");</p><p> printf(" * * 1 查找學(xué)生成績(jī) *
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (3)
- 課程設(shè)計(jì)-c語言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c語言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng) (2)
- c語言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng) (2)
- c語言課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告----學(xué)生成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告-學(xué)生成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告學(xué)生成績(jī)管理系統(tǒng)
- c語言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng) (2)
- c語言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng) (2)
- c語言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告(學(xué)生成績(jī)管理系統(tǒng)c語言)
- c語言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng) (2)
- c語言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論