C++ Primer第九章課後編程題

1、

代碼:
頭文件golf.h代碼:
const int Len = 40;
struct golf
{
    char fullname[Len];
    int handicap;
};
void setgolf(golf & g, const char * name, int hc);
int setgolf(golf & g);
void handicap(golf & g, int hc);
void showgolf(const golf & g);
golf.cpp代碼
#include<iostream>
#include<cstring>
#include "golf.h"
using namespace std;
void setgolf(golf & g, const char * name, int hc)
{
    strcpy(g.fullname, name);
    g.handicap = hc;
}
int setgolf(golf & g)
{
    cout<< "請輸入全名: ";
    cin.getline(g.fullname, Len);
    if (g.fullname[0] == '\0')
        return 0;
    cout << "Enter handicap value: ";
    while (!(cin >> g.handicap))
    {
        cin.clear();
        cout << "請輸入整數:";
    }
    while (cin.get() != '\n')
        continue;
    return 1;
}
void handicap(golf & g, int hc)
{
    g.handicap = hc;
}
void showgolf(const golf & g)
{
    cout << "Golfer: " << g.fullname << "\n";
    cout << "Handicap: " << g.handicap << "\n\n";
}
const int Mems = 5;
int main()
{
    golf team[Mems];
    cout << "輸入 " << Mems << " 球隊成員:\n";
    int i;
    for (i=0; i<Mems; i++)
        if (setgolf(team[i]) == 0)
            break;
    for (int j=0; j<i; j++)
        showgolf(team[j]);
    setgolf(team[0], "Fred Norman", 5);
    showgolf(team[0]);
    handicap(team[0], 4);
    showgolf(team[0]);
    return 0;
}
運行結果:


2、修改程序清單9.8:用string對象代替字符數組.這樣,該程序將不再需要檢查輸入的字符串是否過長,同時可以將輸入字符串同字符串""進行比較,比判斷是否爲空行
代碼:
#include<iostream>
#include<string>
using namespace std;
void strcount(const string &str);
int main()
{
    string input;
    cout << "Enter a line:\n";
    getline(cin, input);
    while ("" != input)
    {
        strcount(input);
        cout << "Enter next line:";
        getline(cin, input);
    }
    cout << "bey!\n";
}
void strcount(const string &str)
{
    cout << "\"" << str << "\": ";
    int count = str.length();
    cout << count << "  characters\n";
}
運行結果:


3、

代碼:
#include<iostream>
#include<cstring>
struct chaff
{
    char dross[20];
    int slag;
};
int main()
{
    using std::cout;
    using std::endl;
    chaff *p1;
    int i;
    p1 = new chaff[2];
    std::strcpy(p1[0].dross, "Tiffany Zhao");
    p1[0].slag=13;
    std::strcpy(p1[1].dross, "guugle");
    p1[1].slag=-23;
    for(i=0; i<2; i++)
        cout << p1[i].dross << ": " << p1[i].slag <<endl;
    delete [] p1;
    return 0;
}
運行結果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章