标题 | 趣味实用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). |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。