烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
【项目-排序函数模板】 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的前size个元素按从小到大顺序排列。试设计这个函数模板。 参考解答: #include<iostream> using namespace std;
上机辅导。学生的一个程序莫名出问题。她是在做一个String类,主要是要实现字符串的连接。 程序是这样的,请读者将其拷到IDE,边看边调: #include <iostream> #include <cassert> #include <cstring> using namespace std; class String { p
阅读并运行程序,解释程序执行得到的结果 (1) #include<iostream> #include<vector> #include<iterator> using namespace std; int main() { vector<int> ivec; int i; for(i = 0;
【项目1-排序函数模板】 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的前size个元素按从小到大顺序排列。试设计这个函数模板。 【项目2-两个成员的类模板】 设有如下的类声明: class Test{ public:
【项目1-分数类中的运算符重载】 (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。 class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及
【项目1-分数类中的运算符重载】 参考解答 (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。 class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的
【项目1-实现复数类中的运算符重载】 参考解答 (1)请用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除 class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} Complex o
【项目-Time类中的运算符重载】 实现Time类中的运算符重载。 class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTi
【项目-数组类运算的实现】 设计数组类Array,为了实现测试函数中要求的功能,请补足相关的函数(构造、析构函数)和运算符重载的函数。 实现策略提示:可以将测试函数中的语句加上注释,取消一句的注释,增加相应的函数,以渐增地实现所有的功能,避免全盘考虑带来的困难。 class Array { private: int* list; //用于存
【项目0 - 是春哥啊】参考解答 请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为: Name: 春哥 Grade: 19 #include <iostream> #include <cstring> using namespace std; class Person{ public: Person(char* s){
【项目1 - 点-圆-圆柱类族的设计】参考解答 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; (2)以Point为基类,派生出一个Circle(圆)类,增加数
【项目 - 点-圆-圆柱类族的设计】 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(
【项目-警察和厨师】 (1)根据下面的类图,定义各个类: 要求: 各个成员函数,只要输出相关的信息即可,暂不深究其业务功能 请为各个类增加构造函数 在实现中,可以增加需要的其他函数 自行编制main函数,完成初步的测试 [参考解答1] #include <iostream> using namespace std; class Pers
(1) #include<iostream> using namespace std; class G { public: static int m; G( ){ //构造函数 m++; cout<<"G begins\n"; } ~G( ) { cout<&l
阅读程序,请写出这些程序的运行结果 (1)阅读程序,写出执行结果 #include <iostream> using namespace std; class Data { public: Data(int i):x(i){cout<<"A";} ~Data(){ cout<<"B";} private: i
备课中。 从下载的PPT中复制出例题,调试一下,结果: 何其多的错误,红红的。 不正在声明Base2吗?怎么会“error: ‘Base2’ has not been declared” 斗争! …… 小样,就一个符号的问题,犯得着兴师动众,给出那么多提示?!红红的一片,血案发生? 编译器就是这么好,严格把关,各种提示。
【项目-我的数组类】 阅读程序,请完成成员函数的定义,因为存在指针型的数据成员,注意需要深复制的构造函数。 #include<iostream> using namespace std; class MyArray { private: int *arrayAddr; //保存一个有len个整型元素的数组的首地址 int len;
【项目1-深复制体验】参考解答 (1)阅读下面的程序,补足未完成的注释 #include<iostream> #include<cstring> using namespace std; class A { private: char *a; public: A(char *aa) { a = new ch
阅读程序,写出程序的运行结果并理解其运行机制。 (1) #include <iostream> using namespace std; class A { public: A(){cout<<"A";} ~A(){cout<<"~A";} }; class B { A *p; public: B()
【来信】 老师,恳请您讲讲您在csdn上关于二叉树的基本操作算法的思路,主要是那几个函数;链接。尤其是创建二叉树的,完全看不懂。谢谢老师啦 【回信】 收到你的请求,我有些为难。要讲讲,怎么讲呢?通过书面的方式写出来吗?你找几本书看看更合适,书上讲得,肯定比我着急中写出的要好。要说用讲课的方式,CSDN学院的视频已经讲过。其实,要是面对面,或许可以通过对话,这是最
指向对象的指针,指向数据成员的指针,指向成员函数的指针; 数组即指针,数组的指针,指针数组; 指向函数的指针,指向类的成员函数的指针,指针作为函数参数,指针函数; 指针的指针,指向数组的指针;常指针,指向常对象的指针; …… 大哥,这些都是什么鬼?! 用下面一张图全概括。用例子对照图示,有感觉,就用术语将概念大声地念出来,动员所有的
【项目 - 数组作数据成员】下面是设计好的一个工资类(Salary): class Salary { public: void set_salarys( );//输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中; void add_salarys(int x); //给每个人涨x元工资
【项目1 - 数组作数据成员】参考解答 下面是设计好的一个工资类(Salary): class Salary { public: void set_salarys( );//输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中; void add_salarys(int x); //给每个
C++游戏系列1:角色类 C++游戏系列2:给角色装备武器 C++游戏系列3:用多文件组织角色类 C++游戏系列4:杀伤距离有限制 C++游戏系列5:不止有一件武器 C++游戏系列6:自己动起来 C++游戏系列7:小结一下 C++游戏系列8:……(待续) $(function () {
更多见:C++游戏系列目录 “C++游戏系列”是在和2015级同学学习C++过程中,想找一个应用背景而开始写的,同时,也作为同学们的实践项目,借这样一个连续的项目,即时体现学习到的知识点和技术,将正在学的内容和与当前不少同学有体会的应用——游戏结合起来,这是一种获得直接经验的时候。 开始时,没有想到做成系列。随着进展,发现这个项目可以将C++基本内容之中的
更多见:C++游戏系列目录 知识点:(1)对象数组,自动生成了很多个“玩家”(角色类的对象),自动玩;(2)使用文件:武器要从文件中读,玩的过程,写入到了文件。 不足(待改进之处):(1)产生随机数时,没有避免重复,以致于会有自己攻击自己的情况——好在加了血又减去了,没有变化,还有同样的武器会有多件——都是棍,但带两条棍,也行;(2)只是让自动产生的角色玩起来了,自己没
更多见:C++游戏系列目录 知识点:对象数组作为数据成员 改进:每个角色所持有的武器不只一件,故持有的武器,用了对象数组来表示,当然,也可以是空手。由此而带来的,还得记录一共有几件武器,当前手持哪种武器。 【项目-角色有多样武器】 1.game.h:类声明 #ifndef GAME_H_INCLUDED #define GAME_H_INCLUDED #inc
更多见:C++游戏系列目录 知识点:(无新增) 改进:(1)武器增加了杀伤距离,角色增加了位置,这样,当两个角色对象离得太远,距离超出攻击者武器的杀伤范围,攻击行为无效;(2)其他一些规则更加合理 【项目-游戏类的进一步完善】 1.game.h:类声明 #ifndef GAME_H_INCLUDED #define GAME_H_INCLUDED #includ
更多见:C++游戏系列目录 知识点:项目的多文件组织。一个项目,由多个源文件及相应的头文件构成,将声明与定义分开。 【项目-用多文件组织多个类的程序】 将上一周“项目2-带武器的游戏角色”用“一个项目多个文件”的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。 参考解答: 1.ga
【项目1-成员函数、友元函数和一般函数有区别】参考解答 (1)阅读下面的程序,体会注释中的说明(要运行程序,请找到课程主页并复制代码) //例:使用成员函数、友元函数和一般函数的区别 #include <iostream> using namespace std; class Time { public: Time(int h,int m,int
【项目-IP地址类】 在互联网中使用的IP地址占4字节,可以用四段法表示,每段值的范围为0-255,中间用“.”隔开,例如202.194.116.97。其实,也可以看看一个有4字节的无符号整型值3401741409。 现设计一个IP地址类,用于保存IP地址,并实施在IP地址上的一些操作。如下所示: class IP { private: union //
更多见:C++游戏系列目录 知识点:类的组合,A类的数据成员,是B类的对象,或B类的对象,做A类的数据成员 【项目-带武器的游戏角色】 设计一个武器类,其数据成员至少要有武器名、威力,还可以加上你想描述武器的其他数据。想一想要对武器实施什么处理,设计其成员函数。 在上周的游戏角色类Role基础上扩充,为每个角色创建一个武器,并在攻击(attack)
【来信】 我很想学好数据结构,但动手能力实在太差,平时想个算法毫无头绪,我也知道熟能生巧,但是思绪都没有谈何练习?平时交作业都是看您的代码,有时代码都看不懂。真的很纠结,您能给点建议吗?很抱歉在您百忙之中打扰您。 【回复】 没有多的了解。从你所描述的情形看,你应该是现在对算法“无感觉”的一种状态。可能根源还是在程序设计的基本能力上有欠账。学习算法,需要在抽象层面
一、“书面”实践项目 【项目1】 “IT妹子类”的设计,作UML表达。见“云班课”中作业,每人一份,须签名。 【项目2】 阅读程序,对照运行结果,领会变量的变化过程,介绍三种方法,让你读得更明白:(1)画出变量占用的内存及值的变化;(2)画出变量占用的内存及值的变化;(3)画出变量占用的内存及值的变化。 (程序1) #include <iostr
(以下讨论,针对32位的计算机系统。。) 问:int型数据占几个字节?答:4字节。地球上这个群体的人都知道。 再问:这4个字节,即32个二进制位,又是何存储?这就进入计算机的“底层”了。这个事情,学习程序设计的童鞋,可以懂。 存储的方式,和我们拍脑袋想得不太一样,概括一下,就是低位在前,高位在后。 本文直观一些,看懂以下程序中数据的存储,也便知道这个安
更多见:C++游戏系列目录 知识点: 1、类的定义、对象 2、构造函数、析构函数 【项目-游戏中的角色类】 (1)基于下面设计的游戏中角色类,补充完整需要的成员函数,使角色能一定的规则行动或改变状态。下面代码中包含的是最基本的要求,可以根据你的设计进行扩充。 class Role { public: …… private: string n
【项目 - 三角形类雏形】 (1)下面设计一个三角形类,请给出各成员函数的定义 class Triangle { public: void setABC(double x, double y, double z);//置三边的值,注意要能成三角形 double perimeter();//计算三角形的周长 double area();//计算并返
【项目1 - 三角形类雏形】 [参考解答] (1)下面设计一个三角形类,请给出各成员函数的定义 class Triangle { public: void setABC(double x, double y, double z);//置三边的值,注意要能成三角形 double perimeter();//计算三角形的周长 double area
先说点背景知识,调用复制构造函数的三种情况: 1.当用类一个对象去初始化另一个对象时。 2.如果函数形参是类对象。 3.如果函数返回值是类对象,函数执行完成返回调用时。 在辅导学生上机时,有同学第3点提出异议。有教材上的例题为证: #include <iostream> using namespace std; class Point //Point
【来信】 ……(一封标点、断句都很乱的信,作者甚至写完都没有再看。) 【回复】 信结尾你说,说得有点乱。我在读的中间,要不是想看明白,也真觉得读不下去了。这是一封你一边想一边写出来的文字,想的中间有跳跃。 犹豫之后,我决定给你提出要求,请你将这封信重新整理后再给我发来。要知道,这封信如果是求职信,或是工作后给领导汇报工作的信,可能你失去机会的原因就是这个
【项目1-求最大公约数】 参考解答 (1)输入两个数,并求出其最大公约数 #include <iostream> using namespace std; //自定义函数的原型(即函数声明) int main() { int a,b,g; cin>>a>>b; g=gcd(a,b); cout<
在近日课程的开展过程中,小组合作学习方法的探索是重点。对于教师,需要在实践中学会应对各种问题;对于学生,也是这样。我们的学习,在单打独斗中经历的太久了。通过小组合作,让学习不顺利的同学能够及时得到帮助,而对学习顺利的同学,也有机会通过讲出来的方式,让自己对知识点的理解更加深入,同时锻炼更可贵的表达能力、合作能力。小组合作是解决问题的方式,将其附加功能发挥出来,将离我们的教
【项目1:个人所得税计算器】 编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识)。 (1)自选if语句的嵌套或/和switch语句完成程序设计; (2)下面给出程序的基本框架,请从课程主页找到链接下载使用。 #include <iostream> using namespace st
【来信】 老师您好我是一名软件学院大三的学生,现在在准备考研,我想问问老师专硕和学硕在找工作的时候,例如研究所什么的会不会区别对待? 【回信】 答复你这封邮件,是一件风险无限大的事。当我告诉你会区别对待,或者不会区别对待,几乎百分之百,都是错误的。 专硕和学硕在设置上的区别你已经清楚,人们对待这两种培养形式的看法,也在不断变化着。未来在找工作时,工
【项目:求Fibonacci数列】 Fibonacci数列在计算科学、经济学等领域中广泛使用,其特点是:第一、二个数是1,从第3个数开始,每个数是其前两个数之和。据此,这个数列为:1 1 2 3 5 8 13 21 34 55 89 ……,请设计程序,输出这个数列,直到这个数字超过10000。 【提示】数列可以表示为: {f1=f2=1fn=fn−1+fn−2,
【项目-累加求圆周率】 用如下公式求π\pi的近似值(计算直到最后一项的绝对值小于10−510^{-5}) π4=1−13+15−17+... \frac{\pi}{4}=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+...【参考解答】 #include <iostream> using namespace std; int
【项目-小试循环】 写出实现下面求解任务的程序【提示:m是一个变量,在程序中输入】 (1)求1到m的平方和 (2)求1到m间所有奇数的和 (3)求1到m的倒数和,即 1+12+13+14+...+1m 1+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+...+\frac{1}{m} (4)求值:1−12+13−14+...
【项目 - 胖子不想说体重】 成年男性的标准体重公式为: 标准体重(kg)=身高(cm)−100 标准体重(kg)= 身高(cm)-100 超标准体重20%为超重,比标准体重轻20%为超轻。请编写C++程序,输入身高和体重,完成下面的任务: (1)计算并输出标准体重。 (2)计算出标准体重,当超重时,请给出提示。 (3)计算出标准体重,当超
【项目1 - 宣告“主权”】 你已经是CSDN博客主了,用IT人特有的方式,编一段程序,在屏幕上输出你想说的话,按要求发布博文,作为我们的开山之作。 【项目2 - 胖子不想说体重】参考解答 成年男性的标准体重公式为: 标准体重(kg)=身高(cm)−100 标准体重(kg)= 身高(cm)-100 超标准体重20%为超重,比标准体重轻20%为超轻。请编写
【来信】 在上学期,突然一天一位学长问我要选择哪个方向,指的是算法和一般的开发。我回答他算法,而他说我对语言学的太心急,太快,不像是喜欢算法的,并和我说算法玩玩就好,不要陷得太深,并建议我走一般开发的路子。虽然学长学的挺好,但就比我大一岁,我还是不太相信他说的。后来在学校acm实验室纳新时,我还是按捺加不住入了。 加入后,我开始对算法有了一点了解,并开始学习算法。