Đề: 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);
}