C++面向对象实验二

发布时间:2023年12月29日

实验二

  1. 编写一个将整数扩大十倍的函数func

//func.c

void fun(int *a)

{

? int temp;

? temp = *a * 10;

? *a = temp;

}

/func.h

void func(int *a);

//main.c

#include<stdio.h>

#include <iostream>

#include"func.h"

int main()

{

? int m = 10;

? func(&m);

? printf("%d\n", m);

? system("pause");

? return 0;

}

  1. 1改写为引用参数类型的版本

//func.c

void func(int& a)

{

?? int temp;

temp = a * 10;

?? a = temp;

}

//func.h

void func(int &a);

//main.c

#include<stdio.h>

#include <iostream>

#include"func.h"

int main()

{

? int m = 10;

? func(m);

? printf("%d\n", m);

? system("pause");

? return 0;

3、形如下面的整型单链表类型:

? ?struct LinkNode

? ??{

? ? ? ? ?int data;

? ? ? ? ?LinkNode* next;

? ? ?};

  1. 编写声明为void headInsert(LinkNode**);的无表头节点头插法函数

  1. 1)改写为引用版本

? ? ?3)编写声明为void headInsert(LinkNode*);的有表头节点头插法函数

? ? ?4)将3)改写为类封装版本的静态成员函数

headInsert.cpp代码:

#include<malloc.h>

#include<stdio.h>

struct LinkNode

{

??? int data;

??? LinkNode* next;

};

//无表头

void headInsert(LinkNode** head) {

??? LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));

??? scanf_s("%d", &(newNode->data));

??? newNode->next = *head;

??? *head = newNode;

}

void headInsert(LinkNode*& head) {

??? LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));

??? scanf_s("%d", &(newNode->data));

??? newNode->next = head;

??? head = newNode;

}

//有表头

void headInsert(LinkNode* head) {

??? LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));

??? scanf_s("%d", &(newNode->data));

??? newNode->next = head->next;

??? head->next = newNode;

}

headInsert.h代码:

#pragma once

struct LinkNode

{

??? int data;

??? LinkNode* next;

};

void headInsert(LinkNode** head);

void headInsert(LinkNode*& head);

void headInsert(LinkNode* head);

4、编写一个Student类,它只具有namechar*类型)和ageint类型)两个属性,要求:

? ? ?1)无参构造创建一个Student类型的名为zhangsan的对象,它的两个数据成员都采用默认初始化。

? ? ?2)有参构造创建一个Student类型的st对象,其中st.name == “zhangsan” , st.age =18;

//student.h

#pragma once

#include <IOSTREAM>

#include <STRING>

using namespace std;

class Student

{

private:

??? string name;

??? int age;

public:

??? Student()

??? {

??????? name = "";

??????? age = 0;

??? }

??? Student(string n, int a)

??? {

??????? name = n;

??????? age = a;

??? }

??? void PrintInfo()

??? {

??????? cout << name << " " << age << endl;

??? }

};

//main.c

#include<stdio.h>

#include <iostream>

#include"func.h"

#include"headInsert.h"

#include"student.h"

int main()

{

??? //int m = 10;

??? //func(m);

??? //printf("%d\n", m);

??? //LinkNode* head = NULL;

??? //headInsert(&head);

??? Student st("zhangsan",? 18);

??? st.PrintInfo();

??? system("pause");

??? return 0;

}

文章来源:https://blog.csdn.net/J_JJD/article/details/135280715
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。