首页 > 其他 > 详细

实验五

时间:2018-05-19 15:33:44      阅读:187      评论:0      收藏:0      [点我收藏+]

期中考试第一题

#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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!