烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
贺老师的教学链接 本课讲解 重名问题的解决 //出错的程序 #include <iostream> #include <math.h> using namespace std; class point { public: double x; double y; }; double distance(point p1,point p2) {
贺老师的教学链接 本课讲解 命名空间namespace是个老相识 //正确程序1 #include <iostream> using namespace std; int main( ) { cout<<"hello world!"<<endl; return 0; } //出问题的程序 #include <iostream>
贺老师的教学链接 本课讲解 例:防止除数为0 #include <iostream> using namespace std; template <typename T> T Div(T x,T y) { if(y==0) throw y;//抛出异常 return x/y; } int main() { int x=5,y
贺老师的教学链接 本课讲解 一个典型的问题程序 #include <iostream> using namespace std; template <typename T> T Div(T x,T y) { return x/y; } int main() { int x,y; double x1,y1; cin>>x
贺老师的教学链接 本课讲解 说明:(1)下面的代码,只演示了利用链表作为存储结构的可选处理方法,本讲提到的其他方面的拓展,请感兴趣做下去的同学自行使用相关技术组合起来,形成一个完整的系统。(2)运行程序,登录用户名和密码,请阅读程序,从程序中找出。建议建立多文件项目,将代码拷贝到IDE中看。(3)本程序由我的2011级学生刘镇参加企业组织的实训中完成,原文在:点击打开链接Record.h
返回:贺老师课程教学链接 项目要求 【项目 - 链表类】动态链表也是程序设计中的一种非常有用的数据结构。可以说,是否能够理解有关操作的原理,决定了你是否有资格称为“科班”出身。在后续的专业基础课中,相关的内容还会从不同的角度,反复地认识,反复地实践。不过,在现阶段多些体验,也是很有必要的了。(1)阅读下面的程序,回顾一下动态链表,阅读程序过程中,请用笔画一画形成链表的过程中指针值的变化。
返回:贺老师课程教学链接 【项目 - 链表类】动态链表也是程序设计中的一种非常有用的数据结构。可以说,是否能够理解有关操作的原理,决定了你是否有资格称为“科班”出身。在后续的专业基础课中,相关的内容还会从不同的角度,反复地认识,反复地实践。不过,在现阶段多些体验,也是很有必要的了。(1)阅读下面的程序,回顾一下动态链表,阅读程序过程中,请用笔画一画形成链表的过程中指针值的变化。 #incl
返回:贺老师课程教学链接 项目要求 【项目-立体类族共有的抽象类】 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 [参考
返回:贺老师课程教学链接 项目要求 【项目-形状类族的中的纯虚函数】写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的main()函数,求出定义的几个几何体的面积和。 int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半
返回:贺老师课程教学链接 项目要求 【项目-动物这样叫】 下面是给出的基类Animal声明和main()函数。 class Animal { public: virtual void cry() { cout<<"不知哪种动物,让我如何学叫?"<<endl; } }; int main( ){ Animal *p;
返回:贺老师课程教学链接 【项目1-动物这样叫】 下面是给出的基类Animal声明和main()函数。 class Animal { public: virtual void cry() { cout<<"不知哪种动物,让我如何学叫?"<<endl; } }; int main( ){ Animal *p; p = n
返回:贺老师课程教学链接 1、阅读下面的程序,并写出运行结果(1)虚函数#include<iostream> using namespace std; class A { int a; public: A():a(5){} virtual void print()const { cout<<a;} }; class B: public A { cha
贺老师的教学链接 本课讲解 系统升级第一步:转换现有数据格式(附:数据文件点击打开链接) #include <iostream> #include <fstream> #include <cstdlib> using namespace std; typedef struct { int NO; char name[8]; in
贺老师的教学链接 本课讲解 例:“写”字符数组 #include<iostream> #include <strstream> using namespace std; struct student { int num; char name[20]; float score; }; int main( ) { student st
贺老师的教学链接 本课讲解 示例:写到尾再从头读 #include <iostream> #include <fstream> #include <cstdlib> using namespace std; int main( ) { int a[10], b[10]; fstream iofile("f1.dat",ios::in|io
贺老师的教学链接 本课讲解 附:二进制文件查看器及示例bmp文件 http://pan.baidu.com/s/1dDjf5uD 用程序读出BMP文件信息 //readbmp.h #ifndef READBMP_H_INCLUDED #define READBMP_H_INCLUDED typedef unsigned char BYTE; typedef unsigned shor
贺老师的教学链接 本课讲解 对比ASCII文件和二进制文件 //将short int x=12345写入文本文件 #include <iostream> #include <fstream> #include <cstdlib> using namespace std; int main( ) { short int x=12345; o
贺老师的教学链接 本课讲解 示例:将数据写入ASCII文件 #include <iostream> #include <fstream> #include <cstdlib> using namespace std; int main( ) { int a[10]; ofstream outfile("f1.dat",ios::out);
贺老师的教学链接 本课讲解 例: 输入个数不确定的成绩 #include <iostream> using namespace std; int main( ) { float grade; cout<<"enter grade:"; while(cin>>grade)//能从cin流读取数据 { if(g
贺老师的教学链接 本课讲解 cerr流对象使用:解方程ax^2+bx+c=0 //解一元二次方程ax^2+bx+c=0:从键盘输入a,b,c的值,求x1和x2。如果a=0或b2-4ac<0,输出出错信息。 #include<iostream> #include <cmath> #include<iomanip> using namespace st
贺老师的教学链接 本课讲解 体会缓冲区#include <iostream> using namespace std; int main() { int n[5]; for(int i=0; i<5; i++) { cin>>n[i]; cout<<n[i]<<endl;
返回:贺老师课程教学链接 项目要求 【项目4 - 点、圆的关系】(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);(4)定义友元函数int locate,判断点p与圆的位置关系(返回值<
【项目 - 教师兼干部类】分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求: (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wa
【项目】日期时间类 定义一个日期类Date,数据成员包括年、月、日,SetDate(int y,int m,int d)和PrintDate()函数分别用于设置日期和显示日期;再定义一个时间类Time,数据成员包括时、分、秒,SetTime(int h,int m,int s)和PrintTime()函数分别用于设置时间和显示时间,在此基础上再定义一个日期时间类TimeDate,充分利用
【项目 - 摩托车继承自行车和机动车】 在下面一段类的定义中,自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,类之间均为公有继承,如图所示。下载可执行文件链接motorcar.exe.(1)根据上面各类间关系的描述,补全下面程序段中空缺的代码;(2)实现程序中声明的成员函数,注意相应操作中的动作发生的条件不能满足时应给出提示。(3)运行程序,享受开
返回:贺老师课程教学链接 【项目1 - 教师兼干部类】分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求: (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cad
返回:贺老师课程教学链接 请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:张三,42 岁,担任技术处处长高级工程师,从事轮机设计专业。 #include <iostream> #include <cstring> using namespace std; class Person { char* name; // 姓名 int
返回:贺老师课程教学链接 (1)阅读程序,写出执行结果#include <iostream> using namespace std; class A { public: A() { a=0; } A (int i) { a=i; } void print() { co
贺老师的教学链接 本课讲解 示例:工厂模式 实现的C++代码: #include<iostream> using namespace std; //基类:运算类 class COperation { public: double numberA; double numberB; virtual double getResult() = 0; }; //加
贺老师的教学链接 本课讲解 实例:顶层的Shape作为抽象类 #include <iostream> using namespace std; //声明抽象基类Shape class Shape { public: virtual float area( ) const { return 0.0; //虚函数 } virtual
贺老师的教学链接 本课讲解 纯虚函数应用 #include "iostream" using namespace std; class Animal { public: virtual void cry() = 0; }; class Mouse : public Animal { public: void cry() { cout<<
贺老师的教学链接 本课讲解 问题的由来 #include <iostream> using namespace std; class Point { public: Point( ) { } ~Point() { cout<<"executing Point destructor"<<endl; } };
贺老师的教学链接 本课讲解 指向基类的指针,为何只能访问来自基类成员?! #include <iostream> #include <string> using namespace std; //声明基类Student class Student { public: Student(int, string,float);//声明构造函数 void di
贺老师的教学链接 本课讲解 用指针输出几何体 #include <iostream> using namespace std; class Point { public: Point(double x=0,double y=0); friend ostream & operator<<(ostream &,const Point
贺老师的教学链接 本课讲解 一种死板的机制 #include <iostream> #include <string> using namespace std; //声明基类Student class Student { public: Student(int, string,float);//声明构造函数 void display( );
在CSDN学院开出的网络系列课程《C语言及程序设计初步》已经完成。 系列中的第二季《C语言及程序设计提高》的所有资源建设已经全部完成。 这是第三季《C语言及程序设计进阶》。视频资源链接点击打开链接 【公告】本课学员名单及QQ群公告,请到套餐主页查看。有兄弟,不孤单,一起营造学习氛围。 【重要通知1】自测题由于问卷星服务规则变化,不能看到答题情况,现转到“蓝墨云班课”中
【项目 - 点类派生直线类】定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点。请阅读下面的代码,并将缺少的部分写出来。 #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0
返回:贺老师课程教学链接 项目要求 【项目4 - 类族的设计】 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(
【项目 - 职员有薪水了】(1)定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信
【项目 - 存储班长信息的学生类】 class Stu //声明基类 { public: Stu(int n, string nam ); //基类构造函数 void display( ); //成员函数,输出基类数据成员 protected: //(*)访问权限为保护型的数据成员 int num; //学生学号
【项目 - 是春哥啊】 请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:Name: 春哥Grade: 19 #include <iostream> #include <cstring> using namespace std; class Person{ public: Person(char* s){ strcpy(name,
返回:贺老师课程教学链接 【项目0 - 是春哥啊】请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:Name: 春哥Grade: 19#include <iostream> #include <cstring> using namespace std; class Person{ public: Person(char* s){
返回:贺老师课程教学链接 (1) #include <iostream> using namespace std; class Data { public: Data(int i):x(i) { cout<<"A"; } ~Data() { cout<<"B"; } pri
贺老师的教学链接 本课讲解 指向基类对象的指针变量也可以指向派生类对象 #include <iostream> #include <string> using namespace std; class Student//声明Student类 { public: Student(int, string,float); void display( );
贺老师的教学链接 本课讲解 点与直线 #include<iostream> #include<Cmath> using namespace std; class Dot { public: float x,y; Dot(float a=0,float b=0) { x=a; y=b; } voi
贺老师的教学链接 本课讲解 多重继承实例:研究生承担教学任务 #include<iostream> using namespace std; class Teacher { public: Teacher(string nam,int a, string t); void display_t( ); protected: string name;
贺老师的教学链接 本课讲解 虚基类应用举例 #include <iostream> #include <cstring> using namespace std; class Person { public: Person(char *nam,char s,int a) //构造函数 { strcpy(name,nam);
贺老师的教学链接 本课讲解 公用继承 //演示:修改Student中的访问限定符,编译及运行,从而查看结果 //当Student中的3个数据成员改为private时,程序的两种改法: //(1)在Student1中的show1()方法中调用show(); //(2)在main()函数中调用stud1.show() #include <iostream> #include&l
贺老师的教学链接 本课讲解 一个简单派生类的定义 #include <iostream> #include<cstring> using namespace std; class Student //声明基类Student { public: Student(int n,string nam,char s):num(n),name(nam),sex(s)
贺老师的教学链接 本课讲解 派生类 #include <iostream> #include<string> using namespace std; class Student//声明基类Student { public: void sets(int n,string nam,char s); void show( ); protected: