版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 成 果 報 告</p><p> 題 目: 1.用數(shù)組實現(xiàn)兩個矩陣的相乘運算 </p><p><b> 2. 成績分析問題</b></p><p> 課 程: 數(shù)據結構A課程設計</p><p> 院 (部):
2、 管理工程學院</p><p> 專 業(yè): 信息管理與信息系統(tǒng)</p><p> 班 級: </p><p> 學生姓名: </p><p> 學 號: </p><p> 指導教師:
3、</p><p> 完成日期: 2014年1月1日</p><p><b> 目錄</b></p><p> 一、課程設計概述3</p><p> 二、課程設計題目一3</p><p><b> [問題描述]3</b></p>
4、<p><b> [詳細設計]3</b></p><p><b> [調試分析]4</b></p><p> [運行結果及分析]4</p><p> 三、課程設計題目二5</p><p><b> [問題描述]5</b></p>&l
5、t;p><b> [需求分析]5</b></p><p><b> [概要設計]5</b></p><p><b> [存儲結構]6</b></p><p><b> [流程圖]7</b></p><p><b> [詳細
6、設計]7</b></p><p><b> [調試分析]21</b></p><p> [運行結果及分析]21</p><p> 四、參考文獻:27</p><p><b> 課程設計報告</b></p><p><b> 一、課程設計
7、概述</b></p><p> 本次數(shù)據結構課程設計共完成三個題:1、用數(shù)組實現(xiàn)兩個矩陣的相乘問題;2、成績分析問題。</p><p><b> 使用語言:C</b></p><p> 編譯環(huán)境:vc6.0</p><p><b> 二、課程設計題目一</b></p>
8、<p><b> [問題描述]</b></p><p><b> 程序結構:</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(“請輸入第一個矩陣的值:”,);</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(“請輸入第二個矩陣的值:”,);</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兩個矩陣相乘后的結果為:”);</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兩個矩陣,要求用上述程序求出A與B相乘后的運行結果,</p>
14、<p><b> [詳細設計]</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("請輸入第一個矩陣的值: \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("請輸入第二個矩陣的值: \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兩個矩陣相乘后的結果為:\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> [調試分析]</b></p><p> 本程序通過定義二維數(shù)組來存儲矩陣,利用循環(huán)結構來完成運算,再通過調用函數(shù)完成運算。</p><p><b> 問題一:</b></p>
22、<p> 現(xiàn)象:矩陣的第一行和第一列無法完成正常的矩陣運算后的輸出。</p><p> 原因:在原題目中,程序給出輸出循環(huán)體的控制變量賦值錯誤。</p><p><b> [運行結果及分析]</b></p><p><b> 三、課程設計題目二</b></p><p><b
23、> 成績分析文檔資料</b></p><p><b> [問題描述]</b></p><p> 錄入、保存一個班級學生多門課程的成績,并對成績進行分析。</p><p><b> [需求分析]</b></p><p> 1.通過鍵盤輸入各學生的多門課程的成績,建立相應的文
24、件input.dat</p><p> 2.對文件input.dat中的數(shù)據進行處理,要求具有如下功能:</p><p> a.按各門課程成績排序,并生成相應的文件輸出</p><p> b.計算每人的平均成績,按平均成績排序,并生成文件</p><p> c.求出各門課程的平均成績、最高分、最低分、不及格人數(shù)、</p>
25、<p> 60-69分人數(shù)、70-79分人數(shù)、80-89分人數(shù)、90分以上人數(shù)</p><p> d.根據姓名或學號查詢某人的各門課成績,重名也要能處理</p><p><b> 3.界面美觀</b></p><p><b> [概要設計]</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> //錄入學生信息&
27、lt;/b></p><p> void prnt(linklist *p);</p><p><b> //輸出單條記錄</b></p><p> void search();</p><p> //查找指定學號的學生</p><p> void mathp(linklist *
28、p);</p><p><b> //輸出數(shù)學</b></p><p> void engp(linklist *p);</p><p><b> //輸出英語</b></p><p> void comp(linklist *p);</p><p><b>
29、; //輸出計算機</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ù)學成績分段</b></p><p> void enginfo();</p><p><b> // 英語成績分段</b></p><p> void cominfo();</p><p> // 計算機成績分段
31、</p><p> void sortmath();</p><p><b> //數(shù)學成績排序</b></p><p> void sorteng();</p><p><b> //英語成績排序</b></p><p> void sortcom();</
32、p><p><b> //計算機成績排序</b></p><p> void main();</p><p> //主函數(shù),調用其他功能函數(shù)</p><p><b> )</b></p><p><b> [存儲結構]</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;//定義結構體</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> } //查找指定學號的學生,返回該結點的地址,用于檢驗該組數(shù)據是否存在</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> }//查找指定姓名的學生,返回該結點的地址,用于檢驗是否存在該數(shù)據</p><p><b> [流程圖]</b></p>&l
40、t;p> int Partition(KeyWord* RL, int low, int high) //快速排序第一趟</p><p><b> [詳細設計]</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() //單鏈表的初始化,生成一個空的單鏈表</p><p><b> {</b></p><p> head=(li
44、nklist *)malloc(sizeof(linklist)); //生成頭結點</p><p> head->next=NULL;</p><p><b> }</b></p><p> linklist *findm(linklist *head,char *name)//查找指定姓名的學生,返回該結點的地址,用于檢驗是否存
45、在該數(shù)據</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) //查找指定學號的學生,返回該結點的地址</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> //錄入學生信息</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("學號:");</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ù)學成績:");</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("計算機成績:");</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(" 學號:%s",p->no
57、);</p><p> printf("\t姓名:%s",p->name);</p><p> printf("\t數(shù)學:%d",p->math);</p><p> printf("\t英語:%d",p->eng);</p><p> printf(&qu
58、ot;\t計算機:%d",p->com);</p><p> printf("\n---------------------------------------------------\n");</p><p><b> }</b></p><p> void search() //查找指定學號或姓名
59、的學生</p><p><b> {</b></p><p> char no[7];</p><p> char name[9];</p><p> linklist *p=NULL;</p><p> printf("學號查詢請輸入1,姓名查詢輸入0: ");&
60、lt;/p><p> fflush(stdin);</p><p> if(getchar()=='1')</p><p><b> {</b></p><p> printf("按學號查詢:\n");</p><p> printf("請輸入要
61、查詢的學號:");</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(" 學號:%s",p->no);</p><p> printf("\t姓名:%s",p-&g
64、t;name);</p><p> printf("\t數(shù)學:%d",p->math);</p><p> printf("\t英語:%d",p->eng);</p><p> printf("\t計算機:%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(" 學號:%s",p->no);</p><p> printf("\t姓名
70、:%s",p->name);</p><p> printf("\t數(shù)學:%d",p->math);</p><p> printf("\t英語:%d",p->eng);</p><p> printf("\t計算機:%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ù)學</p><p><b> {</b></p><p> printf(" 學號:%s",p
73、->no);</p><p> printf("\t姓名:%s",p->name);</p><p> printf("\t數(shù)學:%d",p->math);</p><p><b> }</b></p><p> void engp(linklist *p
74、)//輸出英語</p><p><b> {</b></p><p> printf(" 學號:%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)//輸出計算機</p><p><b> {</b></p><p> printf(" 學號:%s",p->no);</p>
76、;<p> printf("\t姓名:%s",p->name);</p><p> printf("\t計算機:%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ù)學</b></p><p> p=head->next;</p><p> int a
78、[1000]; //調用了一個足夠大的一維數(shù)組作為臨時數(shù)據存放</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;//存放結束標志</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ù)學最低分:%d",a[i]);</p><p> printf("\n");</p><p><b> i=0;</b></p><p> printf("
83、;數(shù)學最高分:%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、/調用了一個足夠大的一維數(shù)組作為臨時數(shù)據存放</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> //計算機</
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;//調用了一個足夠大的一維數(shù)組作為臨時數(shù)據存放</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("計算機最低分:%d",a[i]);</p><p> printf("\n");</p><p><b> i=0;</b></p><p> printf(&
94、quot;計算機最高分:%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ù)學平均成績:%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("計算機平均成績:%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ù)學成績在90分以上的人數(shù):%d\n",n);</p><p> printf(&qu
105、ot;數(shù)學成績在80-90分 的人數(shù):%d\n",m);</p><p> printf("數(shù)學成績在70-80分 的人數(shù):%d\n",l);</p><p> printf("數(shù)學成績在60-70分 的人數(shù):%d\n",k);</p><p> printf("數(shù)學成績在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("計算機成績在90分以上的人數(shù):%d\n",n);</p><p> printf("計算機成績在80-9
114、0分 的人數(shù):%d\n",m);</p><p> printf("計算機成績在70-80分 的人數(shù):%d\n",l);</p><p> printf("計算機成績在60-70分 的人數(shù):%d\n",k);</p><p> printf("計算機成績在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; //調用了一個足夠大的一維數(shù)組作為臨時數(shù)據存放</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確定總共有多少學生的成績信息</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ù)學:\n");</p><p> for(i=0;i<N;i++
121、)</p><p><b> {</b></p><p> printf(" 學號:%s",a[i].no);</p><p> printf("\t姓名:%s",a[i].name);</p><p> printf("\t數(shù)學:%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; //調用了一個足夠大的一維數(shù)組作為臨時數(shù)據存放
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(" 學號:%s",b
129、[i].no);</p><p> printf("\t姓名:%s",b[i].name);</p><p> printf("\t數(shù)學:%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; //調用了一個足夠大的一維數(shù)組作為臨時數(shù)據存放</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("計算機:\n");</p>
136、;<p> for(i=0;i<N;i++)</p><p><b> {</b></p><p> printf(" 學號:%s",c[i].no);</p><p> printf("\t姓名:%s",c[i].name);</p><p> pr
137、intf("\t數(shù)學:%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,用于對單鏈表進行訪問</p><p> p=head->nex
139、t; //p指向首元結點</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) //如果結點不為空</p><p><b> {</b></p><p> fwrite(p,sizeof(linkl
141、ist),1,fp); //將當前節(jié)點p,寫入磁盤文件中</p><p> p=p->next; //p指向下一個結點</p><p><b> }</b></p><p> printf("存盤成功!\n");</p><p> fclose(fp); //關閉磁盤文件</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> //頭結點已經生成了</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 學生信息錄入\n");</p><p> printf("\t\t\t2 學生信息查找\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ù)學\n2、英語\n3、計算機\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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據結構課程設計---實現(xiàn)兩個鏈表的合并
- 實現(xiàn)兩個鏈表的合并數(shù)據結構課程設計
- 數(shù)據結構課程設計多維數(shù)組
- 數(shù)據結構課程設計---學生成績管理問題
- 數(shù)據庫課程設計---學生成績分析問題
- 數(shù)據結構課程設計-大數(shù)相乘等
- 數(shù)據結構課程設計---成績分析與全國交通咨詢模擬
- 數(shù)據結構課程設計(迷宮問題)
- 數(shù)據結構課程設計迷宮問題
- 數(shù)據結構課程設計--迷宮問題
- 數(shù)據結構--稀疏矩陣課程設計
- 數(shù)據結構課程設計---稀疏矩陣
- 迷宮問題——數(shù)據結構課程設計迷宮問題
- 數(shù)據結構課程設計-迷宮問題
- 數(shù)據結構迷宮問題課程設計
- 數(shù)據結構課程設計—迷宮問題
- 數(shù)據結構課程設計---迷宮問題
- 數(shù)據結構課程設計---迷宮問題
- 數(shù)據結構課程設計--數(shù)組的存儲格式轉換
- 數(shù)據結構課程設計--單鏈表兩個集合相加減的算法
評論
0/150
提交評論