趣味实用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 我的图形我做主

形状是人们认识一件事物的第一反应,我们对一件事物是否熟悉,也取决于对这件事物的形状的印象,数学更是离不开形状,因此我们做了一个可以生成各种形状的程序,来帮助人们对形状的认识。“我的图形我做主”是一款可以由用户输入指定的边数,行数和是否为空心三个参数后,便自动生成相应的图形的程序。

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语言数据格式输出中的应用
“在挫败中成长”是所有大学生的必修课