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

Đề tài: Cần Giúp Đỡ Lỗi Bài Tập Danh Sách Liên Kết Đơn

  1. #1
    Ngày gia nhập
    11 2012
    Nơi ở
    TP HCM
    Bài viết
    3

    Mặc định Cần Giúp Đỡ Lỗi Bài Tập Danh Sách Liên Kết Đơn

    Đề: Viết chương trình quản lý lịch công tác trong tháng đơn giản: cho phép nhập vào
    nội dung công việc cần làm theo ngày, theo giờ. Trong một ngày có thểcó nhiều
    công việc, mỗi công việc có giờbắt đầu, tên công việc, nội dung công việc, tính
    chất công việc {rất quan trọng, quan trọng, bình thường, ko cần thiết}… Sử dụng cây nhị phân tìm kiếm..


    Đây là code nhập và xuất của e... ko lỗi nhưng ko chạy
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    typedef struct date
    {
    	int ngay;
    	int thang;
    	int nam;
    	int gio;
    	int phut;
    };
    typedef struct list
    {
    	char tencv[30];
    	char noidung[200];
    	char opt[30];
    	date nt;
    };
    typedef struct node
    {
    	list info;
    	struct node* pleft;
    	struct node* pright;
    };
    typedef node* tree;
    void init(tree &t)
    {
    	t=NULL;
    }
    node* getnode(list x)
    {
    	node* p=new node;
    	if(p==NULL) return NULL;
    	else
    	{
    		p->info=x;
    		p->pleft=NULL;
    		p->pright=NULL;
    	}
    	return p;
    }
    int insertnode(tree &t,list x)
    {
    	if(t!=NULL)
     		return insertnode(t->pright,x);
    	else
     		{	
    	 		return insertnode(t->pleft,x);
    			return 0;
     		}	
    	t = getnode(x);
    	if(t==NULL)
    		 return -1;
    	return 1;
    }
    void nhapx(list &x)
    {
    	printf("Nhap ten CV: ");
    	gets(x.tencv);
    	printf("Nhap thoi gian:\n");
    	do {
    		printf("\tNhap Nam: ");
    		scanf("%d",&x.nt.nam);
    		if(x.nt.nam<2012) printf("Nam khong thuc te !\n");
    	} while (x.nt.nam<2012);
    	do {
    		printf("\tNhap Thang: ");
    		scanf("%d",&x.nt.thang);
    		if(x.nt.thang<1 || x.nt.thang>12) printf("Thang khong hop le !\n");
    	} while (x.nt.thang<1 || x.nt.thang>12);
    	switch (x.nt.thang)
    	{
    		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
    			do {
    					printf("Nhap Ngay: ");
    					scanf("%d",&x.nt.ngay);
    					if(x.nt.ngay<1 || x.nt.ngay >31) printf("Ngay khong hop le !\n");
    			} while (x.nt.ngay<1 || x.nt.ngay >31);
    		case 4: case 6: case 9: case 11:	
    			do {
    					printf("Nhap Ngay: ");
    					scanf("%d",&x.nt.ngay);
    					if(x.nt.ngay<1 || x.nt.ngay>30) printf("Ngay khong hop le !\n");
    			} while (x.nt.ngay<1 || x.nt.ngay>30);
    		case 2:
    		if(((x.nt.nam%4==0)&&(x.nt.nam%100!=0))||(x.nt.nam%400==0))
    				{
    					do{
    						printf("Nhap Ngay: ");
    						scanf("%d",&x.nt.ngay);
    						if(x.nt.ngay<1 || x.nt.ngay>28) printf("Ngay khong hop le !\n");
    					} while(x.nt.ngay<1 || x.nt.ngay>28);
    				}
    				else 
    				{
    					do {
    						printf("Nhap Ngay: ");
    						scanf("%d",&x.nt.ngay);
    						if(x.nt.ngay<1 || x.nt.ngay>29) printf("Ngay khong hop le !\n");
    					} while (x.nt.ngay<1 || x.nt.ngay>29);
    				}
    	}
    	do {
    		printf("\tNhap Gio: ");
    		scanf("%d",&x.nt.gio);
    		if(x.nt.gio<0 || x.nt.gio>24) printf("Gio khong hop le !\n");
    	} while(x.nt.gio<0 || x.nt.gio>24);
    	do {
    		printf("\tNhap Phut: ");
    		scanf("%d",&x.nt.phut);
    		if (x.nt.phut<0 || x.nt.phut>60) printf("Phut khong hop le !\n");
    	} while (x.nt.phut<0 || x.nt.phut>60);
    	printf("Nhap noi dung CV: ");
    	gets(x.noidung);
    	printf("Nhap tinh chat CV: ");
    	gets(x.opt);
    }
    void xuatx(list x)
    {
    	printf("CV: %s\n",x.tencv);
    	printf("%d:%d, Ngay %d %d %d\n", x.nt.phut, x.nt.gio, x.nt.ngay, x.nt.thang, x.nt.nam);
    	printf("Noi Dung:  %s\n",x.noidung);
    	printf("Tinh chat: %s\n",x.opt);
    	printf("***********************************************************\n");
    }
    void xuattree( tree t, list x)
    {
    	if(t==NULL) return;
    	xuattree(t->pleft,x);
    	xuatx(x);
    	xuattree(t->pright,x);
    	return;
    }
    void input(tree &t)
    { 
    	list x;
    	init(t);
    	nhapx(x);
    	insertnode(t,x);
    }
    void main()
    {
    	tree t;
    	list x;
    	input(t);
    	xuattree(t,x);
    }

  2. #2
    Ngày gia nhập
    11 2012
    Bài viết
    136

    Lần sau bạn title chuẩn tí nhé. Mình nghĩ bạn xem lại phần chèn cây đi. ở đây không có so sánh dữ liệu giữa các nút để chèn phải hay trái vậy thì nó biết chèn đâu, hơn nữa ở đây return 0 có được trả về được không
    else
    {
    return insertnode(t->pleft,x);
    return 0;
    }

    Lần sau post lỗi để anh em còn dễ tìm nhé chứ bài thì dài thế này ngại copy về lắm.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  3. #3
    Ngày gia nhập
    11 2012
    Nơi ở
    TP HCM
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    Lần sau bạn title chuẩn tí nhé. Mình nghĩ bạn xem lại phần chèn cây đi. ở đây không có so sánh dữ liệu giữa các nút để chèn phải hay trái vậy thì nó biết chèn đâu, hơn nữa ở đây return 0 có được trả về được không
    else
    {
    return insertnode(t->pleft,x);
    return 0;
    }

    Lần sau post lỗi để anh em còn dễ tìm nhé chứ bài thì dài thế này ngại copy về lắm.
    Em cám ơn anh nhiều ạ ! em vừa mới vào 4rum ! lần sau em sẽ chú ý việc đó ^^

  4. #4
    Ngày gia nhập
    12 2012
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    Lần sau bạn title chuẩn tí nhé. Mình nghĩ bạn xem lại phần chèn cây đi. ở đây không có so sánh dữ liệu giữa các nút để chèn phải hay trái vậy thì nó biết chèn đâu, hơn nữa ở đây return 0 có được trả về được không
    else
    {
    return insertnode(t->pleft,x);
    return 0;
    }

    Lần sau post lỗi để anh em còn dễ tìm nhé chứ bài thì dài thế này ngại copy về lắm.
    nếu đem đặt điều kiện như thế nào để so sánh ví dụ nhu cái code này

    typedef struct list
    {
    char tencv[30];
    char noidung[200];
    char opt[30];
    date nt;
    };

    void insertnode(tree &t,list x)
    {
    if(t==NULL)
    {
    t=new node;
    t->info=x;
    t->pright=t->pleft=NULL;
    }
    else
    if(x<(t->info)) insertnode(t->pright,x);
    else
    if(x>(t->info)) insertnode(t->pleft,x);
    else printf("da ton tai x \n");

    }
    không thể so sánh theo kiểu đem nguyên cái danh sách được..
    ai có thể cho mình ý kiến về đoạn code về trên ko .. tks

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

  1. Mảng trên C [giúp] danh sách liên kết đơn !!!
    Gửi bởi nhan_lnhth trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 09-05-2013, 07:41 PM
  2. cần giúp đỡ về danh sách liên kết
    Gửi bởi quyenbnhm trong diễn đàn Nhập môn lập trình Java
    Trả lời: 1
    Bài viết cuối: 13-11-2012, 05:03 PM
  3. Đảo ngược danh sách liên kết. Giúp mình sửa lỗi?
    Gửi bởi athang trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 18
    Bài viết cuối: 09-05-2011, 04:41 PM
  4. Bài tập C++ Danh sách liên kết để lưu trữ danh sách phim. Sửa giúp mình?
    Gửi bởi amidamaru trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 03-09-2010, 04:14 PM
  5. Giúp mình bài danh sách liên kết đơn về đa thức!
    Gửi bởi thantai2000 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 05-08-2009, 08:02 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