日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模拟电梯1.0(类与对象实验)

發布時間:2024/10/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟电梯1.0(类与对象实验) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
浙江理工大學信息電子學院 實驗指導書 實驗名稱:類的定義與使用 學時安排:3 實驗類別:設計性實驗 實驗要求:1人1組  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

一、實驗目的
1)掌握類的概念、類的定義格式、類與結構的關系、類的成員屬性和類的封裝性;
2)掌握類對象的定義;
3)理解類的成員的訪問控制的含義,公有、私有和保護成員的區別;
4)掌握構造函數和析構函數的含義與作用、定義方式和實現,能夠根據要求正確定義和重載構造函數。能夠根據給定的要求定義類并實現類的成員函數;
二、實驗原理介紹
通過建立類及對象,用類的成員函數和對象訪問類的成員;
利用建立類的構造函數,完成類的成員的初始化工作;
三、實驗設備介紹
軟件需求: Visual C++ 6.0
硬件需求: 對于硬件方面的要求,建議配置是Pentium III 450以上的CPU處理器,64MB以上的內存,200MB的自由硬盤空間、CD-ROM驅動器、能支持24位真彩色的顯示卡、彩色顯示器、打印機。
四、實驗內容
編寫一個程序,模擬電梯的功能。功能接口包括電梯上行按鈕、下行按鈕、樓層選擇和電梯在行駛過程中的樓層顯示。
要求:
1.由用戶選擇按上行按鈕還是下行按鈕,選擇操作后再由用戶輸入要進入的樓層,進而電梯開始運行,顯示所到的每一樓層層數。
2.如果是上行,則選擇輸入的樓層號不能比當前樓層號小,否則應給出不合法提示。
3. 如果是下行,則選擇輸入的樓層號不能比當前樓層號大,否則應給出不合法提示。
4.電梯一旦開始運作就會始終運行,直到窗口關閉。
程序要求的結果請運行elevator.exe
提示:
從功能要求上我們可以抽象出一個Elevator電梯類,結構如下:

class Elevator { private:int floor; //電梯總的樓層數bool up; //是否上行,bool為布爾類型,可取值true或falsebool down; //是否下行int currentFloor; //當前所在樓層 public:Elevator(int floor); void setUpButton(); //按下上行按鈕void setDownButton(); //按下下行按鈕void setFloorNumber(int floorNumber); //根據要進入的樓層電梯開始運行,并逐層顯示經過的樓層int getCurrentFloor(); //獲得當前所在樓層 };

接下來需要做的就是在主函數中根據已經定義好的Elevator類實例化一個電梯,根據用戶的輸入選擇來操作這個實例化的電梯了。
五、注意事項和要求
要求學生要提前準備實驗的內容
實驗完成后要求寫出實驗報告
六、參考書目
【C++ Prime題解】侯捷譯 華中科技大學出版社
【C++程序設計與應用】 張耀仁著 華中科技大學出版社

浙江理工大學信息學院 面向對象程序設計實驗報告 實驗名稱:類的定義與使用 學時安排:3 實驗類別:設計性實驗 實驗要求:1人1組 姓名: 申屠志剛 學號: 2018329621200  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

一、實驗目的
1)掌握類的概念、類的定義格式、類與結構的關系、類的成員屬性和類的封裝性;
2)掌握類對象的定義;
3)理解類的成員的訪問控制的含義,公有、私有和保護成員的區別;
4)掌握構造函數和析構函數的含義與作用、定義方式和實現,能夠根據要求正確定義和重載構造函數。能夠根據給定的要求定義類并實現類的成員函數;
二、實驗原理介紹
通過建立類及對象,用類的成員函數和對象訪問類的成員;
利用建立類的構造函數,完成類的成員的初始化工作;
三、實驗設備介紹
軟件需求: windows或linux下的c++編譯器
硬件需求: 對于硬件方面的要求,建議配置是Pentium III 450以上的CPU處理器,64MB以上的內存,200MB的自由硬盤空間、CD-ROM驅動器、能支持24位真彩色的顯示卡、彩色顯示器、打印機。
四、實驗內容
編寫一個程序,模擬電梯的功能。功能接口包括電梯上行按鈕、下行按鈕、樓層選擇和電梯在行駛過程中的樓層顯示。
要求:
1.由用戶選擇按上行按鈕還是下行按鈕,選擇操作后再由用戶輸入要進入的樓層,進而電梯開始運行,顯示所到的每一樓層層數。
2.如果是上行,則選擇輸入的樓層號不能比當前樓層號小,否則應給出不合法提示。
3. 如果是下行,則選擇輸入的樓層號不能比當前樓層號大,否則應給出不合法提示。
4.電梯一旦開始運作就會始終運行,直到窗口關閉。
5.電梯在經過不同樓層時,最好每個樓層的顯示之間能有延遲,最終停靠的樓層的輸出形式能更加醒目。如果可以,在電梯最初開始運行時,能在電梯由內部顯示當前日期(提示:實現這些功能時,需要調用系統api,實現時間顯示功能可以使用CDate類)。
五 程序清單
main.cpp

/* *@Author: STZG *@Language: C++ */ #include<iostream> #include"date.h" #include"Elevator.h" using namespace std; CDate data; Elevator elevator(10); void err(){cout<<"-----無效操作-----"<<endl; } void exit(){exit(0); } void memu(){cout<<" ---請選擇操作----"<<endl;cout<<"| 1.上升 |"<<endl;cout<<"| 2.下降 |"<<endl;cout<<"| 3.退出 |"<<endl;cout<<" -----------------"<<endl; } void init(){cout<<"今天是"<<data.format("DDD")<<endl;cout<<"該電梯一共10層, 歡迎您的使用!"<<endl; } int main() {init();while(1){int op;memu();scanf("%d",&op);switch(op){case 1:elevator.setUpButton();break;case 2:elevator.setDownButton();break;case 3:exit();break;default:err();break;}}//cout << "Hello world!" << endl;return 0; }

Elevator.cpp

#include "Elevator.h"Elevator::Elevator():floor(10),up(0),down(0),currentFloor(1) {}Elevator::~Elevator() {//dtor } Elevator::Elevator(int floor):floor(floor),up(0),down(0),currentFloor(1) {} void Elevator::setUpButton()//按下上行按鈕 {int now=getCurrentFloor(),to;cout<<"當前電梯停在"<<now<<"層"<<endl;cout<<"請輸入要進入的樓層"<<endl;scanf("%d",&to);if(now>=to||to>floor||to<1){cout<<"您不能上行!"<<endl;}else{up=1;setFloorNumber(to);currentFloor=to;up=0;} } void Elevator::setDownButton()//按下下行按鈕 {int now=getCurrentFloor(),to;cout<<"當前電梯停在"<<now<<"層"<<endl;cout<<"請輸入要進入的樓層"<<endl;scanf("%d",&to);if(now<=to||to>floor||to<1){cout<<"您不能下行!"<<endl;}else{down=1;setFloorNumber(to);currentFloor=to;down=0;} } void Elevator::setFloorNumber(int floorNumber)//根據要進入的樓層電梯開始運行,并逐層顯示經過的樓層 {if(up){for(int i=currentFloor;i<floorNumber;i++){cout<<"---"<<i<<"---"<<endl<<endl;Sleep(1000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);cout<<"第"<<floorNumber<<"層到了"<<endl;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE|FOREGROUND_INTENSITY);}if(down){for(int i=currentFloor;i>floorNumber;i--){cout<<"---"<<i<<"---"<<endl<<endl;Sleep(1000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);cout<<"第"<<floorNumber<<"層到了"<<endl;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE|FOREGROUND_INTENSITY);} } int Elevator::getCurrentFloor()//獲得當前所在樓層 {return currentFloor; }

Elevator.h

#ifndef ELEVATOR_H #define ELEVATOR_H #include <iostream> #include <windows.h> #include <stdlib.h> using namespace std;class Elevator {public:Elevator();virtual ~Elevator();Elevator(int floor);void setUpButton(); //按下上行按鈕void setDownButton(); //按下下行按鈕void setFloorNumber(int floorNumber); //根據要進入的樓層電梯開始運行,并逐層顯示經過的樓層int getCurrentFloor(); //獲得當前所在樓層protected:private:int floor; //電梯總的樓層數bool up; //是否上行,bool為布爾類型,可取值true或falsebool down; //是否下行int currentFloor; //當前所在樓層};

date.cpp

#endif // ELEVATOR_H #include"date.h" CDate::CDate(int dd, int mm, int yy):df_s("ddd"),df_l("DDD") //初始化 {if((mm>=1 && mm<=12) && (dd>=1 && dd<=31)){m = mm; d = dd; y = yy;}else {m = 0; d = 0; y = 0;cout<<"the date created is wrong"<<endl;}} CDate::CDate():df_s("ddd"),df_l("DDD") //初始化 {time_t now;time(&now);struct tm *t_now;t_now = localtime(&now);y = t_now -> tm_year + 1900;m = t_now -> tm_mon + 1;d = t_now -> tm_mday; } void CDate::add_year(int n) //加n年 {y += n; } void CDate::add_month(int n) //加n月 {m += n; } void CDate::add_day(int n) //加n天 {d += n; } string CDate::format(string df) {char c_df[20];if(df == df_s){sprintf(c_df, "%d-%d-%d", y, m, d);return string(c_df);}if(df == df_l){sprintf(c_df, "%d年%d月%d日", y, m, d);return string(c_df);}return string(""); } int CDate::get_day() const {return d; } int CDate::get_month() const {return m; } int CDate::get_year() const {return y; }

date.h

#ifndef DATE_H #define DATE_H #include <iostream> #include<ctime> #include<cstdlib> #include<string> #include<cstdio> using namespace std; class CDate{int d,m,y;const string df_s;const string df_l; public:CDate(int dd,int mm=1,int yy=1999);CDate();void add_year(int n);void add_month(int n);void add_day(int n);string format(string df);int get_day() const;int get_month() const;int get_year() const; }; #endif

六 運行結果

七 實驗心得
通過本次實驗
掌握類的概念、類的定義格式、類與結構的關系、類的成員屬性和類的封裝性;
掌握類對象的定義;
理解類的成員的訪問控制的含義,公有、私有和保護成員的區別;
掌握構造函數和析構函數的含義與作用、定義方式和實現,能夠根據要求正確定義和重載構造函數。能夠根據給定的要求定義類并實現類的成員函數;
學會通過建立類及對象,用類的成員函數和對象訪問類的成員;
學會利用建立類的構造函數,完成類的成員的初始化工作;

總結

以上是生活随笔為你收集整理的模拟电梯1.0(类与对象实验)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色牛av | 精品久久久久久久久久久久久久久久久 | 久久尤物 | 日韩精品一区二区三区在线 | 无码人妻一区二区三区精品视频 | 黄色肉肉视频 | 人妻少妇被粗大爽9797pw | 99久久99久久精品国产片 | 午夜激情免费视频 | 日韩在线视频一区二区三区 | 91无毒不卡 | 高潮又黄又刺激 | 韩国视频一区 | 久久久中文字幕 | 国产精品18久久久久久久久 | 四虎精品一区 | 伊人久久五月 | 日本高清有码 | 国产精品亚洲精品 | 黄色片一区二区三区 | 久热免费在线 | 欧美日在线观看 | 永久免费,视频 | 无码精品人妻一区二区三区影院 | 国产在线视频卡一卡二 | 美女久久久久久久久久 | 亚洲综合一二三 | 浪潮av一区二区三区 | 欧美日韩成人精品 | 亚洲精品激情 | 成人123区 | 色婷婷久久综合中文久久蜜桃av | 亚洲影院av | 亚洲成a人片在线www | 91视频免费观看网站 | 三上悠亚三级 | 91麻豆蜜桃一区二区三区 | 欧美激情另类 | 99久久99久久久精品棕色圆 | 久久电影一区 | 五月婷婷狠狠 | 国产亚洲精品一区二区三区 | 免费看黄色的视频 | 亚洲国产大片 | 好吊妞视频一区二区三区 | 久久久久久91香蕉国产 | 激情五月网站 | 很黄很污的视频网站 | 一级做a爰片久久毛片 | 国产一区91精品张津瑜 | 91国偷自产中文字幕久久 | 一区二区三区韩国 | 成人黄色激情小说 | 欧美日韩国产专区 | 精彩视频一区二区三区 | 成色视频| 中文字幕一区二区三区手机版 | 日韩精品视频中文字幕 | 日本欧美国产在线 | 国产精品传媒在线 | 五月婷婷色 | 在线免费av播放 | 久久99精品国产麻豆婷婷洗澡 | 91精品啪 | 欧美在线视频一区二区 | 男男一级淫片免费播放 | 久草免费在线视频观看 | 日本69视频 | 人妻天天爽夜夜爽一区二区三区 | 亚洲精品在线观看免费 | 免费成人在线电影 | 国产探花一区二区 | 色综合五月天 | 国产免费一区二区三区四区五区 | 欧美亚洲日本一区 | 亚洲v国产v| 亚洲午码 | 樱桃香蕉视频 | 玖玖伊人 | 视频一区欧美 | 一级网站在线观看 | 国产999久久久 | 一级黄在线观看 | 超碰女人 | 青娱乐自拍视频 | 久久亚洲精品中文字幕 | 侵犯女教师一区二区三区 | 成年人视频在线观看免费 | 国产v在线观看 | 天天干免费视频 | 女人扒开屁股让男人桶 | 日本一区欧美 | 精品美女一区二区三区 | 欧美日韩精品亚洲精品 | 日韩精品三区 | 欧美一区二区三区四区五区 | 欧美做爰爽爽爽爽爽爽 | 成人免费毛片嘿嘿连载视频 | 91精品婷婷国产综合久久 |