?

趣味實用C語言案例解析

2016-11-24 17:05鄧麗萍
電腦知識與技術 2016年26期
關鍵詞:必修課C語言趣味

鄧麗萍

摘要:C語言程序設計是計算機和電子專業必修的專業課,但多數同學覺得此課程枯燥無趣,在學習過程中感覺都是些離生活遙遠的無聊的數學例子,該文通過列舉生活中的實用的趣味的案例來激發學生的學習興趣。

關鍵詞:C語言;必修課;趣味;

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)26-0086-02

1 入場排序器

日常生活中大小賽事,重要活動如奧運會、城運會等,都將有很多國家或城市參加,開幕時將按一定(如名字的首字母先后)的順序入場,那么怎樣對這些國家和城市來排序呢?這里我們可以用代碼將入場的次序按字母的先后進行排序,使入場時變得井然有序。

1.1 實訓過程

1)說明部分,定義一個二維字符數組,用于存儲需要排序的字符串;

2)對字符串數組進行排序;

3)輸出排序后的字符串。

1.2 所用到的知識點

1)二維數組的定義;

2)數組的排序;

3)字符串的處理函數:頭文件 #include "string.h"

字符串比較函數:strcmp(charArr[j],charArr[j+1])>0

字符串復制:strcpy(temp,charArr[j]);

字符串輸出:puts(charArr[i]);

1.3 案例擴展

1)動態輸入字符串進行排序;

2)為了節約存儲用指針數組來實現排序。

2 兒童算術能力測試軟件

在我們的一生學習中,兒童期的算術能力是學好的數學的基本功。此款兒童算術能力測試軟件可以輔助兒童進行算術訓練,從而提高兒童的算術能力,程序會自動生成兩個隨機數和一個運算符,使用者只需要輸入運算后的值,軟件會自動評判并統計出所得的分數。

2.1 實訓過程

1)說明部分:分別定義一個用于存儲正確答案和用戶所輸入的答案的數組;

2)打印測試軟件的說明

3)隨機生成10個題目

a)先定義兩個變量作為運算的值,一個存儲運算符的top,一個循環變量以及存儲運算符的字符op

b)用system(“cls”)

c)初始化隨機數種子

d)循環十次,分別初始化兩個數和一個運算符判斷運算符是否符合規范

e)用switch分支語句對運算符進行分支,并且把運算符給op賦值,

f)輸出題目

4)供用戶回答題目(循環十次,用戶分別輸入答案)

5)批改評判

a)循環遍歷答案

b)如果答案正確輸出黃色的well done

c)如果答案錯誤輸出紅色的答案

6)輸出成績等級

a)先讓成績num*10變成百分制

b)如果成績在90分至100分之間,輸出總成績,輸出Very Good

c)如果成績在60分至90分之間,輸出總成績,輸出fight for good grades!

d)如果小于60分,則輸出總成績和Dont give up??!

7)輸入字符串Y或N判斷是否還要再測試,如果輸入Y則再進行測試N則退出while循環,并打印Thank you for using it,Byebye!

2.2 所用到的知識點

1)分支語句;

2)循環語句;

3)隨機數的產生方法;

4)函數的定義;

5)函數參數的使用;

6)函數原型申明;

7)函數的調用。

2.3 案例擴展

將分數保存到數組,做一個排行榜,看看哪個小朋友最棒。

3 日歷

在我們的生活中離不開日期,我們很在意我們所過的這一天是什么日子,尤其是雙休日還是工作日,是平年還是閏年。本案例可以使我們更便捷地查看某一天是星期幾。

3.1 實訓過程

1)說明部分:分別定義了表示年,月,日的三個變量。和每個月的天數的一個數組,表示總天數的long int型數據day,存放每個星期的字符數組week;

2)清空緩存,并且輸入日期;

3)判斷是否為閏年。如果是閏年,把存放每個月天數的monthd數組的第二個月天數修改為29天;

4)循環monthd數組。到輸入的那個月份為止,計算出當前這一年的月的天數,再加上輸入的天數,求得當前年所過的天數;

5)從1900年開始到當前年,求得所有的天數;

6)判斷所得的是否為雙休日。

3.2 所用到的知識點有:

1)清空緩存:fflush(stdin);

2)按格式輸入內容: scanf("%d-%d-%d",&y,&m,&d);

3)條件分支,判斷是否為閏年:if(y%4==0&&y%100!=0||y%400==0),判斷是否為工作日;

4)循環;

5)數組的應用。

3.3 案例擴展

1)用”time.h”頭文件查詢當前日期,計算今天為星期幾;

2)用枚舉初始化星期。

4 我的圖形我做主

形狀是人們認識一件事物的第一反應,我們對一件事物是否熟悉,也取決于對這件事物的形狀的印象,數學更是離不開形狀,因此我們做了一個可以生成各種形狀的程序,來幫助人們對形狀的認識?!拔业膱D形我做主”是一款可以由用戶輸入指定的邊數,行數和是否為空心三個參數后,便自動生成相應的圖形的程序。

4.1 實訓過程

1)說明部分:定義了三個變量,分別是edge(邊數),line(行數),shape(是否為空心);

2)使用while無限循環,讓用戶可以多次使用;

3)清空當前屏幕內容。并且提示用戶輸入邊數,行數以及是否為空心;

4)用戶進入Produce_Pattern函數后

a)判斷line,如果行數小于三,就讓line=3

b)進入switch分支,如果line是3,則進入Triangle,輸出三角形,如果line是4,則輸出菱形和平行四邊形,否則輸出error;

5)打印完后,讓程序暫停

a)定義一個char ,用戶保存輸入的值

b)清空緩存

c)輸出提示語句enter continue...

d)判斷用戶輸入的是不是enter鍵,如果是,則返回主頁面,如果不是,一直處于程序暫停狀態。

4.2 所用到的知識點

1)雙重循環的使用;

2)函數的定義;

3)函數參數的使用;

4)函數的調用。

4.3 案例擴展

1)再加上空、實心的六邊形和空心的五角星;

2)用graphics繪制圖形。

5 猜拳游戲

制作一個玩家可以與電腦進行猜拳的娛樂小游戲。

5.1 實訓過程

1)說明部分:定義一個玩家結構體;

2)建立一個玩家user,并對其進行初始化;

3)接收玩家的出拳和產生電腦的出拳;

4)判斷勝負,并且對總局數user.total++,若玩家勝利則將user.win++;

5)選擇繼續或者退出,繼續則再進行游戲,退出則打印排行榜,輸出玩家所玩總局數user.totoal和勝率user.victory=user.win/user.total*100。

5.2 所用到的知識點有:

1)函數的定義;

2)函數參數的使用;

3)函數的調用;

4)結構體的定義;

5)指針的定義及使用。

參考文獻:

[1] 吳麗娟, 申海, 張浩華. C語言課程設計教學模式的探索與實踐[J]. 沈陽師范大學學報:自然科學版, 2012(1).

[2] 齊心. 以C語言實驗教學為核心培養學生創新能力[J]. 科技創新導報, 2012(5).

[3] 張秋生. 《C語言程序設計》課程教學改革與實踐[J]. 軟件導刊, 2012(2).

[4] 李紅葉. 項目驅動教學法在《C語言程序設計》教學中的應用[J]. 中國科技信息, 2012(6).

[5] 馬占軍. “船舶電氣設備及系統”課程教學改革的探討[J]. 通化師范學院學報, 2012(6).

[6] 盧爭艷, 張蘭. 舉一反三——談C語言循環結構教學[J]. 科技創新導報, 2011(29).

猜你喜歡
必修課C語言趣味
鯨寶寶的必修課
基于Visual Studio Code的C語言程序設計實踐教學探索
評注是法學生的必修課
基于C語言的計算機軟件編程
高職高專院校C語言程序設計教學改革探索
妙趣橫生的趣味創意
讓有效溝通成為醫生的必修課
讓你HOLD不住的趣味創意
論子函數在C語言數據格式輸出中的應用
“在挫敗中成長”是所有大學生的必修課
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合