版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計任務(wù)書</b></p><p> 學(xué) 院信息科學(xué)與工程專 業(yè)通信工程</p><p> 學(xué) 生 姓 名學(xué) 號</p><p> 設(shè) 計 題 目C語言課程設(shè)計</p><p> 內(nèi)容及要求:加深對C語言基礎(chǔ)知識的掌握,使用C語言編程實現(xiàn)以下題目的設(shè)計。題目名稱: 數(shù)據(jù)分節(jié)與刪除字符、
2、學(xué)生成績統(tǒng)計程序的設(shè)計內(nèi)容及要求:1、編寫一個程序,將某個位數(shù)不確定的正整數(shù)進行三位分節(jié)后輸出,比如輸入87654321,應(yīng)輸出87,654,3212、編寫函數(shù)fun(char a[],int k,int n),其功能是:刪除字符串中指定下標開始的n個字符,形參中,a數(shù)組中存放字符串,k中存放指定下標。例如,若輸入字符串為:Helloloa World!,k的值是5,n的值是3。應(yīng)輸出:Hello World!3、學(xué)生成績統(tǒng)計程序設(shè)計設(shè)
3、計結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)中包含學(xué)生數(shù)據(jù)為:學(xué)號、姓名、物理分數(shù)、數(shù)學(xué)分數(shù)、外語分數(shù)、計算機分數(shù)。設(shè)計各個函數(shù),分別實現(xiàn)以下功能:(1)輸入學(xué)生數(shù)據(jù) (2)顯示所有學(xué)生信息 (3)統(tǒng)計每科的最高分、最低分;不及格人數(shù)、不及格學(xué)生的數(shù)據(jù)。設(shè)計菜單,通過選擇菜單調(diào)用以上各函數(shù)。軟件開發(fā)環(huán)境Windows XP,TC2.0或Visual C++ 6.0進度安排:第18周:C語言基礎(chǔ)知識練習(xí)第18周:算法設(shè)計第19周:編寫程序代碼與程序調(diào)試第19周
4、:答辯、驗收程</p><p> 指導(dǎo)教師(簽字):年 月 日學(xué)院院長(簽字):年 月 日</p><p><b> 目 錄</b></p><p><b> 一、題目要求1</b></p><p><b> 二、算法設(shè)計2</b></p>
5、<p><b> 三、編程實現(xiàn)12</b></p><p><b> 四、結(jié)果分析19</b></p><p><b> 五、參考文獻24</b></p><p><b> 一、題目要求</b></p><p><b>
6、; 題目名稱: </b></p><p> 數(shù)據(jù)分節(jié)與刪除字符、學(xué)生成績統(tǒng)計程序的設(shè)計</p><p><b> 內(nèi)容:</b></p><p> 1、編寫一個程序,將某個位數(shù)不確定的正整數(shù)進行三位分節(jié)后輸出,比如輸入87654321,應(yīng)輸出87,654,321</p><p> 2、編寫函數(shù)fun
7、(char a[],int k,int n),其功能是:刪除字符串中指定下標開始的n個字符,形參中,a數(shù)組中存放字符串,k中存放指定下標。例如,若輸入字符串為:Helloloa World!,k的值是5,n的值是3。應(yīng)輸出:Hello World!</p><p> 3、學(xué)生成績統(tǒng)計程序設(shè)計</p><p> 設(shè)計結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)中包含學(xué)生數(shù)據(jù)為:學(xué)號、姓名、物理分數(shù)、數(shù)學(xué)分數(shù)、外語分
8、數(shù)、計算機分數(shù)。設(shè)計各個函數(shù),分別實現(xiàn)以下功能:</p><p> (1)輸入學(xué)生數(shù)據(jù) </p><p> ?。?)顯示所有學(xué)生信息 </p><p> ?。?)統(tǒng)計每科的最高分、最低分;不及格人數(shù)、不及格學(xué)生的數(shù)據(jù)。</p><p> 設(shè)計菜單,通過選擇菜單調(diào)用以上各函數(shù)。</p><p><b>
9、 要求:</b></p><p> 使用C語言完成上述程序的設(shè)計、編程和調(diào)試,開發(fā)環(huán)境可采用Turbo C 2.0、 WinTC或Visual C++ 6.0等。</p><p><b> 二、算法設(shè)計</b></p><p> 1.計算不確定位數(shù)正整數(shù)的位數(shù),按照每三位為一節(jié)計算節(jié)數(shù)用于計算循環(huán)次數(shù),計算并分配內(nèi)存空間將其
10、儲存并逆序輸出 </p><p> 2、編寫函數(shù)fun(char a[],int k,int n) a中存放字符串 k為指定下標,n為刪除字符串的長度,利用循環(huán)按照要求依次刪除</p><p> 3、學(xué)生成績統(tǒng)計程序設(shè)計</p><p> 設(shè)計結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)中包含學(xué)生數(shù)據(jù)為:學(xué)號、姓名、物理分數(shù)、數(shù)學(xué)分數(shù)、外語分數(shù)、計算機分數(shù)。設(shè)計各個函數(shù),分別實現(xiàn)以下功能
11、:</p><p> ?。?)錄入:輸入學(xué)生數(shù)據(jù) (2)顯示:所有學(xué)生信息 (3)統(tǒng)計:統(tǒng)計每科的最高分、最低分;輸出不及格人數(shù)、不及格學(xué)生的數(shù)據(jù)。</p><p> 設(shè)計菜單,通過選擇菜單調(diào)用以上各函數(shù)。</p><p> menu_select()</p><p> input(Student stud[],int n)<
12、/p><p> display(Student stud[],int n)</p><p> statistic(Student stud[],int n)</p><p> statistic(Student stud[],int n)</p><p><b> 三、編程實現(xiàn)</b></p><
13、p> 程序的具體C語言代碼如下:</p><p><b> 第1題:</b></p><p> #include<stdio.h></p><p> #include<malloc.h> </p><p> int main()</p><p><b&
14、gt; {</b></p><p><b> int a;</b></p><p> scanf("%d",&a);</p><p> int i=1,b;</p><p> int temp =a;</p><p> b = temp/10;&
15、lt;/p><p><b> while(b)</b></p><p><b> {</b></p><p><b> i++;</b></p><p><b> temp = b;</b></p><p> b = temp
16、/10;</p><p><b> }</b></p><p> int c=(i%3==0)?i/3:(i/3+1);</p><p> int *p = (int *)malloc(c*sizeof(int));</p><p><b> int j,d;</b></p>
17、<p> for(j=0;j<c;j++)</p><p><b> {</b></p><p><b> d=a%1000;</b></p><p> p[c-j-1] = d;</p><p><b> a=a/1000;</b></p>
18、;<p><b> }</b></p><p> for(j=0;j<c;j++)</p><p><b> {</b></p><p> if(j !=c-1)</p><p> printf("%d,",p[j]); </p>&
19、lt;p><b> else</b></p><p> printf("%d",p[j]); </p><p><b> }</b></p><p> getchar();</p><p> getchar();</p><p><
20、;b> }</b></p><p><b> 第2題:</b></p><p> #include<stdio.h></p><p> #include<string.h></p><p> void fun(char a[],int k,int n);</p&g
21、t;<p><b> main()</b></p><p><b> {</b></p><p> char a[80];</p><p><b> int k;</b></p><p><b> int n;</b></p&
22、gt;<p> printf("input string:\n");</p><p><b> gets(a);</b></p><p> printf("input k,n:\n");</p><p> scanf("%d,%d",&k,&n);
23、</p><p> fun(a,k, n);</p><p><b> return 0;</b></p><p><b> }</b></p><p> void fun(char a[],int k,int n)</p><p><b> {</
24、b></p><p><b> int i;</b></p><p> for(i=k;i<strlen(a)-n;i++)</p><p><b> {</b></p><p> a[i]=a[i+n];</p><p><b> }<
25、/b></p><p> a[i]='\0';</p><p><b> puts(a);</b></p><p><b> }</b></p><p><b> 第3題:</b></p><p> #include<
26、;stdio.h> /*引用庫函數(shù)*/ </p><p> #include<stdlib.h> </p><p> #include<ctype.h> </p><p> #include<string.h> </p><p> typedef struct</p><p
27、><b> {</b></p><p> int Physics;/*物理成績*/</p><p> int Mathematics;/*數(shù)學(xué)成績*/</p><p> int ForeignLanguage;/*外語成績*/</p><p> int Computer;/*計算機成績*/</p&g
28、t;<p><b> }Score;</b></p><p> typedef struct /*定義結(jié)構(gòu)體數(shù)組*/ </p><p><b> { </b></p><p> char num[10]; /*學(xué)號*/ </p><p> char name[20]; /*姓
29、名*/ </p><p> //int score; /*成績*/ </p><p> Score m_Score;</p><p> }Student; </p><p> Student stu[80]; /*結(jié)構(gòu)體數(shù)組變量*/ </p><p> int menu_select() /*菜單函數(shù)*/
30、</p><p><b> { </b></p><p><b> char c; </b></p><p><b> do{ </b></p><p> system("cls"); /*運行前清屏*/ </p><p>
31、 printf("\t\t****Students' Grade Management System****\n"); /*菜單選擇*/ </p><p> printf("\t\t | 1. 輸入 |\n"); </p><p> printf("\t\t | 2. 顯示|\n"); </p><
32、p> printf("\t\t | 3. 統(tǒng)計 |\n"); </p><p> printf("\t\t | 0. 退出 |\n"); </p><p> printf("\t\t*****************************************\n"); </p><p>
33、 printf("\t\t\tGive your Choice(0-3):"); </p><p> c=getchar(); /*讀入選擇*/ </p><p> }while(c<'0'||c>'3'); </p><p> return(c-'0'); /*返回選擇*/ &l
34、t;/p><p><b> } </b></p><p> int Input(Student stud[],int n) /*輸入若干條記錄*/ </p><p><b> {</b></p><p><b> int i=0; </b></p><p
35、> char sign,x[10]; /*x[10]為清除多余的數(shù)據(jù)所用*/ </p><p> while(sign != 'n' && sign != 'N') /*判斷*/ </p><p><b> {</b></p><p> printf("\t\t\t學(xué)號:&
36、quot;); /*交互輸入*/ </p><p> scanf("\t\t\t%s",stud[n+i].num); </p><p> printf("\t\t\t姓名:"); </p><p> scanf("\t\t\t%s",stud[n+i].name); </p><
37、p> printf("\t\t\t物理分數(shù):"); </p><p> scanf("\t\t\t%d",&stud[n+i].m_Score.Physics);</p><p> printf("\t\t\t數(shù)學(xué)分數(shù):"); </p><p> scanf("\t\t\t%
38、d",&stud[n+i].m_Score.Mathematics); </p><p> printf("\t\t\t外語分數(shù):"); </p><p> scanf("\t\t\t%d",&stud[n+i].m_Score.ForeignLanguage); </p><p> print
39、f("\t\t\t計算機分數(shù):");</p><p> scanf("\t\t\t%d",&stud[n+i].m_Score.Computer); </p><p> gets(x); /*清除多余的輸入*/ </p><p> printf("\t\t\tany more records?(Y/N)
40、"); </p><p> scanf("\t\t\t%c",&sign); /*輸入判斷*/ </p><p><b> i++; </b></p><p><b> } </b></p><p> return(n+i); </p>&
41、lt;p><b> }</b></p><p> void Display(Student stud[],int n) /*顯示所有記錄*/ </p><p><b> { </b></p><p><b> int i; </b></p><p> print
42、f("\t\t\t-----------------------------------\n"); /*格式頭*/ </p><p> printf("\t\tnumber name Phy Math Fore Comp\n"); </p><p> printf("\t\t\t----------------
43、-------------------\n"); </p><p> for(i=1;i<n+1;i++) /*循環(huán)輸入*/ </p><p><b> { </b></p><p> printf("\t\t%-8s%-8s%d\t%d\t%d\t%d\n",stud[i-1].num,stud[i-
44、1].name,stud[i-1].m_Score.Physics,stud[i-1].m_Score.Mathematics,stud[i-1].m_Score.ForeignLanguage,stud[i-1].m_Score.Computer); </p><p> if(i>1&&i%10==0) /*每十個暫停*/ </p><p><b>
45、{</b></p><p> printf("\t\t\t-----------------------------------\n"); /*格式*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p>&
46、lt;p> printf("\t\t\t-----------------------------------\n"); </p><p><b> } </b></p><p><b> } </b></p><p> printf("\t\t\t"); </p
47、><p> system("pause"); </p><p><b> }</b></p><p> void Statistic(Student stud[],int n) /*新增功能,輸出統(tǒng)計信息*/ </p><p><b> {</b></p>&l
48、t;p> int i,sum=0;</p><p> int Physics_high = 0;/*物理成績*/</p><p> int Mathematics_high = 0;/*數(shù)學(xué)成績*/</p><p> int ForeignLanguage_high = 0;/*外語成績*/</p><p> int Comp
49、uter_high = 0;/*計算機成績*/</p><p> int Physics_low = 0;/*物理成績*/</p><p> int Mathematics_low = 0;/*數(shù)學(xué)成績*/</p><p> int ForeignLanguage_low = 0;/*外語成績*/</p><p> int Compu
50、ter_low = 0;/*計算機成績*/</p><p> for(i=0;i<n;i++) /*循環(huán)輸入判斷*/ </p><p><b> {</b></p><p> /*物理最高和最低分的判斷*/</p><p> if(stud[Physics_high].m_Score.Physics <
51、; stud[i].m_Score.Physics)</p><p> Physics_high = i;</p><p> if(stud[Physics_low].m_Score.Physics > stud[i].m_Score.Physics)</p><p> Physics_low=i;</p><p><b&g
52、t; /*不及格科目*/</b></p><p> if(stud[i].m_Score.Physics < 60)</p><p> printf("\t\t\t%-16s%-15s%d Phy\n",stud[i].num,stud[i].name,stud[i].m_Score.Physics);</p><p>
53、 /*數(shù)學(xué)最高和最低分的判斷*/</p><p> if(stud[Mathematics_high].m_Score.Mathematics < stud[i].m_Score.Mathematics)</p><p> Mathematics_high = i;</p><p> if(stud[Mathematics_low].m_Score.Ma
54、thematics > stud[i].m_Score.Mathematics)</p><p> Mathematics_low=i;</p><p><b> /*不及格科目*/</b></p><p> if(stud[i].m_Score.Mathematics < 60)</p><p>
55、printf("\t\t\t%-16s%-15s%d Math\n",stud[i].num,stud[i].name,stud[i].m_Score.Mathematics);</p><p> /*外語最高和最低分的判斷*/</p><p> if(stud[ForeignLanguage_high].m_Score.ForeignLanguage < s
56、tud[i].m_Score.ForeignLanguage)</p><p> ForeignLanguage_high = i;</p><p> if(stud[ForeignLanguage_low].m_Score.ForeignLanguage > stud[i].m_Score.ForeignLanguage)</p><p> Forei
57、gnLanguage_low=i;</p><p><b> /*不及格科目*/</b></p><p> if(stud[i].m_Score.ForeignLanguage < 60)</p><p> printf("\t\t\t%-16s%-15s%d Fore\n",stud[i].num,stud[i
58、].name,stud[i].m_Score.ForeignLanguage);</p><p> /*計算機最高和最低分的判斷*/</p><p> if(stud[Computer_high].m_Score.Computer < stud[i].m_Score.Computer)</p><p> Computer_high = i;</p&
59、gt;<p> if(stud[Computer_low].m_Score.Computer > stud[i].m_Score.Computer)</p><p> Computer_low=i;</p><p><b> /*不及格科目*/</b></p><p> if(stud[i].m_Score.Comp
60、uter < 60)</p><p> printf("\t\t\t%-16s%-15s%d Comp\n",stud[i].num,stud[i].name,stud[i].m_Score.Computer);</p><p><b> }</b></p><p> printf("\t\t\tthe
61、re are %d records.\n",n*4); /*總共記錄數(shù)*/ </p><p> printf("\t\t\tthe Physics hignest score:\n"); /*物理最高分*/ </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n",stud[Physic
62、s_high].num,stud[Physics_high].name,stud[Physics_high].m_Score.Physics); </p><p> printf("\t\t\tthe Mathematics hignest score:\n"); /*數(shù)學(xué)最高分*/ </p><p> printf("\t\t\tnumber:%s na
63、me:%s score:%d\n",stud[Mathematics_high].num,stud[Mathematics_high].name,stud[Mathematics_high].m_Score.Mathematics); </p><p> printf("\t\t\tthe Foreign Language hignest score:\n"); /*外語最高分*/
64、 </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n",stud[ForeignLanguage_high].num,stud[ForeignLanguage_high].name,stud[ForeignLanguage_high].m_Score.ForeignLanguage); </p><p> pri
65、ntf("\t\t\tthe Computer hignest score:\n"); /*計算機最高分*/ </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n",stud[Computer_high].num,stud[Computer_high].name,stud[Computer_high].m_Score.C
66、omputer); </p><p> printf("\n\n");</p><p> printf("\t\t\tthe Physics lowest score:\n"); /*物理最低分*/ </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n&quo
67、t;,stud[Physics_low].num,stud[Physics_low].name,stud[Physics_low].m_Score.Physics);</p><p> printf("\t\t\tthe Mathematics lowest score:\n"); /*數(shù)學(xué)最低分*/ </p><p> printf("\t\t\tnum
68、ber:%s name:%s score:%d\n",stud[Mathematics_low].num,stud[Mathematics_low].name,stud[Mathematics_low].m_Score.Mathematics);</p><p> printf("\t\t\tthe Foreign Language lowest score:\n"); /*外語最
69、低分*/ </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n",stud[ForeignLanguage_low].num,stud[ForeignLanguage_low].name,stud[ForeignLanguage_low].m_Score.ForeignLanguage);</p><p> pri
70、ntf("\t\t\tthe Computer lowest score:\n"); /*計算機最低分*/ </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n",stud[Computer_low].num,stud[Computer_low].name,stud[Computer_low].m_Score.Compu
71、ter);</p><p><b> } </b></p><p> void main() /*主函數(shù)*/ </p><p><b> { </b></p><p><b> int n=0; </b></p><p><b> f
72、or(;;) </b></p><p><b> { </b></p><p> switch(menu_select()) /*選擇判斷*/ </p><p><b> { </b></p><p><b> case 1: </b></p>
73、<p> printf("\t\t\tInput Records\n"); /*輸入若干條記錄*/ </p><p> n=Input(stu,n); </p><p><b> break; </b></p><p><b> case 2: </b></p><
74、;p> printf("\t\t\tDisplay All Records\n"); /*顯示所有記錄*/ </p><p> Display(stu,n); </p><p><b> break; </b></p><p><b> case 3: </b></p>&l
75、t;p> printf("\t\t\tStatistic\n"); </p><p> Statistic(stu,n); /*新增功能,輸出統(tǒng)計信息*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p>&l
76、t;p><b> break; </b></p><p><b> case 0: </b></p><p> printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /*結(jié)束程序*/ </p><p> printf("\t\t\t"
77、); </p><p> system("pause"); </p><p><b> exit(0); </b></p><p><b> } </b></p><p><b> } </b></p><p><b&g
78、t; }</b></p><p><b> 四、結(jié)果分析</b></p><p><b> 第1題:</b></p><p> 程序運行結(jié)果如圖1: </p><p> 圖1 程序運行結(jié)果1 </p><p><b> 第2題:</b&
79、gt;</p><p> 程序運行結(jié)果如圖2:</p><p> 圖2 程序運行結(jié)果2</p><p><b> 第3題:</b></p><p> 程序運行結(jié)果如圖3:</p><p> 圖3-1 程序運行結(jié)果3</p><p> 圖3-2 程序運行結(jié)果3&l
80、t;/p><p> 圖3-3 程序運行結(jié)果3</p><p> 圖3-4 程序運行結(jié)果3</p><p> 圖3-5 程序運行結(jié)果3</p><p><b> 五、參考文獻</b></p><p> [1]馬秀麗,劉志嫵,李筠.C語言程序設(shè)計.北京:清華大學(xué)出版社,2008</p>
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++語言課程設(shè)計 ----學(xué)生成績統(tǒng)計
- c語言課程設(shè)計-學(xué)生成績統(tǒng)計管理
- c語言課程設(shè)計學(xué)生成績統(tǒng)計設(shè)計報告
- c語言程序課程設(shè)計--學(xué)生成績管理系統(tǒng)設(shè)計
- c語言課程設(shè)計報告-- 學(xué)生成績統(tǒng)計系統(tǒng)
- c語言程序課程設(shè)計----學(xué)生成績管理系統(tǒng)
- c語言程序設(shè)計課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生成績簡單管理程序
- c語言課程設(shè)計-學(xué)生成績簡單管理程序
- 成績統(tǒng)計程序課程設(shè)計報告
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)程序設(shè)計
- c語言課程設(shè)計--學(xué)生成績管理
- c語言課程設(shè)計--- 學(xué)生成績管理
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)設(shè)計
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論