烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.2.1 下载、安装Code::Blocks Code::Blocks是一个开源的自由软件。 下载Code::Blocks,到其官网(http://www.codeblocks.org),可以找到最新的版本,以及以往的版本。 可以下载Code::Blocks的源代码(Download the source
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.2.2 在Code::Blocks下编辑、运行第一个程序 初学编程,第一个、每一次、第一步很多,享受这个全新的世界。 要编辑、运行程序C++程序,启动Code::Blocks,首先要建立一个C++项目。Code::Blocks可以做很多的事情,作为编程的初学者,从完成控制台应用(Console appli
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.2.3 见识编程中的“低级”错误 在自己编程序时,缺个符号,错个表达,这很常见。介绍一个学习方法——撞错。刚学编程,在已经能正确运行的程序基础,故意捣乱,将对的改错了观察一下,这是个非常好的学习方法。 用这种故意捣乱的方法,会见识到各种低级的错误。以后编程中真的出现了一时的疏忽,你可以给出轻蔑的一撇:“小样
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.2.4 Code::Blocks运行程序的两种方式 微课件1.2展示的程序运行方式,只要连编(Build)成功了,一点运行(Run)按钮,看结果就可以了。 目的达到了。但是程序是如何执行的,作为学习者,我们需要知道“内幕”。作为开发者,尤其是当程序执行结果与预期的不一样时,需要找到问题究竟出在什么地方。
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.2.5 选择Code::Blocks的理由 Code::Blocks可以用来创建项目、编写C++程序,支持C++程序的运行、调试。Code::Blocks作为工具软件,可以归类为集成开发环境。 集成开发环境(IDE,Integrated Development Environment)是用于提供程序开发环
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.3 能计算的程序 计算机是能计算的机器。 可是,我们设计的简单程序,只会输出一些固定的信息。玩得再花,也是玩花的。 帮助人们进行数值计算,这可是计算机的老本行。导弹运行轨迹、天气变化趋势,建筑结构受力、机械设备参数,企业经营情况统计、社会发展预测,都离不开计算。 现在,可以让计算机干点实事,帮我们计算点
回到系列文章的目录——[系列文章目录] 1.3.1 帮电气工程师计算电阻值 例1.3 电阻串联值 小明(怎么又是小明)是位电气工程师,他设计的工作中,常要计算电阻串、并联后的值。请编一个程序,计算两个电阻串联后的阻值。 分析:由物理知识知道,设要串联的两个电阻值分别是R1和R2,串联后的电阻值R=R1+R2。解决这个问题,程序需要具备表示数据的能力了。 下面是编出来的程序,阅
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.3.2 完成简单计算的程序的一般“套路” 在做项目之前,我们看能完成简单计算的程序的一般“套路”。有了这个套路,模仿着写程序更顺利一些。 程序的通用套路是:#include <iostream> using namespace std; int main( ) { //此行开始写完成
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.4.2 输出两数中大值程序的其他写法 例1.4 输入两个整数,求这两数中的大者并输出采取的思路是: 输入a、b的值 根据a、b的大小关系,为m赋值其中的大者 输出m的值 还可以写出下面的程序://例程ch1-7.cpp #include <iostream> using namespace
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.5 用循环解决问题 愚公移山的故事很有名。 为了将山移走,愚公和他的子孙们将山石“箕畚运于渤海之尾”,可以想见他们跑了一趟又一趟的辛苦,他们在重复地做着同一件事情。面对河曲智叟的质疑,愚公说:“虽我之死,有子存焉;子又生孙,孙又生子;子又有子,子又有孙;子子孙孙无穷匮(kuì)也”,这又是家族繁衍意义上的重复
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.5.1 引入循环——输出星号图 例 1.5 编程序,输出8个星号(即'*'),如下图 这个容易,也就输出一行信息。 可以写出程序: //例程ch1-9.cpp #include <iostream> using namespace std; int main() { cout<
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.5.2 循环深入——输出多行星号 例1.7 编程序,输出如下的星号图 有人写出程序: //例程ch1-11.cpp #include <iostream> using namespace std; int main() { cout<<"********"<<e
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.5.3 体会“自顶向下,逐步求精”思想 接下来,我们的胃口开始大了。 提出来一种考虑问题的思路,其实已经蕴涵在例1.7输出7行星号的程序中了。 这种解决问题的思维方式是——“自顶向下,逐步求精”。 要输出的是: 写出的程序(例程ch1-13.cpp),循环7次。每次的循环,输出1行。因此,输出了7行,
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.5.4 输出各种星号图 我们实践“自顶向下,逐步求精”的思维,设计和实现一些更好玩的星号图,也进一步建立循环的概念。 例1.8 编程序,输出如下的星号图 对这个“囫囵”的星号图,我们略加分解一下,可以发现一个星号图是由若干行构成,于是“求精”的结果是“输出一个星号图就是要输出若干行”,接下来再考虑的“输
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.6 写程序的行规 家有家法,行有行规。进入一个新的领域,就需要知道这道这个领域的规矩,并按规矩行事。不要想着挑战规矩,挑战规矩应该是在行业中立足以后的事,行规中不少需要写出来的规矩约束的实际就是小学徒。在规矩中成长起来的老手,却常想不起行规怎么说的,但他却真正在照规矩办事。 编程序有编码规范。几乎在每家公司,
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.7 实践“项目”提示 本节与前面各节相关性极大,建议由前面各节看清项目要求,必要时再阅读本节。 【项目1.1】 将例程ch1-1.cpp中第5行“hello world!”换为“C++,我会爱上你!”即可 【项目1.2】 在项目1.1基础上,再加如下一句 cout<<"爱你千回终不
回到系列文章的目录——[系列文章目录] 回到本章目录——[第1章目录] 1.8 实践“项目”参考解答 本节与前面各节相关性极大,建议由前面各节看清项目要求,必要时再阅读本节。 【项目1.1】 #include <iostream> using namespace std; int main( ) { cout<<"C++,我会爱上你!"<
昨天上午,有学生打电话给我询问关于上学校网络教学平台的事。问题解决了,我知道她们好几个都在宿舍里,提醒她们考试周没有安排课,但也要到教室中,而不是宿舍里。我们学校大一学生的住宿区离教学区有一段距离,平时到校需要坐10分钟公交或骑15分钟自行车,确实有不方便之处。 于是,考试周就宅在宿舍中,这个的现象可能不是个别。这个“在人人卧底”的老家伙又按捺不住,在人人上发了一条状态: 从回复中,面
这是《军品怎能在民用前踌躇?——答军校里出来的地方生》的续集。其中提及的问题,对研究生阶段求学是很有代表性的。解答过不少研究生的问题,痛心的是,研一当作高八(大学是高四到高七)上,研二开始找工作。大学和研究生阶段的学习方法改变必须有,而这种改变必须是在投入的学习中获得。这条路说起来是这样的,需要的是,就这样走起来。 【来信】 认真看过您的邮件之后收获颇多,在今后的日子里我肯定会将科研放在第
课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 Problem A: 1-n之间能够被m整除的数的和 Description输入n和m,输出1-n之间能够被m整除的数的和,例如:输入35 7,输出的是1-35之间所以能够被7整除的数的和,即7+14+21+28+35=105Input两个正整数n和mOutput1-
在备课时,搜索一些素材,看到了一篇博文,截屏如下: 真为有些同行汗颜。学生在专业学习中需要的最基本的成份就这样被克扣了。在这样的老师的调教下,严重缺钙的翅膀怎能支撑学生起飞,展翅翱翔,更不敢说了。 或许这些内容真的是有些难,但老师的职责就是要带着学生过这个难关的。教学工作中,重点、难点是老师起关键作用的地方。这种作为,是在学生该起跳时,抽走他脚下踏板的的做法,学生如何
【来信】尊敬的贺老师: 我是某军事院校的一名研究生,因为我是地方生但是我现在所学的方向在地方可能根本用不到。然后我真正感兴趣的是图像处理,模式识别这个方向。我现在很迷茫不知道该怎么办,要不要自己自学一下我刚兴趣的方向。我通过CSDN看到了贺老师的博客,对您十分崇拜,然后我也加了您的人人,就是想向您学习。您也是我人生路上的一位良师。所以在我迷茫之时想请贺老师在百忙之中来指点一二。 【
课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目1-体会函数参数传递】 设计一个程序,输入3个整数,将其按从大到小的顺序输出,要求 (1)排序功能通过函数实现 (2)写出两个版本的函数,一个采用传地址值的方法,另一个采用引用类型作参数参考解答在:http://blog.csdn.net/sxhelijia
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 【项目4】数组用于进制转换:编一个程序,其中调用函数void tran(int n, int d)用于将十进制数n转换为d进制数输出,并输出d进制数中最大位值是多少,在第几位。d的取值在2-32之间,数制d超过10时,依次用ABC...代表其基本符号,如对17进制而言,
课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 编程练习1:输出1000以内的所有素数。 参考解答: #include<stdio.h> #include<math.h> int main() { int m,i,k,prime; for(m=2;m<=200;m++
早起要上传一个文件,看到梅花桩协会群里有同学说“一天没课,在宿舍过得好颓废”。上了大学,失去了原先支撑学习的高考宏伟目标,失去的老师的耳提面命,不少同学变得茫然与不适。许多赖以维持学习的外部约束在失去,而需要的内部动机尚未建立之时,如何过好考试周,这是一个新话题。考试周,不上课了并不意味着不学习了;考试周,觉得考试能通过就不用复习了,也绝不是一个好主意。 下面是我在群里的留言,共享出来。
【来信】 老师: 距离上次给你写信(我该继续坚持C语言,还是转而去学C++?),有一个多月的时间了。自从收到你的回信,我感触的是:我真TMD不是爷们……于是,我开始主动的跟周围的一些同学接触,甚至是敞开一些心事……真的,感觉挺好,但是并不是所有人都能够和你合得来,你的热情有时换来的是别人的冷漠,我之后琢磨了琢磨:当初的我是否给别人的感觉也是这样? 那之后,我开始写博客,其实这也是老师你所倡
一名网名为“不忘初衷”的大三学生给我在《学习也需要管理》中评论,请我“指点一二“,依他给的链接,我找到了他刚写的《一年的奋斗时间去了三个半月》。从网名,以及他已经度过的两年多大学生活看,他还是很认真地对待自己的大学的。他这样的自省是需要的,但也许是刚考过六级,对六级没有怎么准备而心生不满的情绪还在主导,他对自己的否定多了一些。对自己好一些,多看到自己的收获,这样的求学生活的感受会更好。另外一个
课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目1-体会函数参数传递】 1、下面三段程序都试图通过定义函数,实现实际参数在必要时的交换,哪些能够实现,哪些不能实现?通过运行程序和单步执行,让自己对这一过程更加清楚,然后请在博文中给出明确的回答,并用你自己的话展开描述。) (1) #include &
课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目2-指来指去】设计一个程序,利用指针完成下面的工作(1)下面的程序,输入10 100和100 10,均可以输出max=100 min=10,请补充完整程序 #include <iostream> using namespace std; int ma
【来信】 贺老师,你好。我是一名14届毕业的软件工程的学生,因为之前三年都是读电子专业的,后面两年专升本读软件工程,很快两年即将过去,但是感觉自己什么都没学到,去过几次面试都被刷了。现在跟着视频在学Java,我想往安卓方向走,但是感觉自己时间完全来不及了,马上就下个学期面临就业了,心里非常着急。总想一蹴而就,比较浮躁。贺老师我是不是已经来不及了?总感觉自己什么都不会做。看了雷果国的事例,也
原文在:http://blog.sina.com.cn/s/blog_93b45b0f0100x47j.html 知道语言是有以分号结束的语句组成,但语句并不是程序处理的最小单位。理论上讲程序应该以每个函数(方法)为一个语句,而操作符有可以理解成函数。但是那样做的话,程序会很难看,所以通常的语言以表达式为程序的最小执行单位。一个语句本质上说是一个表达式,但是也可以说成是逗号符,分开的若干个表
发表了博文《我治大学生抄作业毛病的办法——兼答丁又专老师》,并在人人网上进行了共享。我的学生,已经毕业的杨青在共享给了评论,本文记录我们的探讨。 杨青: 其实我觉得更有价值的讨论是 “大学老师该不该批改程序作业的讨论”。 ~2013-12-11 00:24 贺利坚: 回复杨青: 老师的精力要放在关注学生的学习上,批改作业,督促学生落实学习行为,还是应该的。2013-12-11 21:06 杨
通过新浪博客,一名同行丁又专老师评论《关于抄不抄作业的讨论》一文时,向我提出问题: 请教贺老师一个问题:平时作业不计入成绩,那么是可以避免“抄袭”的现象,“辅以其他环节,学生选择不做,不丢分,感到丢人,于是去学,自然就会做了,不用抄了。 ”,能够更详细的讲讲吗? 其实,撰文写写我和我的学生与抄作业陋习作斗争的想法已经有很久了,也就乘此机会展开说说。 就在这个周日,我和儿子锻炼。一位朋友见
在很多问题的处理中,要处理的数据是有序的,这是一个基本的前提。以此前提,以二分查找为代表的高效算法得以应用。 于是,排序成为算法中的一个基本问题。 本文档展示了一种常见的“冒泡排序”的原理,以此帮助初学者建立对排序的感性认识。 在排序中,基本的操作无非是:比较、交换。 文档需要到资源中下载,其中的特殊效果,在网页中呈现不出来。需要1个积分,无意而为之,忘记改成0就点了提交。借此要求读者
课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 第一部分 程序分析 阅读下面的程序,先写出其运行结果,再运行对比。 读不懂怎么办?支招1:按课堂上老师讲课的方式,将变量对应内存的“框子”画出来,用大脑当CPU,写出变量的变化过程;支招2:单步执行程序,在监视(watch)窗口中观察变量的动态变化,从而掌握程
近期在教学中讲了二维数组,给学生布置了一大堆的练习题。不愿意为这一批能够投身学习的学生再多加硬性的任务了,练习题目中有的是他们要体会的。但前一段时间还准备了一个好玩的程序,当作额外的阅读参考公布出来吧,不作为教学要求了。 临近期末,玩编程,但也要为着考试让让路了。 书归正题,二维数组可以用在很多很多的地方。一个典型应用,存储“字模”,即显示信息要用到的点阵数据。 例如,下面的二
回到系列文章的目录——[系列文章目录] 第1讲 初识C++程序设计 计算机,传统的包括台式机、笔记本,移动计算时代加进来了手机、平板电脑等移动设备,还有更传统的大型机、中型机,以及数不清的刷卡机、智能家电、工业产品等称之为“专用计算机”。这些可以称为计算机的设备在工作时,自动执行程序是其共同的特征。 程序,是这些占据了世界上各个角落的设备的灵魂和主宰。这个世界,由掌握了程序设计
C++程序设计实践学材目录 (随写作进展更新) 前言 第1讲 初识C++程序设计 1.1 写出第一个C++程序 1.1.1 观摩一个C++程序 1.1.2 程序中可以加上给人看的注释 1.1.3 简单程序的一般“套路” 1.2 让程序“跑”起来 1.2.1 下载、安装Code::Blocks 1.2.2 在Code::Blocks下编辑、运行第一个程序 1.2.3 见识编
回到系列文章的目录——[系列文章目录] 前言 这是一个想过很久但一直不敢开始的写作计划,要将已经带领三个年级的学生以实践为主线学习C++的材料整理到一起,成为比“C++课堂在线”专栏更加系统、全面的“学材”。 何为学材?在学校里,学习一门课程,常会有教材。教材是教师在带领学生学习过程中需要用到的材料。教材是以教为中心的,学生在课堂上听讲,预习和复习都要看教材,学生的学是围绕着教师的教
【来信】 贺老师,现在我感觉学C++感觉很吃力,做题时经常没有头绪,不知道从哪里下手。很多的时候都是先参考一下别人的,然后自己在一点点的做,说得不好听 就感觉自己在抄别人的,这才刚开始我就这样 以后咋办啊。 【回复】 当自己没有思路的情况下,可以参考一下别人的解答。关键的是,最后自己做出来。这是一个渐进的过程,你已经在这样做,这是对的。凡事有个过程,有人会很快捅破那层窗户纸,而有人需要
来信及我的点评式回复如下(【】中是我的回复): 贺老师你好: 我是一名大二学生,并不是计算机专业或者是软件工程的,是数学专业下的信息与计算机科学(是大二才分的专业,大一是数学大类),说起来与计算机也是挂钩的,最近接触到csdn,看到您的博客的指导专栏,故生起让您指导的心,有些困惑,希望您能帮忙解答,谢谢。 我知道我这个专业也是可以向IT方向发展的,但是我现在很迷茫,不知道应该怎么学
何兆武先生口述的《上学记》已经买回来好长一段时间了,想着借此多了解一些那个战乱年代的大学生及他们的学习,却由于各种杂事,以及不平静的心,久久没有阅读。及至再有新书买来,决定先将这本让自己眼亮的书读完,于是,近两日,即使手头事紧,也搁置下来,见空就读一些,满足了好久以来不曾体会的过瘾的读书。 略将有感触之处记录一二。 我在初中开始学英语时,曾有过一个念头,老一辈的学生应该不用学英语吧。何先生
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目7-体验文件操作】 (1-预备)阅读并理解附后的《文件操作初体验》(必要时运行这些程序)。 (2-热身)从键盘读入10名学生的英语成绩,编程求出这次考试的平均成绩,并统计输出优秀人数和不及格人数。 #include <fstream> /
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目5-字符串统计】阅读下面的程序,完成类似的功能 #include<iostream> #include<cstdio> using namespace std; int main() { char str[50];
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目4 - 数组的排序】 编函数,完成冒泡排序。要求不能改变下面的main函数。 重点体会:(1)排序算法;(2)数组名作形式参数,将能改变作为实际参数的数组的值,实际参数传递给形式参数的是数组的地址值,也是传值;(3)形式参数中不指定数组大小,实际数组
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目3 - 成绩处理函数版】 项目2的另一种实现。输入、求最大/小值等所有功能都通过自定义函数完成。这种设计貌似比项目2麻烦,但其结构有更多的优点,尤其是当程序的规模更大时。通过这个项目,学会将数组名用作函数的参数。 下面建议的自定义函数的声明和main()函
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目2- 成绩处理】 在数组score中将要存储某小组C++程序设计的成绩,请设计实现下面的各功能函数,并在main函数中调用,组合成一个完整的应用: (1)输入小组人数及成绩,要保证成绩在0-100之间; (2)输出该小组的最高成绩、最低成绩、平均成绩; (
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 【项目1 - 数组大折腾】 将所有元素值加倍后保存在数组中,最后由前往后输出数组中所有元素的值,再由后往前输出数组中所有元素的值,再输出数组中的所有大于100的数,以及下标为3的倍数的元素值。 (1)创建一个长度为20的整型数组,通过初始化,为数组中的前10个元素
学生给我发了私信,一个程序运行了好久,在OJ就是提交不了。 题目是: Description输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。Input10个整数Output整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)Sample Input2 1 3 4 5 6 7 8 10 9Sam