zoukankan      html  css  js  c++  java
  • 实验五

    1.

    #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
        
        // 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc) 
        // 补足代码
        
        likes.push_back("favorite book: ****");//名字(以下都是)
        likes.push_back("music:***");
        likes.push_back("film:***");
        likes.push_back("paintings:****");
        likes.push_back("anime:****");
        
        cout << "-----I like these-----" << endl;
        // 调用子函数输出vector<string>数组对象likes的元素值 
        // 补足代码 
        output1(likes); 
        
        // 为vector<string>数组对象dislikes添加元素值 
        // 补足代码  
        dislikes.push_back("sport:***");
        dislikes.push_back("sportsman:*****");
        cout << "-----I dislike these-----" << endl;
        // 调用子函数输出vector<string>数组对象dislikes的元素值 
        // 补足代码
        output2(dislikes);
        
        // 交换vector<string>对象likes和dislikes的元素值 
        // 补足代码
        likes.swap(dislikes);
        
        cout << "-----I likes these-----" << endl;
        // 调用子函数输出vector<string>数组对象likes的元素值 
        // 补足代码 
        output1(likes);
        
        cout << "-----I dislikes these-----" << endl;
        // 调用子函数输出vector<string>数组对象dislikes的元素值 
        // 补足代码
        output2(dislikes);  
                            
        return 0;
    }
    
    
    // 函数实现 
    // 以下标方式输出vector<string>数组对象v的元素值  
    void output1(vector<string> &v){
        int i;
        for(i=0;i<v.size();i++)
        cout<<v[i]<<endl; 
    }
    
    // 函数实现
    // 以迭代器方式输出vector<string>数组对象v的元素值 
    void output2(vector<string> &v) {
        // 补足程序
        vector<string>::iterator t;
        for(t=v.begin();t!=v.end();t++)
        cout<<*t<<endl;
    }

    2.(1)6.17

    #include<iostream>
    using namespace std;
    int main(){
        int i=0;
        int * p=&i;
        *p=9;
        cout<<"the value at p: "<<*p;
        return 0;
    }

    这是因为指针没有经过初始化,会随即指向任意内存,造成崩溃,所以对其进行初始化即可。

    (2)6.18

    #include<iostream>
    using namespace std;
    
    int fnl(){
        int *p=new int(5);
        return *p;
        /**/   delete p;   /**/  
    }
    
    int main(){
        int a=fnl();
        cout<<"the value of a is:"<<a;
        return 0;
    }

    这个题目可以正常编译,但是实际上没有进行内存释放,会降低运行速度。

    第三个问题我试着编译,但是总是会报错,提示找不到matirx.h 库,所以我还没有找到解决的方法,暂时就没写。

    期中考试

     一。

    #include<iostream>
    #include<cstdlib>
    #include<ctime>
    using namespace std;
    class Dice {
    
    public:
        int n;
        void Dice(int n);
        int cast();
    private:
        int sides;
        
    };
    Dice::Dice(int n){
            sides = n;}
    Dice::cast() {
            int m;
            m = (rand() % (n-1+1)+1);
            return m;}
    int main() {
        srand((unsigned)time(0));
        int n,x; cout << "输入班级人数和学号:";
        cin>>n>>x;
        Dice A(n);
        int i; int m;double y=0.00;
        for (i=0;i<500;i++) {
            if (A.cast()==x)y++;
        }
        double p=(double)y/500.00;
        cout << "你被抽中的概率为:"<<p<<endl;
        return 0;
    }

    二。

     

     用到函数太多了,所以我只写了一个整体的程序。

    #include<iostream>
    #include<string>
    using namespace std;
    static int n=999;
    class User {
    private:
        int id; string name; string password; static int CurrentID;
    public:
        User(string s1,string s2="111111") {
            n++;
            id=n;
            name=s1;
            password=s2;
            CurrentID++;
        }
        User(User &u1) {
            id = u1.id;
            name = u1.name;
            password=u1.password;
            CurrentID=u1.CurrentID;
        }
        void show1() {
            cout<<"该用户信息为 id:"<<id<<"name:"<<name<<"password:"<<password<<endl;
        }
        static void show2(User &u1){      /*输出CurrentID*/
            cout<<"CurrentID:"<<CurrentID <<endl;
            cout<<"最后一个新用户为:";
            u1.show1();
        }
        void change() {                         /*修改密码*/
            string s3,s4;
            int j=3;
            while (j) {
                cout<<"输入原有密码:";
                cin>>s3;
                if (s3==password) {
                    cout<<"输入新密码:";
                    cin>>s4;
                    password=s4;
                    break;
                }
                if (s3!=password){
                    j--;
                    cout<<"输入错误"<<endl;
                }
            }
            if(j==0)cout<<"错误次数过多,请稍后再试" << endl;
        }
    }; 
    int User::CurrentID = 999;/*给CurrentID赋初值*/
    int main() {
        User u1("user1", "666666");
        User u2("user2");
        User u3("user3", "233333");
        u1.show1(); 
        u2.show1(); 
        u3.show1(); 
        User u(u3); 
        User::show2(u3);
        u1.change(); 
        u1.show1();
        u2.change();
        return 0;
    }

     

    三。

    #pragma once
    #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
    
    #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() {        /*print函数的实现*/
        cout << "isbn:" << isbn << " title:" 
        << title << " price:" << price << endl;
    }
    
    #include "book.h"
    #include <vector>
    #include <iostream>
    using namespace std;
    int main()
    {
        vector<Book>books;
        string isbn, title;
        float price;
        while (1) {
            cout<<"请输入图书信息,若想终止输入,请输入Quit;" << endl;
            cin >> isbn;/*先输入isbn码,判断是否执行输入操作*/
            if (isbn != "Quit") {
                cin>>title>>price;
            }
            if (isbn=="Quit")
            break;/*输入Quit终止*/
            Book a(isbn,title,price);
            books.push_back(a);/*向数组中加入新的对象*/
        }
        int i;
        for (i = 0; i < books.size(); i++) {
            books[i].print();/*输出所有图书信息*/
        }
        return 0;
    }
  • 相关阅读:
    java中的object类
    java中super的使用
    java中final的使用
    java中的继承初始化顺序
    java中的方法重写
    springMVC的流程
    dubbo与zookeeper
    java的几种常见数据结构
    集合框架之List和Set区别
    集合框架
  • 原文地址:https://www.cnblogs.com/spring-winds/p/9079395.html
Copyright © 2011-2022 走看看