期中考试第一题
#include<iostream>
#include<cstdlib>
#include<time.h>
using namespace std;
class Dice{
public:
Dice(int n);
int cast()
{
int number=rand()%sides+1;
return number;
}
private:
int sides;
};
Dice::Dice(int n)
{
sides=n;
}
int main()
{
int x;
float count=0;
cin>>x;
Dice a(40);
for(int times=0;times<=500;times++)
{
srand(times);
int s=a.cast();
if(s==x)
count++;
}
float c=count/500;
cout<<c<<endl;
return 0;
}
期中考试第二题(弄多文件的时候dev和电脑居然都崩掉了,所以先暂时不用多文件)
#include<iostream>
#include<string>
using namespace std;
class User{
public:
User(string n,string p="111111");
void printmessage();
void newpassword();
void static show();
private:
int id;
string name;
string password;
int static CurrentID;
};
int User::CurrentID=999;
User::User(string n,string p)
{
CurrentID++;
id=CurrentID;
name=n;
password=p;
}
void User::printmessage()
{
cout<<"用户编号:"<<id<<"用户名:"<<name<<"密码:"<<password<<endl;
}
void User::show()
{
cout<<CurrentID<<endl;
}
void User:: newpassword()
{
string s1,s2;
int n=3,count=0;
while(n--)
{
cout<<"请输入原密码:";
cin>>s1;
cout<<endl;
if(s1==password)
{
cout<<"请输入新密码:";
cin>>s2;
cout<<endl;
cout<<"密码修改成功!"<<endl;
break;
}
else
{
cout<<"密码有误,请重新输入密码";
cout<<endl;
count++;
}
}
if(count==3)
cout<<"请稍后再试"<<endl;
}
int main()
{
string n="Tom";
string p="123456";
User a(n,p);
User b("xiaoming");
User c("xiaohong");
a.printmessage();
b.printmessage();
c.printmessage();
b.newpassword();
c.newpassword();
return 0;
}
其实刚开始写这个程序的时候,出了一些问题
后来我查了一些网上的资料,得知c++可以在类的声明中,也可以在函数定义中声明缺省参数,但不能既在类声明中又在函数定义中同时声明缺省参数。
因此,将定义或声明中的任一个缺省参数删除即可。(学到了学到了)
期中考试第三题
这题当时认为还蛮简单的,已经写了大部分,结果被那个定义Ctrlz停止输出给弄懵掉了,回来查了查资料,才知道这个问题真的是很简单,用一个while控制输入就行了,还是自己掌握的不太好吧
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Book {
public:
Book(string isbnX, string titleX, float priceX);
void print();
private:
string isbn;
string title;
float price;
};
Book::Book(string isbnX, string titleX, float priceX){
isbn=isbnX;
title=titleX;
price=priceX;
}
void Book::print(){
cout<<"出版编号:"<<isbn<<"书名:"<<title<<"定价:"<<price<<endl;
}
int main()
{
vector<Book>books;
string isbn, title;
float price;
int i=0;
while(cin>>isbn>>title>>price){
Book book(isbn,title,price);
i++;
books.push_back(book);
}
for(int k=0;k<i;k++)
{
books[k].print();
}
return 0;
}
ex3.cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// 函数声明
void output1(vector<string> &);
void output2(vector<string> &);
int main()
{
vector<string>likes, dislikes; // 创建vector<string>对象likes和dislikes
likes.push_back("favorite");
likes.push_back("book");
likes.push_back("music");
likes.push_back("film");
likes.push_back("paintings"); // 为vector<string>数组对象likes添加元素值
cout << "-----I likes these-----" << endl;
output1(likes); // 调用子函数输出vector<string>数组对象likes的元素值
dislikes.push_back("anime");
dislikes.push_back("sport");
dislikes.push_back("sportsman"); // 为vector<string>数组对象dislikes添加元素值
cout << "-----I dislike these-----" << endl;
output2(dislikes);// 调用子函数输出vector<string>数组对象dislikes的元素值
likes.swap(dislikes); // 交换vector<string>对象likes和dislikes的元素值
cout << "-----I likes these-----" << endl;
output1(likes);// 调用子函数输出vector<string>数组对象likes的元素值
cout << "-----I dislikes these-----" << endl;
output2(dislikes);// 调用子函数输出vector<string>数组对象dislikes的元素值
return 0;
}
// 函数实现
// 以下标方式输出vector<string>数组对象v的元素值
void output1(vector<string> &v) {
for(unsigned i=0;i!=v.size();i++)
cout<<v[i]<<" "<<endl;
// 补足程序
// 。。。
}
// 函数实现
// 以迭代器方式输出vector<string>数组对象v的元素值
void output2(vector<string> &v) {
vector<string>::iterator it;
for(it=v.begin();it!=v.end();it++)
cout<<*it<<" "<<endl;
// 补足程序
// 。。。
}
原文:https://www.cnblogs.com/Nicholastwo/p/9059712.html