#include <malloc.h>
#include <string.h>
struct sqlist{
int serial;
char name[16];
int number;
char date[16];
struct sqlist *next;
}*head;
int sernum = 2012000;
reserve(struct sqlist *T)
{
struct sqlist *q, *p = T;
while(p->next != NULL){
p = p->next;
}
printf("Input the format: name number date\n");
q = (struct sqlist *)malloc(sizeof(struct sqlist));
q->next = NULL;
q->serial = sernum++;
scanf("%s %d %s", q->name, &(q->number), q->date);
p->next = q;
printf("\n\n");
}
query(struct sqlist *T)
{
char name[16];
struct sqlist *p = T->next;
printf("Input the name: ");
scanf("%s", name);
while(p){
if(strcmp(p->name, name) == 0)
break;
else
p = p->next;
}
if(p)
printf("%d %s %d %s\n", p->serial, p->name, p->number, p->date);
else
printf("Can not find the message\n");
printf("\n\n");
}
update(struct sqlist *T)
{
int num;
struct sqlist *p = T->next;
printf("Input the serial: ");
scanf("%d", &num);
while(p){
if(p->serial == num)
break;
else
p = p->next;
}
if(p){
printf("%d %s %d %s\n", p->serial, p->name, p->number, p->date);
printf("Input the format: name number date\n");
scanf("%s %d %s", p->name, &(p->number), p->date);
}
else
printf("Can not find the message\n");
printf("\n\n");
}
delete(struct sqlist *T)
{
int num;
struct sqlist *q = T, *p = T->next;
printf("Input the serial: ");
scanf("%d", &num);
while(p){
if(p->serial == num)
break;
else{
q = p;
p = p->next;
}
}
if(p){
q->next = p->next;
free(p);
}
else
printf("Can not find the message\n");
printf("\n\n");
}
browse(struct sqlist *T)
{
int n = 1;
struct sqlist *p = T->next;
printf("print the message: \n");
while(p){
printf("%d %d %s %d %s\n", n++, p->serial, p->name, p->number, p->date);
p = p->next;
}
printf("\n\n");
}
int main()
{
int n;
head = (struct sqlist *)malloc(sizeof(struct sqlist));
head->next = NULL;
while(1){
printf("\t1---------Reserve\n");
printf("\t2---------Query\n");
printf("\t3---------Update\n");
printf("\t4---------Delete\n");
printf("\t5---------Browse\n");
printf("\t0---------Exit\n\n");
printf("Input the number: ");
scanf("%d", &n);
switch(n){
case 1:
reserve(head);
break;
case 2:
query(head);
break;
case 3:
update(head);
break;
case 4:
delete(head);
break;
case 5:
browse(head);
break;
case 0:
goto END;
default:
printf("please input the number 0-5\n");
break;
}
}
END:
return 0;
}