版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計(jì) 成 果 報(bào) 告</p><p> 題 目: 1.用數(shù)組實(shí)現(xiàn)兩個(gè)矩陣的相乘運(yùn)算 </p><p><b> 2. 成績分析問題</b></p><p> 課 程: 數(shù)據(jù)結(jié)構(gòu)A課程設(shè)計(jì)</p><p> 院 (部):
2、 管理工程學(xué)院</p><p> 專 業(yè): 信息管理與信息系統(tǒng)</p><p> 班 級(jí): </p><p> 學(xué)生姓名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師:
3、</p><p> 完成日期: 2014年1月1日</p><p><b> 目錄</b></p><p> 一、課程設(shè)計(jì)概述3</p><p> 二、課程設(shè)計(jì)題目一3</p><p><b> [問題描述]3</b></p>
4、<p><b> [詳細(xì)設(shè)計(jì)]3</b></p><p><b> [調(diào)試分析]4</b></p><p> [運(yùn)行結(jié)果及分析]4</p><p> 三、課程設(shè)計(jì)題目二5</p><p><b> [問題描述]5</b></p>&l
5、t;p><b> [需求分析]5</b></p><p><b> [概要設(shè)計(jì)]5</b></p><p><b> [存儲(chǔ)結(jié)構(gòu)]6</b></p><p><b> [流程圖]7</b></p><p><b> [詳細(xì)
6、設(shè)計(jì)]7</b></p><p><b> [調(diào)試分析]21</b></p><p> [運(yùn)行結(jié)果及分析]21</p><p> 四、參考文獻(xiàn):27</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 一、課程設(shè)計(jì)
7、概述</b></p><p> 本次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)共完成三個(gè)題:1、用數(shù)組實(shí)現(xiàn)兩個(gè)矩陣的相乘問題;2、成績分析問題。</p><p><b> 使用語言:C</b></p><p> 編譯環(huán)境:vc6.0</p><p><b> 二、課程設(shè)計(jì)題目一</b></p>
8、<p><b> [問題描述]</b></p><p><b> 程序結(jié)構(gòu):</b></p><p> #include “stdio.h”</p><p> int r[6][6];</p><p> void mult(int a[6][6] , int b[6]
9、[6])</p><p><b> { } </b></p><p><b> main()</b></p><p><b> {</b></p><p><b> int i,j;</b></p><p> int
10、num1[6][6],num2[6][6];</p><p> printf(“請輸入第一個(gè)矩陣的值:”,);</p><p> for(i=1;i<=6;i++)</p><p> for(j=1;j<=6;j++)</p><p> scanf(“%d”,&num1[i][j]);</p><
11、;p> printf(“請輸入第二個(gè)矩陣的值:”,);</p><p> for(i=1;i<=6;i++)</p><p> for(j=1;j<=6;j++)</p><p> scanf(“%d”,&num2[i][j]);</p><p> mult(num1,num2);</p>&
12、lt;p> printf(“\n兩個(gè)矩陣相乘后的結(jié)果為:”);</p><p> for(i=1;i<=6;i++)</p><p> {for(j=1;j<=6;j++)</p><p> printf(“%4d”,r[i][j]);</p><p> printf(“\n”);</p><p
13、><b> }</b></p><p><b> }</b></p><p><b> 要求及提示:</b></p><p> 要求完善函數(shù)mult( ),</p><p> 現(xiàn)有A,B兩個(gè)矩陣,要求用上述程序求出A與B相乘后的運(yùn)行結(jié)果,</p>
14、<p><b> [詳細(xì)設(shè)計(jì)]</b></p><p> #include <stdio.h></p><p> int r[6][6];</p><p> void mult(int a[6][6] , int b[6][6])</p><p><b> {</b
15、></p><p><b> int m,n;</b></p><p> for(m=0;m<6;m++)</p><p><b> {</b></p><p> for(n=0;n<6;n++)</p><p><b> {</b
16、></p><p> r[m][n]=a[m][n]*b[n][m];</p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p><b> main()&
17、lt;/b></p><p><b> {</b></p><p><b> int i,j;</b></p><p> int num1[6][6],num2[6][6];</p><p> printf("請輸入第一個(gè)矩陣的值: \n ");</p>
18、;<p> for(i=0;i<6;i++)</p><p> for(j=0;j<6;j++)</p><p> scanf("%d",&num1[i][j]);</p><p> printf("請輸入第二個(gè)矩陣的值: \n ");</p><p> fo
19、r(i=0;i<6;i++)</p><p> for(j=0;j<6;j++)</p><p> scanf("%d",&num2[i][j]);</p><p> mult(num1,num2);</p><p> printf("\n兩個(gè)矩陣相乘后的結(jié)果為:\n");&
20、lt;/p><p> for(i=0;i<6;i++)</p><p> {for(j=0;j<6;j++)</p><p> printf("%4d",r[i][j]);</p><p> printf("\n");</p><p><b> }&l
21、t;/b></p><p><b> }</b></p><p><b> [調(diào)試分析]</b></p><p> 本程序通過定義二維數(shù)組來存儲(chǔ)矩陣,利用循環(huán)結(jié)構(gòu)來完成運(yùn)算,再通過調(diào)用函數(shù)完成運(yùn)算。</p><p><b> 問題一:</b></p>
22、<p> 現(xiàn)象:矩陣的第一行和第一列無法完成正常的矩陣運(yùn)算后的輸出。</p><p> 原因:在原題目中,程序給出輸出循環(huán)體的控制變量賦值錯(cuò)誤。</p><p><b> [運(yùn)行結(jié)果及分析]</b></p><p><b> 三、課程設(shè)計(jì)題目二</b></p><p><b
23、> 成績分析文檔資料</b></p><p><b> [問題描述]</b></p><p> 錄入、保存一個(gè)班級(jí)學(xué)生多門課程的成績,并對成績進(jìn)行分析。</p><p><b> [需求分析]</b></p><p> 1.通過鍵盤輸入各學(xué)生的多門課程的成績,建立相應(yīng)的文
24、件input.dat</p><p> 2.對文件input.dat中的數(shù)據(jù)進(jìn)行處理,要求具有如下功能:</p><p> a.按各門課程成績排序,并生成相應(yīng)的文件輸出</p><p> b.計(jì)算每人的平均成績,按平均成績排序,并生成文件</p><p> c.求出各門課程的平均成績、最高分、最低分、不及格人數(shù)、</p>
25、<p> 60-69分人數(shù)、70-79分人數(shù)、80-89分人數(shù)、90分以上人數(shù)</p><p> d.根據(jù)姓名或?qū)W號(hào)查詢某人的各門課成績,重名也要能處理</p><p><b> 3.界面美觀</b></p><p><b> [概要設(shè)計(jì)]</b></p><p><b&g
26、t; -=ADT=-</b></p><p><b> {</b></p><p> Void initlinklist();</p><p> //單鏈表初始化,建立鏈表</p><p> void creat();</p><p><b> //錄入學(xué)生信息&
27、lt;/b></p><p> void prnt(linklist *p);</p><p><b> //輸出單條記錄</b></p><p> void search();</p><p> //查找指定學(xué)號(hào)的學(xué)生</p><p> void mathp(linklist *
28、p);</p><p><b> //輸出數(shù)學(xué)</b></p><p> void engp(linklist *p);</p><p><b> //輸出英語</b></p><p> void comp(linklist *p);</p><p><b>
29、; //輸出計(jì)算機(jī)</b></p><p> void g_d();</p><p><b> //輸出最高最低分</b></p><p> void aver();</p><p><b> //輸出平均成績</b></p><p> void ma
30、thinfo();</p><p><b> // 數(shù)學(xué)成績分段</b></p><p> void enginfo();</p><p><b> // 英語成績分段</b></p><p> void cominfo();</p><p> // 計(jì)算機(jī)成績分段
31、</p><p> void sortmath();</p><p><b> //數(shù)學(xué)成績排序</b></p><p> void sorteng();</p><p><b> //英語成績排序</b></p><p> void sortcom();</
32、p><p><b> //計(jì)算機(jī)成績排序</b></p><p> void main();</p><p> //主函數(shù),調(diào)用其他功能函數(shù)</p><p><b> )</b></p><p><b> [存儲(chǔ)結(jié)構(gòu)]</b></p>
33、<p> typedef struct STUDENT</p><p><b> {</b></p><p> char no[7];</p><p> char name[9];</p><p><b> int math;</b></p><p>&
34、lt;b> int eng;</b></p><p><b> int com;</b></p><p> struct STUDENT *next;</p><p> }linklist;//定義結(jié)構(gòu)體</p><p> linklist *findn(linklist *head,char
35、 *no) </p><p><b> {</b></p><p> linklist *p;</p><p> p=head->next;</p><p><b> while(p)</b></p><p><b> {</b><
36、/p><p> if(strcmp(p->no,no)==0)</p><p><b> return p;</b></p><p> p=p->next;</p><p><b> }</b></p><p> return NULL;</p&g
37、t;<p> } //查找指定學(xué)號(hào)的學(xué)生,返回該結(jié)點(diǎn)的地址,用于檢驗(yàn)該組數(shù)據(jù)是否存在</p><p> linklist *findm(linklist *head,char *name)</p><p><b> {</b></p><p> linklist *p;</p><p> p=he
38、ad->next;</p><p><b> while(p)</b></p><p><b> {</b></p><p> if(strcmp(p->name,name)==0)</p><p><b> return p;</b></p>
39、<p> p=p->next;</p><p><b> }</b></p><p> return NULL;</p><p> }//查找指定姓名的學(xué)生,返回該結(jié)點(diǎn)的地址,用于檢驗(yàn)是否存在該數(shù)據(jù)</p><p><b> [流程圖]</b></p>&l
40、t;p> int Partition(KeyWord* RL, int low, int high) //快速排序第一趟</p><p><b> [詳細(xì)設(shè)計(jì)]</b></p><p> #include <stdio.h></p><p> #include <stdlib.h></p>
41、<p> #include <string.h></p><p> struct STUDENT</p><p><b> {</b></p><p> char no[7];</p><p> char name[9];</p><p><b> i
42、nt math;</b></p><p><b> int eng;</b></p><p><b> int com;</b></p><p> struct STUDENT *next;</p><p><b> };</b></p>&l
43、t;p> typedef struct STUDENT linklist;</p><p> linklist *head=NULL;</p><p> void initlinklist() //單鏈表的初始化,生成一個(gè)空的單鏈表</p><p><b> {</b></p><p> head=(li
44、nklist *)malloc(sizeof(linklist)); //生成頭結(jié)點(diǎn)</p><p> head->next=NULL;</p><p><b> }</b></p><p> linklist *findm(linklist *head,char *name)//查找指定姓名的學(xué)生,返回該結(jié)點(diǎn)的地址,用于檢驗(yàn)是否存
45、在該數(shù)據(jù)</p><p><b> {</b></p><p> linklist *p;</p><p> p=head->next;</p><p><b> while(p)</b></p><p><b> {</b></p
46、><p> if(strcmp(p->name,name)==0)</p><p><b> return p;</b></p><p> p=p->next;</p><p><b> }</b></p><p> return NULL;</p&g
47、t;<p><b> }</b></p><p> linklist *findn(linklist *head,char *no) //查找指定學(xué)號(hào)的學(xué)生,返回該結(jié)點(diǎn)的地址</p><p><b> {</b></p><p> linklist *p;</p><p>
48、 p=head->next;</p><p><b> while(p)</b></p><p><b> {</b></p><p> if(strcmp(p->no,no)==0)</p><p><b> return p;</b></p>
49、<p> p=p->next;</p><p><b> }</b></p><p> return NULL;</p><p><b> }</b></p><p> void creat()</p><p><b> {<
50、;/b></p><p><b> //錄入學(xué)生信息</b></p><p> struct STUDENT *p;</p><p><b> while(1)</b></p><p><b> {</b></p><p> p=(str
51、uct STUDENT *)malloc(sizeof(struct STUDENT));</p><p> printf("學(xué)號(hào):");</p><p> fflush(stdin);//清除緩存</p><p> gets(p->no);</p><p> printf("姓名:");
52、</p><p> fflush(stdin);</p><p> gets(p->name);</p><p> printf("數(shù)學(xué)成績:");</p><p> fflush(stdin);</p><p> scanf("%d",&(p->m
53、ath));</p><p> printf("英語成績:");</p><p> fflush(stdin);</p><p> scanf("%d",&(p->eng));</p><p> printf("計(jì)算機(jī)成績:");</p><
54、p> fflush(stdin);</p><p> scanf("%d",&(p->com));</p><p> p->next=head->next;</p><p> head->next=p;</p><p> printf("是否要繼續(xù)錄入?(y/n)&
55、quot;);</p><p> fflush(stdin);</p><p> if(getchar()=='n')break;</p><p><b> }</b></p><p><b> }</b></p><p> void prnt(li
56、nklist *p) //輸出單條記錄</p><p><b> {</b></p><p> printf("\n---------------------------------------------------\n");</p><p> printf(" 學(xué)號(hào):%s",p->no
57、);</p><p> printf("\t姓名:%s",p->name);</p><p> printf("\t數(shù)學(xué):%d",p->math);</p><p> printf("\t英語:%d",p->eng);</p><p> printf(&qu
58、ot;\t計(jì)算機(jī):%d",p->com);</p><p> printf("\n---------------------------------------------------\n");</p><p><b> }</b></p><p> void search() //查找指定學(xué)號(hào)或姓名
59、的學(xué)生</p><p><b> {</b></p><p> char no[7];</p><p> char name[9];</p><p> linklist *p=NULL;</p><p> printf("學(xué)號(hào)查詢請輸入1,姓名查詢輸入0: ");&
60、lt;/p><p> fflush(stdin);</p><p> if(getchar()=='1')</p><p><b> {</b></p><p> printf("按學(xué)號(hào)查詢:\n");</p><p> printf("請輸入要
61、查詢的學(xué)號(hào):");</p><p> fflush(stdin);</p><p><b> gets(no);</b></p><p> p=findn(head,no);</p><p> if(p==NULL)</p><p> printf("對不起,沒有找到
62、滿足條件記錄!\n");</p><p> p=head->next;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(strcmp(p->no,no)==0)</p><p><b> {&l
63、t;/b></p><p> printf("\n---------------------------------------------------\n");</p><p> printf(" 學(xué)號(hào):%s",p->no);</p><p> printf("\t姓名:%s",p-&g
64、t;name);</p><p> printf("\t數(shù)學(xué):%d",p->math);</p><p> printf("\t英語:%d",p->eng);</p><p> printf("\t計(jì)算機(jī):%d",p->com);</p><p> prin
65、tf("\n---------------------------------------------------\n");</p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b
66、> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("按姓名查詢:\n");</p><p> printf("請輸入要查詢的姓名:");</p&g
67、t;<p> fflush(stdin);</p><p> gets(name);</p><p> //=============================================</p><p> p=findm(head,name);</p><p> if(p==NULL)printf(&quo
68、t;對不起,沒有找到滿足條件記錄!\n");</p><p> p=head->next;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(strcmp(p->name,name)==0)</p><p>
69、<b> {</b></p><p> printf("\n---------------------------------------------------\n");</p><p> printf(" 學(xué)號(hào):%s",p->no);</p><p> printf("\t姓名
70、:%s",p->name);</p><p> printf("\t數(shù)學(xué):%d",p->math);</p><p> printf("\t英語:%d",p->eng);</p><p> printf("\t計(jì)算機(jī):%d",p->com);</p>&
71、lt;p> printf("\n---------------------------------------------------\n");</p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p>
72、<p><b> }</b></p><p><b> }</b></p><p> void mathp(linklist *p) //輸出數(shù)學(xué)</p><p><b> {</b></p><p> printf(" 學(xué)號(hào):%s",p
73、->no);</p><p> printf("\t姓名:%s",p->name);</p><p> printf("\t數(shù)學(xué):%d",p->math);</p><p><b> }</b></p><p> void engp(linklist *p
74、)//輸出英語</p><p><b> {</b></p><p> printf(" 學(xué)號(hào):%s",p->no);</p><p> printf("\t姓名:%s",p->name);</p><p> printf("\t英語:%d"
75、;,p->eng);</p><p><b> }</b></p><p> void comp(linklist *p)//輸出計(jì)算機(jī)</p><p><b> {</b></p><p> printf(" 學(xué)號(hào):%s",p->no);</p>
76、;<p> printf("\t姓名:%s",p->name);</p><p> printf("\t計(jì)算機(jī):%d",p->com);</p><p><b> }</b></p><p> void g_d()//從高到低成績排序</p>
77、<p><b> {</b></p><p> int i,j,temp,N=0;</p><p> linklist *p;</p><p><b> //數(shù)學(xué)</b></p><p> p=head->next;</p><p> int a
78、[1000]; //調(diào)用了一個(gè)足夠大的一維數(shù)組作為臨時(shí)數(shù)據(jù)存放</p><p> for(i=0;p!=NULL;i++)</p><p><b> {</b></p><p> a[i]=p->math;</p><p> p=p->next;</p><p><b&
79、gt; }</b></p><p> a[i]=999;//存放結(jié)束標(biāo)志</p><p> for(i=0;a[i]!=999;i++)</p><p><b> N++;</b></p><p><b> N=N-1;</b></p><p&
80、gt; for(j=0;j<N-1;j++) //j<N //冒泡排序,由大到小</p><p><b> {</b></p><p> for(i=0;i<N-j-1;i++) //i<N-j</p><p> if(a[i]<=a[i+1])</p><p><b
81、> {</b></p><p> temp=a[i];</p><p> a[i]=a[i+1];</p><p> a[i+1]=temp;</p><p><b> }</b></p><p><b> }</b></p>&l
82、t;p><b> i=N;//-1</b></p><p> printf("數(shù)學(xué)最低分:%d",a[i]);</p><p> printf("\n");</p><p><b> i=0;</b></p><p> printf("
83、;數(shù)學(xué)最高分:%d",a[i]);</p><p> printf("\n");</p><p><b> //英語</b></p><p><b> N=0;</b></p><p> p=head->next;</p><p>
84、 for(i=0;p!=NULL;i++)</p><p><b> {</b></p><p> a[i]=p->eng;</p><p> p=p->next;</p><p><b> }</b></p><p> a[i]=1000;/
85、/調(diào)用了一個(gè)足夠大的一維數(shù)組作為臨時(shí)數(shù)據(jù)存放</p><p> for(i=0;a[i]!=1000;i++) N++;//冒泡排序,由大到小</p><p><b> N=N-1;</b></p><p> for(j=0;j<N-1;j++)</p><p><b> {</b>
86、</p><p> for(i=0;i<N-j-1;i++)</p><p> if(a[i]<=a[i+1])</p><p><b> {</b></p><p> temp=a[i];</p><p> a[i]=a[i+1];</p><p>
87、 a[i+1]=temp;</p><p><b> }</b></p><p><b> }</b></p><p><b> i=N;</b></p><p> printf("英語最低分:%d",a[i]);</p><p
88、> printf("\n");</p><p><b> i=0;</b></p><p> printf("英語最高分:%d",a[i]);</p><p> printf("\n");</p><p><b> //計(jì)算機(jī)</
89、b></p><p><b> N=0;</b></p><p> p=head->next;</p><p> for(i=0;p!=NULL;i++)</p><p><b> {</b></p><p> a[i]=p->com;</p
90、><p> p=p->next;</p><p><b> }</b></p><p> a[i]=1000;//調(diào)用了一個(gè)足夠大的一維數(shù)組作為臨時(shí)數(shù)據(jù)存放</p><p> for(i=0;a[i]!=1000;i++) N++;//冒泡排序,由大到小</p><p>&
91、lt;b> N=N-1;</b></p><p> for(j=0;j<N-1;j++)</p><p><b> {</b></p><p> for(i=0;i<N-j-1;i++)</p><p> if(a[i]<=a[i+1])</p><p&g
92、t;<b> {</b></p><p> temp=a[i];</p><p> a[i]=a[i+1];</p><p> a[i+1]=temp;</p><p><b> }</b></p><p><b> }</b></p&
93、gt;<p><b> i=N;</b></p><p> printf("計(jì)算機(jī)最低分:%d",a[i]);</p><p> printf("\n");</p><p><b> i=0;</b></p><p> printf(&
94、quot;計(jì)算機(jī)最高分:%d",a[i]);</p><p> printf("\n");</p><p><b> }</b></p><p> void aver()</p><p><b> {</b></p><p> int
95、n=0,add=0;</p><p> linklist *p;</p><p> p=head->next;</p><p><b> while(p)</b></p><p><b> {</b></p><p> add+=p->math;<
96、/p><p><b> n++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> printf("數(shù)學(xué)平均成績:%d",add/n);</p><p> printf("\t\t
97、");</p><p><b> n=0;</b></p><p><b> add=0;</b></p><p> p=head->next;</p><p><b> while(p)</b></p><p><b>
98、; {</b></p><p> add+=p->eng;</p><p><b> n++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> printf("英語平均成績:
99、%d",add/n);</p><p> printf("\t\t");</p><p><b> n=0;</b></p><p><b> add=0;</b></p><p> p=head->next;</p><p>&l
100、t;b> while(p)</b></p><p><b> {</b></p><p> add+=p->com;</p><p><b> n++;</b></p><p> p=p->next;</p><p><b>
101、 }</b></p><p> printf("計(jì)算機(jī)平均成績:%d",add/n);</p><p> printf("\t\t");</p><p><b> }</b></p><p> void mathinfo()</p><p&
102、gt;<b> {</b></p><p> int n=0,m=0,k=0,l=0,o=0;</p><p> linklist *p;</p><p> p=head->next;</p><p> while(p!=NULL)</p><p><b> {<
103、/b></p><p> if(p->math>=90)n++;</p><p> else if(p->math>=80)m++;</p><p> else if(p->math>=70)k++;</p><p> else if(p->math>=60)l++;</p&
104、gt;<p><b> else o++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> printf("數(shù)學(xué)成績在90分以上的人數(shù):%d\n",n);</p><p> printf(&qu
105、ot;數(shù)學(xué)成績在80-90分 的人數(shù):%d\n",m);</p><p> printf("數(shù)學(xué)成績在70-80分 的人數(shù):%d\n",l);</p><p> printf("數(shù)學(xué)成績在60-70分 的人數(shù):%d\n",k);</p><p> printf("數(shù)學(xué)成績在60分以下的人數(shù):%d\n&
106、quot;,o);</p><p><b> }</b></p><p> void enginfo()</p><p><b> {</b></p><p> int n=0,m=0,k=0,l=0,o=0;</p><p> linklist *p;</p
107、><p> p=head->next;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->eng>=90)n++;</p><p> else if(p->eng>=80)m++;</p&g
108、t;<p> else if(p->eng>=70)k++;</p><p> else if(p->eng>=60)l++;</p><p><b> else o++;</b></p><p> p=p->next;</p><p><b> }<
109、/b></p><p> printf("英語成績在90分以上的人數(shù):%d\n",n);</p><p> printf("英語成績在80-90分 的人數(shù):%d\n",m);</p><p> printf("英語成績在70-80分 的人數(shù):%d\n",l);</p><p&
110、gt; printf("英語成績在60-70分 的人數(shù):%d\n",k);</p><p> printf("英語成績在60分以下的人數(shù):%d\n",o);</p><p><b> }</b></p><p> void cominfo()</p><p><b&g
111、t; {</b></p><p> int n=0,m=0,k=0,l=0,o=0;</p><p> linklist *p;</p><p> p=head->next;</p><p> while(p!=NULL)</p><p><b> {</b><
112、/p><p> if(p->com>=90)n++;</p><p> else if(p->com>=80)m++;</p><p> else if(p->com>=70)k++;</p><p> else if(p->com>=60)l++;</p><p>
113、<b> else o++;</b></p><p> p=p->next;</p><p><b> }</b></p><p> printf("計(jì)算機(jī)成績在90分以上的人數(shù):%d\n",n);</p><p> printf("計(jì)算機(jī)成績在80-9
114、0分 的人數(shù):%d\n",m);</p><p> printf("計(jì)算機(jī)成績在70-80分 的人數(shù):%d\n",l);</p><p> printf("計(jì)算機(jī)成績在60-70分 的人數(shù):%d\n",k);</p><p> printf("計(jì)算機(jī)成績在60分以下的人數(shù):%d\n",o);
115、</p><p><b> }</b></p><p> void sortmath()</p><p><b> {</b></p><p> int i,j,N=0;</p><p> linklist *p;</p><p> p=h
116、ead->next;</p><p> linklist a[1000],temp; //調(diào)用了一個(gè)足夠大的一維數(shù)組作為臨時(shí)數(shù)據(jù)存放</p><p> for(i=0;p!=NULL;i++)</p><p><b> {</b></p><p> strcpy(a[i].no,p->no);<
117、/p><p> strcpy(a[i].name,p->name);</p><p> a[i].math=p->math;</p><p> a[i].eng=p->eng;</p><p> a[i].com=p->com;</p><p> p=p->next;</p&g
118、t;<p><b> }</b></p><p> a[i].math=999;</p><p> for(i=0;a[i].math!=999;i++) N++;//通過N確定總共有多少學(xué)生的成績信息</p><p> for(j=0;j<N-1;j++)</p><p>&l
119、t;b> {</b></p><p> for(i=0;i<N-j-1;i++)</p><p> if(a[i].math<=a[i+1].math)</p><p><b> {</b></p><p> temp=a[i];</p><p> a[i
120、]=a[i+1];</p><p> a[i+1]=temp;</p><p><b> }</b></p><p><b> }</b></p><p> printf("數(shù)學(xué):\n");</p><p> for(i=0;i<N;i++
121、)</p><p><b> {</b></p><p> printf(" 學(xué)號(hào):%s",a[i].no);</p><p> printf("\t姓名:%s",a[i].name);</p><p> printf("\t數(shù)學(xué):%d",a[i].ma
122、th);</p><p> printf("\n");</p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p><p> void sorteng()&
123、lt;/p><p><b> {</b></p><p> int i,j,N=0;</p><p> linklist *p;</p><p> p=head->next;</p><p> linklist b[1000],temp; //調(diào)用了一個(gè)足夠大的一維數(shù)組作為臨時(shí)數(shù)據(jù)存放
124、</p><p> for(i=0;p!=NULL;i++)</p><p><b> {</b></p><p> strcpy(b[i].no,p->no);</p><p> strcpy(b[i].name,p->name);</p><p> b[i].math=p
125、->math;</p><p> b[i].eng=p->eng;</p><p> b[i].com=p->com;</p><p> p=p->next;</p><p><b> }</b></p><p> b[i].eng=999;</
126、p><p> for(i=0;b[i].eng!=999;i++) N++;//冒泡排序,由大到小</p><p> for(j=0;j<N-1;j++)</p><p><b> {</b></p><p> for(i=0;i<N-j-1;i++)</p><p> if(
127、b[i].eng<=b[i+1].eng)</p><p><b> {</b></p><p> temp=b[i];</p><p> b[i]=b[i+1];</p><p> b[i+1]=temp;</p><p><b> }</b></p&
128、gt;<p><b> }</b></p><p> printf("英語:\n");</p><p> for(i=0;i<N;i++)</p><p><b> {</b></p><p> printf(" 學(xué)號(hào):%s",b
129、[i].no);</p><p> printf("\t姓名:%s",b[i].name);</p><p> printf("\t數(shù)學(xué):%d",b[i].eng);</p><p> printf("\n");</p><p><b> }</b>&l
130、t;/p><p> printf("\n");</p><p><b> }</b></p><p> void sortcom()</p><p><b> {</b></p><p> int i,j,N=0;</p><p&
131、gt; linklist *p;</p><p> p=head->next;</p><p> linklist c[1000],temp; //調(diào)用了一個(gè)足夠大的一維數(shù)組作為臨時(shí)數(shù)據(jù)存放</p><p> for(i=0;p!=NULL;i++)</p><p><b> {</b></p>
132、;<p> strcpy(c[i].no,p->no);</p><p> strcpy(c[i].name,p->name);</p><p> c[i].math=p->math;</p><p> c[i].eng=p->eng;</p><p> c[i].com=p->com;&
133、lt;/p><p> p=p->next;</p><p><b> }</b></p><p> c[i].com=999;</p><p> for(i=0;c[i].com!=999;i++) N++;//冒泡排序,由大到小</p><p> for(j=0;j&l
134、t;N-1;j++)</p><p><b> {</b></p><p> for(i=0;i<N-j-1;i++)</p><p> if(c[i].com<=c[i+1].com)</p><p><b> {</b></p><p> temp=
135、c[i];</p><p> c[i]=c[i+1];</p><p> c[i+1]=temp;</p><p><b> }</b></p><p><b> }</b></p><p> printf("計(jì)算機(jī):\n");</p>
136、;<p> for(i=0;i<N;i++)</p><p><b> {</b></p><p> printf(" 學(xué)號(hào):%s",c[i].no);</p><p> printf("\t姓名:%s",c[i].name);</p><p> pr
137、intf("\t數(shù)學(xué):%d",c[i].com);</p><p> printf("\n");</p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p&
138、gt;<p> void save(linklist *head)</p><p><b> {</b></p><p> FILE *fp; //定義文件指針</p><p> linklist *p; //定義輔助指針p,用于對單鏈表進(jìn)行訪問</p><p> p=head->nex
139、t; //p指向首元結(jié)點(diǎn)</p><p> if((fp=fopen("d:\\input.dat","wb+"))==NULL) //打開磁盤文件 d:\input</p><p><b> .dat</b></p><p> {printf("不能打開文件!\n");&
140、lt;/p><p><b> exit(0);</b></p><p><b> }</b></p><p> while(p) //如果結(jié)點(diǎn)不為空</p><p><b> {</b></p><p> fwrite(p,sizeof(linkl
141、ist),1,fp); //將當(dāng)前節(jié)點(diǎn)p,寫入磁盤文件中</p><p> p=p->next; //p指向下一個(gè)結(jié)點(diǎn)</p><p><b> }</b></p><p> printf("存盤成功!\n");</p><p> fclose(fp); //關(guān)閉磁盤文件</p&
142、gt;<p><b> }</b></p><p> void load()</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> struct STUDENT *p;;</p>&l
143、t;p> if((fp=fopen("d:\\input.dat","rb+"))==NULL)</p><p> {printf("不能打開文件!\n");</p><p><b> exit(0);</b></p><p><b> }</b>
144、;</p><p> int i=0; //???</p><p> //頭結(jié)點(diǎn)已經(jīng)生成了</p><p> while(!feof(fp))</p><p><b> {</b></p><p> p=(struct STUDENT *)malloc(sizeof(struct STU
145、DENT));</p><p> fread(p,sizeof(struct STUDENT),1,fp);</p><p> if(feof(fp))break;</p><p> p->next=head->next;</p><p> head->next=p;</p><p><
146、b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> printf("\t *****
147、********成績分析記錄表*************\n");</p><p> initlinklist();</p><p> int sel,sel2,sel1;</p><p><b> do</b></p><p><b> {</b></p><
148、p> printf("\n\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");</p><p> printf("\t\t\t1 學(xué)生信息錄入\n");</p><p> printf("\t\t\t2 學(xué)生信息查找\n");</p><p> printf
149、("\t\t\t3 最高最低 \n");</p><p> printf("\t\t\t4 平均成績 \n");</p><p> printf("\t\t\t5 各科排序 \n");</p><p> printf("\t\t\t6 各科成績分段\n")
150、;</p><p> printf("\t\t\t7 信息存盤 \n");</p><p> printf("\t\t\t8 信息讀取 \n");</p><p> printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");</p>
151、;<p> printf("\t\t\t0 退出系統(tǒng)\n");</p><p> printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");</p><p> printf("請選擇:");</p><p> scanf("%d
152、",&sel);</p><p> switch(sel)</p><p><b> {</b></p><p> case 1:creat();break; </p><p> case 2:search();break;</p><p> case 3:g_d()
153、;break;</p><p> case 4:aver();break;</p><p><b> case 5:{</b></p><p><b> do</b></p><p><b> {</b></p><p> printf(&qu
154、ot;請輸入你要查詢的科目:\n1、數(shù)學(xué)\n2、英語\n3、計(jì)算機(jī)\n0、退出\n");</p><p> scanf("%d",&sel1);</p><p> switch(sel1)</p><p><b> {</b></p><p> case 1:sortmath
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---實(shí)現(xiàn)兩個(gè)鏈表的合并
- 實(shí)現(xiàn)兩個(gè)鏈表的合并數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)多維數(shù)組
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績管理問題
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生成績分析問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-大數(shù)相乘等
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---成績分析與全國交通咨詢模擬
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(迷宮問題)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)--稀疏矩陣課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---稀疏矩陣
- 迷宮問題——數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)迷宮問題課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)組的存儲(chǔ)格式轉(zhuǎn)換
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--單鏈表兩個(gè)集合相加減的算法
評(píng)論
0/150
提交評(píng)論