

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課程設計報告——統計數字</p><p><b> 【問題描述】</b></p><p> 某次科研調查時得到了n個自然數,每個數均不超過1500000000(1.5*109)。已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,并按照自然數從小到大的順序輸出統計結果。</p><p><b&
2、gt; 【設計需求及分析】</b></p><p> 用一維數組存儲調查得到的n個自然數,原始數據保存在文件count.in,第一行輸入自然數個數,2--n+1輸入自然數。結果保存在count.out中。</p><p> 用冒泡法對n個自然數進行排序,分別統計不同的自然數個數。</p><p><b> 【設計功能的實現】</b
3、></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> void main()</p><p> {float a[100],t;</p><p> int i,n,j,sum;</p>&
4、lt;p> freopen("count.in.txt","r",stdin);//原始數據保存在count.in中</p><p> freopen("count.out.txt","w",stdout);//輸出結果保存在count.out中</p><p> scanf("%d&qu
5、ot;,&n);</p><p> for(i=0;i<n;i++)</p><p> scanf("%f",&a[i]);//輸入n個自然數</p><p> for(i=0;i<n;i++)</p><p> for(j=i;j<n;j++)</p><p&
6、gt; if(a[i]>a[j])</p><p> {t=a[i];a[i]=a[j];a[j]=t;}//對n個自然數進行排序</p><p><b> sum=1;</b></p><p> for(i=0,j=1;j<n;i++,j++)</p><p> if(a[i]!=a[j])<
7、;/p><p><b> break;</b></p><p><b> if(j>=n)</b></p><p> {printf("%f:%d\n",a[0],n);}</p><p><b> else</b></p><
8、p><b> {</b></p><p> for(i=0,j=1;j<n;i++,j++)</p><p> {if(a[i]==a[j])sum++;else {printf("%f:%d\n",a[i],sum);sum=1;}}</p><p><b> sum=1;</b>
9、</p><p> for(i=n-1;i>=1;i--)</p><p> if(a[i]==a[i-1])</p><p><b> sum++;</b></p><p><b> else </b></p><p> {printf("%f:%
10、d\n",a[i],sum);break;}// //統計不同自然數的出現次數</p><p><b> }</b></p><p><b> }</b></p><p> 【實例測設及運行結果】</p><p><b> 【心得體會】</b></p&g
11、t;<p> 文本的存儲和讀取原本是用指針來完成實現的,在實現的過程中遇到了不小的麻煩且用指針實現過于繁瑣,故改用freopen("count.in.txt","r",stdin);</p><p> freopen("count.out.txt","w",stdout);語句實現,使程序變的簡單易懂。</p&
12、gt;<p> 課程設計報告——誰拿了最多獎學金</p><p><b> 【問題描述】</b></p><p> 某校的慣例是在每學期的期末考試之后發(fā)放獎學金。發(fā)放的獎學金共有五種,獲取的條件各自不同:</p><p> 1) 院士獎學金,每人8000元,期末平均成績高于80分(>80),并且在本學期內發(fā)表1篇或1
13、篇以上論文的學生均可獲得;</p><p> 2) 五四獎學金,每人4000元,期末平均成績高于85分(>85),并且班級評議成績高于80分(>80)的學生均可獲得;</p><p> 3) 成績優(yōu)秀獎,每人2000元,期末平均成績高于90分(>90)的學生均可獲得;</p><p> 4) 西部獎學金,每人1000元,期末平均成績高于85分
14、(>85)的西部省份學生均可獲得;</p><p> 5) 班級貢獻獎,每人850元,班級評議成績高于80分(>80)的學生干部均可獲得;</p><p> 只要符合條件就可以得獎,每項獎學金的獲獎人數沒有限制,每名學生也可以同時獲得多項獎學金。例如姚林的期末平均成績是87分,班級評議成績82分,同時他還是一位學生干部,那么他可以同時獲得五四獎學金和班級貢獻獎,獎金總數是4
15、850元。</p><p><b> 【設計需求及分析】</b></p><p> 定義結構體類型,用結構體申明一個結構體數組用于存儲學生信息。</p><p> 在循環(huán)輸入數據的同時,分別計算每個同學應得獎學金數和總的獎學金數分別存在sum數組中和add變量中。</p><p> 申明變量max,依次與每個同學
16、應得獎學金比較,存儲獲得獎學金最多學生姓名和獎學金數。</p><p><b> 【設計功能的實現】</b></p><p> #include <stdio.h> void main() { struct Student {
17、; char name[20]; int grade1; int grade2; char ganbu;
18、 char xibu; int title; }a[100];//定義結構體,同時申明一個結構體數組用于存儲學生信息。 int N; scanf("%d",&N); int i; int&
19、#160;sum[100]={0}; int add=0; for(i=0;i<N;i++) { scanf("%s %d %d %s %s %d",&a[i].name,&a[
20、i].grade1,&a[i].grade2,&a[i].ganbu,&a[i].xibu,&a[i].title); if(a[i].grade1>80 && a[i].title>0) sum[i]+=8000; if(a
21、[i].grade1>8</p><p> 【實例測設及運行結果】</p><p><b> 【心得體會】</b></p><p> 在實現過程中原本是通過定義each方法類來實現對每個學生應得獎學金的計算和result方法類對學生的獎學金進行比較得出獲獎學金最多的學生和最高獎學金的,但是經過比較覺得在主函數中實現比較有條理,更加容
22、易理解。如果定義類方法實現,類方法實現簡單,但是類方法需要申明、定義、調用。所以選擇了在主函數中實現。</p><p> 課程設計報告——單詞的計數</p><p> 專業(yè):__軟件工程___ 班級:_1308班_ 姓名:__朱瑞春_______ 學號:__ 2013005493 _ 完成日期:_6.26______</p><p><b>
23、 【問題描述】</b></p><p> 假設有如下的英文文本文檔:(此處為太原理工大學學校簡介英文版)</p><p> TAIYUAN UNIVERSITY OF TECHNOLOGY</p><p> Taiyuan University of Technology (TUT) has its history traced all the
24、way back to the Western Learning School of Shanxi Grand Academy (1902), which was one of the three earliest national universities in China. With the tradition and development of over 100 years, TUT is now a general unive
25、rsity with engineering as the major, sciences and technology integrated and coordinate development of multiple disciplines. It is a university that is included in the “Project 211” --- the national higher educ</p>
26、<p><b> ……</b></p><p> Recollecting the centennial history, generations of TUT have created its mission and glory of a century with responsibility and confidence; expecting the promising
27、 tomorrow, over 30,000 TUT students and faculty are producing splendor and perspectives by their wisdom and diligence. In the new era, Taiyuan University of Technology, following the Conception of Scientific Development
28、, is determined to further the reformation on education, to reinforce the teaching management so as to upgrade its te</p><p> 設計C或C++程序,統計在這樣的英文文本文件中,出現了多少個單詞,每個單詞出現了幾次。連續(xù)的英文字符都認為單詞(不包括數字),單詞之間用空格或標點符號分隔。&l
29、t;/p><p><b> 【設計需求及分析】</b></p><p> 定義結構體用于存儲一個單詞,freopen語句生成文本文檔并用來保存結果。</p><p> 通過FILE指針判斷文本打開是否成功,成功則輸入單詞。</p><p><b> 【設計功能的實現】</b></p>
30、<p> #include<stdio.h> #include<string.h>#include<ctype.h> #include <stdlib.h> #define N 1000struct a { char ch[20]; int
31、;m;int flag;}; void main() { freopen("count.out.txt","w",stdout);//把生成的結果保存在生成的count.out文檔中。 struct a word[N]={NULL};char tem[20];int k=0,j=0,i=0,c
32、ount=1; FILE *fp; char c[20]; if((fp=fopen("tyut.txt","r"))!=NULL) { while(!(feof(fp))) { fscanf(fp,"%s",word[k].ch);
33、160; k++; }//如果tyut的文本打開成功,則向文本中輸入單詞。for(i=0;i<k;i++) { if(word[i].flag!=1){ word[i]</p><p><b> }</b></p><p> } }
34、 printf("文本共有單詞數:%d\n",k); system("pause"); printf("文本統計結果如下: \n");for(i=0;(word[i].ch!=NULL)&&(i<N);i
35、++){if(word[i].m!=0){printf("%3d. %s,出現了次數:%d次.\n",count,word[i].ch,word[i].m);count++;}} for(i=0;i<k;i++)//字典序排序 for(j=i+1;j<k;j++)
36、 if(strcmp(word[i].ch,word[j].ch)>0) { strcpy(tem
37、,word[i].ch); strcpy(word[i].ch,word[j].ch); strcpy(word[j].ch,tem); &
38、#160; } printf("這%d個單詞按照字典排序輸出為:\n",k); for</p><p> 【實例測設及運行結果】</p><p>
39、;<b> 【心得體會】</b></p><p> 字典序排序實際上就是比較字符串的ASCII碼值。如果比較結果大于0,則交換順序。</p><p> 課程設計報告——最小生成樹</p><p> 專業(yè):__軟件工程___ 班級:_1308班_ 姓名:__朱瑞春_____ 學號:__ 2013005493 _ 完成日期:___
40、6.27____</p><p><b> 【問題描述】</b></p><p> 給定一個地區(qū)的n個城市間的距離網,用Prim算法或Kruskal算法建立最小生成樹,并計算得到的最小生成樹的代價。</p><p><b> 【設計需求及分析】</b></p><p> 1、城市間的距離網采
41、用鄰接矩陣表示,鄰接矩陣的存儲結構定義采用課本中給出的定義,</p><p> 若兩個城市之間不存在道路,則將相應邊的權值設為自己定義的無窮大值。</p><p> 2、要求在屏幕上顯示得到的最小生成樹中包括了哪些城市間的道路,并顯示得到的最小生成樹的代價。</p><p> 3、表示城市間距離網的鄰接矩陣(要求至少6個城市,10條邊)。</p>
42、<p><b> 【設計功能的實現】</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #define TURE 999</p><p> typedef struct ArcNode<
43、;/p><p> { char vexs[10];</p><p> int edgs[10][10];</p><p><b> int n,e;</b></p><p><b> }mgraph;</b></p><p> struct edg{</p>
44、;<p><b> int v1;</b></p><p><b> int v2;</b></p><p><b> int cost;</b></p><p> } a[10],b[10];//定義結構體</p><p> void greatemg
45、raph(mgraph *G)</p><p> { int i,j,k,weight,m,n;</p><p> int ch1,ch2;</p><p><b> char a,b;</b></p><p> printf("請輸入頂點數和邊數:");</p>
46、<p> scanf("%d %d",&(G->n),&(G->e));</p><p> for(i=0;i<G->n;i++)</p><p> { getchar();</p><p> printf("請輸入第%d個頂點:",i+1);</p&g
47、t;<p> scanf("%c",&(G->vexs[i]));</p><p><b> }</b></p><p> for(i=0;i<G->n;i++)</p><p> for(j=0;j<G->n;j++)</p><p>
48、G->edgs[i][j]=0;</p><p> for(k=0;k<G->e;k++)</p><p> { printf("請輸入第%d條邊的頂點權值:",k+1);</p><p> getchar();</p><p> scanf("%c %c %d",&a
49、mp;a,&b,&weight);</p><p><b> m=0,n=0;</b></p><p> for(m=0;G->vexs[m]!=a;m++);</p><p> for(n=0;G->vexs[n]!=b;n++);</p><p> ch1=m;ch2=n;<
50、/p><p> G->edgs[ch1][ch2]=weight;G->edgs[ch2][ch1]=weight;</p><p><b> }</b></p><p><b> }</b></p><p> void prime(mgraph *G,int v)</p>
51、;<p> { int i,j,k,min;</p><p><b> struct</b></p><p> { int adjvex;</p><p> int lowcost;</p><p> }closedge[10];</p><p> for(
52、i=0;i<G->n;i++)</p><p> { closedge[i].lowcost=G->edgs[v][i];</p><p> closedge[i].adjvex=v;</p><p><b> }</b></p><p> closedge[v].lowcost=TURE
53、;</p><p> for(i=1;i<G->n;i++)</p><p> { min=100;</p><p> for(j=0;j<G->n;j++)</p><p> if(closedge[j].lowcost!=TURE && closedge[j].lowcost!=0
54、)</p><p><b> { </b></p><p> if(closedge[j].lowcost<min)</p><p><b> {</b></p><p> min =closedge[j].lowcost;</p><p><b>
55、; k=j;</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("%C %c %d\n",G->vexs[closedge[k].adjvex],G->vexs[k], min);</p>
56、;<p> closedge[k].lowcost=TURE;</p><p> for(j=0;j<G->n;j++)</p><p> if(closedge[j].lowcost!=TURE)</p><p> if(G->edgs[k][j]<closedge[j].lowcost||closedge[j].lo
57、wcost==0)</p><p> { closedge[j].lowcost=G->edgs[k][j];</p><p> closedge[j].adjvex=k;</p><p><b> }</b></p><p><b> }</b></p><
58、p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> mgraph *G,a;char ch1;</p><p><b> G=&a;</b></p><p>
59、 printf("建立圖的領結舉證\n");</p><p> greatemgraph(G);</p><p> getchar();</p><p><b> ch1=1;</b></p><p> printf("\n");</p><p>
60、 printf("最小生成樹 ");</p><p> printf("prime輸出為:\n");</p><p> prime(G,0);</p><p> system("pause");</p><p><b> }</b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論