北京理工大学复试上机--2008

1、存储一组姓名,如Apple Tom Green Jack要求能排序、按字母顺序插入、并显示。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    string s;
    vector<string> v;
    while(cin >> s) {
        v.push_back(s);
        if(getchar() == '\n') {//使用if是为了可以输入多组
            sort(v.begin(), v.end());
            for(int i = 0; i < v.size(); i++) {
                cout << v[i] << " ";
            }
            cout << endl;
            v.clear();
        }
    }
    return 0;
}

2、输入文件名及路径创建该文件,并把从键盘输入的内容保存到该文件,最后将该文件的路径、该文件名及文件中的内容输出到屏幕。

#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int main() {
    string name, path;
    cin >> name >> path;
    ofstream outfile;
    outfile.open(path + name);
    cout << "请输入要保存的内容:" << endl;
    string str;
    while (getline(cin, str)) {
        outfile << str << endl;
    }
    outfile.close();
    fstream infile(path + name);
    cout << "Path: " << path << endl << "Name: " << name << endl;
    while(getline(infile, str)) {
        cout << str << endl;
    }//输出的第一行总有空格 不知为啥??
    return 0;
}

3、设计捕获两种不同类型的异常,一个是被0除,另一个是数组越界。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

double division(int a, int b) {
    if (b == 0) {
        throw "0不能做除数";
    }
    return (a / b);
}

void err(int i, int n, int num, int a[]) {
    if(i > n) {
        throw "数组越界";
    }
    else a[i] = num;
}

int main() {
    int a, b;
    cout << "输入被除数和除数:";
    cin >> a >> b;
    try {
        cout << division(a, b) << endl;
    }
    catch(const char* msg) {
        cout << msg << endl;
    }
    cout << "输入数组长度:";
    int n, num, i = 0;
    cin >> n;
    int arr[n];
    while(cin >> num) {
        try {
            arr[i++] = num;
            if(i > n) throw "数组越界";
        }
        catch(const char* e) {
            cout << e << endl;
        }
    }
    return 0;
}

PS:这个捕获异常,我尽力了 不懂!!!!T_T T_T


4、设计一个程序能计算一个日期加上若干天后是什么日期。
输入: 输入四个整数分别表示年月日和累加的天数。
输出: 按yyyy-mm-dd的形式输出。
2008 2 3 100 2008-05-13

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    int year, month, day, add;
    while(cin >> year >> month >> day >> add) {
        int nday;
        while(add > 0) {
            nday = day + add;
            if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
                switch(month) {
                    case 1 : add -= 31 - day; break;
                    case 2 : add -= 29 - day; break;
                    case 3 : add -= 31 - day; break;
                    case 4 : add -= 30 - day; break;
                    case 5 : add -= 31 - day; break;
                    case 6 : add -= 30 - day; break;
                    case 7 : add -= 31 - day; break;
                    case 8 : add -= 31 - day; break;
                    case 9 : add -= 30 - day; break;
                    case 10 : add -= 31 - day; break;
                    case 11 : add -= 30 - day; break;
                    case 12 : add -= 31 - day; break;
                }
                if(add > 0) {
                    month++;
                    day = 0;
                }
                if(month > 12) {
                    year++;
                    month = 1;
                }
            }
            else {
                switch(month) {
                    case 1 : add -= 31 - day; break;
                    case 2 : add -= 28 - day; break;
                    case 3 : add -= 31 - day; break;
                    case 4 : add -= 30 - day; break;
                    case 5 : add -= 31 - day; break;
                    case 6 : add -= 30 - day; break;
                    case 7 : add -= 31 - day; break;
                    case 8 : add -= 31 - day; break;
                    case 9 : add -= 30 - day; break;
                    case 10 : add -= 31 - day; break;
                    case 11 : add -= 30 - day; break;
                    case 12 : add -= 31 - day; break;
                }
                if(add > 0) {
                    month++;
                    day = 0;
                }
                if(month > 12) {
                    year++;
                    month = 1;
                }
            }
        }
        printf("%d-%02d-%02d\n", year, month, nday);
    }
    return 0;
}
posted @ 2020-03-21 21:32  AlsoRan  阅读(243)  评论(0编辑  收藏  举报