欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C語言課程設(shè)計(jì)實(shí)踐報(bào)告5篇

      時(shí)間:2019-05-12 11:25:17下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言課程設(shè)計(jì)實(shí)踐報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言課程設(shè)計(jì)實(shí)踐報(bào)告》。

      第一篇:C語言課程設(shè)計(jì)實(shí)踐報(bào)告

      北京理工大學(xué)珠海學(xué)院 C語言程序設(shè)計(jì)實(shí)踐報(bào)告

      2014—2015學(xué)年第1學(xué)期

      學(xué) 院: 計(jì)算機(jī)學(xué)院 專業(yè)班級(jí): 軟件工程5班 學(xué) 號(hào): ***6 學(xué)生姓名: 陳洪陽 指導(dǎo)教師: 戴俊雅

      成 績(jī):

      時(shí) 間:

      2015年 1月5日

      實(shí)踐1.猜數(shù)游戲 題目概述:

      編程先由計(jì)算機(jī)“想”一個(gè)1~100 之間的數(shù)請(qǐng)人猜,如果人猜對(duì)了,在屏幕上輸出人猜了多少次才猜對(duì)此數(shù),以此來反映猜數(shù)者“猜”的水平,則結(jié)束游戲;否則計(jì)算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10 次,如果猜了10 次仍未猜中的話,則停止本次猜數(shù),然后繼續(xù)猜下一個(gè)數(shù)。每次運(yùn)行程序可以反復(fù)猜多個(gè)數(shù),直到操作者想停止時(shí)才結(jié)束。

      程序設(shè)計(jì)概要與分析:

      在源程序的開頭中包含stdlib和time庫函數(shù),這樣我們就可以調(diào)用srand()和rand()函數(shù),其中調(diào)用srand()提供一個(gè)種子,它是一個(gè)unsigned int類型,取值范圍是0~65535,然后調(diào)用rand(),根據(jù)提供給srand()的種子值返回一個(gè)隨機(jī)數(shù),我們用rand()%100就把隨機(jī)決定的數(shù)值范圍確定在1~100之間,然后定義一個(gè)num,記錄這個(gè)隨機(jī)產(chǎn)生的隨機(jī)數(shù),定義input,來儲(chǔ)存用戶輸入的猜數(shù)值,用times來記錄猜的次數(shù),用do while循環(huán)來執(zhí)行用戶猜的次數(shù)有10次,用if else條件語句來判斷用戶是否猜中,或猜得太大、太小,用一個(gè)while循環(huán)來做總嵌套,設(shè)置n的值一開始不為零,while循環(huán)的條件是當(dāng)n的值不等于0,最后用戶就可以修改n的值來決定是否退出。

      程序代碼:

      #include #include #include

      int main(){

      int n=1;while(n!=0){

      srand((unsigned)time(NULL));int num,input;int times=0;num=(rand()%100)+1;printf(“在1~100間猜一個(gè)數(shù)n”);scanf(“%d”,&input);do{

      if(input==num){

      } else if(input>num){

      } else if(input

      }

      }

      } printf(“你猜的數(shù)太小了,請(qǐng)?jiān)俨乱粋€(gè)n”);scanf(“%d”,&input);times++;}while(times<9);if(times>=9)printf(“你已經(jīng)猜了10次都猜不中,你輸了n”);printf(“繼續(xù)下一輪新的猜數(shù)請(qǐng)按1,退出請(qǐng)按0n”);scanf(“%d”,&n);return 0;運(yùn)行結(jié)果示例:

      選擇繼續(xù)下一輪新的猜數(shù),猜了10次都沒猜中

      心得體會(huì):

      要懂得如何生成一個(gè)隨機(jī)數(shù),并且要確定它的范圍在1~100之間,同時(shí)我們還要用do while循環(huán)體把猜數(shù)的次數(shù)控制在10次,每當(dāng)我們輸入猜想的數(shù)時(shí)就要做出判斷,看看是否猜中,或者猜得太大或太小,輸出提示信息。也懂得了通過修改while判斷循環(huán)里面的條件,使得循環(huán)體里面的程序受我們修改的條件控制,可以繼續(xù)循環(huán)執(zhí)行或者不再繼續(xù)執(zhí)行。

      實(shí)踐2.成績(jī)排名次 題目概述:

      某班期末考試科目為數(shù)學(xué)(MT)、英語(EN)和物理(PH),有最多不超過30 人參加考 試,學(xué)號(hào)可以用輸入的序號(hào)代替。考試后要求:(1)計(jì)算每個(gè)學(xué)生的總分和平均分;

      (2)按總分成績(jī)由高到低排出成績(jī)的名次;

      (3)打印出名次表,表格內(nèi)包括學(xué)生編號(hào)、各科分?jǐn)?shù)、總分和平均分;(4)任意輸入一個(gè)學(xué)號(hào),能夠查找出該學(xué)生在班級(jí)中的排名及其考試分?jǐn)?shù)。

      程序設(shè)計(jì)與概要:

      定義存儲(chǔ)學(xué)生信息的結(jié)構(gòu)體,包括學(xué)生編號(hào),姓名,各科成績(jī),總分,平均分還有名次。該結(jié)構(gòu)體命名為student,然后定義結(jié)構(gòu)體數(shù)組student s[],首先輸入準(zhǔn)備錄入學(xué)生信息的人數(shù),用amount來記錄人數(shù),用一個(gè)for循環(huán),從0~amount-1,依次輸入每個(gè)學(xué)生的各種信息,如學(xué)號(hào),姓名,數(shù)學(xué)、英語和物理成績(jī)。用grade[]數(shù)組來存這三科的成績(jī),如grade[0]存儲(chǔ)數(shù)學(xué)成績(jī),grade[1]存儲(chǔ)英語成績(jī)。輸入之后,再用一個(gè)for循環(huán)把每個(gè)同學(xué)的總分求出來,總分再除去3求出該名同學(xué)的平均分。按總分成績(jī)由高到低排出名次,用兩個(gè)for循環(huán)嵌套,第一個(gè)循環(huán)從0~amount,表示從第一個(gè)同學(xué)開始拿出來比較,第二個(gè)循環(huán)從1~amount,表示除了之前取出的同學(xué)以外的每一個(gè)同學(xué),如果前一位同學(xué)的總分小于后一個(gè)同學(xué)的話,就交換兩人的信息,第二個(gè)循環(huán)比較之后,便會(huì)把總分最高的同學(xué)的信息儲(chǔ)存在第一個(gè),然后我們?cè)O(shè)置排名rank的值為1,rank++,進(jìn)行篩選第二名的,之后對(duì)應(yīng)地把rank的值設(shè)給學(xué)生的總分排名

      打印學(xué)生信息,輸出表格的基本框架后,用一個(gè)for循環(huán),依次輸出每個(gè)學(xué)生的信息,最后還有根據(jù)學(xué)號(hào)查詢學(xué)生信息,用戶輸入要查詢的學(xué)生學(xué)號(hào),在for循環(huán)里面依次比較,如果找到學(xué)號(hào)與用戶輸入相同的,便輸出該名學(xué)生的信息。

      程序代碼:

      #include #include #include #define M 30 struct student { unsigned int num;char name[10];int grade[3];int sum;float ave;int rank;};student s[M];int amount;

      void input(student s[]);void title();

      void list(student s[]);int main(){ input(s);int i=0;for(i=0;i

      //要求1 計(jì)算總分平均分

      s[i].sum=s[i].grade[0]+s[i].grade[1]+s[i].grade[2];

      s[i].ave=(float)s[i].sum/3;} //要求2 按總成績(jī)排序

      int rank=1;student t;for(i=0;i

      for(int j=i+1;j

      {

      if(s[i].sum

      {

      {t=s[i];

      s[i]=s[j];

      s[j]=t;

      }

      }

      }

      s[i].rank=rank;

      rank++;} //要求3 打印名次表

      title();list(s);//要求4 查詢

      int number;printf(“請(qǐng)輸入你要查詢學(xué)生的學(xué)號(hào):n”);scanf(“%d”,&number);for(int i=0;i

      if(number==s[i].num)

      {

      printf(“學(xué)號(hào)t姓名t數(shù)學(xué)t英語t物理t總分t平均分t排名n”);

      printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

      } } system(“pause”);return 0;}

      void input(student s[]){ printf(“輸入班上參加期末考試的人數(shù)(不大于30人)”);scanf(“%d”,&amount);printf(“請(qǐng)依次輸入他們的學(xué)號(hào),姓名,數(shù)學(xué)成績(jī),英語成績(jī)和物理成績(jī)n”);for(int i=0;i

      printf(“第%d位同學(xué)的學(xué)號(hào),姓名,數(shù)學(xué)成績(jī),英語成績(jī)和物理成績(jī)n”,i+1);

      scanf(“%u%s%d%d%d”,&s[i].num,s[i].name,&s[i].grade[0],&s[i].grade[1],&s[i].grade[2]);} }

      void title(){

      printf(“ 學(xué)生成績(jī)表n”);

      printf(“-----------------------------n”);

      printf(“學(xué)號(hào)t姓名t數(shù)學(xué)t英語t物理t總分t平均分t排名n”);

      printf(“-----------------------------n”);}

      void list(student s[]){ //n表示人數(shù)

      int i;//rank=1;for(i=0;i

      printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

      printf(“-----------------------------n”);} }

      運(yùn)行結(jié)果示例:

      確定錄入人數(shù)之后,依次輸入每個(gè)學(xué)生的信息

      打印出名次表:

      輸入學(xué)生的學(xué)號(hào),查詢學(xué)生信息:

      心得體會(huì):

      懂得了用結(jié)構(gòu)體將不同的數(shù)據(jù)類型結(jié)合在一起,然后定義結(jié)構(gòu)體數(shù)組,使得每個(gè)數(shù)組中的成員都具有不同的數(shù)據(jù)類型變量。而且同屬于一個(gè)數(shù)據(jù)類型,也可以定義數(shù)組來表示相同的類型但是有多個(gè)不同值,比如成績(jī)這個(gè)變量。也懂得了用for循環(huán)語句求總分,用for循環(huán)語句將數(shù)組從頭到尾輸出。

      實(shí)踐3.單科成績(jī)統(tǒng)計(jì) 題目概述:

      學(xué)生成績(jī)統(tǒng)計(jì)(一維數(shù)組)從鍵盤輸入一個(gè)班(全班最多不超過 30人)學(xué)生某門課的成績(jī),當(dāng)輸入成績(jī)?yōu)樨?fù)值時(shí),輸入結(jié)束,分別實(shí)

      現(xiàn)下列功能:(1)統(tǒng)計(jì)不及格人數(shù)并打印不及格學(xué)生名單;

      (2)統(tǒng)計(jì)成績(jī)?cè)谌嗥骄旨捌骄种系膶W(xué)生人數(shù),并打印這些學(xué)生的名單;(3)以直方圖方式統(tǒng)計(jì)各分?jǐn)?shù)段的學(xué)生人數(shù)及所占的百分比。形式如下: 分段 人數(shù) 圖形 <60 3(10%)*** 60‐69 8(…)******** 70‐79 7(…)******* 80‐89 8(…)******** >=90 4(…)****

      程序設(shè)計(jì)與概要:

      定義一個(gè)結(jié)構(gòu)體stu,里面有學(xué)生的姓名和成績(jī),然后定義一個(gè)s[]數(shù)組存放每個(gè)學(xué)生的姓名和成績(jī),輸入函數(shù)中用一個(gè)for循環(huán)來依次輸入每個(gè)學(xué)生的姓名,還有輸入成績(jī),用if條件語句判斷輸入的成績(jī)是否為負(fù)數(shù),如果是就退出整個(gè)輸入函數(shù),同時(shí),我們還用if條件語句來判斷輸入的成績(jī)處于哪個(gè)分?jǐn)?shù)階段,定義n1、n2、等整形變量來存儲(chǔ)各個(gè)分?jǐn)?shù)段的總?cè)藬?shù),變量num來存放輸入的學(xué)生共有多少人,變量sum是將每個(gè)學(xué)生的成績(jī)都加在一起,最后用sum/num就等于全班該門成績(jī)的平均分,我們用一個(gè)for循環(huán)語句,判斷每個(gè)學(xué)生的成績(jī)是否小于60分,如果是就輸出他的姓名,這樣就可以打印出不及格學(xué)生的名單了。同樣的,用一個(gè)for循環(huán)語句,判斷每個(gè)學(xué)生的成績(jī)是否大于等于平均分,如果是就變量count+1,用來記錄成績(jī)大于或等于平均分的學(xué)生人數(shù),同時(shí)可將成績(jī)大于平均分的同學(xué)姓名輸出,這樣就打印出了成績(jī)?cè)诖笥诘扔谄骄值膶W(xué)生名單了。最后是輸出分?jǐn)?shù)段,用前面記錄各個(gè)分?jǐn)?shù)段人數(shù)的n值除以總?cè)藬?shù)再乘以100%就得出比例,每一個(gè)分?jǐn)?shù)段都用一句for循環(huán)語句,根據(jù)n值的大小輸入對(duì)應(yīng)數(shù)目的*。

      程序代碼:

      #include #include #define M 30 struct stu { char name[20];int score;};stu s[M];int i=0,num=0;int n1=0,n2=0,n3=0,n4=0,n5=0;float sum=0,ave=0;int count=0;void input(stu s[]);void getnotpass(stu s[]);

      void getavg(stu s[]);void percent(stu s[]);int main(){ /*stu s[M];int i=0,num=0;int n1=0,n2=0,n3=0,n4=0,n5=0;float sum=0,ave=0;*/ input(s);getnotpass(s);getavg(s);percent(s);return 0;} void input(stu s[]){ for(i=0;i

      printf(“請(qǐng)輸入第%d個(gè)學(xué)生的姓名和成績(jī)n”,i+1);

      scanf(“%s%d”,&s[i].name,&s[i].score);

      if(s[i].score<0)

      break;

      if(s[i].score>=0&&s[i].score<60)

      n1++;

      if(s[i].score>=60&&s[i].score<70)

      n2++;

      if(s[i].score>=70&&s[i].score<80)

      n3++;

      if(s[i].score>=80&&s[i].score<90)

      n4++;

      if(s[i].score>90)

      n5++;

      num++;

      sum+=s[i].score;} printf(“學(xué)生信息錄入完畢nnn”);} void getnotpass(stu s[]){ printf(“不及格人數(shù)為:%dn”,n1);printf(“不及格人員名單如下:n”);for(i=0;i

      if(s[i].score>=0&&s[i].score<60)

      printf(“%st”,s[i].name);} printf(“n”);ave=sum/num;} void getavg(stu s[]){ for(i=0;i

      if(s[i].score>=ave)count++;} printf(“成績(jī)?cè)谌嗥骄旨捌骄种系膶W(xué)生人數(shù)為:%dn”,count);printf(“成績(jī)?cè)谌嗥骄旨捌骄种系膶W(xué)生名單如下:n”);for(i=0;i

      if(s[i].score>=ave)

      printf(“%st”,s[i].name);} printf(“nnn”);} void percent(stu s[]){ printf(“各分?jǐn)?shù)段的學(xué)生人數(shù)及所占的百分比如下:n”);printf(“分段t 人數(shù)t 圖形n”);printf(“<60t%d(%.0f%%)t ”,n1,(float)n1/(float)num*100);for(i=0;i=90t%d(%.0f%%)t ”,n5,(float)n5/(float)num*100);for(i=0;i

      運(yùn)行結(jié)果示例:

      依次輸入每個(gè)學(xué)生的姓名和成績(jī),當(dāng)輸入成績(jī)?yōu)樨?fù)時(shí),便退出整個(gè)輸入:

      統(tǒng)計(jì)不及格人數(shù)還有打印不及格學(xué)生名單:

      統(tǒng)計(jì)成績(jī)?cè)谌嗥骄旨捌骄种系膶W(xué)生人數(shù),并打印這些學(xué)生的名單:

      以直方圖方式統(tǒng)計(jì)各分?jǐn)?shù)段的學(xué)生人數(shù)及所占的百分比:

      心得體會(huì):

      懂得了在for循環(huán)體內(nèi)用if條件判斷語句判斷輸入的值為負(fù)值時(shí)退出循環(huán)體。用變量計(jì)數(shù)器把符合要求的計(jì)數(shù)起來,最后可以得出符合要求的值共有多少個(gè),也懂得了用for循環(huán)從所有值里進(jìn)行篩選符合條件的值出來,更懂得了在求百分比時(shí)候要強(qiáng)制類型轉(zhuǎn)換,把int類型的計(jì)算結(jié)果給轉(zhuǎn)換為float單精度類型。

      實(shí)踐4.函數(shù)與文件訓(xùn)練 題目概述:

      將實(shí)踐練習(xí)2 中的第2題利用函數(shù)的思想進(jìn)行修改,并將學(xué)生的成績(jī)等信息輸出到文件中。要求函數(shù)參數(shù)中

      包含結(jié)構(gòu)體數(shù)組或指針。輸出到ASCII 文件的信息包括每個(gè)學(xué)生的學(xué)號(hào)、三門成績(jī)和名次,每人一行。

      程序設(shè)計(jì)與概要:由于我的實(shí)踐2中就已經(jīng)用了函數(shù),所以我只需要把學(xué)生的成績(jī)等信息輸出到文件中。用FILE *fp,fp就代表我們要對(duì)其操作的文件,用open函數(shù),根據(jù)文件的所在位置還有文件名,打開文件,并對(duì)應(yīng)要求進(jìn)行只寫的操作,如源代碼中fp=fopen(“f: st udent.txt”,“w”),w代表寫入操作,char一個(gè)c[]數(shù)組,存放對(duì)應(yīng)項(xiàng)的名稱,用fputs函數(shù)把數(shù)組里面的字符串寫入到文件里面去,用一個(gè)for循環(huán),循環(huán)調(diào)用fprintf函數(shù),把每個(gè)學(xué)生的學(xué)號(hào),各科成績(jī)和排名都寫入到文件當(dāng)中去,最后關(guān)閉文件即可。

      程序代碼:

      #include #include #include #define M 30 struct student { unsigned int num;char name[10];int grade[3];int sum;float ave;int rank;};student s[M];int amount;

      void input(student s[]);void title();void list(student s[]);int save();//輸出到文件中 int main(){ input(s);int i=0;for(i=0;i

      //要求1 計(jì)算總分平均分

      s[i].sum=s[i].grade[0]+s[i].grade[1]+s[i].grade[2];

      s[i].ave=(float)s[i].sum/3;}

      //要求2 按總成績(jī)排序

      int rank=1;student t;for(i=0;i

      for(int j=i+1;j

      {

      if(s[i].sum

      {

      {t=s[i];

      s[i]=s[j];

      s[j]=t;

      }

      }

      }

      s[i].rank=rank;

      rank++;} save();//要求3 打印名次表

      title();list(s);//要求4 查詢

      int number;printf(“請(qǐng)輸入你要查詢學(xué)生的學(xué)號(hào):n”);scanf(“%d”,&number);for(int i=0;i

      if(number==s[i].num)

      {

      printf(“學(xué)號(hào)t姓名t數(shù)學(xué)t英語tC語言t總分t平均分t排名n”);

      printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

      } } system(“pause”);return 0;} void input(student s[]){ printf(“輸入班上參加期末考試的人數(shù)(不大于30人)”);scanf(“%d”,&amount);printf(“請(qǐng)依次輸入他們的學(xué)號(hào),姓名,數(shù)學(xué)成績(jī),英語成績(jī)和物理成績(jī)n”);

      for(int i=0;i

      printf(“第%d位同學(xué)的學(xué)號(hào),姓名,數(shù)學(xué)成績(jī),英語成績(jī)和物理成績(jī)n”,i+1);

      scanf(“%u%s%d%d%d”,&s[i].num,s[i].name,&s[i].grade[0],&s[i].grade[1],&s[i].grade[2]);} } int save(){

      FILE *fp;fp=fopen(“f:student.txt”,“w”);if(!fp){

      printf(“can not open file!n”);

      exit(1);} char c[]=“學(xué)號(hào)t 數(shù)學(xué)t 物理t 英語t 排名n”;fputs(c,fp);for(int i=0;i

      fprintf(fp,“%ut %dt %dt %dt %dn”,s[i].num,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].rank);} fclose(fp);} void title(){

      printf(“ 學(xué)生成績(jī)表n”);

      printf(“-----------------------------n”);

      printf(“學(xué)號(hào)t姓名t數(shù)學(xué)t英語t物理t總分t平均分t排名n”);

      printf(“-----------------------------n”);}

      void list(student s[]){ int i;for(i=0;i

      printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

      printf(“-----------------------------n”);} }

      運(yùn)行結(jié)果示例:

      首先輸入準(zhǔn)備錄入的學(xué)生人數(shù),然后依次輸入每個(gè)學(xué)生的信息:

      打印出按總成績(jī)排序后的學(xué)生信息表,以及根據(jù)學(xué)號(hào)查詢:

      在f盤中找到文件并打開:

      心得體會(huì):

      懂得了用如何運(yùn)用文件,把向程序中輸入的數(shù)據(jù)全部輸出到文件中去。用FILE *fp,fp就代表我們要對(duì)其操作的文件,用open函數(shù),根據(jù)文件的所在位置還有文件名,打開文件,并對(duì)應(yīng)要求進(jìn)行只寫的操作,如源代碼中fp=fopen(“f: st udent.txt”,“w”),w代表寫入操作,char一個(gè)c[]數(shù)組,存放對(duì)應(yīng)項(xiàng)的名稱,用fputs函數(shù)把數(shù)組里面的字符串寫入到文件里面去,用一個(gè)for循環(huán),循環(huán)調(diào)用fprintf函數(shù),把每個(gè)學(xué)生的學(xué)號(hào),各科成績(jī)和排名都寫入到文件當(dāng)中去,最后關(guān)閉文件即可。

      實(shí)踐5.實(shí)踐4(1)(2)題目概述:

      每位學(xué)生信息包括:學(xué)號(hào)、姓名、性別、學(xué)院、10 門成績(jī)。共有不超過100 位同學(xué)的信息存放在ASCII 文件StudentInfo.txt 中;不超過10 個(gè)學(xué)院的信息存放在CodeInfo.txt 中,性別代碼存放在SexInfo.txt 中,均為代碼和其對(duì)應(yīng)的名稱。要求:

      1.定義至少包含以上學(xué)生信息和學(xué)院代碼的結(jié)構(gòu)體類型和指針(或數(shù)組)變量。2.函數(shù)實(shí)現(xiàn)從文件中輸入信息到定義的數(shù)據(jù)中。

      程序設(shè)計(jì)與概要:

      定義一個(gè)結(jié)構(gòu)體,名為student,里面的內(nèi)容有學(xué)生的學(xué)號(hào),姓名,性別,還有那個(gè)學(xué)院,以及10門成績(jī),構(gòu)造結(jié)構(gòu)體數(shù)組,student stu[100],用于存儲(chǔ)100名學(xué)生的信息。定義讀取文件中內(nèi)容的函數(shù),F(xiàn)ILE *fp代表文件,調(diào)用fopen函數(shù),通過文件所在位置以及文件名打開特定的文件,r表示只對(duì)文件進(jìn)行讀取,接著調(diào)用fscanf函數(shù),把第一個(gè)位置的數(shù)據(jù)賦給學(xué)生的學(xué)號(hào),用while循環(huán)體,循環(huán)的條件是調(diào)用feof判斷文件是否讀取結(jié)束,如果沒有則返回0,用!feof()來讓沒讀取結(jié)束的文件繼續(xù)讀取,接著再把同一行后面的數(shù)據(jù)分別賦給學(xué)生的姓名,性別代碼和所屬學(xué)院代碼,再用一個(gè)for循環(huán),把同一行后面10個(gè)數(shù)據(jù)分別賦給學(xué)生的10門成績(jī)。一行讀取完畢后,意味著已經(jīng)讀取完一個(gè)學(xué)生的所有個(gè)人信息,定義一個(gè)I值來存儲(chǔ)已經(jīng)讀取學(xué)生的人數(shù),每讀完一人就i+1,再讀取下一行的第一個(gè)數(shù)據(jù)賦給下一個(gè)學(xué)生作為他的學(xué)號(hào)。通過while循環(huán)把文件中的全部信息讀取出來賦給所有學(xué)生,函數(shù)最后返回的是讀取學(xué)生的人數(shù)i。定義結(jié)構(gòu)體名為sxy,用于存儲(chǔ)性別代碼和代碼對(duì)應(yīng)的性別,可以在后面輸出的時(shí)候,把對(duì)應(yīng)的性別代碼轉(zhuǎn)變?yōu)橛弥形谋硎拘詣e。定義一個(gè)結(jié)構(gòu)體名為scode,用于存儲(chǔ)學(xué)院代碼和代碼對(duì)應(yīng)的學(xué)院名稱,可以在最后輸出的時(shí)候,把學(xué)院代碼對(duì)應(yīng)的學(xué)院名稱輸出。再定義一個(gè)輸出函數(shù),通過for循環(huán),從0~i-1,把i個(gè)學(xué)生的全部信息輸出,所以我們?cè)谥骱瘮?shù)里面先調(diào)用讀取文件中內(nèi)容的函數(shù)之后再調(diào)用輸出函數(shù)即可。

      程序代碼:

      #include #include #include int readData(char *filename,struct student *stu);int readDataxy(char *filename,struct sxy *s1);int readDataco(char *filename,struct scode *s2);void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k);struct student { int id;char name[10];int sexno;char sex[4];int deptno;char dept[20];int scores[10];float ave;

      };struct sxy { int id;char sex[4];};struct scode { int id;char dept[20];};int main(){ struct student stu[100];struct sxy s1[2];struct scode s2[10];int n,m,k;n=readData(“f:StudentInfo.txt”,stu);m=readDataxy(“f:SexInfo.txt”,s1);k=readDataco(“f:CodeInfo.txt”,s2);if(n==-1||n==0)

      return 0;if(m==-1||m==0)

      return 0;if(k==-1||k==0)

      return 0;printStudent(stu,s1,s2,n,m,k);

      system(“pause”);return 0;} int readData(char *filename,struct student *stu){ FILE *fp;int i=0,j;fp=fopen(filename,“r”);if(!fp){

      printf(“error1”);

      return-1;} fscanf(fp,“%d”,&stu[i].id);while(!feof(fp))//feof返回0 表示文件還沒結(jié)束 返回1表示結(jié)束

      {

      fscanf(fp,“%s%d%d”,stu[i].name,&stu[i].sexno,&stu[i].deptno);

      for(j=0;j<10;++j)

      fscanf(fp,“%d”,&stu[i].scores[j]);

      ++i;

      fscanf(fp,“%d”,&stu[i].id);} return i;} int readDataxy(char *filename,struct sxy *s1){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

      printf(“error2”);

      return-1;} fscanf(fp,“%d”,&s1[i].id);while(!feof(fp)){

      fscanf(fp,“%s”,s1[i].sex);

      ++i;

      fscanf(fp,“%d”,&s1[i].id);} return i;} int readDataco(char *filename,struct scode *s2){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

      printf(“error3”);

      return-1;} fscanf(fp,“%d”,&s2[i].id);while(!feof(fp)){

      fscanf(fp,“%s”,s2[i].dept);

      ++i;

      fscanf(fp,“%d”,&s2[i].id);}

      return i;} void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k){ int i,j;printf(“ 學(xué)生信息統(tǒng)計(jì)n”);for(i=0;i

      for(j=0;j

      {

      if(stu[i].sexno==s1[j].id)

      {

      strcpy(stu[i].sex,s1[j].sex);

      }

      } } for(i=0;i

      for(j=0;j

      {

      if(stu[i].deptno==s2[j].id)

      {

      strcpy(stu[i].dept,s2[j].dept);

      }

      } } for(i=0;i

      printf(“%d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

      for(j=0;j<10;++j)

      printf(“%4d”,stu[i].scores[j]);

      printf(“n”);} }

      運(yùn)行結(jié)果示例:

      心得體會(huì):

      懂得了從文件中輸入信息到定義的數(shù)據(jù)中。就是要先構(gòu)造與文件信息中相對(duì)應(yīng)的結(jié)構(gòu)體數(shù)組,然后用打開文件,需要知道文件的具體位置還有文件名,”r”就是表示只采取讀取操作,用while循環(huán),循環(huán)條件的判斷標(biāo)準(zhǔn)就是用feof來判斷文件是否讀取到文件尾部,用fscanf把每個(gè)數(shù)據(jù)賦給對(duì)應(yīng)的變量。其中最難解決的就是一開始學(xué)生文件里面的信息,學(xué)生性別用代號(hào)表示,學(xué)生所在學(xué)院也用代碼顯示,這樣一來我們把文件中的信息賦給定義好的結(jié)構(gòu)體

      數(shù)組之后,用for循環(huán)把結(jié)構(gòu)體數(shù)組一個(gè)一個(gè)輸出后,顯示的是性別代碼和學(xué)院代碼,我們要把代碼都改為相對(duì)應(yīng)的值,所以我們同樣定義性別的結(jié)構(gòu)體數(shù)組,學(xué)院的結(jié)構(gòu)體數(shù)據(jù),之后用for循環(huán)把性別數(shù)組里面的代號(hào)和學(xué)生數(shù)組中的性別代碼想比較,用strcpy函數(shù),相同的就把代碼對(duì)應(yīng)的性別賦給學(xué)生數(shù)組里面定義好的性別字符數(shù)組。同理的,學(xué)院代碼相對(duì)同的就把代碼對(duì)應(yīng)的學(xué)院名稱賦給學(xué)生數(shù)組里面定義好的學(xué)院字符數(shù)組。

      實(shí)踐6.實(shí)踐4(3)(4)(5)題目概述:

      每位學(xué)生信息包括:學(xué)號(hào)、姓名、性別、學(xué)院、10 門成績(jī)。共有不超過100 位同學(xué)的信息存放在ASCII 文件StudentInfo.txt 中;不超過10 個(gè)學(xué)院的信息存放在CodeInfo.txt 中,性別代碼存放在SexInfo.txt 中,均為代碼和其對(duì)應(yīng)的名稱。要求:

      3.函數(shù)實(shí)現(xiàn)排序(1):學(xué)生平均成績(jī)的降序排序,并輸出所有信息到顯示屏。4.函數(shù)實(shí)現(xiàn)排序(2):學(xué)生姓名的升序排序,并輸出所有信息到顯示器。

      5.函數(shù)實(shí)現(xiàn)查詢(1):根據(jù)學(xué)號(hào)查詢學(xué)生信息,并輸出該生信息,并輸出所有信息到顯示器。

      程序設(shè)計(jì)與概要:

      同上個(gè)實(shí)踐一樣構(gòu)造結(jié)構(gòu)體名為student,用來存儲(chǔ)學(xué)生的信息,如學(xué)生姓名,性別代號(hào),學(xué)號(hào),學(xué)院代號(hào)和成績(jī)等。構(gòu)造結(jié)構(gòu)體名為sxy用來存儲(chǔ)性別代號(hào)和性別名稱,構(gòu)造結(jié)構(gòu)體名為scode用來存儲(chǔ)學(xué)院代號(hào)和學(xué)院名稱。用三個(gè)不同的函數(shù)來實(shí)現(xiàn)讀取三個(gè)不同文件中的內(nèi)容,把文件里面的內(nèi)容放到以上構(gòu)造的三個(gè)結(jié)構(gòu)體里面去,定義輸出函數(shù),用for循環(huán)把每個(gè)學(xué)生的性別代號(hào)同sxy結(jié)構(gòu)體數(shù)組中的代號(hào)對(duì)應(yīng),把代號(hào)對(duì)應(yīng)的性別名稱賦給每個(gè)學(xué)生的性別sex屬性值中,把每個(gè)學(xué)生的學(xué)院代號(hào)同scode結(jié)構(gòu)體數(shù)組中的代號(hào)對(duì)應(yīng),把代號(hào)對(duì)應(yīng)的學(xué)院名稱賦給每個(gè)學(xué)生的學(xué)院sdept屬性值中,最后再用一個(gè)for循環(huán)把從第一個(gè)學(xué)生到最后一個(gè)學(xué)生的全部信息輸出。實(shí)現(xiàn)要求3中的根據(jù)學(xué)生平均成績(jī)的降序排序,要求在從文件中讀取成績(jī)之后要計(jì)算出總分然后再除以10門成績(jī)得出平均分,然后定義一個(gè)函數(shù),用雙重for循環(huán),把第一個(gè)學(xué)生同其他學(xué)生比較平均分,如果比下一個(gè)同學(xué)的平均分低就交換兩個(gè)的位置,否則就繼續(xù)與下一個(gè)同學(xué)比較,直到第一層的for循環(huán)結(jié)束退出為止。再用for循環(huán)把排序后的學(xué)生信息從第一位到最后一位輸出即可。實(shí)現(xiàn)要求4中的根據(jù)學(xué)生姓名的升序排序,要求也是用雙重for循環(huán),用函數(shù)strcmp比較兩個(gè)學(xué)生的姓名,把第一個(gè)學(xué)生的姓名同下一個(gè)同學(xué)比較,如何比下一個(gè)同學(xué)大,就交兩個(gè)學(xué)生的位置,否則就繼續(xù)與下一個(gè)同學(xué)比較,直到第二層的for循環(huán)結(jié)束,意味一個(gè)同學(xué)的位置確定,繼續(xù)第一層for循環(huán)的下一個(gè)同學(xué),直到第一個(gè)層的for循環(huán)結(jié)束,就意味所有同學(xué)比較完畢,再用for循環(huán)語句把從第一個(gè)位置的同學(xué)到最后一個(gè)位置的同學(xué),把他們的信息輸出。實(shí)現(xiàn)要求5的查詢要求,需要我們從鍵盤上輸入要查詢的學(xué)生的學(xué)號(hào),然后用for循環(huán)從我們的學(xué)生結(jié)構(gòu)體數(shù)組中遍歷一遍,如果有找到學(xué)號(hào)同輸入的學(xué)號(hào)相同的學(xué)生,便把他的所有信息輸出,否則則輸出不存在該名學(xué)生。

      程序代碼:

      #include #include #include int readData(char *filename,struct student *stu);int readDataxy(char *filename,struct sxy *s1);int readDataco(char *filename,struct scode *s2);void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k);void search(struct student *stu,int n);void sortbyname(struct student *stu,int n);void sortbyave(struct student *stu,int n);struct student

      { int id;char name[10];int sexno;char sex[4];int deptno;char dept[20];int scores[10];double ave;};struct sxy { int id;char sex[4];};struct scode { int id;char dept[20];};int main(){ struct student stu[100];struct sxy s1[2];struct scode s2[10];int n,m,k,b;while(1){

      system(“cls”);

      printf(“1.顯示學(xué)生信息n”);

      printf(“2.姓名升序排序n”);

      printf(“3.平均成績(jī)降序n”);

      printf(“4.學(xué)號(hào)查詢學(xué)生信息n”);

      printf(“0.退出n”);

      printf(“n輸入需要查詢的序號(hào):”);

      scanf_s(“%d”,&b);

      switch(b)

      {

      case 1:

      n=readData(“f:StudentInfo.txt”,stu);

      m=readDataxy(“f:SexInfo.txt”,s1);

      k=readDataco(“f:CodeInfo.txt”,s2);

      if(n==-1||n==0)

      return 0;

      if(m==-1||m==0)

      return 0;

      if(k==-1||k==0)

      return 0;

      printStudent(stu,s1,s2,n,m,k);

      break;

      case 2:

      sortbyname(stu,n);

      break;

      case 3:

      printf(“按平均成績(jī)降序排序如下:”);

      sortbyave(stu,n);

      printStudent(stu,s1,s2,n,m,k);

      break;

      case 4:

      search(stu,n);

      break;

      case 0:

      return 0;

      } system(“pause”);} system(“pause”);return 0;} int readData(char *filename,struct student *stu){ FILE *fp;int i=0,j;double sum;fp=fopen(filename,“r”);if(!fp){

      printf(“error”);

      return-1;} fscanf(fp,“%d”,&stu[i].id);while(!feof(fp))//feof返回0 表示文件還沒結(jié)束 返回1表示結(jié)束

      {

      fscanf(fp,“%s%d%d”,stu[i].name,&stu[i].sexno,&stu[i].deptno);

      for(j=0;j<10;++j)

      {

      fscanf(fp,“%d”,&stu[i].scores[j]);

      sum=stu[i].scores[j];

      }

      stu[i].ave=sum/10;

      ++i;

      fscanf(fp,“%d”,&stu[i].id);} return i;} int readDataxy(char *filename,struct sxy *s1){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

      printf(“error2”);

      return-1;} fscanf(fp,“%d”,&s1[i].id);while(!feof(fp)){

      fscanf(fp,“%s”,s1[i].sex);

      ++i;

      fscanf(fp,“%d”,&s1[i].id);} return i;} int readDataco(char *filename,struct scode *s2){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

      printf(“error3”);

      return-1;} fscanf(fp,“%d”,&s2[i].id);while(!feof(fp)){

      fscanf(fp,“%s”,s2[i].dept);

      ++i;

      fscanf(fp,“%d”,&s2[i].id);} return i;

      } void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k){ int i,j;printf(“ 學(xué)生信息統(tǒng)計(jì)n”);for(i=0;i

      for(j=0;j

      {

      if(stu[i].sexno==s1[j].id)

      {

      strcpy(stu[i].sex,s1[j].sex);

      }

      } } for(i=0;i

      for(j=0;j

      {

      if(stu[i].deptno==s2[j].id)

      {

      strcpy(stu[i].dept,s2[j].dept);

      }

      } } for(i=0;i

      printf(“%d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

      for(j=0;j<10;++j)

      printf(“%4d”,stu[i].scores[j]);

      printf(“n”);} } void search(struct student *stu,int n){ int m,col=0;printf(“請(qǐng)輸入你要查詢學(xué)生的學(xué)號(hào):n”);scanf(“%d”,&m);for(int i=0;i

      if(stu[i].id==m)

      {

      col=1;

      printf(“%d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

      for(int j=0;j<10;++j)

      {

      printf(“%4d”,stu[i].scores[j]);

      }

      } } if(col==0)printf(“不存在該名學(xué)生信息n”);} void sortbyname(struct student *stu,int n){ student temp;for(int i=0;i

      for(int j=0;j

      {

      if(strcmp(stu[i].name,stu[j].name)>0)

      {

      temp=stu[i];

      stu[i]=stu[j];

      stu[j]=temp;

      }

      } } printf(“按姓名的升序排序如下!n”);for(int i=0;i

      printf(“%8d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

      for(int j=0;j<10;++j)

      {

      printf(“%4d”,stu[i].scores[j]);

      }

      printf(“n”);} } void sortbyave(struct student *stu,int n){ int i,j,flag;student s;for(j=0;j

      flag=0;

      for(i=0;i

      {

      if(stu[i].ave

      {

      s=stu[i];

      stu[i]=stu[i+1];

      stu[i+1]=s;

      flag=1;

      }

      }

      if(flag==0)break;} }

      運(yùn)行結(jié)果示例: 開始的菜單界面:

      輸入1便會(huì)顯示文件中所有學(xué)生的信息:

      輸入2便會(huì)實(shí)現(xiàn)學(xué)生姓名升序排序,且把排序后的學(xué)生所有信息輸出:

      輸入3便會(huì)實(shí)現(xiàn)學(xué)生平均成績(jī)降序排序,且把排序后的學(xué)生所有信息輸出:

      輸入4便會(huì)實(shí)現(xiàn)根據(jù)學(xué)號(hào)查詢學(xué)生信息:

      心得體會(huì):

      懂得了運(yùn)用雙重for循環(huán)比較全體成員,如題目中所要求的姓名升序排序還有平均成績(jī)降序,比較平均成績(jī)可以用值的大小進(jìn)行比較,但是比較姓名的大小就要用strcmp函數(shù)進(jìn)行比較,如果有需要交換位置的,就定義一個(gè)同類型的中間值,作為交換的協(xié)助者,幫助完成兩個(gè)值的交換,完成整個(gè)過程之后,把交換完成后的全體成員從頭到尾用for循環(huán)輸出即可。

      參考文獻(xiàn):

      [1] 張克軍:《程序設(shè)計(jì)基礎(chǔ)》,科學(xué)出版社。

      第二篇:C語言課程設(shè)計(jì)報(bào)告

      C語言課程設(shè)計(jì)報(bào)告

      級(jí):

      10電子本1

      學(xué)

      號(hào):

      10303033122

      名:

      指導(dǎo)老師:

      方文森

      完成日期:

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      目 錄

      1、課程設(shè)計(jì)目的和要求.....................................................................................................2

      2、課程設(shè)計(jì)任務(wù)內(nèi)容.........................................................................................................2

      3、詳細(xì)設(shè)計(jì)說明.................................................................................................................3

      3.1分析.........................................................................................................................3 3.2軟件設(shè)計(jì).................................................................................................................3 3.3軟件調(diào)試(對(duì)編程中的錯(cuò)誤進(jìn)行記錄,并給出你的解決辦法).....................3

      4、軟件使用說明.................................................................................................................4

      5、課程設(shè)計(jì)心得與體會(huì).....................................................................................................4 附錄1:參考文獻(xiàn)................................................................................................................5 附錄2:部分程序清單(帶有較詳細(xì)的注釋)................................................................5

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      C語言課程設(shè)計(jì)報(bào)告

      1、課程設(shè)計(jì)目的和要求

      目的:(1)鞏固和加深學(xué)生對(duì)C語言課程的基本知識(shí)的理解和掌握(2)掌握C語言編程和程序調(diào)試的基本技能(3)利用C語言進(jìn)行基本的軟件設(shè)計(jì)(4)掌握書寫程序設(shè)計(jì)說明文檔的能力(5)提高運(yùn)用C語言解決實(shí)際問題的能力 要求:(1)分析課程設(shè)計(jì)題目的要求(2)寫出詳細(xì)設(shè)計(jì)說明

      (3)編寫程序代碼,調(diào)試程序使其能正確運(yùn)行(4)設(shè)計(jì)完成的軟件要便于操作和使用(5)設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告

      2、課程設(shè)計(jì)任務(wù)內(nèi)容

      1)一個(gè)班級(jí)有4個(gè)學(xué)生,共學(xué)習(xí)5門課程(大學(xué)英語、高等數(shù)學(xué)、C語言程序設(shè)計(jì)、VB程序設(shè)計(jì)、大學(xué)語文)。要求編寫程序完成相應(yīng)功能。2)

      輸入并保存]5門課程名稱;

      3)

      輸入并保存]4個(gè)學(xué)生的學(xué)號(hào)及其[個(gè)人相關(guān)信息]; 4)

      輸入并保存]每個(gè)學(xué)生對(duì)應(yīng)的每門課程成績(jī); 5)求出每門功課的平均分;

      6)找出有兩門以上功課不及格的學(xué)生,輸出他們的學(xué)號(hào)和全部課程成績(jī)及該學(xué)生5門課程的平均成績(jī);

      7)找出平均成績(jī)?cè)?0分以上或者全部課程成績(jī)?cè)?5分以上的學(xué)生,輸出他們的學(xué)號(hào)和全部課程成績(jī)及該學(xué)生5門課程的平均成績(jī);

      8)計(jì)算每位學(xué)生的總分,并按總分進(jìn)行排名,按由高到低輸出他們的學(xué)號(hào)及總成績(jī); 9)對(duì)前面問題進(jìn)行優(yōu)化,即在一維數(shù)駔的基礎(chǔ)上,考慮采用二維數(shù)組、函數(shù)及其參數(shù)傳遞的方式來解決相關(guān)問題;

      10)對(duì)前面問題進(jìn)行優(yōu)化,在學(xué)號(hào)的基礎(chǔ)上,增加學(xué)生的其它個(gè)人信息,包括:學(xué)號(hào)、姓名、年齡、性別,并采用結(jié)構(gòu)體形式加以表示; 11)利用文件實(shí)現(xiàn)對(duì)輸入及分析輸出數(shù)據(jù)的存取操作。

      12)參照教材P27頁,3-11題引入選擇功能,輸入功能編號(hào)可以實(shí)現(xiàn)以上功能(考慮清屏函數(shù),自查)。

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      3、詳細(xì)設(shè)計(jì)說明

      3.1分析

      3.2軟件設(shè)計(jì)

      開始菜單(功能選擇)Key=?Key=1Key=2Key=3Key=4Key=5Key=0Key=99Key=6Key=7Key=8Key=9Key=10寫入課程名讀取課程名輸入學(xué)生信息讀取學(xué)生信息建立了學(xué)生信息及課程名稱?退出程序讀取課程、學(xué)生、成績(jī)讀取課程成績(jī)輸出功課的平均分兩門以上功課不及格的學(xué)生輸出高分的學(xué)生總分由高到低排序No保存保存Yes輸入課程成績(jī)(提示)必須輸入課程名稱、學(xué)生信息才能建立成績(jī)保存清屏

      3.3軟件調(diào)試(對(duì)編程中的錯(cuò)誤進(jìn)行記錄,并給出你的解決辦法)

      取地址。

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      4、軟件使用說明

      1.2.3.4.5.6.7.8.9.10.11.12.[99]讀取課程、學(xué)生、成績(jī) [1]輸入課程名稱.[2]讀取課程名稱.[3]輸入學(xué)生信息.[4]讀取學(xué)生信息.[5]輸入課程成績(jī).[6]讀取課程成績(jī).[7]功課的平均分.[8]兩門以上功課不及格的學(xué)生 [9]-高分的學(xué)生-.[10]學(xué)生總分排序.[0]退出應(yīng)用程序.5、課程設(shè)計(jì)心得與體會(huì)

      在大家的共同努力下,忙碌了兩個(gè)星期,我們順利完成了對(duì)此程序的編譯及試運(yùn)行。在設(shè)計(jì)程序的過程中,我們了解到要設(shè)計(jì)一個(gè)完整的程序,其中最難的可能就屬設(shè)計(jì)整個(gè)程序的框架,其中可能會(huì)需要經(jīng)過很多次的修改與調(diào)試,所以必須要有耐心,直至最后設(shè)計(jì)出自己想要的程序。

      另外平時(shí)學(xué)習(xí)c語言的基礎(chǔ)也很關(guān)鍵,因?yàn)槿绻綍r(shí)學(xué)得就不怎么樣,那么你面對(duì)這么一個(gè)比較有難度的程序,可能會(huì)望而卻步,看懂他人的程序都是個(gè)難點(diǎn),更別說讓自己去設(shè)計(jì)。為了解決此類問題,最好就是多向同學(xué),老師請(qǐng)教,查找資料。

      設(shè)計(jì)一個(gè)程序的過程就是解決一個(gè)實(shí)際問題的過程,從解決實(shí)際問題的角度,我們可以這樣來看:首先要了解這個(gè)問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;在次我們必須捋清思路,逐一的解決問題的各個(gè)方面,即從輸入開始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個(gè)過程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過程--算法。

      感謝這次的課程設(shè)計(jì),它使我更加深刻地體會(huì)到c語言程序編寫過程的嚴(yán)謹(jǐn)與細(xì)致,還有就是無論做任何事都要有耐心。當(dāng)然團(tuán)隊(duì)合作也是非常重要的一個(gè)環(huán)節(jié),這會(huì)使你在學(xué)習(xí)過程中倍感輕松

      總的來說,這次程序設(shè)計(jì)讓我獲益匪淺,對(duì)C語言也有了進(jìn)一步的認(rèn)識(shí):C語言功能高、表達(dá)能力強(qiáng)、使用靈活方便、目標(biāo)程序效率高等等。C語言是在國(guó)內(nèi)外廣泛使用的一種計(jì)算機(jī)語言,相信除了以上優(yōu)點(diǎn),還有許多我們還未發(fā)現(xiàn),希望能在以后的學(xué)習(xí)中有更深入的認(rèn)

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      識(shí)。

      附錄1:參考文獻(xiàn)

      《C語言程序設(shè)計(jì)與實(shí)踐教程》

      附錄2:部分程序清單(帶有較詳細(xì)的注釋)

      #include #include

      #define N 4 #define M 5 #define Debug 1

      typedef struct { char SNo[5];char SName[10];}Student;

      void ScoreRead(float Score[][M],char FileName[],char FileType[]){ int i,j;FILE *fp;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} else { for(i=0;i

      溫州大學(xué)城市學(xué)院課程設(shè)計(jì)

      void ScoreWrite(float Score[][M],char FileName[],char FileType[]){ int i,j;FILE *fp;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} else { for(i=0;i

      void CoureseRead(char Cname[][20],char FileName[],char FileType[]){ FILE *fp;int i,j;char ch;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} i=0;j=0;while(1){ ch = fgetc(fp);if(ch==EOF)break;if(ch=='n'){ Cname[i][j]='