zoukankan      html  css  js  c++  java
  • 期中.....

    第一题Dice类

    • Dice.h
    #ifndef DICE_H
    #define DICE_H
    class Dice{
    	public :
    		Dice(int num);
    		int rest();
    	private :
    		int sides;
    };
    #endif 
    
    • Dice.cpp
    #include<iostream>
    #include<cstdlib>
    #include"Dice.h"
    using namespace std;
    Dice::Dice(int num):sides(num){
    }
    int Dice::rest(){
    	int num;
    	num=rand()%sides;
    	return num;
    }  
    
    • main.cpp
    #include<iostream>
    #include"Dice.h"
    #include<ctime>
    #define student_number 35
    using namespace std;
    int main()
    {
    	srand(time(NULL));
    	Dice my_Dice(40);
    	int count=0;
    	for(int i=0;i<500;i++)
    	{
    		if(my_Dice.rest()==student_number)
    		{
    			count++;
    		}
    	}
    	double times=count/500.0;
    	cout<<"学号为"<<student_number<<"的学生,在500次中,被抽中的概率为:"<<times<<endl;
    }
    

    User类

    考试时候想不到要怎么在输出CurrentID的同时输出最后一名用户信息(想了好久),回来后突然想到可以和CurrentID一样,声明一个静态指针,用来存放最后一个对象的地址....... ,然后就是给静态成员赋值,在多文件结构下,一开始在User.h中进行定义(这个是错误的),后面网上了解过后才知道应该在User.cpp里面定义,不然就会出现重复定义的错误。

    • User.h
    #ifndef USER_H
    #define USER_H
    #include<string>
    using namespace std;
    class User {
    public:
    	User(string n, string word = "111111");
    	void setpassword();
    	void showdata();
    	static void showCurrentID();
    private:
    	string name;
    	string password;
    	int id;
    	static User* final;
    	static int CurrentID;
    };
    #endif 
    
    • User.cpp
    #include<iostream>
    #include<string>
    #include"User.h"
    using namespace std;
    int User::CurrentID = 999;
    User* User::final = NULL;
    User::User(string n, string word) :name(n), password(word) {
    	CurrentID++;
    	id = CurrentID;
    	final = this;
    }
    void User::setpassword() {
    	string oldpassword;
    	int n = 3;
    	while (n--)
    	{
    		cout << "Please enter oldpassword:";
    		cin >> oldpassword;
    		if (oldpassword == password)
    		{
    			cout << "Please enter newpassword:";
    			cin >> password;
    			break;
    		}
    		else {
    			cout << "Password mistake..." << endl;
    		}
    	}
    	if (n == 0)
    	{
    		cout << "Too many errors,please re_operate..." << endl;
    	}
    }
    void User::showdata() {
    	cout << "id : " << id << " name : " << name << " password : " << password << endl;
    }
    void User::showCurrentID() {
    	cout << "CurrentID: " << CurrentID << endl;
    	cout << "The final user's data:" << endl;
    	final->showdata();
    }
    
    • main.cpp
    #include<iostream>
    #include"User.h"
    using namespace std;
    int main()
    {
    	User user1("bird"), user2("pig"), user3("cat");
    	user1.showdata();
    	user2.showdata();
    	user3.showdata();
    	user1.setpassword();
    	user1.showdata();
    	User::showCurrentID();
    	return 0;
    } 
    

    Book类

    考试时候卡在第二题,这题没看,不过vector的一些函数还不会用,应该也是做不出来。主要是用到.push_back() 这个函数进行插入.

    • book.h
    #ifndef BOOK_H
    #define BOOK_H
    #include <string>
    using std::string;
    class Book {
    	public:
    		Book(string isbnX, string titleX, float priceX);  //构造函数  
    		void print(); // 打印图书信息 
    	private:
    		string isbn;
    		string title;
    		float price;
    };
    #endif
    
    • book.cpp
    #include "book.h"
    #include <iostream> 
    #include <string>
    using namespace std;
    // 构造函数
    Book::Book(string isbnX, string titleX, float priceX) :isbn(isbnX), title(titleX), price(priceX){}
    // 打印图书信息
    void Book::print() {
    	cout << "isbn : " << isbn << " title : " << title << " price : " << price << endl;
    }
    
    • main.cpp
    #include "book.h"
    #include <vector>
    #include <iostream>
    using namespace std;
    int main()
    {
    	// 定义一个vector<Book>类对象
    	vector<Book>books;
    	string isbn, title;
    	float price;
    	// 录入图书信息,构造图书对象,并添加到前面定义的vector<Book>类对象中
    	// 循环录入,直到按下Ctrl+Z时为止 (也可以自行定义录入结束方式) 
    	while (cin >> isbn >> title >> price) {
    		Book book(isbn, title, price);
    		books.push_back(book);
    	}
    	// 输出入库所有图书信息
    	for (int i = 0; i < books.size(); i++)
    	{
    		books[i].print();
    	}
    	return 0;
    }
    

  • 相关阅读:
    kuangbin 专题一:G题,POJ3087:Shuffle'm Up
    kuangbin专题一:F题,POJ3126:Prime Path
    /*分治典型应用 快速排序*/
    kuangbin专题一 简单搜索 E,POJ 1426 Find The Multiple
    kuangbin专题一:C题,POJ3278:Catch That Cow
    kuangbin专题一B题:POJ2251:Dungeon Master
    kuangbin专题一A题 :POJ1321 :棋盘问题
    1282: ykc想吃好吃的
    2017年ACM第八届山东省赛I题: Parity check(判断 第n项斐波那契数列奇偶性)
    2017年ACM第八届山东省赛J题:company
  • 原文地址:https://www.cnblogs.com/flyingbrid-nest/p/9010378.html
Copyright © 2011-2022 走看看