南京信息工程大学实验报告(四)

头文件,源文件一开始分不清,然后查了一下,发现一篇讲的挺好的,下面是链接

https://blog.csdn.net/SleepBoyer/article/details/54577848

第二题

原来的包含在选做一里面了,下面是选做一的代码

graph.cpp

#include "graph.h"
#include <iostream>

using namespace std;

// 带参数的构造函数的实现
Graph::Graph(char ch, int n): symbol(ch), size(n) {
}

// 成员函数draw()的实现
// 功能:绘制size行,显示字符为symbol的指定图形样式
//       size和symbol是类Graph的私有成员数据
void Graph::draw() {
    for (int i=1;i<size+1;i++){        //控制行数
        for (int j=0;j<size-i;j++){    //输出每行符号前的空格
          cout<<‘ ‘;
        }
        for (int k=0;k<2*i-1;k++){     //输出图案符号
          cout<<symbol;
        }
          cout<<endl;                 //换至下一行
}

}
            // 补足代码,实现「实验4.pdf」文档中展示的图形样式
void Graph::redraw()
{
     while(1){
        cin>>symbol>>size;
        draw();
     }

}

graph.h

#ifndef GRAPH_H
#define GRAPH_H

// 类Graph的声明
class Graph {
    public:
        Graph(char ch, int n);   // 带有参数的构造函数
        void draw();    // 绘制图形
        void redraw();
    private:
        char symbol;
        int size;
};

#endif

Main.cpp

#include <iostream>
#include "graph.h"
using namespace std;

int main() {
    Graph graph1(‘*‘,5), graph2(‘$‘,7) ;  // 定义Graph类对象graph1, graph2
    graph1.draw(); // 通过对象graph1调用公共接口draw()在屏幕上绘制图形
    graph2.draw(); // 通过对象graph2调用公共接口draw()在屏幕上绘制图形
    graph1.redraw();
    return 0;
}

draw的算法:一行一行输出,最外层循环控制行数,里面第一个循环输出空格(有规律),紧接着的循环输出指定符号个数(有规律),接着换行,一行就完成了,可以进行下一行。

关于第二道改变控制台前景颜色和背景颜色的,百度了一下,发现有两种,一种是利用graphics.h 但是这个好像要在专门的一个软件里面,另一种是Windows.h 虽然两种都没有弄明白orz

第三道选做改变位置,有一点想法,但是没试过,就是getchar()一个字符,然后去重新定义一下输出软,但是又个疑惑,如果一开始是上或者是左键,图案怎么移动?

第三题实话没有做出来,程序有问题,一直报错说我的载入模糊不清,但是我不知道怎么改了,希望有大神帮我看一下,谢谢惹~

fraction.cpp

# include <iostream>
# include "fraction.h"
using namespace std;

Fraction::Fraction(int t,int b):top(t),botton(b){
}
Fraction::Fraction(){                  //函数的重载
    top=0;
    botton=1;
}
Fraction::Fraction(int t):top(t){     //函数的重载
       botton=1;
}
Fraction::~Fraction()
{}
void Fraction::fenshu(){
    cout<<top<<"/"<<botton;
}

void Fraction::add(Fraction &f){
    cout<<top*f.botton+top*f.botton<<"/"<<botton*f.botton<<endl;  //加法          //加法
     } 

void Fraction::minus(Fraction &f){
    cout<<top*f.botton-f.top*botton<<"/"<<botton*f.botton<<endl; //减法
    }

void Fraction::multiplication(Fraction &f){
    cout<<top*f.top<<"/"<<botton*f.botton<<endl;    //乘法
        }

void Fraction::division(Fraction &f){
    cout<<top*f.botton<<"/"<<botton*f.top<<endl;    //除法
        }

void Fraction::compare(Fraction &f){
    int m=top,n=botton;
    int p=f.top,q=f.botton;
    double w=top/botton;
    double j=f.top/f.botton;
        if (w>j){
          cout<<"b较大"<<endl;
        }
          if (w<j){
            cout<<"b较小"<<endl;
          }
        else {
            cout<<"一样大"<<endl;
        }

}

void Fraction::refenshu(){                    //分数输入输出
    while(1){
        cin>>top>>botton;
        fenshu();
    }

}

fraction.h

#ifndef FRACTION_H
#define FRACTION_H
class Fraction{
    public:
        Fraction(int t=0,int b=1);
        Fraction();
        Fraction(int t);
        ~Fraction();
        Fraction(Fraction &f);
        void fenshu();
        void add(Fraction &f);
        void minus(Fraction &f);
        void multiplication(Fraction &f);
        void division(Fraction &f);
        void compare(Fraction &f);
        void refenshu();
    private:
        int top;
        int botton;

};
#endif

main.cpp

# include <iostream>
# include "fraction.h"
using namespace std;
int main(){
    Fraction a;
    Fraction b(3,4);
    Fraction c(5);
    b.add(c);
    b.minus(c);
    b.multiplication(c);
    b.division(c);
    b.compare(c);
    b.refenshu();
    return 0;
}

做这题的时候有很多很多的问题暴露出来:

1.复制构造函数的运用,我运用他的时候,并没有将它放入函数成员参数中,导致了报错。

2.实现函数的时候忘记将类放在前面,对类中函数与对象的输出还不够确定代码怎么敲,掌握的不好。

3.重载函数一开始忘了使用,运用的不熟。

4.还有就是一些题目中要求功能的函数如何编写的问题了,不知道如何编写使得满足要求。

最后还是要提醒一下自己再把第三四章内容重新看看,在这几次作业中都有很多这两章内容的细节需要注意。

原文地址:https://www.cnblogs.com/zxy666/p/8922054.html

时间: 2024-07-31 08:23:10

南京信息工程大学实验报告(四)的相关文章

汇编语言程序设计实验报告四

南京信息工程大学实验报告 实验名称 实验 4 [bx]和loop的使用 实验日期 得分 学院 计软院 专业 计算机科学与技术 年级 2017级 班次 5班 姓名 陈奕明 学号 20171308194 一.实验目的 1. 理解和掌握寄存器间接寻址方式[bx] 2. 通过汇编指令loop的使用理解编程语言中循环的本质 3. 熟练掌握使用debug按需调试完整汇编源程序的方法 二.实验准备 1. 学习/复习第 5章使用[bx]和loop实现循环的编程应用示例(教材 5.5节,5.8节) 2. 复习第3

实验报告四

实验报告四 学   号201421450035   中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 王雪洁 年级 2014级 区队 5 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木

20145123《实验报告四》

Java实验报告四:Android开发基础 实验要求: 1.安装Android Studio 2.运行安卓AVD模拟器 3.使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 实验过程 (一)SDK的安装 1. 2. 3.

操作系统实验报告四

操作系统实验4 题目1:编写页面内存的LRU替换算法 在实验3基础上考虑,如果当前分配的内存或保存页面的数据项已经被用完,这时再有新的网页请求,需要对已在内存中的网页数据进行替换,本实验内容需要使用LRU算法来对内存中的网页数据进行替换 题目2:编写页面内存的LFU替换算法 实现LFU(最少访问频率的页面替换)算法来管理内存页面 实验报告要求: 实验报告封面如下页所示. 按照题目要求,完成相关实验题目. 2.1报告中要包含完成此题目所查阅的一些关键技术材料.例如内存结构的设计.分配管理.回收方法

实验报告 四(未完待续)

中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 宋欣雨 年级 2015 区队 二 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范

实验报告 四

中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 胥天浩 年级 2015 区队 5 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范

C语言程序设计实验报告四

C程序设计实验报告 姓 名:赖瑾 实验地点:家 实验时间:2020年4月9日 实验项目:5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5练习1 百马百担问题 5.3.5练习2 求等差数列 5.3.5练习3 食品分配问题 九九乘法表的实现 一.实验目的与要求 1.熟练地掌握while,do while及for语句实现循环的方法. 2.了解3种循环语句的区别和转换.各自的适应性.循环嵌套的使用. 3.掌握如何在循环语句种使用break,contin

C语言实验报告四

C程序设计实验报告 实验项目: 5.3.1-2求数列的前n项和:5.3.2水仙花数:5.3.4十进制转换:5.3.5-1百马百担问题:5.3.5-2求等差数列:5.3.5-3食品分配问题:九九乘法表. 姓名:熊晓东    实验地点:家   实验时间:2020.04.12 一.实验目的与要求 1.熟练地掌握while,do-while及for语句实现循环的方法.2.了解3种循环语句的区别和转换,各自的适应性,循环嵌套的作用.3.掌握如何在循环语句中使用break,continue语句,改变程序流程

网络对抗技术 实验报告四

网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 李飞扬 年级 2014级 区队 二区队 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识. 2.了解并熟悉常用的网络攻击工具,木马的基本功能: 3.达到巩固课程知识和实际应用的目的.