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

Đề tài: Con Trỏ Cấu Trúc Và Mảng Cấu Trúc

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    6

    Mặc định Con Trỏ Cấu Trúc Và Mảng Cấu Trúc

    C Code:
    1. #include<iostream.h>
    2. #include<stdio.h>
    3. #include<conio.h>
    4. #include<string.h>
    5.  
    6. typedef struct {
    7. int day;
    8. int month;
    9. int  year;
    10. } Date;
    11.  
    12. typedef struct {
    13. char ten[20];
    14. Date sinh_nhat;
    15. char chuc_vu[20];
    16. float luong;
    17. } Employee;
    18.  
    19. /* Khai bao ham khuan mau*/
    20. void InitStruct(Employee *myEmployee);
    21. void Display(Employee *myEmployee);
    22.  
    23. void InitStruct(Employee *myEmployee){
    24.     myEmployee = new Employee;
    25. cout << "Ten: ";
    26. cin >> myEmployee->ten;
    27.     cout << "ngay sinh : ";
    28. cin >> myEmployee->sinh_nhat.day;
    29. cout << "thang sinh: ";
    30. cin >> myEmployee->sinh_nhat.month;
    31. cout << "nam sinh: ";
    32. cin >> myEmployee->sinh_nhat.year;
    33. cout << "chuc vu: ";
    34. cin >> myEmployee->chuc_vu;
    35.     cout << "luong: ";
    36. cin >> myEmployee->luong;
    37. }
    38.  
    39. void Display(Employee *myEmployee){
    40.     cout << "\n\nTen " << myEmployee->ten << endl;
    41.     cout << "Sinh nhat: " << myEmployee->sinh_nhat.day << "/"
    42. << myEmployee->sinh_nhat.month << "/"
    43. << myEmployee->sinh_nhat.year << endl;
    44.     cout << "chuc vu: " << myEmployee->chuc_vu << endl;
    45.     cout << "Luong: " << myEmployee->luong << endl;
    46.  
    47. }
    48.  
    49. void main(){
    50.     clrscr();
    51.     Employee *myEmployee;
    52.     InitStruct(myEmployee);
    53.     Display(myEmployee);
    54.     getch();
    55.     return;
    56. }
    các bạn giúp mình sửa lỗi đoạn code trên phát.không biết tại sao mình nhập số liệu vào lúc nó in ra thì lối hết phông chữ (linh tinh hết toàn là những kí tự ngoài hành tinh) mình tìm mãi mà chẳng biết nó sai chỗ nào.giúp mình nhé . cảm ơn trước nè!
    Đã được chỉnh sửa lần cuối bởi duybinh.ptit : 16-03-2009 lúc 02:37 AM.

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Nhập chuỗi trong C++ thì bạn nên sử dụng getline
    http://www.cplusplus.com/reference/i...m/getline.html

  3. #3
    Ngày gia nhập
    10 2009
    Bài viết
    6

    Mặc định bạn xem thử

    #include<iostream>
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    using namespace std;
    typedef struct {
    int day;
    int month;
    int year;
    } Date;

    typedef struct {
    char ten[20];
    Date sinh_nhat;
    char chuc_vu[20];
    float luong;
    } Employee;

    /* Khai bao ham khuan mau*/
    void InitStruct(Employee*);
    void Display(Employee*);

    void InitStruct(Employee *myEmployee)
    {
    /*myEmployee = new Employee;"vì bạn cấp phát biến con trỏ myEmployee 2 lần nên nó lỗi.lần thứ nhất nè:void InitStruct(Employee *myEmployee)*/
    cout << "Ten: ";
    cin >> myEmployee->ten;
    cout << "ngay sinh : ";
    cin >> myEmployee->sinh_nhat.day;
    cout << "thang sinh: ";
    cin >> myEmployee->sinh_nhat.month;
    cout << "nam sinh: ";
    cin >> myEmployee->sinh_nhat.year;
    cout << "chuc vu: ";
    cin >> myEmployee->chuc_vu;
    cout << "luong: ";
    cin >> myEmployee->luong;
    }

    void Display(Employee *myEmployee){
    cout << "\n\nTen " << myEmployee->ten << endl;
    cout << "Sinh nhat: " << myEmployee->sinh_nhat.day << "/"
    << myEmployee->sinh_nhat.month << "/"
    << myEmployee->sinh_nhat.year << endl;
    cout << "chuc vu: " << myEmployee->chuc_vu << endl;
    cout << "Luong: " << myEmployee->luong << endl;

    }

    void main(){
    //clrscr();
    Employee myEmployee;
    InitStruct(&myEmployee);
    Display(&myEmployee);
    getch();
    return;
    }
    Đã được chỉnh sửa lần cuối bởi kevodanh : 30-10-2009 lúc 10:36 AM. Lý do: mình cũng đang học con trỏ cấu trúc này bạn có j hay post lên chúng ta cùng trao đổi nhé thân!

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Hi bạn Duy Bình !
    Đoạn này không work :
    C++ Code:
    1. void InitStruct(Employee *myEmployee){
    2.     myEmployee = new Employee;
    3. cout << "Ten: ";
    4. cin >> myEmployee->ten;
    5.     cout << "ngay sinh : ";
    6. cin >> myEmployee->sinh_nhat.day;
    7. cout << "thang sinh: ";
    8. cin >> myEmployee->sinh_nhat.month;
    9. cout << "nam sinh: ";
    10. cin >> myEmployee->sinh_nhat.year;
    11. cout << "chuc vu: ";
    12. cin >> myEmployee->chuc_vu;
    13.     cout << "luong: ";
    14. cin >> myEmployee->luong;
    15. }

    Thử đoạn nhỏ :
    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4.  
    5. void init_1( int* p ) {
    6.     p = new int( 5 );
    7. }
    8.  
    9. void init_2( int*& p ) {
    10.     p = new int( 5 );
    11. }
    12.  
    13. int main() {
    14.     int* p;
    15.  
    16.     init_1( p );
    17.     cout << *p << endl;
    18.  
    19.     init_2( p );
    20.     cout << *p << endl;
    21.        
    22.         delete p;
    23.  
    24.     return 0;
    25. }
    thì bạn sẽ hiểu tại sao sai !

  5. #5
    Ngày gia nhập
    01 2009
    Bài viết
    165

    bạn sửa hàm void InitStruct(Employee* myEmployee) thành void InitStruct(Employee* &myEmployee),với lại mấy cái lệnh nhập chuỗi thì bạn thêm hàm getline() vào trước mỗi lệnh nhập chuỗi.Lý do sai là bạn chưa hiểu kỹ về cơ chế cấp phát động,bạn nên đọc kỹ về phần này vì nó khá quan trọng,lỗi của chương trình của bạn gọi là leakmemory,trong diễn đàn có 1 topic nói về cái này bạn có thể tự tìm hiểu thêm.
    Đã được chỉnh sửa lần cuối bởi kimduquan : 04-12-2009 lúc 04:48 PM.

  6. #6
    Ngày gia nhập
    10 2011
    Nơi ở
    Thế giới thực
    Bài viết
    6

    Mặc định Con Trỏ Cấu Trúc Và Mảng Cấu Trúc

    Code:
    #include <iostream> //khong co thu vien iostream.h, chi co thu vien <iostream>
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    
    using namespace std; //nhu su dung cai nay
    
    typedef struct {
    	int day;
    	int month;
    	int  year;
    } Date;
    
    typedef struct {
    	char ten[20];
    	Date sinh_nhat;
    	char chuc_vu[20];
    	float luong;
    } Employee;
    
    /* Khai bao ham khuan mau*/
    void InitStruct(Employee *myEmployee);
    void Display(Employee *myEmployee);
    
    void InitStruct(Employee *myEmployee){
    	cout << "Ten: ";
    	cin.getline(myEmployee->ten, 21); // cho phep nhap ca khoang trang
        cout << "ngay sinh : ";
    	cin >> myEmployee->sinh_nhat.day;
    	cout << "thang sinh: ";
    	cin >> myEmployee->sinh_nhat.month;
    	cout << "nam sinh: ";
    	cin >> myEmployee->sinh_nhat.year;
    	cin.get(); // xoa bo dem nhap
    	cout << "chuc vu: ";
    	cin.getline(myEmployee->chuc_vu, 21);
        cout << "luong: ";
    	cin >> myEmployee->luong;
    }
    
    void Display(Employee *myEmployee){
        cout << "\n\nTen " << myEmployee->ten << endl;
        cout << "Sinh nhat: " << myEmployee->sinh_nhat.day << "/" 
    		<< myEmployee->sinh_nhat.month << "/" 
    		<< myEmployee->sinh_nhat.year << endl;
        cout << "chuc vu: " << myEmployee->chuc_vu << endl;
        cout << "Luong: " << myEmployee->luong << endl;
    
    }
    
    void main(){
        //clrscr();
        Employee *myEmployee = new Employee; // can phai khoi tao truoc khi truyen vao ham khac
        InitStruct(myEmployee);
        Display(myEmployee);
    	cin.get(); // lenh nay de xoa bo dem nhap, dau enter xuong dong
        cin.get(); // lenh nay thay cho lenh getch() trong C
    	//getch();
    	delete myEmployee; // nho xoa con tro cap phat voi new khi khong dung nua
        return;
    }

  7. #7
    Ngày gia nhập
    10 2011
    Nơi ở
    Thế giới thực
    Bài viết
    6

    sorry, không hiểu sao, khi copy từ visual studio ra, code lại bị nhảy linh tinh như thế

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

  1. Trả lời: 0
    Bài viết cuối: 07-07-2013, 07:29 PM
  2. Bài tập về cấu trúc trong c | Cấu trúc sinh viên???
    Gửi bởi dddzzzjjjiii trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 14
    Bài viết cuối: 21-07-2012, 05:06 PM
  3. Chiếu trúc, Chiếu trúc cao cấp, Hàng Sản xuất tại Việt Nam: Giá rẻ nhất thị trường
    Gửi bởi tqt.tranquoctuan trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 13-05-2012, 08:33 PM
  4. cấu trúc bảng băm là cấu trúc như thế nào?
    Gửi bởi minh_quang1202 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 06-01-2011, 07:03 PM
  5. Cấu trúc file excel | Cấu trúc file xls. Giúp mình với?
    Gửi bởi knightofit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 02-04-2009, 10:44 PM

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