C++实验报告-1

news/2024/10/28 18:25:07/

C++实验报告-1

实验题目1

【旱冰场围栏造价】有一个圆形的旱冰场地,围栏用帆布围成,每平方米造价M元,输入旱冰场半径和围栏高度,用程序计算出其造价。类的声明已给出,请完善成员函数的定义和主函数。

程序源代码
#include<iostream>
#include<cstring>
using namespace std;
const int M = 20; 
const int N = 35; 
const double p = 3.14;
class Circle
{	
private:double radius;
public:void setRadius(double a);int area();int circumference();
};
void Circle::setRadius(double a)
{radius = a;
}
int Circle::area()
{double s;s = p * radius * radius;return s;
}
int Circle::circumference()
{double l;l = 2 * p * radius;return l;
}
int main()
{double r;cout << "请输入旱冰场的半径: ";cin >> r;Circle c;c.setRadius(r);cout << "旱冰场的造价为 " << M * c.area() + N * c.circumference() << " 元。" << endl;return 0;
}

实验题目2

【明天在哪里】输入今天的日期(年月日),计算明天的日期。要求进行输入日期合法性验证。

程序源代码
#include <iostream>
#include<cmath>
using namespace std;
class Time
{
public:void set_time();void show_time();void add_day();int add_month();int judge_month();void add_year();
private:bool is_time(int, int, int); int year;int month;int day;
};
void Time::add_year()
{year = year + 1;
}
int Time::add_month()
{month = month + 1;if (month > 12){month = 1;add_year();}return month;
}
int Time::judge_month()
{switch (month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:{if (day > 31){day = 1;add_month();}}break;case 2:{if (year % 4 == 0 && day > 29){day = 1;add_month();}else if (year % 4 != 0 && day > 28){day = 1;add_month();}}break;default:{if (day > 30){day = 1;add_month();}}}return day;
}
void Time::add_day()
{day = day + 1;judge_month();
}
void Time::set_time()
{char c1, c2;cout << "请输入时间(格式 年:月:日)";while (1){cin >> year >> c1 >> month >> c2 >> day;if (c1 != ':' || c2 != ':')cout << "格式不正确,请重新输入" << endl;else if (!is_time(year, month, day))cout << "时间非法,请重新输入" << endl;elsebreak;}
}
void Time::show_time()
{cout << year << ":" << month << ":" << day << endl;
}
bool Time::is_time(int y, int m, int d)
{switch (m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:{if (y < 0 || y>2030 || m < 0 || m>12 || d < 0 || d>31)return false;}break;case 2:{if ((y < 0 || y>2030 || m < 0 || m>12 || d < 0 || d>29) && year % 4 == 0)return false;else if ((y < 0 || y>2030 || m < 0 || m>12 || d < 0 || d>28) && year % 4 != 0)return false;}break;default:if (y < 0 || y>2030 || m < 0 || m>12 || d < 0 || d>30)return false;}return true;
}
int main()
{Time t1;t1.set_time();t1.add_day();t1.show_time();return 0;
}

实验题目3

【图书】编写一个Book类,包含name(书名)、writer(著者)、public_name(出版社)、price(价格)、number(数量)、NO(书号)等数据成员。定义成员函数setBook,用来为书籍的数据成员赋值,定义成员函数borrow和restore,分别办理借出和还回(借、还书时,暂时只完成数量的增1减1,这里的书仍是一种书的概念,随着课程进展,我们继续做真正的图书管理系统,每本书都能追踪到是谁何时借了,何时还了)业务,定义成员函数print用于输出—有关书的信息,定义set_NO与get_NO来实现修改类对象的书号与获得类对象的书号。自己写main函数,用来测试你编写的类。

程序源代码san
#include<iostream>
#include<cstring>
using namespace std;
const int b1 = 1, b2 = 2;
int main();
int i,n = 10;
class Book
{	
private:string name;string writer;string publicname;int price;int number;int no;
public:void setbook(string, string, string, int);int borrow();int restore();void print();void set_no(Book& t, Book& k);bool get_no(int);
};
void Book::setbook(string a, string b, string c, int p)
{name = a;writer = b;publicname = c;price = p;
}
void Book::set_no(Book& t, Book& k)
{cin >> number;if (number == b1){t.print();}if (number == b2){k.print();}
}
void Book::print()
{cout << "本书书名为:" << name << "\n";cout << "本书作者为:" << writer << "\n";cout << "本书出版社为:" << publicname << "\n";cout << "本书价格为:" << price << "元" << endl;
}
bool Book::get_no(int m)
{number = m;if (number == b1)return true;if (number == b2)return false;
}
int Book::borrow()
{int e,m;while (1){cout << "请输入借阅的数量:" << endl;while (1){cin >> m;if (m <= n)break;elsecout << "库存不足,请重新输入:" << endl;}n = n - m;cout << "借阅成功,库存剩余量为" << n << "本"<<"\n";cout << "是否继续借阅,是请输入1,否请输入2" << endl;cin >> e;if (e == 2)break;}cout << "继续查看图书或退出系统,前者请输入1,后者请输入2" << endl;cin >> i;if (i == 1)return main();
}
int Book::restore()
{int f;cout << "输入要还书的数量:" << endl;cin >> f;n = n + f;cout << "还书成功," << "该书的现有库存为:" << n << "本" << "\n";cout << "继续查看图书或退出系统,前者请输入1,后者请输入2" << endl;cin >> i;if (i == 1)return main();elseexit(0);
}int main()
{Book k1, k2, t;int d,q ,r, i, o;k1.setbook("平凡的世界", "路遥", "人民出版社", 25);k2.setbook("活着", "余华", "文化出版社", 20);cout << "请输入要查看的书号(1或2)" << endl;t.set_no(k1,k2);while (true){cout << "是否更改书号,是请输入1,否请输入2" << endl;cin >> i;if (i == 1){cout << "输入要更改的书号:" << endl;t.set_no(k1, k2);}else break;}cout << "借阅该图书请输入1,还书请输入2" << endl;cin >> q;if (q == 1){t.borrow();}else if (q == 2){t.restore();}return 0;
}

http://www.ppmy.cn/news/444352.html

相关文章

电商行业线上活动方式有哪些优缺点(一)

电商行业线上活动方式有哪些优缺点&#xff08;一&#xff09; 如今电商行业发展的越来越快速&#xff0c;而且电商行业的线上活动营销方式也越来越多&#xff0c;商家们总能把握住各种节假日做营销活动。例如三月份的三八妇女节&#xff0c;传统的节假日&#xff0c;十一月份…

vgp虚拟路面_吉水县道路运输展示价格实惠

吉水县道路运输展示价格实惠 北京四度的道路运输展示&#xff0c;首先&#xff0c;我们要知道什么是数字展厅&#xff1f;其实&#xff0c;我们在生活中所听到的数字化展厅&#xff0c;以及多媒体数字化展厅都是指多媒体数字化展厅。多媒体数字化展厅主要是把多媒体和数字化的技…

seo名词术语解释网站优化名词术语

1、图解seo黑帽。什么是黑帽seo&#xff1f; 我们定义seo黑帽这个名词是一切 违背正常思路制作、宣传、推广、排名网站的行为都称为黑帽seo。 这里的seo黑帽也是作弊的概念。 黑帽seo手法侧重于搜索引擎单方面的计算特性&#xff0c;利用一个特点狠狠的用力&#xff0c;短期内达…

程序员为维持游戏开发被迫炒股,没想到一年内反赚1600万

公众号后台回复“图书“&#xff0c;了解更多号主新书内容贾浩楠 博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI “不会炒股的游戏开发不是好飞机修理工….” 没抖机灵&#xff0c;这是真事&#xff01; 一开始我也不信&#xff0c;根本没人信。 辞掉军火巨头旱涝保收的工作&a…

条件生成对抗神经网络,生成对抗网络gan原理

关于GAN生成式对抗网络中判别器的输出的问题 。 ...摘要生成式对抗网络GAN&#xff08;Generativeadversarialnetworks&#xff09;目前已经成为人工智能学界一个热门的研究方向.GAN的基本思想源自博弈论的二人零和博弈&#xff0c;由一个生成器和一个判别器构成&#xff0c;…

【Python】基于大数据下对珠三角部分地区房价分析

一、每题的源代码及注释说明 (主要代码) &#xff08;1&#xff09;编写数据 采取代码&#xff0c;对乐有家里的广州城市进行数据爬取&#xff1a; from selenium import webdriver from lxml import etree import requests import time import csv # 使用selenium模拟网页打…

利用python分析电商_电商打折套路分析 —— Python数据分析练习

电商打折套路分析 ——2016天猫双十一美妆数据分析 数据简介 此次分析的数据来自于城市数据团对2016年双11天猫数据的采集和整理&#xff0c;原始数据为.xlsx格式 包括update_time/id/title/price/店名&#xff0c;共5个字段&#xff0c;其中id为商品的唯一标识&#xff0c…

生产制造行业如何借助ERP系统,解决销售报价决策难题?

生产制造行业&#xff0c;在新产品研发出来后&#xff0c;成本会计需要进行定价测算&#xff0c;给出产品的成本&#xff0c;供营运部门作销售定价依据&#xff0c; 最终给出一个让客户满意、企业赚钱的报价。 想要试算产品的成本&#xff0c;一般要从产品的料、工、费这几大部…