c++實現了個石頭剪子布功能具有資料的讀寫功能即顯示遊戲記錄功能
要充分地分析和理解問題本身,弄清要求做什麼。在確定解決方案框架過程中,考慮怎樣使程式結構清晰、合理、簡單和易於除錯,並確定每個函式的簡單功能,以及函式之間的呼叫關係。
綜上 新手寫的 歡迎指出問題~
以下是computer people類的宣告和實現
computer 和 people類主要功能為 input show read write功能
以下函式為電腦的input核心演算法
srand((unsigned)time(0));
for (int i = 0; i < 10; i++)
#pragma once
#include"project.h"
class computer:virtual public project
; virtual ~computer() {};
void input();
void show()const;
void read(fstream& f)const;
void write(fstream& f)const;
};
#include "computer.h"
void computer::input()
switch (radom)
} void computer::show()const
void computer::read(fstream& f) const
void computer::write(fstream& f)const
#pragma once
#include"project.h"
class people:virtual public project
; virtual ~people() {};
void input();
void show()const;
void read(fstream& f)const;
void write(fstream& f)const;
};
#include "people.h"
void people::input()
} void people::show() const
void people::read(fstream&f) const
void people::write(fstream& f)const
以下是project.h主要實現遊戲規則的的定義
#pragma once
#include#include#include#includeusing namespace std;
enum base ;
class project
; virtual void input() = 0;
void setbase(int b)
int getnum()
string getbase() const
else if (num == 1)
else
c = "布";
return c;
}virtual void show()const = 0;
virtual void read(fstream& f)const = 0;
virtual void write(fstream& f)const = 0;
};
以下是systemm主要實現遊戲功能的定義和宣告
為什麼叫systemm呢 因為system是關鍵字會報錯的
#pragma once
#include"people.h"
#include"computer.h"
#include"usertype.h"
class systemm
;
#include "systemm.h"
static double wins = 0.0;
bool inline usersaysyes()
else
}systemm::systemm()
userfile.close();
}else
ifstream ifile("user.dat");
if (ifile.fail())
else
file.open("user.dat", ios::in | ios::out | ios::binary); //以讀寫的方式開啟檔案
if (file.fail())throw("開啟檔案失敗!"); //丟擲異常
}systemm::~systemm()
userfile.close();
file.close();
}void systemm::adduser(const usertype& e)
deleteusertable;
usertable = temusertable;
}//新增元素
usertable[count++] = e; //加入到索引表中
}
void systemm::adddate()
computer->input();
peo->input();
if (computer->getnum() == 0 && peo->getnum() == 1)
else if (computer->getnum() == 1 && peo->getnum() == 2)
else if (computer->getnum() == 2 && peo->getnum() == 0)
else if (computer->getnum() == 0 && peo->getnum() == 2)
else if (computer->getnum() == 1 && peo->getnum() == 0)
else if (computer->getnum() == 2 && peo->getnum() == 1)
else if (computer->getnum() == 0 && peo->getnum() == 0)
else if (computer->getnum() == 1 && peo->getnum() == 1)
else if (computer->getnum() == 2 && peo->getnum() == 2)
if (ss == 2)
f++;
} while (ss == 2);
if (ss == 1)
else
peo->write(file);
cout << "是否要繼續新增?";
delete peo;
} while (usersaysyes());
}
void systemm::show()
else
}cout << "勝率為:" << (wins / (pos + 1)) * 100 << "%" << endl;
if (pos == 0)
}void systemm::run()
} while (select != 3);
}
以下是usertype 類
即為索引錶類
#pragma once
#include class usertype
;
以下是main函式
#include"systemm.h"
#include"usertype.h"
int main(void)
catch (char* error)
system("pause");
return 0;
}
該項目的寫入是電腦挨著人電腦挨著人乙個乙個儲存下去
然而讀取資料的話是從開始讀到結尾
因此我給電腦和人分別給usertype賦值以防讀取錯誤的資料呼叫錯誤的方法
我在其它部落格也粗略的寫過這篇部落格 **為:
C 石頭剪刀布的實現
知識儲備 while true 不斷重複執行大括號內部的語句 include include using namespace std main 輸入 jkljkljkl 輸出 jkljkljkl 輸入 jkl jfksldfj jklsjfl 輸出 jkl jfksldfj jklsjfl 和cin...
C 實現石頭剪刀布遊戲
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...
剪刀石頭布
開始學習時寫的剪刀石頭布 雖然是用c 寫的 我感覺思想還是面向過程 慚愧慚愧 include include include include includeusing namespace std enum caiquan class inte cet inte cet inte cet system...