Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: help giúp em sữa lỗi trong hàm tìm kiếm sách và gọi hàm trong chuơng trình quản lí sách

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    5

    Mặc định help giúp em sữa lỗi trong hàm tìm kiếm sách và gọi hàm trong chuơng trình quản lí sách

    Đây là code của em :
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <iostream.h>
    #include <string.h>
    #include <fstream.h>
    #include <stdlib.h>
    class Sach
    {
    	private :
    	char masach [10];
    	char tensach[20];
    	char theloai [20];
    	int soluong;
    	public :
    	void nhapsach ();
    	void insach ();
    	void timkiem (int n, Sach *ds);
    };
    void Sach ::nhapsach ()
    {
    	cout <<"\n nhap ma sach ";
    	cin.ignore();
    
    	cin.getline(masach,10);
    	cout <<"\n nhap ten sach ";
    
    	cin.getline(tensach,20);
    	cout <<"\n the loai ";
    
    	cin.getline(theloai,20);
    	cout<<"\n so luong";
    
    	cin>>soluong;
    };
    void Sach ::insach()
    {
    
    	cout<<"ma sach :"<<masach<<"\n";;
    	cout<<"ten sach :"<<tensach<<"\n";
    	cout<<"the loai :"<<theloai<<"\n";
    	cout<<"so luong :"<<soluong<<"\n";
    };
    void Sach ::timkiem(int n, Sach *ds)
    {
    	int i;
    	char x[30];
    	cout<<"\n nhap ten sach can tim ";
    	cin.ignore ();
    	cin.getline(x,30);
    	for(i=1;i<=n;i++)
    		if(strcmp (ds[i].tensach,x)==0)
    		{
    			cout<<" thong tin cua sach can tim \n";
    			ds[i].insach();
    		}
    		else
    
    			cout<<"khong co trong danh sach \n";
    
    };
    void  main ()
    {
    	int i,n;
    	char x[30];
    
    	cout<<"so luong sach can nhap ";
    	cin>>n;
    	Sach *ds ;
    	for(i=1;i<=n;i++)
    	{
    	ds[i].nhapsach();
    	}
    	cout<<"*******Danh sach sach*******\n";
    	for (i=1;i<=n;i++)
    	{
    	ds[i].insach();
    	}
    	timkiem(n,ds);
           getch();
    
    
    
    
    }

  2. #2
    Ngày gia nhập
    08 2011
    Nơi ở
    /pentest
    Bài viết
    44

    Chắc bạn code trên Turbo C++, có một vài lỗi nghiêm trọng bạn nên chú ý để tránh cho lần sau, trong main Sach* ds, thì phải cấp phát vùng nhớ cho nó ds = new Sach[n+1] trước khi sử dụng nó.
    bạn gọi hàm timkiem(n,ds) như một hàm thông thương mà lại muốn sử dụng các thành phần private của Sách thì bạn phải đưa hàm này trở thành friend của Sách. đây là code:

    C++ Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <iostream>
    4. #include <string.h>
    5. #include <fstream>
    6. #include <stdlib.h>
    7. using namespace std;
    8. class Sach
    9. {
    10.     private :
    11.     char masach [10];
    12.     char tensach[20];
    13.     char theloai [20];
    14.     int soluong;
    15.     public :
    16.     void nhapsach ();
    17.     void insach ();
    18.     friend void timkiem (int n, Sach *ds);
    19. };
    20. void Sach ::nhapsach ()
    21. {
    22.     cout <<"\n nhap ma sach ";
    23.     cin.ignore();
    24.  
    25.     cin.getline(masach,10);
    26.     cout <<"\n nhap ten sach ";
    27.  
    28.     cin.getline(tensach,20);
    29.     cout <<"\n the loai ";
    30.  
    31.     cin.getline(theloai,20);
    32.     cout<<"\n so luong";
    33.  
    34.     cin>>soluong;
    35. };
    36. void Sach ::insach()
    37. {
    38.  
    39.     cout<<"ma sach :"<<masach<<"\n";;
    40.     cout<<"ten sach :"<<tensach<<"\n";
    41.     cout<<"the loai :"<<theloai<<"\n";
    42.     cout<<"so luong :"<<soluong<<"\n";
    43. };
    44. void timkiem(int n, Sach *ds)
    45. {
    46.     int i;
    47.     char x[30];
    48.     int found = 0; // tim thay hay ko? 1 neu tim thay
    49.     cout<<"\n nhap ten sach can tim ";
    50.     cin.ignore ();
    51.     cin.getline(x,30);
    52.     for(i=1;i<=n;i++)
    53.         if(strcmp (ds[i].tensach,x)==0)
    54.         {
    55.             cout<<" thong tin cua sach can tim \n";
    56.             ds[i].insach();
    57.             found = 1;
    58.         }
    59.         if (found = 0)
    60.             cout<<"khong co trong danh sach \n";
    61.  
    62. };
    63. int  main ()
    64. {
    65.     int i,n;
    66.     char x[30];
    67.  
    68.     cout<<"so luong sach can nhap ";
    69.     cin>>n;
    70.     Sach *ds ;
    71.     ds = new Sach[n+1];
    72.     for(i=1;i<=n;i++)
    73.     {
    74.     ds[i].nhapsach();
    75.     }
    76.     cout<<"*******Danh sach sach*******\n";
    77.     for (i=1;i<=n;i++)
    78.     {
    79.     ds[i].insach();
    80.     }
    81.     timkiem(n,ds);
    82.     delete[] ds;
    83.     getch();
    84.  
    85.  
    86.  
    87.  
    88. }
    We are oft to blame in this...'Tis too much proved.
    - That with devotion's visage and pious action we do sugar o'er the devil himself.

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    5

    thanks anh ^^ .code đã oke rồi

Các đề tài tương tự

  1. Tính Lương Nhân Viên Trong Chuơng Trình Quản Lý Tiền Lương!
    Gửi bởi lvgiang0202 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 14-05-2013, 09:05 AM
  2. Bài tập giải thuật Thuật toán Tìm kiếm, Xắp xếp trong liên kết đôi trong Quản lý hàng hóa?
    Gửi bởi levantuananh trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 28-11-2012, 05:05 PM
  3. Ai chỉ giúp em mấy vđề tìm kiếm sắp xếp trong mảng với :((
    Gửi bởi jinsimple trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 27-09-2011, 04:35 PM
  4. MS SQL với C# Tạo thủ tục tìm kiếm trong SQL. Giúp mình kiểm tra
    Gửi bởi hungmq trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 5
    Bài viết cuối: 02-03-2011, 05:54 PM
  5. chương trình quản lý phòng trong khách sạn. Tìm kiếm dữ liệu, xin giúp đỡ?
    Gửi bởi baquang1984 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 03-03-2010, 12:14 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn