最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C语言课程设计报告(附程序代码--飞机订票系统)

来源:动视网 责编:小OO 时间:2025-09-26 16:49:28
文档

C语言课程设计报告(附程序代码--飞机订票系统)

xxxx大学xx学院C语言课程设计题目:飞机订票系统专业:计算机科学与技术班级:姓名:完成时间:目录第一部分:源程序(3-12页)第二部分:函数流程图(13-25页)(1)menu函数流程图(第13页)(2)enter函数流程图(第14页)(3)Order函数流程图(第15页)(4)input函数流程图(第16页)(5)browse函数流程图(第17页)(6)Search_time函数流程图(第18页)(7)Search_end函数流程图(第19页)(8)search函数流程图(第20页)(9
推荐度:
导读xxxx大学xx学院C语言课程设计题目:飞机订票系统专业:计算机科学与技术班级:姓名:完成时间:目录第一部分:源程序(3-12页)第二部分:函数流程图(13-25页)(1)menu函数流程图(第13页)(2)enter函数流程图(第14页)(3)Order函数流程图(第15页)(4)input函数流程图(第16页)(5)browse函数流程图(第17页)(6)Search_time函数流程图(第18页)(7)Search_end函数流程图(第19页)(8)search函数流程图(第20页)(9
xxxx大学xx学院

C

题目:飞机订票系统              

      专业: 计算机科学与技术             

      班级:                     

      姓名:                

完成时间:          

目录

第一部分:源程序(3-12页)

第二部分:函数流程图(13-25页)

(1)menu函数流程图(第13页)

(2)enter函数流程图(第14页)

(3)Order函数流程图(第15页)

(4)input函数流程图(第16页)

(5)browse函数流程图(第17页)

(6)Search_time函数流程图(第18页)

(7)Search_end函数流程图(第19页)

(8)search函数流程图(第20页)

(9)void menu1函数流程图(第21页)

(10)book函数流程图(第22页)

(11)back函数流程图(第23页)

(12)save函数流程图(第24页)

(13)load 函数流程图(第25页)  

第三部分:心得体会(第26-27页)

第一部分:源程序

#include

#include

#include

#define N 1000

typedef struct plane

{

    char ID[10];  /*航班代号*/

    char BePlace[10];/*飞机起飞地点*/

    char EnPlace[10];/*飞机降落终点*/

    char data[15];/*飞机起飞时间*/

    int max;/*飞机最大乘客人数*/

    int price;/*飞机票价*/

    int num;/*飞机已售票数*/

}PLANE;

PLANE ti[N];

int n;/*当前的航班数目*/

void menu();

void menu1();

void input(int i)

{

    printf("请输入航班代号:\n");

    

    scanf("%s",ti[i].ID);

    printf("请输入起飞地点:\n");

    

    scanf("%s",ti[i].BePlace);

    printf("请输入降落地点:\n");

    

    scanf("%s",ti[i].EnPlace);

    printf("请输入起飞时间:\n");

    

    scanf("%s",ti[i].data);

    printf("请输入航班的最大载客人数:\n");

    scanf("%d",&ti[i].max);

    printf("请输入航班的票价:\n");

    scanf("%d",&ti[i].price);

    ti[i].num=0;

}

void enter()

{

    int i;

    system( "cls" ); 

    printf("请输入航班的数目(0-%d)?:",N);

    scanf("%d",&n);                  /*要输入的记录个数*/

    printf("\\n请输入数据\n\\n");

    for(i=0;i    {

         printf("\\n请输入第 %d 航班记录.\n",i+1);

         input(i);                        /*调用输入函数*/

     }

    getchar();  

    menu();

}

void printf_one(int i)                              /*显示一个记录的函数*/

{

    printf("%11s  %6s  %10s   %6s   %6d  %6d  %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);

}

void browse()

{

    int i;

    system( "cls" ); 

    puts("\\n--------------------------------------------------------------------");

    printf("\\n\航班代号 起飞地点 降落地点 起飞时间   票价  最大乘客 已售票数\n");

    for(i=0;i    {

        printf_one(i);

        printf("\\n");

    }

    getchar();

    getchar();    

    menu();

}

void order()                           /*排序模块(按平均成绩)*/

{

    int i,j;

    struct plane s;

    system( "cls" ); 

    for(i=0;i    {

        

        for(j=i+1;j     if(strcmp(ti[i].data,ti[j].data)>0)

        {

        s=ti[i];

        ti[i]=ti[j];

        ti[j]=s;}

     }

    browse();

}

void search_time()

{

    int i,m=0;

    struct plane s;

    system( "cls" ); 

    printf("\\n\\nEnter the time:");

    scanf("%s",s.data);                /*输入出发的时间*/

    puts("\\n--------------------------------------------------------------------");

    printf("\\n\航班代号 起飞地点 降落地点 起飞时间   票价  最大乘客 已售票数\n");

    for(i=0;i    {

        if(strcmp(s.data,ti[i].data)==0)

        {

            m++;

               if((m!=0)&&(m%10==0))               /*目的是分屏显示*/

               {

                    printf("\\n\\nPress any key to contiune  . . .");

                    getchar();

                    puts("\\n\\n");

               }

                printf_one(i);  

                printf("\\n");

                /*调用显示一个记录的函数*/

        }

    }

    puts("\\n--------------------------------------------------------------------");

    getchar();                          /*按任意健*/

    getchar();    

    menu1();

}

void serch_end()

{

    int i,m=0;

    struct plane s;

    system( "cls" ); 

    printf("\\n\\nEnter the end Place:");

    scanf("%s",s.EnPlace);                /*输入要到达的地方*/

    puts("\\n--------------------------------------------------------------------");

    printf("\\n\航班代号 起飞地点 降落地点 起飞时间   票价  最大乘客 已售票数\n");

    for(i=0;i    {

        if(strcmp(ti[i].EnPlace,s.EnPlace)==0)

        {

            m++;

               if((m!=0)&&(m%10==0))               /*目的是分屏显示*/

               {

                    printf("\\n\\nPress any key to contiune  . . .");

                    getchar();

                    puts("\\n\\n");

               }

                printf_one(i);  

                printf("\\n");

                /*调用显示一个记录的函数*/

        }

    }

    puts("\\n--------------------------------------------------------------------");

    getchar();                          /*按任意健*/

    getchar(); 

    menu1();

}

void menu1()

{

    int n,w1;

    do

    {

        system( "cls" );                   /*清屏*/

        puts("\\\\  飞机售票操作!\\n\\n");

        puts("\\*********************MENU*********************\\n\\n");

        puts("\\\\1.按照时间排序");

        puts("\\\\2.按照时间查找航班");

        puts("\\\\3.按照地点查找航班");

        puts("\\\\4.返回主菜单");

        puts("\\n\\n\\**********************************************\\n");

        printf("Choice your number(1-4): [ ]\\b\\b");

        scanf("%d",&n);

if(n<1||n>4) /*对选择的数字作判断*/

       {

          w1=1;

          printf("your choice is not between 1 and 4,Please input again:");

          getchar();

          getchar();

        }

       else  w1=0;

    } while(w1==1);

 /*选择功能*/

 switch(n)

 {

     case 1:order();break;      

     case 2:search_time();break;   

     case 3:serch_end();break;     

     case 4:menu();break;     

  }

}

int search()                          /*查找模块*/

{

    int i,k;

    struct plane s;

    k=-1;

    system( "cls" ); 

    printf("\\n\\n请输入要订票的起飞地点:");

    scanf("%s",s.BePlace);                /*输入要到达的地方*/

    printf("\\n\\n请输入要订票的降落地点:");

    scanf("%s",s.EnPlace); 

    printf("\\n\\n请输入要订票的起飞时间:");

    scanf("%s",s.data);                /*输入出发的时间*/

    for(i=0;i    {

        if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].data)==0)

        {

            k=i;                      /*找到要修改的记录*/

            printf_one(k);

            break;                  /*调用显示一个记录的函数*/

        }

    }

    if(k==-1)

    {

         printf("\\n\\nNO exist!");

         return -1;

    }

    else

    return k;

}

void book()

{

    int i;

    system( "cls" ); 

    printf("欢迎进入售票窗口!\\n");

    i=search();

    if(i!=-1)

    {

     if(ti[i].num>=ti[i].max)

        {

        printf("\\n该趟航班票已售完!");

        }

        else

        {

            ti[i].num++;

            printf("\\n订票成功!\\n");

        }

    }

    else

    printf("该航班不存在!\\n");

    getchar(); 

    getchar();                         /*按任意健*/

    menu();

}

void back()

{

    int i,k=-1;

    struct plane s;

    system( "cls" ); 

    printf("欢迎进入退票窗口!\\n");

    printf("\\n\\n输入航班代号:");

    scanf("%s",s.ID);                /*输入要到达的地方*/

    

    for(i=0;i    {

        if(strcmp(s.ID,ti[i].ID)==0)

        {

            k=i;                      /*找到要修改的记录*/

            printf_one(k);

            break;                  /*调用显示一个记录的函数*/

        }

    }

    if(k==-1)

    {

         printf("\\n\\nNO exist!");

    }

    else

    {

       ti[i].num--;

       printf("\\n退票成功!\\n");

    }

    getchar();                          /*按任意健*/

    getchar();                          /*按任意健*/

    menu();

}

void save()

{

    int w=1;

    FILE *fp;

    int i;

    system( "cls" ); 

    if((fp=fopen("\\\icket.txt以输出打开方式,在此前的记录被覆盖*/

    {

        printf("\\nCannot open file\\n");

        return ;

    }

for(i=0;i    if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1)

    {       

        printf("file write error\\n");

        w=0;

    }

    if(w==1)

    {

       printf("file save ok!\\n");

    }

    fclose(fp);

    getchar();

    getchar();    

    menu();

}

void load()

{

    FILE*fp;

    

    int i,w;

    w=1;

    

    system( "cls" ); 

    if((fp=fopen("\\\icket.txt

    {

        printf("\\nCannotopen file\\n");

        w=0;

        return ;

    }

    n=0;

    for(i=0;!feof(fp);i++)

    {

        fread(&ti[i],sizeof( struct plane),1,fp);

        n++;

    }

    n=n-1;

    fclose(fp);

    if(w==1)

        printf("Load file ok!");

    getchar();

    getchar();    

    menu();

}

void menu()

{

    int n,w1;

    do

    {

        system( "cls" ); /*清屏*/                  /*清屏*/

        puts("\\\\  飞机售票管理系统!\\n\\n");

        puts("\\*********************MENU*********************\\n\\n");

        puts("\\\\1.输入新航班");

        puts("\\\\2.浏览 ");

        puts("\\\\3.航班操作");

        puts("\\\\4.订票");

        puts("\\\\5.退票");

        puts("\\\\6.保存");

        puts("\\\\7.载入");

        puts("\\\\8.退出");

        puts("\\n\\n\\**********************************************\\n");

        printf("Choice your number(1-8): [ ]\\b\\b");

        scanf("%d",&n);

if(n<1||n>8) /*对选择的数字作判断*/

       {

          w1=1;

          printf("your choice is not between 1 and 8,Please input enter to choice again:");

          getchar(); 

          getchar();

        }

       else  w1=0;

    } while(w1==1);

 /*选择功能*/

 switch(n)

 {

     case 1:enter();break;      /*输入模块*/

     case 2:browse();break;    /*浏览模块*/

     case 3:menu1();break;     /*查找模块*/

     case 4:book();break;     /*订票模块*/

     case 5:back();break;     /*退票模块*/

     case 6:save();break;     /*保存模块*/

     case 7:load();break;     /*加载模块*/

     case 8:exit(0);

  }

}

void main()

{

   menu();

}

第二部分:函数流程图

    结束

(1)menu()函数

N    Y

Y    Y

退出

n=8

N    Y

w1=1

w1=0

输入新航班

浏览

航班操作

订票

退票

保存

载入

清屏(cls)

int n,w1

N    Y

n=3

n=7

n=5

n=6

n=4

n=2

n=1

输出n(1-8)

N    Y

Y    Y

While(w==1)

Y    Y

Y    Y

Y    Y

Y    Y

Y    Y

Y    Y

Y    Y

N    Y

N    Y

N    Y

N    Y

N    Y

N    Y

Y    Y

if n<1||n>8

输出n

输出目录

开始

(2)enterY

i开始

函数

int i

清屏(cls)

请输入航班的数目n

请输入数据m

i=0

N

请输入第n次航班记录

调用input()函数

i++

返回menu()

结束

开始

                                      (3)Order函数

int i,j

清屏(cls)

i=0

N    Y

i调用browse()

Y    Y

j=i+1

结束

N    Y

ji++

Y    Y

strcmp(ti[i].data,ti[j].data)>0

N    Y

Y    Y

s=ti[i];

ti[i]=ti[j] 

ti[j]=s

j++

开始

返回menu()

结束

请输入航班的票价

请输入航班的最大载客人数

请输入起飞时间

请输入降落地点

请输入起飞地点

请输入航班代号

(4)input函数

                               (5)browse函数   

开始

int i

清屏(cls)

i=0

i++

Y

N

i调用printf_one(i)

返回menu()

输出

结束

int i,m

开始

                           Y

             (6)Search_timeY

函数   

清屏(cls)

输入时间

i=0

返回menu1()

N

iY

N

S==ti[i]

i++

Y

结束

m++

(m!=0)&&(m%10==0)

按任意键继续进行

回车换行

调用函数printf_one()

int i,m

开始

                                  Y

       (7) Search_end函数  

清屏(cls)

输入要到达的地方

i=0

返回menu ()

iY

N

S==ti[i]

  

i++

结束

 

Y

m++

(m!=0)&&(m%10==0)

按任意键继续进行

回车换行

调用函数printf_one(i)

开始

                                 (8)search函数         

int i,k

k=-1

i输入起飞,降落地点和时间

清屏(cls)

i=0

Y

k==-1

N

i++

Y

Y

输出“NO exist!”

strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].data)==0

N

返回search()=-1

返回search()=k

跳出(break)

调用printf_one(k)

k=i

结束

Y

                         (9)void menu1函数  

    结束

menu()

serch_end()

search_time()

order()

w1=0

w1=1

清屏(cls)

int n,w1

N    Y

N    Y

N    Y

Y    Y

Y    Y

Y    Y

Y    Y

n=4

n=3

n=2

n=1

输出n

N    Y

Y    Y

while(w1==1)

N    Y

Y    Y

输出n(1-4)

输出目录2

if n<1||n>4

开始

(10)book函数 

开始

返回menu()

i=search()

清屏(cls)

int i

N

Y

N

Y

结束

ti[i].num>=ti[i].max

i!=-1

输出“欢迎进入售票窗口”

ti[i].num++

输出“该航班不存在!”

输出“该趟航班票已售完”

输出

“订票成功”

开始

                                    (11)back函数   

int i,k=-1

输出

“NOexist!”

输出

“退票成功!”

清屏(cls)

ti[i].num--

结束

menu()

k=i

i=0

N

Y

N

Y

N

Y

strcmp(s.ID,ti[i].ID)==0

输入

“输入航班代号”

输入

“欢迎进入退票窗口”

k==-1

ii++

调用printf_one(k)

开始

                            (12)save函数 

结束

int w=1, FILE*fp,i

输出“Cannot open file”

清屏(cls)

返回menu()

(fp=fopen("\\\icket.txt

Y

N

输出“file write error”

输出“file save ok!”

N

Y

Y

N

调用fclose(fp)

Y

w==1

N

i++

w=0

fwrite(&ti[i],sizeof(struct plane),1,fp)!=1plane),1,fp)!=1

ii=0

loadn++

开始

函数

                                       

  (13)

FILE*fp int i,w=1

i++

fread(&ti[i],sizeof( struct plane),1,fp)

Y

N

!feof(fp)

清屏(cls)

N

n=n-1

fclose(fp)

Y

w==1

输出“Load file ok!”

输出“Cannotopen file”

N

i=0

n=0

Y

结束

返回

w=0

(fp=fopen("\\\icket.txt

(fp=fopen("\\\icket.txt

FILE*fp  int i,w

返回menu()

第三部分:心得体会

    通过对C语言课程设计的学习,自己有很大的收获,将<>应用得到了实践,将所学的各种语句紧密的联系起来,得到了融汇和贯通,使我对C语言有了更深一步的学习和认识。

    C语言课程设计更能明显的体现出我们对C语言学习掌握的熟练程度。因为我们只有在读懂程序的情况下才能更好的做出流程图。经过一个多星期的上机实践学习,我觉得要想学好它则重在实践,要通过不断地上机操作才能更好的掌握理解。在学习的同时,也发现了自己学习的许多不足之处,比如,对读程序还不够熟练,对有些语句还没有掌握,再者,自己在指法上还不行,打字过慢而直接影响阅读速度,特别是在运行程序时所出现的错误很难顺利的去找出来并加以纠正,等等。这些通过学习也有所改进。

    通过实践的学习,我认识到学好计算机要重视实践操作,不仅是学习C语言,还是其他语言,以及其他的计算机方面的知识都要重在实践。所以以后在学习过程中,我会更加注重实践操作,以更好的学习好专业课。

通过对《飞机订票系统》的学习设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法,把死板的课本知识变得生动有趣,激发了我们学习的积极性。经过自己设计的流程图将知识表示出来,再加上老师精心的讲解和辅导,加深了我们对理论知识的理解。课程设计中程序比较复杂,在调试时必须仔细认真,这是最深的感受!对我们更是一种锻炼!

课程设计的学习,在找出各自不懂和不足积累经验的同时,为我们以后的学习提出了更明确目的和要求:不仅要读懂程序,而且更重要的是能会熟练地编写程序进而去设计程序。

                    

文档

C语言课程设计报告(附程序代码--飞机订票系统)

xxxx大学xx学院C语言课程设计题目:飞机订票系统专业:计算机科学与技术班级:姓名:完成时间:目录第一部分:源程序(3-12页)第二部分:函数流程图(13-25页)(1)menu函数流程图(第13页)(2)enter函数流程图(第14页)(3)Order函数流程图(第15页)(4)input函数流程图(第16页)(5)browse函数流程图(第17页)(6)Search_time函数流程图(第18页)(7)Search_end函数流程图(第19页)(8)search函数流程图(第20页)(9
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top