| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:无语了 暂时 混乱至极
只看楼主 加入收藏
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
结帖率:90%
收藏
 问题点数:0 回复次数:14 
无语了 暂时 混乱至极
简直 无语了 第一个 选项 写完 一看 代码 .. 一个 悲摧啊~混乱 ......定义都是 随手的 ...
程序代码:
# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
# define student_1 sizeof (struct student)
# define NULL 0
# include <windows.h>

//首先程序功能是 学生数据管理 所以 需要的功能尽量写上去

void esc_esc (void);
void hello_1 (void);
struct student * head, * p1, * p2;
void wait_3 (void);
int i = 2;

struct student
{
    char name[22];
    char sex[1];
    float score_1;
    float score_2;
    float score_3;
    float score_4;
    int number;

    struct student * next;
};

void getchar_1_1 (struct student *);
void getchar_1_2 (struct student *);
void getchar_1_3 (struct student *);
void getchar_1_4 (struct student *);
void getchar_1_5 (struct student *);
void getchar_1_4 (struct student *);
void wait_1_1 (void);
void wait_1_2 (void);
void wait_1_3 (void);
void wait_1_4 (void);
void wait_1_5 (void);
void wait_1_6 (void);
void endschar (void);
void getchar_1_x (void);
void hello_1 (void);
void judge_1_x (int );

int judge_no (void)//错误后输入
{
    int z;
    printf ("\n对不起,您的输入有误请重新输入...");
    fflush(stdin);//清空磁盘缓冲区
    scanf ("%d",&z);
    return z;
}

void changes (struct student * p1,struct student * p2)//此函数用于更改链表 思路 源于 TonyDeng兄
{
    
}

struct student * godis (void);

void changes_1 (struct student * p, struct student * n)//此函数用于连接链表 
{
    p->next = n;
}

void goto_1 ()//继续输入
{
    struct student * p;
    p1->next = p = godis ();
    p1 = p;
    p->number = i++;
    getchar_1_1 (p);
    endschar ();
    hello_1 ();
    getchar_1_x ();
}
void changes_1_x ()
{}
void putchar_1 ()
{
    int j = 0;
    p1 = head;
    for (;j<i-1;)
    {
        printf ("%s %s %f %f %f %f\n", p1->name,p1->sex,p1->score_1,p1->score_2,p1->score_3,p1->score_4);
        printf ("%d\n", p1->number);
        p1 = p1->next;
        j++;
    }
}

void judge_1_x (int a)
{
    switch (a)
    {
    case 1:
        {
            goto_1 ();//继续输入
            break;
        }
    case 2:
        {
            changes_1_x ();//更改先前输入
            break;
        }
    case 3:
        {
            putchar_1 ();//输出先前输入
            break;
        }

    default :
        {
            esc_esc ();//退出
        }
    }

}

void getchar_1_x (void)
{
    int a;
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%d", & a);
    for (;(a<=4)||(a>=1);)
    {
        if (a>4)
        {
            a = judge_no ();
        }
        else if (a<1)
        {
            a = judge_no ();

        }
        else 
        {    
            system("cls");//清屏
            break;
        }
    }
    judge_1_x (a);
}

void hello_1 (void)//此函数用于输出
{
    system("cls");//清屏
    printf ("第一位学生信息输入完毕\n");
    printf ("1.继续输入\n");
    printf ("2.更改先前输入\n");
    printf ("3.将先前输入的学生信息输出\n");
    printf ("4.退出程序\n");
    printf ("*******************************************************************************\n");
    printf ("请选择........");
}

void save_1 (void)
{}

void read_1 (void)
{}

void endschar (void)
{
    printf ("\n*******************************************************************************\n");
}

void wait_1_6 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生计算机成绩按回车结束......");
}

void wait_1_5 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生英语成绩按回车结束......");
}

void wait_1_4 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生语文成绩按回车结束......");
}

void wait_1_3 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生数学成绩按回车结束......");
}

void wait_1_2 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生性别(如:男)按回车结束......");
}

void wait_1_1 (void)
{
    system("cls");//清屏
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生名字按回车结束......");
}

struct student * godis (void)//此函数用于建立链表 并返回 头指针 
{
    struct student * p;
    p = (struct student *) malloc (student_1);
    return p;
}

void getchar_1_6 (struct student * p)
{
    wait_1_6 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", &(p->score_4));
}

void getchar_1_5 (struct student * p)
{
    wait_1_5 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", &(p->score_3));
    getchar_1_6 (p);
}

void getchar_1_4 (struct student * p)
{
    wait_1_4 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", &(p->score_2));
    getchar_1_5 (p);
}

void getchar_1_3 (struct student * p)
{
    float * k;
    k = &p->score_1;
    wait_1_3 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", k);
    printf ("%f",* k);
    getchar_1_4 (p);
}

void getchar_1_2 (struct student * p)
{
    wait_1_2 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%s", &(p->sex));
    printf ("%s", p->sex);
    getchar_1_3 (p);
}

void getchar_1_1 (struct student * p)//输入姓名函数 首先 这个 地方 需要 考虑的 是 要是 没有 输入的 话 这个 函数 会生成 一个 链表 所以 这里 采用 一个 函数 来建立链表 最好
{
    wait_1_1 ();//输出选择
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%s", &p->name);
    printf ("%s", p->name);
    getchar_1_2 (p);
}

void game_1 (void)//一号选择 函数(一号选择主函数 用于定义第一个链表传递值给予输入函数)
{   
    struct student * p;
    read_1 ();//读取
    p = head = p1 = p2 = godis ();
    head = p;
    head->number = 1;
    printf ("%d",p->number);
    getchar_1_1 (p);
    endschar ();
    hello_1 ();
    getchar_1_x ();
}











void game_2 (void)
{}

void game_3 (void)
{}

void game_4 (void)
{}

void game_5 (void)
{}

void esc_esc (void)
{
    printf ("\n\n退出中......");
}

void bigan_1 (int z)//判断选择
{
    switch (z)
    {
    case 1:
        {
            game_1 ();
            break;
        }
    case 2:
        {
            game_2 ();
            break;
        }
    case 3:
        {
            game_3 ();
            break;
        }
    case 4:
        {
            game_4 ();
            break;
        }
    case 5:
        {
            game_5 ();
            break;
        }
    default :
        {
            esc_esc ();
        }
    }
}

int judge_1 (int z)//判断输入
{
    for (;1;)
    {
        system("cls");//清屏
        if (z<1)
        {
            wait_3 ();
            z = judge_no ();

        }
        else if (z>6)
        {
            wait_3 ();
            z = judge_no ();
        
        }
        else
        {
            break;
        }
    }
    return z;
}

int getchar_1 (void)//输入
{
    int z;
    fflush(stdin);//清空磁盘缓冲区
    printf ("\n\n请输入您的选择后按回车键.......");
    scanf ("%d",&z);
    system("cls");//清屏
    
    return z;
}

void wait_3 (void)//输出选择
{
    printf ("\n\n\n");
    printf ("****************************卍卍卍卍卍卍卍卍卍卍********************************\n");
    printf ("*卍卍卍**卍****/////////****卍1.录入学生数据  卍******/////////******卍卍卍**卍*\n");
    printf ("*****卍**卍****/////////****卍2.学生数据查询  卍******/////////**********卍**卍*\n");
    printf ("*卍卍卍卍卍****/////////****卍3.学生数据更改  卍******/////////******卍卍卍卍卍*\n");
    printf ("*卍**卍********/////////****卍4.数据排序选择  卍******/////////******卍**卍*****\n");
    printf ("*卍**卍卍卍****/////////****卍5.单科成绩查询  卍******/////////******卍**卍卍卍*\n");
    printf ("***************/////////****卍6.退出管理程序  卍******/////////*****************\n");
    printf ("****************************卍卍卍卍卍卍卍卍卍卍********************************\n");
}

int wait_2 (void)//用户选择输入函数 (主菜单)
{
    int z, t;
    wait_3 ();//输出选择
    z = getchar_1 ();//取的输入值
    t = judge_1(z);
    return t;
}

void wait_1 (void)//首先调用进入的窗口
{
    printf ("*******************************************************************************\n");
    printf ("*******************************************************************************\n");
    printf ("***            O(∩_∩)O        欢迎使用学生系统      O(∩_∩)O             ***\n");
    printf ("***   O(∩_∩)O                 本系统正在调试期               O(∩_∩)O    ***\n");
    printf ("***            O(∩_∩)O            谢谢使用          O(∩_∩)O             ***\n");
    printf ("**************************************小偌*************************************\n");
    printf ("****************************这个程序的功能会尽力完善***************************\n");
    printf ("**********************************~~~~(>_<)~~~~**************制作人:  小偌*****\n");
    printf ("*******************************************************************************\n");
    printf ("\n\n\n请按回车继续......");
    getchar ();
    system("cls");//清屏
}

int main (void)
{
    int a;
    wait_1 ();//首先调用进入的窗口
    a = wait_2 ();//调用录入函数
    bigan_1 (a);//判断选择
    save_1 ();
    printf ("\n谢谢使用\n");
    
    return 0;
}
搜索更多相关主题的帖子: include 
2011-10-25 14:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
自己也知道混乱了?意识到有什么地方没到家了吧。

授人以渔,不授人以鱼。
2011-10-25 14:12
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:0 
呜呜呜 ...改了一下 但是 全局 观念 不够 刚好把第一个选项 写完了
一会 改改 下午的课 不去了 化学 完全不懂
程序代码:
# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
# define student_1 sizeof (struct student)
# define NULL 0
# include <windows.h>

//首先程序功能是 学生数据管理 所以 需要的功能尽量写上去

void esc_esc (void);
void hello_1 (void);
struct student * head, * p1, * p2;
void wait_3 (void);
void getchar_1_1 (struct student *);
void getchar_1_2 (struct student *);
void getchar_1_3 (struct student *);
void getchar_1_4 (struct student *);
void getchar_1_5 (struct student *);
void getchar_1_4 (struct student *);
void wait_1_1 (void);
void wait_1_2 (void);
void wait_1_3 (void);
void wait_1_4 (void);
void wait_1_5 (void);
void wait_1_6 (void);
void endschar (void);
void getchar_1_x (void);
void hello_1 (void);
void judge_1_x (int );
int i = 2;

struct student
{
    char name[22];
    char sex[1];
    float score_1;
    float score_2;
    float score_3;
    float score_4;
    int number;

    struct student * next;
};



int judge_no (void)//错误后输入
{
    int z;
    printf ("\n对不起,您的输入有误请重新输入...");
    fflush(stdin);//清空磁盘缓冲区
    scanf ("%d",&z);
    return z;
}

void changes (struct student * p1,struct student * p2)//此函数用于更改链表 思路 源于 TonyDeng兄
{
    
}

struct student * godis (void);

void changes_1 (struct student * p, struct student * n)//此函数用于连接链表 
{
    p->next = n;
}

void goto_1 ()//继续输入
{
    struct student * p;
    p1->next = p = godis ();
    p1 = p;
    p->number = i++;
    getchar_1_1 (p);
    endschar ();
    hello_1 ();
    getchar_1_x ();
}
void changes_1_x ()
{
    getchar_1_1 (p1);
    hello_1 ();
    getchar_1_x ();
}
void putchar_1 ()
{
    int j = 0;
    p1 = head;
    for (;j<i-1;)
    {
        printf ("姓名:%s \n性别:%s \n数学成绩:%f \n语文成绩:%f \n英语成绩:%f \n计算机成绩:%f\n", p1->name,p1->sex,p1->score_1,p1->score_2,p1->score_3,p1->score_4);
        p1 = p1->next;
        j++;
    }
}

void judge_1_x (int a)
{
    switch (a)
    {
    case 1:
        {
            goto_1 ();//继续输入
            break;
        }
    case 2:
        {
            changes_1_x ();//更改先前输入
            break;
        }
    case 3:
        {
            putchar_1 ();//输出先前输入
            break;
        }

    default :
        {
            esc_esc ();//退出
        }
    }

}

void getchar_1_x (void)
{
    int a;
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%d", & a);
    for (;(a<=4)||(a>=1);)
    {
        if (a>4)
        {
            a = judge_no ();
        }
        else if (a<1)
        {
            a = judge_no ();

        }
        else 
        {    
            system("cls");//清屏
            break;
        }
    }
    judge_1_x (a);
}

void hello_1 (void)//此函数用于输出
{
    system("cls");//清屏
    printf ("上一位学生信息输入完毕\n");
    printf ("1.继续输入\n");
    printf ("2.更改先前输入\n");
    printf ("3.将先前输入的学生信息输出\n");
    printf ("4.退出程序\n");
    printf ("*******************************************************************************\n");
    printf ("请选择........");
}

void save_1 (void)
{}

void read_1 (void)
{}

void endschar (void)
{
    printf ("\n*******************************************************************************\n");
}

void wait_1_6 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生计算机成绩按回车结束......");
}

void wait_1_5 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生英语成绩按回车结束......");
}

void wait_1_4 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生语文成绩按回车结束......");
}

void wait_1_3 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生数学成绩按回车结束......");
}

void wait_1_2 (void)
{
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生性别(如:男)按回车结束......");
}

void wait_1_1 (void)
{
    system("cls");//清屏
    printf ("\n");
    printf ("*******************************************************************************\n");
    printf ("你好欢迎使用\n请输入学生名字按回车结束......");
}

struct student * godis (void)//此函数用于建立链表 并返回 头指针 
{
    struct student * p;
    p = (struct student *) malloc (student_1);
    return p;
}

void getchar_1_6 (struct student * p)
{
    wait_1_6 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", &(p->score_4));
}

void getchar_1_5 (struct student * p)
{
    wait_1_5 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", &(p->score_3));
    getchar_1_6 (p);
}

void getchar_1_4 (struct student * p)
{
    wait_1_4 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", &(p->score_2));
    getchar_1_5 (p);
}

void getchar_1_3 (struct student * p)
{
    float * k;
    k = &p->score_1;
    wait_1_3 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%f", k);
    printf ("%f",* k);
    getchar_1_4 (p);
}

void getchar_1_2 (struct student * p)
{
    wait_1_2 ();
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%s", &(p->sex));
    printf ("%s", p->sex);
    getchar_1_3 (p);
}

void getchar_1_1 (struct student * p)//输入姓名函数 首先 这个 地方 需要 考虑的 是 要是 没有 输入的 话 这个 函数 会生成 一个 链表 所以 这里 采用 一个 函数 来建立链表 最好
{
    wait_1_1 ();//输出选择
    fflush(stdin);//清空磁盘缓冲区 便于重复使用 以及 不影响后面
    scanf ("%s", &p->name);
    printf ("%s", p->name);
    getchar_1_2 (p);
}

void game_1 (void)//一号选择 函数(一号选择主函数 用于定义第一个链表传递值给予输入函数)
{   
    struct student * p;
    read_1 ();//读取
    p = head = p1 = p2 = godis ();
    head = p;
    head->number = 1;
    printf ("%d",p->number);
    getchar_1_1 (p);
    endschar ();
    hello_1 ();
    getchar_1_x ();
}











void game_2 (void)
{}

void game_3 (void)
{}

void game_4 (void)
{}

void game_5 (void)
{}

void esc_esc (void)
{
    printf ("\n\n退出中......");
}

void bigan_1 (int z)//判断选择
{
    switch (z)
    {
    case 1:
        {
            game_1 ();
            break;
        }
    case 2:
        {
            game_2 ();
            break;
        }
    case 3:
        {
            game_3 ();
            break;
        }
    case 4:
        {
            game_4 ();
            break;
        }
    case 5:
        {
            game_5 ();
            break;
        }
    default :
        {
            esc_esc ();
        }
    }
}

int judge_1 (int z)//判断输入
{
    for (;1;)
    {
        system("cls");//清屏
        if (z<1)
        {
            wait_3 ();
            z = judge_no ();

        }
        else if (z>6)
        {
            wait_3 ();
            z = judge_no ();
        
        }
        else
        {
            break;
        }
    }
    return z;
}

int getchar_1 (void)//输入
{
    int z;
    fflush(stdin);//清空磁盘缓冲区
    printf ("\n\n请输入您的选择后按回车键.......");
    scanf ("%d",&z);
    system("cls");//清屏
    
    return z;
}

void wait_3 (void)//输出选择
{
    printf ("\n\n\n");
    printf ("****************************卍卍卍卍卍卍卍卍卍卍********************************\n");
    printf ("*卍卍卍**卍****/////////****卍1.录入学生数据  卍******/////////******卍卍卍**卍*\n");
    printf ("*****卍**卍****/////////****卍2.学生数据查询  卍******/////////**********卍**卍*\n");
    printf ("*卍卍卍卍卍****/////////****卍3.学生数据更改  卍******/////////******卍卍卍卍卍*\n");
    printf ("*卍**卍********/////////****卍4.数据排序选择  卍******/////////******卍**卍*****\n");
    printf ("*卍**卍卍卍****/////////****卍5.单科成绩查询  卍******/////////******卍**卍卍卍*\n");
    printf ("***************/////////****卍6.退出管理程序  卍******/////////*****************\n");
    printf ("****************************卍卍卍卍卍卍卍卍卍卍********************************\n");
}

int wait_2 (void)//用户选择输入函数 (主菜单)
{
    int z, t;
    wait_3 ();//输出选择
    z = getchar_1 ();//取的输入值
    t = judge_1(z);
    return t;
}

void wait_1 (void)//首先调用进入的窗口
{
    printf ("*******************************************************************************\n");
    printf ("*******************************************************************************\n");
    printf ("***            O(∩_∩)O        欢迎使用学生系统      O(∩_∩)O             ***\n");
    printf ("***   O(∩_∩)O                 本系统正在调试期               O(∩_∩)O    ***\n");
    printf ("***            O(∩_∩)O            谢谢使用          O(∩_∩)O             ***\n");
    printf ("**************************************小偌*************************************\n");
    printf ("****************************这个程序的功能会尽力完善***************************\n");
    printf ("**********************************~~~~(>_<)~~~~**************制作人:  小偌*****\n");
    printf ("*******************************************************************************\n");
    printf ("\n\n\n请按回车继续......");
    getchar ();
    system("cls");//清屏
}

int main (void)
{
    int a;
    wait_1 ();//首先调用进入的窗口
    a = wait_2 ();//调用录入函数
    bigan_1 (a);//判断选择
    save_1 ();
    printf ("\n谢谢使用\n");
    
    return 0;
}

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-10-25 14:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我贴过这种菜单的代码,你找来参考一下,跟自己的写法对比。

授人以渔,不授人以鱼。
2011-10-25 14:19
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:0 
好的

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-10-25 14:26
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:0 
望着TonyDeng兄 海一般的回帖 我 淡定 继续找 ..........

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-10-25 14:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我好像忘了有没有贴源码。

授人以渔,不授人以鱼。
2011-10-25 14:51
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
lz悲催了。。。。天哪,粗一看,这么多的wait_XXX,有没有想过,一个wait函数实现的功能?
学一下头文件和实现分离。。。或许你有新的思路。

我们都在路上。。。。。
2011-10-25 14:51
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:0 
额..........好吧
恩 ?头文件 和 实现?那是 什么东西?
可是 恩 其实 可以的 只是 我希望 可以 一个 一个 的 改 让用户 所以 .......以后 好 调用的说 .........恩 我试试

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-10-25 14:53
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
头文件中可以申明结构体,函数申明,实现接口定义与函数实现分离。
有本书叫《C语言接口代码重用》,或许你该找来看看。

我们都在路上。。。。。
2011-10-25 14:59
快速回复:无语了 暂时 混乱至极
数据加载中...
 
   



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

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