佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 857|回复: 11

请问c++ 怎样 string value 要怎样return?

[复制链接]
发表于 28-6-2006 03:15 AM | 显示全部楼层 |阅读模式
class test
{

  void setname(??? t )
{
   name = t

}

??? getname()

{
return ??
}

};//end class

void main ()
{
string name;
test test1;
cout<<"enter name";
cin>>name;
  test.getname();

}


谢谢
回复

使用道具 举报


ADVERTISEMENT

发表于 29-6-2006 11:07 PM | 显示全部楼层
因为那个变数是private的,可以直接呼叫出来,所以return void就可以了

#include <iostream>
#include <string>
using namespace std;

class mystring {
        private:
                string m_string;
        public:
                void setText(string p_string) {
                        m_string = p_string;
                }
                void getText() {
                        cout << m_string << endl;
                }
};

int main() {
        string sample("Hello World!");
        mystring testing;
        testing.setText(sample);
        testing.getText();
        return 0;
}
回复

使用道具 举报

 楼主| 发表于 1-7-2006 01:30 AM | 显示全部楼层
oo.原来是这样。谢谢。。

想问问下一个问题。。

我是做一个借书的system..全部data是store进file里面。

我要记录那一笨书的ID每一个月的收入。。。
我应该怎样做?

ADD
......................................
int ID,month;
float rentfee[month];

cout<<"1. Enter book ID:   ";
cin>>ID;                           
               
cout<<"2. Enter Tenant month(1-12)       : ";
cin>>month;
       
cout<<"2. Enter Tenant Fee       : ";
cin>>rentfee[month];                        

..................................................
display


cout<<ID;cout<<"\t\t\t";
        for(int i=0; i<=12; i++)
                        if(ID=ID)
                        {
                        for(int i=0; i<=12; i++);{
                        cout<<rentfee[month];
                        }//end inner for
                         if(aptno!=aptno)
                       
                        for(int i=0; i<=12; i++);{
                        cout<<aptno;
                        cout<<rentfee[month];
                        }//end for
                        }//end if



?? 我。。我。。。很模糊。。。可以请教我吗?谢谢。。
回复

使用道具 举报

发表于 2-7-2006 01:13 PM | 显示全部楼层
这算是基本框架,基本上我没有做bounds checking,也没有validate user input,txt file用append方式储存book object,当你下次执行这个程式时,之前的record还会存在


#include <fstream>
#include <iostream>
using namespace std;

class book {
  protected:
    float fee;
        float total;
        int bookid;
        int month;
  public:
        void setData() {
          cout << "1. Enter Book ID:";
          cin >> bookid;
          cout << "2. Enter Tenant Month (1-12):";
          cin >> month;
          cout << "3. Enter Tenant Fee Per Month:";
          cin >> fee;
          total = fee * month;
        }
        void getData() {
          cout << "1. Book ID: " << bookid << endl;
          cout << "2. Tenant Month: " << month << endl;
          cout << "3. Tenant Fee Per Month: " << fee << endl;
          cout << "4. Total Tenant Fee: " << total << "\n\n";
        }
};

int main() {
  char input;
  book myrecord;
  fstream myfile;
  myfile.open("bookfile.txt", ios::binary | ios::app | ios::out | ios::in);
  cout << "Book Rental System\n\nEnter book record:" << endl;
  do {
        myrecord.setData();
    myfile.write (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));
       
        cout << "\nEnter another book record (y/n)?";
        cin >> input;
  }
  while (input == 'y');
  myfile.seekg(0);
  myfile.read (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));

  cout << "\n\nBook Rental Info" << endl;
  while ( !myfile.eof() ) {
        myrecord.getData();
    myfile.read (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));
  }
  cout << endl;
  return 0;
}
回复

使用道具 举报

 楼主| 发表于 2-7-2006 02:48 PM | 显示全部楼层
谢谢你。。你真的很神。。。
如果我output 是以下 example ...

display interface like


(book)   (income)
ID        Jan     Feb    Mar  Apr  May .......
--------------------------------------
123       12.3    234.1  34    0    0
244       34.2    244    0     0    0
..
...
...
...
..


我应该怎样写??

现我的display 只能。。

ID        Jan     Feb    Mar  Apr  May .......
--------------------------------------
123       12.3   
243       345
123       34.4

我应该怎样set ?
谢谢你。。。
回复

使用道具 举报

发表于 2-7-2006 09:10 PM | 显示全部楼层
char *
.......
回复

使用道具 举报

Follow Us
发表于 2-7-2006 11:54 PM | 显示全部楼层
formatting要搞好,不然会走位


  1. #include <fstream>
  2. #include <iostream>
  3. #include <iomanip>
  4. using namespace std;

  5. class book {
  6.   protected:
  7.         float fee[12];
  8.         int bookid;
  9.   public:
  10.         void setData() {
  11.           cout << "Enter Book ID:";
  12.           cin >> bookid;
  13.           for (int i=0; i<12; i++) {
  14.             cout << "Enter Tenant Fee for Month " << i+1 << ":";
  15.               cin >> fee[i];
  16.           }
  17.         }
  18.         void getData() {
  19.           cout << "\n" << bookid;
  20.           for (int j=0; j<12; j++) {
  21.             cout << setiosflags(ios::fixed)
  22.                  << setiosflags(ios::showpoint)
  23.                  << setprecision(2)
  24.                  << setw(6)
  25.                          << fee[j];
  26.           }
  27.         }
  28. };

  29. int main() {
  30.   char input;
  31.   book myrecord;
  32.   fstream myfile;
  33.   myfile.open("bookfile.txt", ios::binary | ios::app | ios::out | ios::in);
  34.   cout << "Book Rental System\n\nEnter book record:" << endl;
  35.   do {
  36.         myrecord.setData();
  37.     myfile.write (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));
  38.        
  39.         cout << "\nEnter another book record (y/n)?";
  40.         cin >> input;
  41.   }
  42.   while (input == 'y');
  43.   myfile.seekg(0);
  44.   myfile.read (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));

  45.   cout << "\n\nBook Rental Info" << "\n\n";
  46.   cout << "ID "
  47.            << setw(6) << "1" << setw(6) << "2" << setw(6) << "3"
  48.            << setw(6) << "4" << setw(6) << "5" << setw(6) << "6"
  49.            << setw(6) << "7" << setw(6) << "8" << setw(6) << "9"
  50.            << setw(6) << "10" << setw(6) << "11" << setw(6) << "12" << endl;
  51.   while ( !myfile.eof() ) {
  52.         myrecord.getData();
  53.     myfile.read (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));
  54.   }
  55.   cout << endl;
  56.   return 0;
  57. }
复制代码

回复

使用道具 举报

发表于 3-7-2006 12:27 AM | 显示全部楼层
你有没有把get跟set的概念给弄错了。
回复

使用道具 举报


ADVERTISEMENT

发表于 3-7-2006 08:44 PM | 显示全部楼层
get/set弄错了吗?那该怎么写法?
回复

使用道具 举报

 楼主| 发表于 3-7-2006 09:42 PM | 显示全部楼层
谢谢。。
但这方法是一次过insert完全部12months =_="
我希望是insert自己所要的月份.
谢谢你的帮忙。


........................................


他说你弄错,可能他要的是.......


  void setID(int d)
{
    id=d;
}

int getID()
{
return id;
}

cout<<getID();

这类东西。。

[ 本帖最后由 bye_bye 于 3-7-2006 09:43 PM 编辑 ]
回复

使用道具 举报

发表于 4-7-2006 10:46 PM | 显示全部楼层
试试这个


  1. #include <fstream>
  2. #include <iostream>
  3. #include <iomanip>
  4. using namespace std;

  5. class book {
  6.   protected:
  7.         int bookid;
  8.         int month;
  9.         int i;
  10.         float fee[13];
  11.         char choice;
  12.   public:
  13.         book() {
  14.           for (i=1; i<13; i++) {
  15.                   fee[i] = 0;
  16.           }
  17.         }
  18.         void getUserInput() {
  19.           cout << "Enter Book ID:";
  20.           cin >> bookid;
  21.       do {
  22.                 cout << "Enter a month:";
  23.                 cin >> month;
  24.             cout << "Enter Tenant Fee for Month " << month << ":";
  25.         cin >> fee[month];   
  26.                 cout << "\nAdd more records for this book (y/n)?";
  27.             cin >> choice;
  28.           } while (choice == 'y');
  29.         }

  30.         void displayRecord() {
  31.           cout << "\n" << bookid;
  32.           for (i=1; i<13; i++) {
  33.             cout << setiosflags(ios::fixed)
  34.                  << setiosflags(ios::showpoint)
  35.                  << setprecision(2)
  36.                  << setw(6)
  37.                          << fee[i];
  38.           }
  39.         }
  40. };

  41. int main() {
  42.   char input;
  43.   book myrecord;
  44.   fstream myfile;
  45.   myfile.open("bookfile.txt", ios::binary | ios::app | ios::out | ios::in);
  46.   cout << "Book Rental System\n\nEnter book record:" << endl;
  47.   do {
  48.         myrecord.getUserInput();
  49.         myfile.write (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));
  50.        
  51.         cout << "\nEnter another book record (y/n)?";
  52.         cin >> input;
  53.   }
  54.   while (input == 'y');
  55.   myfile.seekg(0);
  56.   myfile.read (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));

  57.   cout << "\n\nBook Rental Info" << "\n\n";
  58.   cout << "ID "
  59.            << setw(6) << "1" << setw(6) << "2" << setw(6) << "3"
  60.            << setw(6) << "4" << setw(6) << "5" << setw(6) << "6"
  61.            << setw(6) << "7" << setw(6) << "8" << setw(6) << "9"
  62.            << setw(6) << "10" << setw(6) << "11" << setw(6) << "12" << endl;
  63.   while ( !myfile.eof() ) {
  64.         myrecord.displayRecord();
  65.     myfile.read (reinterpret_cast<char*>(&myrecord), sizeof(myrecord));
  66.   }
  67.   cout << endl;
  68.   return 0;
  69. }
复制代码

回复

使用道具 举报

 楼主| 发表于 5-7-2006 09:55 PM | 显示全部楼层
这方法我试过了

但它display 是
insert  ID =1
mont = 2
fee = 123

insert  ID =2
mont = 1
fee = 456

insert  ID =3
mont = 3
fee = 567

ID   Jan     Feb   Mar

1    0.00   123.0   0
2    456.00   0      0
1   0.00     0.00    567

因为会重复两个一样的ID..
我所以我放弃这方法>_<
我尝试compare
if(Id,Book.ID)==0) 方法
但。。。。。
之后是

ID   Jan     Feb   Mar

1    0.00   0  567
2    456.00   0      0


fee 123 没有了T_T
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 12-11-2024 02:58 AM , Processed in 0.102593 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表