能不能用c帮忙写一个旅游管理的源代码,

数据描述:旅游景点名称,所在省,特色,交通方式,天数,收费标准
程序完成功能:浏览数据,增加数据,修改数据,查询数据(按旅游景点,按天数),退出

给你个例子,参考改改吧:

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct STUDENT
{
    char id[20];
    char name[20];
    char major[20];
    char phone[20];
    char hobby[20];
    STUDENT *next;
}STUDENT,*pSTUDENT;
pSTUDENT head=NULL;

void menu()
{
    printf("***********************************************************\n");
    printf("*               Student Management                        *\n");
    printf("*               Won-Cheol Jang                            *\n");
    printf("*               2014123456                                *\n");
    printf("***********************************************************\n");
    printf("1. Input a new student information\n");
    printf("2. Find a student using condition\n");
    printf("3. Delete a student using condition\n");
    printf("4. Quit\n");
    printf("Please enter the number>>");
}


void StuInuput()
{
    pSTUDENT pNode=head;
    if(pNode==NULL)
    {
        head=(pSTUDENT)malloc(sizeof(STUDENT));
        pNode=head;
        pNode->next=NULL;
    }
    else
    {
        while(pNode->next)
        {
            pNode=pNode->next;
        }
        pNode->next=(pSTUDENT)malloc(sizeof(STUDENT));
        pNode=pNode->next;
        pNode->next=NULL;
    }
    printf("\n> 1. slected input menu\n");
    printf("1> id: ");
    scanf("%s",pNode->id);
    printf("2> name: ");
    scanf("%s",pNode->name);
    printf("3> major: ");
    scanf("%s",pNode->major);
    printf("4> phone: ");
    scanf("%s",pNode->phone);
    printf("5> hobby: ");
    scanf("%s",pNode->hobby);
    printf("> Succeed.\n\n");
}

void StuFind()
{
    char buf[40];
    pSTUDENT pNode=head;
    printf("\n> 2. slected find menu\n\n");
    printf("1> Full list\n");
    printf("2> Search by name\n");
    printf("3> Search by id\n");
    printf("4> Search by major\n");
    printf("5> Search by hobby\n");
    printf("6> Undo\n");
    printf("Please enter the number>>");
    int n,count=0,flag;
    scanf("%d",&n);
    if(n==1)
    {
        printf("ID\t NAME\t MAJOR\t PHONE\t HOBBY\n");
        while(pNode)
        {
            printf("%s\t%s\t%s\t%s\t%s\n",pNode->id,pNode->name,pNode->major,pNode->phone,pNode->hobby);
            pNode=pNode->next;
            ++count;
        }
        printf("%d student found\n\n",count);
    }
    else if( n==2 || n==3 || n==4 || n==5 )
    {
        char *str[4]={"Name","ID","Major","Hobby"};
        printf("%s >> ", str[n-2]);
        scanf("%s",buf);
        printf("ID\t NAME\t MAJOR\t PHONE\t HOBBY\n");
        while(pNode)
        {
            flag=0;
            if(     n==2 && (strcmp(buf,pNode->name)==0))
            {
                flag=1;
            }
            else if(n==3 && (strcmp(buf,pNode->id)==0))
            {
                flag=1;
            }
            else if(n==4 && (strcmp(buf,pNode->major)==0))
            {
                flag=1;
            }
            else if(n==5 && (strcmp(buf,pNode->hobby)==0))
            {
                flag=1;
            }

            if(flag==1)
            {
                printf("%s\t%s\t%s\t%s\t%s\n",pNode->id,pNode->name,pNode->major,pNode->phone,pNode->hobby);
                ++count;
            }
            pNode=pNode->next;
        }
        printf("%d student found\n\n",count);
    }
}
void StuDelete()
{
    char buf[40];
    pSTUDENT pNode=head,pt;
    printf("\n> 3. slected delete menu\n\n");
    printf("1> Delete All\n");
    printf("2> Delete by name\n");
    printf("3> Delete by id\n");
    printf("4> Delete by major\n");
    printf("5> Delete by hobby\n");
    printf("6> Undo\n");
    printf("Please enter the number>>");
    int n,count=0,flag;
    scanf("%d",&n);
    printf("\n");
    if(n==1)
    {
        while(pNode)
        {
            pt=pNode->next;
            free(pNode);
            pNode=pt;
            ++count;
        }
        head=NULL;
        printf("%d student deleted\n\n",count);
    }
    else if( n==2 || n==3 || n==4 || n==5 )
    {
        char *str[4]={"Name","ID","Major","Hobby"};
        printf("%s >> ", str[n-2]);
        scanf("%s",buf);

        pt=head;
        while(pNode)
        {
            flag=0;
            if( n==2 && (strcmp(buf,pNode->name)==0))
            {
                flag=1;
            }
            else if(n==3 && (strcmp(buf,pNode->id)==0))
            {
                flag=1;
            }
            else if(n==4 && (strcmp(buf,pNode->major)==0))
            {
                flag=1;
            }
            else if(n==5 && (strcmp(buf,pNode->hobby)==0))
            {
                flag=1;
            }
            if(flag==1)
            {
                if(pNode==head) 
                {
                    pt=pNode->next;
                    head=pt;
                }
                else
                {
                    pt->next=pNode->next;
                }

                free(pNode);
                pNode=pt;
                ++count;
            }
            pt=pNode;
            pNode=pNode->next;
        }
        printf("%d student deleted\n\n",count);
    }
}
void freeNode()
{
    pSTUDENT pNode=head,pnext;

    while(pNode)
    {
        pnext=pNode->next;
        free(pNode);
        pNode=pnext;
    }
    head=NULL;
}
void main()
{
    int n=0;
    while(n!=4)
    {
        menu();
        scanf("%d",&n);

        switch(n)
        {
        case 1:
            StuInuput();
            break;
        case 2:
            StuFind();
            break;
        case 3:
            StuDelete();
            break;
        }
    }
    freeNode();
}