标签:遇到 密码 内容 ons cpp info output 返回值 while
实验内容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
likes.push_back("book");
likes.push_back("music");
likes.push_back("film");
likes.push_back("paintings");
// 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc)
// 补足代码
// 。。。
cout << "-----I like 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(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
// 补足程序
// 。。。
}
// 函数实现
// 以迭代器方式输出vector<string>数组对象v的元素值
void output2(vector<string> &v) {
vector<string>::iterator it;
for(it=v.begin() ;it!=v.end() ;it++)
cout<<*it<<" ";
cout<<endl;
// 补足程序
// 。。。
}
截图
实验内容2
源码1
#include <iostream>
using namespace std;
int main()
{
//int a;
//int *p=&a; 可以先定义一个变量a,并将其地址赋给指针p
int *p;//指针再被使用前没有被赋初值
*p=9;
cout<<"The value at p: "<<*p;
return 0;
}
源码2
#include <iostream>
using namespace std;
int fn1(){
int *p=new int(5);
return *p;//用new分配的内存没有用delete释放,会导致分配的内存无法回收
//delete p;
}
int main()
{
int a=fn1();
cout<<"the value of a is: "<<a;
return 0;
}
实验内容3
源码
main.cpp
#include <iostream>
#include "matrix.h"
using namespace std;
int main() {
int l,c,i,j,n;
cout<<"输入矩阵行数和列数"<<endl;
cin>>l>>c;
float a[l*c];
cout<<"输入矩阵的各行各列的数"<<endl;
for(i=0;i<l*c;i++)
cin>>a[i];
Matrix A(l,c);
A.setMatrix(a);
cout<<"显示矩阵"<<endl;
A.printMatrix();
cout<<"输入i,j 返回第i行第j列的数"<<endl;
cin>>i>>j;
A.element(i,j);
cout<<"重新设置这个数"<<endl;
cin>>n;
A.setElement (i,j,n);
cout<<"重新返回这个数"<<endl;
A.element(i,j);
cout<<"返回矩阵行数与列数"<<endl;
A.getLines() ;
A.getCols() ;
return 0;
}
matrix.cpp
#include <iostream>
#include "matrix.h"
using namespace std;
int i,j;
Matrix::Matrix(int n):lines(n),cols(n){
p=new float[lines*cols];
}
Matrix::Matrix(int n,int m):lines(n),cols(m){
p=new float[lines*cols];
}
Matrix::Matrix(const Matrix &x):lines(x.lines),cols(x.cols){
p=new float[lines*cols];
for(i=0;i<lines*cols;i++)
p[i]=x.p[i];
}
Matrix::~Matrix() {
delete[] p;
}
void Matrix::setMatrix(const float *pvalue) {
for(i=0;i<lines*cols;i++)
p[i]=pvalue[i];
}
void Matrix::printMatrix() const{
for(i=0;i<lines;i++){
for(j=0;j<cols;j++)
cout<<p[i*lines+j]<<" ";
cout<<endl;
}
}
inline float Matrix::element(int i,int j) const{
cout<<p[(i-1)*lines+j-1]<<endl;
}
void Matrix::setElement(int i, int j, int value){
p[(i-1)*lines+j-1]=value;
}
inline int Matrix::getLines() const{
cout<<lines<<endl;
}
inline int Matrix::getCols() const{
cout<<cols<<endl;
}
matrix.h
#ifndef MATRIX_H
#define MATRIX_H
class Matrix {
public:
Matrix(int n); // 构造函数,构造一个n*n的矩阵
Matrix(int n, int m); // 构造函数,构造一个n*m的矩阵
Matrix(const Matrix &X); // 复制构造函数,使用已有的矩阵X构造
~Matrix(); //析构函数
void setMatrix(const float *pvalue); // 矩阵赋初值,用pvalue指向的内存块数据为矩阵赋值
void printMatrix() const; // 显示矩阵
inline float element(int i, int j) const;// 返回矩阵第i行第j列元素的值
void setElement(int i, int j, int value); //设置矩阵第i行第j列元素值为value
inline int getLines() const; //返回矩阵行数
inline int getCols() const; //返回矩阵列数
private:
int lines; // 矩阵行数
int cols; // 矩阵列数
float *p; // 指向存放矩阵数据的内存块的首地址
};
#endif
截图
实验内容4
期中考试第二题
源码
main.cpp
#include <iostream>
#include"user.h"
#include <string>
using namespace std;
int main() {
string n,p;
cout<<"请输入用户名和密码"<<endl;
cin>>n>>p;
User user(n,p);
user.print();
user.change();
cout<<"当前ID:";
user.getCurrentID();
return 0;
}
user.h
class User{
public:
User(string n,string p="111111");
void print();
void change();
void static getCurrentID();
private:
int id;
string name,password;
int static CurrentID;
};
user.cpp
#include<iostream>
#include"user.h"
#include<string>
using namespace std;
int User::CurrentID=999;
User::User(string n,string p="111111"):name(n),password(p){
id=++CurrentID;
}
void User::print(){
cout<<"用户编号:"<<id<<endl;
cout<<"用户名:"<<name<<endl;
cout<<"密码:"<<password<<endl;
}
void User::change(){
string p;
cout<<"请输入旧密码"<<endl;
while(true){
cin>>p;
if(p!=password)
cout<<"密码错误!请重新输入"<<endl;
else break;
}
string newp;
while(true){
cout<<"请输入新密码"<<endl;
cin>>p;
if(p==password)
cout<<"新密码不能与旧密码相同!"<<endl,continue;
cout<<"请再次输入新密码"<<endl;
cin>>newp;
if(newp!=p)
cout<<"两次密码不同,请重新输入"<<endl;
else cout<<"修改成功"<<endl,break;
}
password=newp;
}
void User::getCurrentID(){
cout<<CurrentID<<endl;
}
截图
期中考试第三题
源码
main.cpp
#include "book.h"
#include <vector>
#include <iostream>
using namespace std;
int main()
{
cout<<"请输入出版编号,书名及定价"<<endl;
vector<Book>mybooks;
string isbn, title;
float price;
int s=0;
while(cin>>isbn>>title>>price){
Book book(isbn,title,price);
mybooks.push_back(book);
s++;
}
for(int i=0;i<s;i++){
mybooks[i].print();
}
return 0;
}
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<<endl;
cout<<"书名:"<<title<<endl;
cout<<"定价:"<<price<<endl;
}
截图
再一次看期中考试的题目,感觉没有做的时候感觉那么难,可能考试的时候时间比较紧,一时半数不能有清晰简洁的思路,所以无从下手,另外对于函数返回引用这一方面在实验时遇到了点问题,查了查函数返回值与返回引用的区别,发现函数返回值时会生成一个临时变量来间接赋值,而函数返回引用则不会产生临时变量,而是直接赋值,这样省了一点内存也提高了一些效率。
标签:遇到 密码 内容 ons cpp info output 返回值 while
原文地址:https://www.cnblogs.com/wyqwyq/p/9063319.html