烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
【题目】C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,二则也为第10章做运算符重载等积累些感性认识。 任务要求:完成下面类的设计,并在main()函数中自行定义对象,调用各成员函数,完成基本的测试。 classCFraction
【题目】设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化 特别要求:为全面体会构造函数的各种写法,本任务要求提交多个版本的程序,体现出你已经掌握下列知识点:(1)使用带参数构造函数,即Triangle(float x, float y, float z),三边长在调用时由实参直接给出;(2)设计默认构造函数,即不指定参数时,默认各边长为1;(3)使用默认参数的构造函数,不给定实参时
原题目及解答见第4周-任务4-设计工资类(Salary): 【拓展1】使用salary[50]有限制,实际人数少浪费空间,人数多时无法完成任务。程序执行中先输入职工人数,然后利用教材P217所讲的动态分配内存的运算符new,开辟一个大小正好的连续空间,完成上面的工作(排序需要采用指针完成)。 【参考解答】 #include<iostream> using namesp
作为CSDN俱乐部的例行活动,今天由我为同学们讲新浪微博开发。原计划大一的继续在计算中心玩编程,高年级的听讲座,但据说大一的有意见,也就本周暂停编程比赛。 反思自己的思路,不管何种形式,不是要让同学们多见识一些吗?不是一直推荐“不要强调基础,能做就尽快做起来”的一种思维吗?每周五的活动尽可能变着点花样,而不是让大家感觉“苦逼”的日子从学校开始,这也是俱乐部活动长期健康进行的基础。
【边讲边演示——请点下面的视频链接】 【要点】 问题: CSDN的博文中插入代码,可以排版出很漂亮的效果,但是 处理不当,有时变得很难看 解决方案: 在集成开发环境(IDE)中编辑好后再往博客中放; 选用插入代码的工具(注意选择语言); 懂一些HTML,直接编辑“源代码”,处理意外的情况 <p>… </p> <br&g
【题目】阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中的数据成员有:double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工人数。在main函数中调用你自己设计好的成员函数完成下面的功能:(1)输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志
【题目】设计一个“正整数”类,并通过一系列的成员函数对其性质进行做出判断或列出相关联的数值。下面给出类声明,请实现各成员函数。另外,模仿已经给出的main()函数,完成你所设计的各个成员函数的测试。 给出的程序段为: #include<iostream> using namespace std; class NaturalNumber {private: int n;
【题目】针对第3周任务3,利用多文件组织项目。其中,项目包括3个文件: 主文件: main.cpp,用于定义main()函数 头文件: mytime.h,头文件 类定义文件: mytime.cpp,用于定义类Time 要求: (1)如果原任务的设计存在问题,要改正过来; (2)在报告中逐个文件进行说明,在报告最后要就多文档组织提出个人的观点。 【题目说明】 在软件工程中,一
【题目】下面设计一个三角形类,请给出各成员函数的定义 #include<iostream> using namespace std; class Triangle { public: void Setabc(float x, float y, floatz);//置三边的值,注意要能成三角形 void Getabc(float *x,
昨天(2012.3.8)在课堂上郑重地向同学们挑明了目前的一个严峻事实:不少同学有了自己笔记本电脑,但按时提交报告的却急剧下降。还有一个好消息是,学院为同学增加了自由上机的机会。但显然,这一条件也没有反映出其应有的效果。 好条件哪去了?无须说破,人人明白。自己的电脑,在宿舍能够方便地上机,利用得好,这是你在学习上的一个好的条件,利用得不好,则绝对是致命的毒酒。 有同学通过文
【题目】(改自教材P262第6题)仿照你阅读过的程序,编写基于对象的程序,求3个长方柱的体积。数据成员包括长(length)、宽(width)、高(heigth)、体积,要求用成员函数实现下面的功能: (1)由键盘输入3个长方柱的长、宽、高; (2)计算长方柱的体积(volume)和表面积(areas); (3)输出这3个长方柱的体积和表面积; 【说明】这是第一个设计性质的程序,需
【题目】阅读、运行程序后,按要求增加类的功能 要求:请在原类基础上,增加下列成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。 add_a_sec() //增加1秒钟 add_a_minute() //增加1分钟 add_an_hour() //增加1小时 add_seconds(int) //增加n秒钟 add
题目:(教材P261页第1题)上机前在纸上先找出错误,然后上机调试,使之正常运行。运行时输入时分秒,检查输出是否正确。 要求:在实验报告中,在改动处加注释说明理由 #include <iostream> using namespace std; class Time { void set_time(void) ; void show_time(void); int
【题目】求满足条件n=a!+b!+c!的所有三位数n并输出,要求用自定义函数实现求阶乘。 【本讲结构】 (一)题目讲解视频 (二)相关习题 (三)此类题目的共有特征及典型算法 (四)视频中的代码 (五)部分相关习题的参考例程 【正文部分】 (一)题目讲解视频 (二)相关习题(带*的在后面有参考例程) 若一个正整数n的所有小于n的因子之和等于n, 则称n为完
【题目】在下面的加法算式中,不同的符号代表不同的数字,相同的符号代表相同的数字。请设计程序求出"都、要、学、C"4个符号分别代表的数字。 学 C 要 学 C+ 都 要 学 C________________ 2 0 0 8 【本讲结构】 (一)讲解视频 (二)相关习题 (三)视频中的代码 (四)其他写法的代码 (五)部分相关习题的参考例
【题目】输入一行字符,统计其中有多少个单词,每两个单词之间以空格隔开。如输入: This is a c++ program. 输出:There are 5 words in the line. 【本讲结构】 (一)讲解视频 (二)相关习题 (三)视频中的代码 (四)其他写法的代码 【正文】 (一)讲解视频(点下面的图标) 针对一个刚读入的符号如何判断? 读
在大学中,自学能力是异常重要的。当然,这个自学,是在教师指导下的自学,是向完全真正自学的过渡。在终身学习的年代,自主学习是核心,具备自学的能力是基础。自学有充分的自由,简单地可以理解为爱学什么学什么,想怎么学就学什么。这里面也有技术问题,比如学习内容的选择,针对内容对学习方法的选择等。从这个角度讲,也不是完全的自由。在大学,可以有课外知识的自学,课程的学习也要重视在教师的指导下能够自己进行
【题目】求f=1-1/2!+1/3!-...+1/9! 【本文结构】 看题目,有点难度(相对而言,熟悉编程后,这只是一个非常典型的问题)。将我带着大家把这个问题分解一下,由易到难解出来。 我们要经历的过程是: (一)求f=1+2+...+9【很简单的问题】 (二)求f=1-2+3-4+...+9【在(一)的基础上,学习如何一正一负地累加】 (三)求f=1
程序设计初学者常常受困于不会想问题:“不知道让计算机解决这个问题该如何做”。其实,程序员的一个基本功是,能够将复杂的问题分解开来。学会分解任务,因超级大分为大的、中的、小的、超小的,直到能用很直接的方法解决。记住一个很管用的策略:自项向下,逐步求精。不管做何事,都拿这个策略套一套,程序能编好,其他事也都能做。 本讲的主要目标在于: (1)让你建立“自顶向下,逐步求精”的思维
前几天写了一组文章,讲新浪微博应用开发的一个解决方案:用PHP+新浪微博开放平台+新浪云平台(SAE)(称旧文中的方法)。受博友提醒,注意到了新浪云平台上提供的对新浪微博开发的支持,采用的是SaeT(已改名为SaeTOAuth) ,这也是一个非常好的解决方案,区别在于所用到的授权类和微博类不同。本文对这两种方法稍加对比,并指出这两种方法对于开发和学习方面的比较。 本文介绍的方法,
相关文章: 一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础二、建立微博应用的过程三、PHP SDK中Demo程序简析四、进一步学习的走向和有用的资源五、必须交待的几个问题【PDF全文下载】 在初步掌握微博应用开发的流程后,建议通读一遍weibooauth.php中的代码,优先读class WeiboClient中公共方法的定义。这些方法都是直接操作微博和用户的,清
相关文章: 一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础二、建立微博应用的过程三、PHP SDK中Demo程序简析四、进一步学习的走向和有用的资源五、必须交待的几个问题【PDF全文下载】 本文是新浪微博旧版API中的PHP例程,可以作为初学时阅读和试探的参考材料。 API 文档的旧版接口文档提供了一些PHP示例(新浪对PHP的支持最好),很方便用于学习
PHP+新浪微博开放平台+新浪云平台(SAE) ——新浪微博应用开发的一个解决方案 一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础二、建立微博应用的过程三、PHP SDK中Demo程序简析四、进一步学习的走向和有用的资源五、必须交待的几个问题【PDF全文下载】 进一步学习的走向和有用的资源 在进一步的学习中,你需要: (1)好好学习PHP:照
PHP+新浪微博开放平台+新浪云平台(SAE) ——新浪微博应用开发的一个解决方案 一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础二、建立微博应用的过程三、PHP SDK中Demo程序简析四、进一步学习的走向和有用的资源五、必须交待的几个问题【PDF全文下载】 建立微博应用的过程 1、在微博开放平台上创建应用 首先登录你的微博
(1)编写递归函数将十进制数转换成二进制数输出。【考核知识点:递归函数】 #include <iostream> using namespace std; void d2b( int n ) { //此处写入你的代码 } void main() { int a; cin >> a; //输入十进制数 d2b( a ); //转换成二进制数输
(1)函数的定义 (2)函数的返回值 (3)函数重载 (4)函数模板 (5) 函数调用及参数传递 (wait ......)
过程式程序设计确定你需要哪些过程; 采用你能找到的最好的算法。 模块程序设计确定你需要哪些模块; 将程序分为一些模块,使数据隐藏于模块之中。 面向对象程序设计确定你需要哪些类; 为每一个类提供完整的一组操作; 利用继承去明确地表示共性。 通用型程序设计(范型编程)确定你需要哪些算法; 将它们参数化,使它们能够对各种各样适当的类型和数据结构工作。 摘自《C++程序设计语言(
看到陈同学做的一道题,手痒痒,也做了一份,凑个热闹。/*(编程题)下列乘法算式中:每个汉字代表1个数字(1~9)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。 赛软件 × 比赛 ---------- = 软件比拼 试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。 【参考结果】 465 * 14 = 6510 */ #
已经见到了一位同学搬家CSDN的博客(http://blog.csdn.net/kamiming)。提醒大家用好其中的一个功能:插入代码。先上图: 图中的工具栏上,如图位置的图标表示插入代码,可以选择多种编程语言。将代码(包括注释)都粘贴到小框中后点确定。结果是……,再上图: 很漂亮的代码。 到了CSDN,就是为了更好地展示我们的成果,将“卫生”搞好一些。搬家时,不
看视频、例程的目的不是看过,目的是学会自己写程序,谨记! 为便于同学们学习,网络习题课按照谭浩强编著的《C++程序设计》(后面简称此书为“教材”)中知识点的编排,逐渐提出可以自行练习的题目。在相同类型的题目中,一般选择一个进行讲解,为读者解决其他题目提供参考。 通过模仿学习编程是个不错的办法。不过,模仿的不是写出几个语句来,而是要模仿解决问题用的思路。为了理清思路,
刚刚监考完C++课。 事前见过题目,觉得我的学生没有问题。对于小题,我知道同学们做题的能力,他们手里也有不少习题,考前猛做着呢。 重点还在编程题,我知道递归的题目有不少人还没有转过弯子来,看谁先悟到吧。而其他题目甚至只配作以往实验任务中的一部分,脑子转一下就能过来。 但看学生做题,急。好几个同学编程题没做完,也不再努力做了,恨不得替他们上阵。这两个小时,过得很
每周2-3个必做题目,一堆可选题目。调好一个程序,发布一篇博文。少部分同学享受着选做题,少部分同学不能按期完成基本要求,大部分学生在完成基本要求都觉得已经尽力。 这是整个学期我们学习C++的状况。 十年前讲过C语言后,就再也没有给大一的同学上过课,讲编程技术也没有过“零基础”的前提。十年后,在几番波折之后,再次有机会面对大一的学生讲程序设计。此时,对我而言,教学手段更熟练,
【18周任务篇】 二维数组的应用还是比较简单的,而在实际编写中,出现了将==写成了=的错误。找清数组间的关系,本项目会简单许多。理解原理是第一位,而找好算法更重要。明白用循环还是判断,会让事情简单很多。 指针真的是很神奇,将实际参数传递给形式参数,在函数的调用过程中,通过改变指向的地址中的数值,其实实现了实际参数与形式参数的双向传递,这是其他变量所不具被的独特能力,当然也正是因为此,它
NetLogo是一个用来对自然和社会现象进行仿真的可编程建模环境。NetLogo特别适合对随时间演化的复杂系统进行建模。建模人员能够向成百上千的独立运行的“主体”(agent)发出指令。这就使得探究微观层面上的个体行为与宏观模式之间的联系成为可能,这些宏观模式是由许多个体之间的交互涌现出来的。NetLogo足够简单,可以非常容易的进行仿真,或者创建自己的模型。并且它也足够先进,在许多领域都
题目:定义一个8行8列的二维数组a[8][8] (1)(模板中已经完成)利用产生随机数的系统函数为其置初值(1-50之间),可能的取值如右图所示; (2)输出从左上到右下对角线上的元素的值,如对右图而言,输出为48 34 12 31 40 42 34 45;再输出从右上到左下对角线上的值; (3)将此数组视为“扫雷”游戏的界面(实际上扫雷游戏的界面一般就用二维数组保存其界面),通过键
任务:有一字符串,包含n个字符。实现函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串,当m值大于str1的长度n时,输出空字符串。 实验目的:学会指针访问字符数组 实验内容:从字符数组中取出指定位置开始的子符串 /* 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights re
很后悔和同学们说要将这几次博文提交情况与平时成绩挂钩。尽管我有好几门课都是不考试,只记平时成绩的。 用博客交报告,前提之一就是同学不必功利,程序调试出来了,顺便一篇博文也就诞生了。做得快的,发得早一些;慢热的,提交晚一些,实在做不出来,看看别人的,再想一想,仿照做出来了,再提交。一学期了,我的观察是,可以相信大家。 但我的话给同学们带来了不少压力,不能以平和的心态解决编程中
任务:数据来自score.txt,在程序中建立一个动态链表:每读入一个同学的数据,计算总分,分配结点的存储空间并赋值,并建立起前后相链的关系。在建立链表的同时,要进行统计,以便于求出所有同学总分的平均成绩。动态链表建立后,从头结点开始,依次输出所有总分高于平均总分且没有挂科的同学的学号、姓名、总分。 实验目的:学会动态链表的建立和输出 实验内容:动态链表的定义、建立、输出 /
任务:score.txt中是一些同学的学号、姓名、C++、高数、英语成绩,定义一个学生成绩的结构体数组,其中的成员包括学号(char num[12])、姓名(name)、三门课的成绩(grade)、总分(score))。建议将某些功能设计成自定义函数。 (1)从文件中读出数据,存放到你定义的结构体数组中; (2)求出每名同学的总分(可以读入过程中“顺便”计算); (3)按总分排序(降
尽管已经期末了,看同学博文的感觉越来越好(尽管这一周难声一片)。决定以后每周将课程中的一些故事记录下来,尤其是同学感言部分。不用说再过多些日子,刚刚看过都觉得亲切和慰藉。 ※ 链表如一条链子把所有的内容都连起来了,就像老鹰抓小鸡,抓到了鸡妈妈,鸡宝宝一个都不落!【好狠耶!】※ 我发现,用分号成了一种习惯.....【一切都会习惯,那就是感觉,日久渐浓 】 ※ 这次的作业又补上了以前的
问题:编写函数 int fun(int x, int *pp)。其功能是,求出x的所有奇数因子,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。若x的值为30, 数组中的数为1,3,5,15,函数返回4。 详见 实验指导书 实验目的:学会利用指针解决问题 实验内容:求出一个数所有的奇数因子 /* 程序头部注释开始 * 程序的版权和版本声明部分 * Co
题目:(数组的排序) 按模板中的要求,用指向数组的指针变量作为形式参数编写函数,完成冒泡排序。重点体会:(1)冒泡排序算法;(2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变;(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递。详见 指导书 实验目的:学会冒泡排序算法 实验内容:实现冒
从第五周到第八周,除去第七周的国庆,C++共上了三周的课。大一新生三周能学会些什么?他们已经能输出漂亮的星号图了。身为老师的我,和这群大孩子一样高兴。同学们的努力令我感动,自己的不少非常规的想法和做法在他们的配合下正在起着作用,我已经感觉到,他们中的绝大多数将就此找到感觉,不光是专业学习,而是整个大学生活,在忙碌和不断出现的困难中,在快乐和不断冲破束缚的过程中,享受大学带来的一切。 原先
C++课程2011级首页:链接 新学期开始,实验报告要提交到CSDN了。上学期的报告建议整理后搬迁至此,详见《搬迁说明》。 下面是两个班所有同学的博客地址。同学们可以相互观摩,学习其他同学的解决方案,开拓我们交流的空间,讨论包括C++在内的各种问题。请其他读者也请轻点你的鼠标,见证我的学生的成长之路,顺便也指点一二,贺某在此感谢了。 推荐:大学生如何让自己强大起来(计算机
任务3:从文件salary.txt中读入500名工人的工资,全部增加100元后进行排序(好事,涨工资了),将排序后的结果在屏幕上输出,并保存到文件ordered_salary.txt中。 (salary.txt可以从BB平台下载) 实验目的:学会ASCII文件的操作 实验内容:从文件中读入数据,排序并输出到另外一个文件中 /* 程序头部注释开始 * 程序的版权和版本声明部分
任务2(字符数组和字符串):给出一个字符数组char str[],在程序中赋初值为一个句子,例如char str[]=”he threw threefree throws”,自编函数完成下面的功能: (1)求出字符数组中字符的个数(从第一个字符读起,直到读到’\0’结束计数)(对于例句,输出为26); (2)计算句子中各字符出现的频数 算法提示: (a) i=0 (b)取字符
任务1:(数组的排序)编函数,完成冒泡排序。要求不能改变下面的main函数。 重点体会:(1)排序算法;(2)数组名作形式参数,将能改变作为实际参数的数组的值,实际参数传递给形式参数的是数组的地址值,也是传值;(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递。 实验目的:学会冒泡排序算法 实验内容:实现冒泡排序算法,并将之定义为一个函数 /* 程序头部注
任务2:(函数及数组的简单应用) 在数组score中将要存储某小组C++程序设计的成绩,请设计完成下面功能函数,并将它们组合成一个完整的应用: (1)输入小组人数及成绩; (2)输出该小组的最高成绩、最低成绩、平均成绩和成绩的标准偏差; (3)输出考得最高成绩和最低成绩的同学的人数及对应的学号(设成绩对应的下标即学号,可能有相同的成绩) 实验目的:学会使用函数解决实际问题 实
任务1:(函数的递归) 用递归函数求f(n)=13+23+…+n3,要求先将f(n)数学表达式表示成递归的形式,然后再编程序实现。 实验目的:学会使用函数的递归 实验内容:用递归函数求解表达式 /* 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 文件名称: fun
任务3:(函数的嵌套)编制一个三角函数表,要求在main()函数中调用show_sin_table(min_angle, max_angle),显示角度值为min_angle到max_angle之间的所有角度(间隔为1度)的正弦值。要求不能用数学库函数,将任务2中的mysin函数拷贝到这个程序中,用于计算sin值。例如show_sin_table(0, 90)可以显示出所有0到90度的正弦