نمایش نتایج 1 تا 8 از 8

نام تاپیک: کنترل کردن ورودی (سی++)

  1. #1

    کنترل کردن ورودی (سی++)

    سلام...
    این برنامه اطلاعات یه کتابو میگیره و چاپ میکنه...
    میخوام رو داده های ورودی کنترل داشته باشم. مثلا اگه واسه شابک کتاب کاراکتر غیر عددی وارد شد، نامعتبر اعلام شه و دوباره اونو از کاربر بخواد ( از تابع isdigit استفاده کردم، جواب نداد).

    مشکل دوم:
    از تابع del که استفاده می کنم، تاریخ رو صفر نمی کنه؛ ظاهرا تابع clr داخلش اجرا نمی شه!

    سورس برنامه:


    #include <iostream.h>
    #include <conio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <ctype.h>
    #define K 80
    void menu()
    {
    clrscr();
    cout<<" 1.Add 2.Delete 3.View 4.Exit ";
    }

    void error()
    {
    cout<<"\n\t\t\t\tInvalid Import!";
    getch();
    }

    class date
    {
    private:
    int y,m,d;
    public:
    date(int year=0,int month=0, int day=0):
    y(year),m(month),d(day){}

    void clr(){y=m=d=0;}

    void showdate(){cout<<y<<"/"<<m<<"/"<<d<<endl;}

    void setdate(){cout<<"Year: "; cin>>y; cout<<"Month: "; cin>>m;
    cout<<"day: "; cin>>d;}
    };

    class book: public date
    {
    private:
    date publish; long int id,page; char name[K],author[K];

    public:
    book(){strcpy(name,'\0'); strcpy(author,'\0'); page=0; id=0;}

    void del()
    {
    strcpy(name,'\0');
    strcpy(author,'\0');
    page=0;
    id=0;
    clr();
    }

    void insert()
    {
    clrscr();
    cout<<"Enter Book ID: "; cin>>id;
    cout<<"\nEnter Book Name: "; cin>>name;
    cout<<"\nEnter Book author: "; cin>>author;
    cout<<"\nEnter Book pages: "; cin>>page;
    cout<<"\nEnter Publish Date:\n"; publish.setdate();

    void view()
    {
    clrscr();
    cout<<" ID Name Author Pages Publish Date\n ";
    cout<<"-----------------------------------------------------------------------------";
    gotoxy(2,3); cout<<id; gotoxy(16,3); cout<<name; gotoxy(33,3);
    cout<<author; gotoxy(54,3); cout<<page; gotoxy(68,3); publish.showdate();
    cout<<"\n\t\t\t Press Any Key..."; getch();
    }

    };

    int main()
    {
    book x; int n;
    for(;;)
    {
    menu();
    cout<<"\n\n\nEnter Number of Item ";
    cin>>n;
    switch(n)
    {
    case 1: x.insert(); break;
    case 2: x.del(); break;
    case 3: x.view(); break;
    case 4: exit(0);
    default: cout<<"\n\t\t\t\tInvalid Number!"; getch();
    }
    }//end of for
    getch();
    return 0;

    }




  2. #2

    نقل قول: کنترل کردن ورودی (سی++)

    بهتره ورودی رو بصورت رشته ای گرفته و یه تابعی واسه اینکار بنویسید :


    #include <iostream>
    #include <conio>
    #include <string>
    using namespace std;
    bool is_digit(string str){
    bool res = true;
    int f;
    for(int i=0;i<str.size();i++){
    f = (int)(str[i]);
    if(f>=48 && f<=57)
    res = res & true;
    else{
    res = res & false;
    break;}
    }
    return res;
    }
    //==============================
    int main(){
    string str="";
    while(true){
    cout<<"Enter a string :\n";
    cin>>str;
    cout<<is_digit(str)<<endl;
    cout<<"===================\n";}
    getch();
    }
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 1.jpg‏ (36.2 کیلوبایت, 12 دیدار)






  3. #3

    نقل قول: کنترل کردن ورودی (سی++)

    سلام
    فک کنم اين اولين پست من هستش.
    عرض کنم خدمتتون که اول اينکه شما اگه از cpp استفاده ميکنی بهتره حتماً از کتابخونه های استاندارد
    استفاده کنی.
    اول برنامت using namespace std بزار و h. ها رو هم بردار.
    clrscr() استاندارد نيس استفاده نکن.
    برای چک کردن هم فک ميکنم بشه از کلاس sstream استفاده کرد.

  4. #4
    کاربر تازه وارد آواتار HH2BN1990
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    سن
    33
    پست
    45

    نقل قول: کنترل کردن ورودی (سی++)

    نقل قول نوشته شده توسط salar_cpp_cs مشاهده تاپیک
    بهتره ورودی رو بصورت رشته ای گرفته و یه تابعی واسه اینکار بنویسید :


    #include <iostream>
    #include <conio>
    #include <string>
    using namespace std;
    درستش اینه!

    #include <iostream>
    #include <conio.h>
    #include <string>
    using namespace std;

  5. #5

    نقل قول: کنترل کردن ورودی (سی++)

    عرض کنم خدمتتون که اول اينکه شما اگه از cpp استفاده ميکنی بهتره حتماً از کتابخونه های استاندارد
    استفاده کنی.
    میشه بگید واسه این مشکل، مثلا از کدوم تابع کتابخونه ای استفاده کنم؟؟

    اول برنامت using namespace std بزار و h. ها رو هم بردار.
    clrscr() استاندارد نيس استفاده نکن.
    دوست عزیز بنا به به کامپایلر دستورات فرق می کنه.
    مثلا من که از Boralnd C++‎‎‎ 3.1 تحت داس استفاده می کنم، حتما باید از هدرها با h. استفاده کنم.
    using namespace std رو هم خطا میگیره ازش.

    برای چک کردن هم فک ميکنم بشه از کلاس sstream استفاده کرد.
    مثال میتونی بزنی؟؟


    درستش اینه!

    #include <iostream>
    #include <conio.h>
    #include <string>
    using namespace std;
    فک کنم شما از VS استفاده می کنی و سالار از Borland C++‎‎‎ 5.2

  6. #6

    نقل قول: کنترل کردن ورودی (سی++)

    درستش اینه!
    بستگی به نوع کامپایلر داره ! در بعضی ها میشه h. ها رو نذاشت و در بعضی ها باید بذاری و هر کدوم واسه

    خودش درسته .






  7. #7

    نقل قول: کنترل کردن ورودی (سی++)

    drstrike ، HH2BN1990 ، لطفا بحث رو به حاشیه نکشونید و در جهت تاپیک ، فعالیت کنید .

    drstrike ، مشکل شما حل شد ؟






  8. #8

    نقل قول: کنترل کردن ورودی (سی++)

    drstrike ، HH2BN1990 ، لطفا بحث رو به حاشیه نکشونید و در جهت تاپیک ، فعالیت کنید .
    چشم!
    drstrike ، مشکل شما حل شد ؟
    اولی اره، دومی نه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •