| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 794 人关注过本帖
标题:求大神指导程序修改
只看楼主 加入收藏
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:1 
回复 10楼 非是菲菲
呃啊,我上机调试看看,先给你说一个问题~~

//定义数据结构
struct room
{
char room num[10];
};
room num[10]={           //初始化数组
{"201",110},{"202",120},{"203",130},{"204",140},{"205",150},
{"206",160},{"207",170},{"208",180},{"209",190},{"210",200}};
}

还是这里,由你的初始化可以看出,每个构造体里面应该有一个字符串成员和一个整形数据成员。
改一下:

//定义数据结构
struct room
{
char room[10];
int num;
};
room num[10]={           //初始化数组
{"201",110},{"202",120},{"203",130},{"204",140},{"205",150},
{"206",160},{"207",170},{"208",180},{"209",190},{"210",200}};
}

不过还有个问题,就是你这些变量的名字最好变一下,真的,不然太难懂了。。。
你试着改改,看是这个问题吗。

未知令人期待!
2013-12-22 23:37
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:0 
附加一条,构造体名 room是个 关键词。。 最好换下

未知令人期待!
2013-12-22 23:39
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
你先用文字描述一下这程序的错误,只有发现错误在哪,我才能帮你

思考赐予新生,时间在于定义
2013-12-22 23:43
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:0 
呃,奶奶的忙了一夜。。。。还是有个小问题。。。。。

未知令人期待!
2013-12-23 04:39
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:0 
//先上程序了
程序代码:
#include<stdio.h>//I/O函数
#include<stdlib.h>//标准库函数
#include<string.h>//字符串函数


//定义数据结构
struct room
{
    char _room[10];
    int _num;
    int on;             //代表房间入住情况,0是没人,1是有人
};
struct room ROOM[10]={           //初始化数组
{"201",110,0},{"202",120,0},{"203",130,0},{"204",140,0},{"205",150,0},
{"206",160,0},{"207",170,0},{"208",180,0},{"209",190,0},{"210",200,0}};



struct customer
{
    char   id[20];         //身份证号
    char   name[20];       //客户姓名
    struct  room NUM;      //入住房间号与价格
    char   date_1[20];     //入住时间
    char   date_2[20];     //退房时间
    int    cost;           //费用
    int    time;           //入住天数
    char   begin_time[10]; //开始统计时间
    char   end_time[10];   //结束统计时间    
    struct customer *next;
};


//新增入住函数
void check_in(char *mem, struct customer *temp)
{
    int i;

    for (i=0; i<10; i++)
    {
        if (!strcmp(mem, ROOM[i]._room))
        {
            ROOM[i].on = 1;
            temp->NUM = ROOM[i];
        }
    }
}
            
//新增输出空房间名字函数
int print_offroom()
{
    int i;
    int flag = 0;

    for (i=0; i<10; i++)
    {
        if (ROOM[i].on == 0)
        {
            flag = 1;
            break;
        }
    }

    if (flag == 0)
    {
        printf("对不起,现在没有空房间。\n");
        return(1);
    }
    else
    {
        printf("现有空房间:\n");
        for (i=0; i<10; i++)
        {
            if (ROOM[i].on == 0)
            {
                printf("%-5s",ROOM[i]._room);
            }
            putchar(10);
        }
        return(0);
    } //end of if

}

//新增输出满房间名字函数
int print_onroom()
{
    int i;
    int flag = 0;

    for (i=0; i<10; i++)
    {
        if (ROOM[i].on == 1)
        {
            flag = 1;
            break;
        }
    }

    if (flag == 0)
    {
        printf("对不起,现在没有顾客入住。\n");
        return(1);
    }
    else
    {
        printf("现有顾客的房间:\n");
        for (i=0; i<10; i++)
        {
            if (ROOM[i].on == 1)
            {
                printf("%-5s",ROOM[i]._room);
            }
            putchar(10);
        }
        return(0);
    } //end of if

}

//新增加清屏函数
void clean()
{
    int i;
    for (i=0; i<14; i++)
    {
        putchar('\n');
    }
}

int Day(char *date) //输出天数
{
    int year;
    int month;
    int day;
    int sum = 0;
    int i = 1;
    int tab[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    
    year = 1000*(date[0]-'0') + 100*(date[1]-'0')
           + 10*(date[2]-'0') + (date[3]-'0');
    month = 10*(date[5]-'0') + (date[6]-'0');
    day = 10*(date[8]-'0') + (date[9]-'0');

    for ( ; i < month; i++)
    {
        sum = sum + tab[i-1];
    }
    sum = sum + day;

    if ((month > 2) && ((year%4 == 0) && (year % 100 != 0) || (year%400 == 0)))
    {
        sum = sum + 1;
    }
    
    return(sum);
}

//比对房间号码
int check(char mem[])
{  
    int i;
    for(i=0; i<10; i++)
    {
        if (strcmp(ROOM[i]._room,mem) == 0)
        {
            return(ROOM[i].on);
        }
    }
    printf("您输入的房间号不正确。\n");
    return(1);
}

//搜寻符合的房间,直接返回房间价格
int check_price(char mem[])
{
    int i;

    for (i=0; i < 10; i++)
    {
        if (!strcmp(mem, ROOM[i]._room))
        {
            return(ROOM[i]._num);
        }
    }

    return(0);    
}

//日期格式合法性判断函数,合法返回1,否则返回0。
int date_legal(char *date)
{
    int leap;
    int year;
    int month;
    int day;
    int flag=1;
    if (strlen(date) == 10)//判断长度
    {
        if ((date[4] == '-') && (date[7] == '-'))//判断格式
        {
            year = 1000*(date[0]-'0') + 100*(date[1]-'0')
                   + 10*(date[2]-'0') + (date[3]-'0');                //转换日期,将字符型转换为整形
            month = 10*(date[5]-'0') + (date[6]-'0');
            day = 10*(date[8]-'0') + (date[9]-'0');

            if (month > 12)
            {
                printf("\n您的输入有误(月份不可超出12)。\n");                              //判断月份是否合法
                flag = 0;
            }    

            
            if (month == 2)
            {
                    leap=((year%4 == 0) && (year%100 != 0) || (year%400 == 0));
                    if ((leap == 1) && (day > 29))
                    {
                        printf("\n您的输入有误(输入的年份属于闰年,二月只有二十九天)。\n");//判断闰年
                        flag = 0;
                    }
                    if ((leap == 0) && (day > 28))
                    {
                        printf("\n您的输入有误(输入的年份属于平年,二月只有二十八天)。\n");//判断平年
                        flag = 0;
                    }
            }

            if ((month == 4) || (month == 6) || (month == 9) || (month == 11))
            {
                    if (day > 30)
                    {
                        printf("\n您的输入有误(输入的月份只有三十天)\n");                  //判断天数
                        flag = 0;
                    }
            }

            if ((month == 1) || (month == 3) || (month == 5)    || (month == 7) 
                || (month == 8) || (month == 10) || (month == 12))
            {
                    if (day > 31)
                    {
                        printf("\n您的输入有误(输入的月份只有三十天)。\n");
                        flag = 0;
                    }
            }
        } 
        else
        {
            printf("\n您的输入有误(日期输入格式错误格式为YYYY-MM-DD)。\n");
            flag = 0;
        }
    }   //end of 格式判断    
    else
    {
        printf("\n您的输入有误(日期输入长度错误格式为YYYY-MM-DD)。\n");
        flag = 0;
    }   //end of 长度判断
    return flag;
}

//计算消费额
int Cost(struct customer *head)
{  
    struct customer *p;
    int a;
    int fee;
    int sum;
    char mem[10];
    
    p = head->next;
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");

    a = print_onroom();                          ////新增满房间号输出函数
    if (a)
    {
        return(0);
    }
    printf("\n请输入需要统计费用的房间号:\n");
    scanf ("%s", mem);
    for ( ; !check(mem); )
    {
        printf("\n您的输入有误。\n");
        print_onroom();
        printf("\n请输入房间号:\n");
        scanf("%s", mem);
    }

    while (!strcmp(mem, p->NUM._room))
    {
        p = p->next;
    }
    
    printf("\n开始统计时间(格式为YYYY-MM-DD):\n");           //退房时间的判断时间的合法性
    scanf("%s", p->begin_time);
    for ( ; !date_legal(p->begin_time); )                     //调用date_legal,判断时间的合法性
    {
        printf("\n您的输入有误。\n");
        printf("\n请重新输入开始统计时间(格式为YYYY-MM-DD):\n");
        scanf("%s", p->begin_time);
    }    
    
    printf("\n结束统计时间(格式为YYYY-MM-DD): \n");
    scanf("%s", p->end_time);
    for ( ; (!date_legal(p->end_time)) 
            || (!strcmp(p->end_time, p->begin_time)); )                     //调用date_legal,判断时间的合法性
    {
        printf("\n您的输入有误。\n");
        printf("\n请重新输入结束统计时间(格式为YYYY-MM-DD并且退房时间要大于入住时间):\n");
        scanf("%s", p->end_time);
    }
    
    if ((strcmp(p->date_1, p->begin_time) <= 0) && (strcmp(p->date_2, p->end_time) >= 0))
    {
        sum = Day(p->end_time) - Day(p->begin_time);
        fee = check_price(mem) * sum;
        printf("您的所在房间入住一天的价格为:%5d\n", check_price(mem));
        printf("统计时间内您所在房间入住天数为:%5d\n", sum);
        printf("在统计时间内您的费用为:%d\n", fee);
    }

    printf("按任意键返回主菜单\n");
    getchar();
    getchar();
    return 0;    
}


//菜单函数
int menu_show()
{
    int c;
    clean();      //system("cls");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("※※※※※※※※..酒..店..与..房..间..登..记..管..理..系..统※※※※※※※※※※");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("※★★★★★★★★★★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★★★★★★★★★※");
    printf("※★※※※※※※※※★☆※※※--1.客户入住信息录入--※※★☆※※※※※※※※★※");
    printf("※★※--欢迎光临--※★☆※※※--2.客户入住信息显示--※※★☆※--欢迎光临--※★※");
    printf("※★☆★☆★☆★☆★★☆※※※--3.客户入住信息查询--※※★☆★☆★☆★☆★☆★※");
    printf("※★※--欢迎光临--※★☆※※※--4.客户入住费用统计--※※★☆※--欢迎光临--※★※");
    printf("※★※※※※※※※※★☆※※※--5.退出客户管理系统--※※★☆※※※※※※※※★※");
    printf("※★★★★★★★★★★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★★★★★★★★★※");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");

    printf("\n");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");    
    printf("请进行菜单选择:");
    scanf("%d", &c);

    for ( ; (c<1)||(c>5); )
    {
        printf("您的输入有误,请重新输入\n");
        printf("请进行菜单选择:");
        scanf("%d", &c);
    }

    return (c);
}





//新住户登记
int Add(struct customer *head)
{
    struct customer *p;
    struct customer *temp;
    char mem[10];
    int a;

    p = head;
    temp = (struct customer*)malloc(sizeof(struct customer));
    temp->next = NULL;

    while (p->next != NULL)
    {
        p = p->next;
    }
    clean();                             //system("cls");
    
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("请输入客户入住信息\n");
    printf("客户姓名:\n");
    scanf("%s", temp->name);

    printf("身份证号(15或18位):\n");
    scanf("%s", temp->id);
    while ((strlen(temp->id) != 15) && (strlen(temp->id) != 18))            //身份证长度判断
    { 
        printf("\n您的输入有误\n请重新输入(15或18位):\n");
        scanf("%s", temp->id);
    }
    
    a = print_offroom();                          //新增空房间号输出函数
    if (a)
    {
        return(0);
    }
    printf("\n请输入房间号:\n");
    scanf("%s", mem);
    for ( ; check(mem); )
    {
        printf("\n您的输入有误。\n");
        print_offroom();
        printf("\n请输入房间号:\n");
        scanf("%s", mem);
    }
    check_in(mem, temp);                              //新增入住函数

    printf("\n开始入住时间(格式为YYYY-MM-DD):\n");           //退房时间的判断时间的合法性
    scanf("%s", temp->date_1);
    for ( ; !date_legal(temp->date_1); )                     //调用date_legal,判断时间的合法性
    {
        printf("\n您的输入有误。\n");
        printf("\n请重新输入开始入住时间(格式为YYYY-MM-DD):\n");
        scanf("%s", temp->date_1);
    }    
    
    printf("\n退房时间(格式为YYYY-MM-DD): \n");
    scanf("%s", temp->date_2);
    for ( ; (!date_legal(temp->date_2)) 
            || (!strcmp(temp->date_2, temp->date_1)); )                     //调用date_legal,判断时间的合法性
    {
        printf("\n您的输入有误。\n");
        printf("\n请重新输入退房时间(格式为YYYY-MM-DD并且退房时间要大于入住时间):\n");
        scanf("%s", temp->date_2);
    }
    
    temp->time = Day(temp->date_2) - Day(temp->date_1);                         //计算入住天数
    temp->cost = temp->time * check_price(mem);                           //计算房间产生的费用

    printf("您输入的信息已经录入成功。\n");
    p->next = temp;
    printf("按任意键返回主菜单。\n");
    getchar();
    getchar();
    return(1);
}



//显示现有住宿情况
void List(struct customer *head)
{
   int i = 0;
   struct customer *p;

   p = head->next;
   if (p == NULL)
   {
       printf("无顾客入住!\n");
       return;
   }

   clean();                   //system("cls");
   printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
   printf("※******************************客户入住信息录入******************************※");
   printf("※姓名     身份证号        房间号  入住时间     退房时间   入住天数   所需费用※");
   printf("※----------------------------------------------------------------------------※");
   while (p!=NULL)
   {
       printf("  %s%21s%6s%13s%13s%6d%10d\n", p->name, p->id, p->NUM._room,
             p->date_1, p->date_2, p->time, p->cost);
       p = p->next;
   }
   printf("※*********************************结束***************************************※");
   printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
   
   printf("按任意键返回主菜单\n");
   getchar();
   getchar();
}
    



//查询房间住宿情况
int Search (struct customer *head)
{
    int a;
    char Num[20];
    struct customer *p;
    int flag = 0;

    p = head->next;

    clean();                //system("cls");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    a = print_onroom();                          
    if (a)
    {
        return(0);
    }    
    printf("请输入待查找的房间号:\n");
    scanf("%s", Num);
    while (p != NULL)
    {
        if (!strcmp(Num, p->NUM._room))
        {
            printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
            printf("※******************************客户入住记录信息******************************※");
            printf("※客户姓名        身份证号     入住时间     退房时间    入住天数    所需费用  ※");
            printf("※============================================================================※");
            printf("※............................................................................※");
            printf("  %s%21s%13s%13s%6d%10d  \n ", p->name, p->id,
                   p->date_1, p->date_2, p->time, p->cost);
            printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
            flag=1;
        }
        p = p->next;      
    }
    if (flag == 0)
    {
        printf("您的输入有误(暂无该房间的顾客入住相关信息)。\n");
    }
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    
    printf("按任意键返回主菜单\n");
    getchar();
    getchar();
    return(1);
}


//函数结束
void End_time()
{
    clean();                  //system("cls");
    printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("※.......................心情愉快.........和气生财............................※");
    printf("※............................................................................※");
    printf("※***★★★******★★★******★★★****★★★*****★★★*******★*****★****★※");
    printf("※*★*****★****★*****★***★*****★**★****★***★****★***★**★***★****★※");
    printf("※★******★***★*******★*★*******★*★*****★**★****★*★******★*★****★※");
    printf("※★***********★*******★*★*******★*★******★*★***★**★******★**★**★*※");
    printf("※★***********★*******★*★*******★*★******★*★★★***★★★★★****★***※");
    printf("※★****★★★*★*******★*★*******★*★******★*★***★**★******★****★***※");
    printf("※★******★★*★*******★*★*******★*★*****★**★****★*★******★****★***※");
    printf("※*★****★*★**★*****★***★*****★**★****★***★****★*★******★****★***※");
    printf("※**★★★**★***★★★*******★★★***★★★*****★★★***★******★****★***※");
    printf("※.......................版权所有.........翻录必究............................※");
    printf("※...................................................Made by zoujun...........※");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※");
    printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
    exit(0);
}

void menu_select(int sel, struct customer *head)
{
    switch(sel)
    {
    case 1: Add(head);
        break;
    case 2: List(head);   
        break;
    case 3: Search(head);   
        break;
    case 4: Cost(head);  
        break;
    case 5: End_time();    
        break;
    }    
}

//主函数
void main()
{ 
    struct customer *head;
    head = (struct customer *)malloc(sizeof(struct customer));
    head->next = NULL;
    clean();              //system("cls");   //清屏

    for ( ; ; )    // 死循环
    {
        menu_select(menu_show(), head);  //调用菜单函数
    }

}

未知令人期待!
2013-12-23 04:39
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:15 
这是碰到的一些比较大的问题:


1.system("cls");   //清屏  这个函数我一直没有试验出来在哪里能成。可能是我的vc版本问题么?  希望可以帮忙解答一下。

我用了下面的程序:

#include<stdio.h>//I/O函数
#include<stdlib.h>//标准库函数
#include<string.h>//字符串函数
#include<ctype.h>//字符操作函数
#include<cstdlib>
#include<dos.h>

void mian()
{
    printf("asdfadg\nasdfasdf\n");
    system("cls");   //清屏
    printf("\n\n\nabcdefg\n\n\n");
}

编译通过了,但是不能进行链接:

--------------------Configuration: 1 - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

1.exe - 1 error(s), 0 warning(s)

那么我凡是看到这个我就全换成输出二十个'\n'函数好了。

2.主函数里面:head=malloc(sizeof(struct customer));
改为:head = (struct customer *)malloc(sizeof(struct customer));
malloc函数返回的是void型指针,需要进行强制类型转换。

3.程序一开始的各种变量名,结构体名,结构体成员名,好像很多重复的,我都试着改了一下,具体改哪里我也忘了。

4.主函数里面:menu_select(menu_show(), head);
menu_show()算是menu_select的形参,用函数是不是可以我不清楚,因为我没用过。就当可以吧,不可以的话再重新改,如果要改就是在menu_select函数执行里面执行一次menu_show函数就行了。
说一下menu_show函数:
c=atoi(s);   //确保输入数字在1-5之间        好吧,我真心又文盲了,我不知道atoi函数式怎么执行的,不过呢,这个函数的最终结果是返回数字1-5里面的一个吧(没看到6的内容),所以我重新修改了一下。呃啊,我边看边该,希望最后不要面目全非。。。。

5.menu_select执行函数里面:
case 1: add(head,num);
case 4: cost(head,num);
这里你看整个menu_select都没有num这个变量的定义,我现在也没注意到你有没有num这个全局变量的声明,它的初衷我是知道的,不过这里不能有,所以全部变为:
case 1: add(head);
case 4: cost(head);
num的输入分别由add函数和cost函数执行。

还有。。。case 5: end_time(); 后面没有break语句,我加上了。。呃。

6.add执行函数里面:(改为Add了)
(1)
printf("\n请输入房间号:\n本酒店现有房间201 202 203 204 205 206 207 208 209 210\n");
这一句可以改改,因为当有其他人入住的时候,房间已经被占据了,所以这个就不能如此说明了,可以加个小程序,或者给房间号码加个判定变量,有人就是1,没人就是0。
这就又有一个小问题,如果客人入住,执行add函数时,房间全满了咋办。。
呃,我看到了原函数里面的check函数,我郁闷了。。。修改了一下。
重新写了一个check_in函数。
输入退房时间的时候,感觉原程序函数混乱了。。。重新写了。
(2)
day函数
day这个变量名用的太多了,所以改了一下,改为Day。
Day函数的函数体稍微改了一下~
(3)
check_price函数
直接修改,返回房间价格。

7.List执行函数里面:
if(head==NULL)
   {
      printf("记录为空,请重新输入!\n");
      return;
      }
main函数里面 head有个指针赋值了,所以不会为空的,,这里改为p==NULL.

8.Search执行函数里面:
p=head改为p=head->next;  因为按照Add的改法,链表的第一个节点不存数据。

9.Cost执行函数:
加入print_on函数

未知令人期待!
2013-12-23 04:40
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:4 
程序可以运行了,但是还有个问题:

menu_select函数选择4 以后 如果有客户入住 你输入一个房间号码,呃,程序会崩溃。。。。
实在是找不出来了。。。

希望楼主或者大家谁发现哪里出问题了,麻烦给指出一下。。感激不尽!

冻死了,双脚没知觉了,哎 难度往后工作了也这个状态吗。。

未知令人期待!
2013-12-23 04:43
快速回复:求大神指导程序修改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043457 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved