当前位置:文档之家› C语言编程---火车订票系统源代码

C语言编程---火车订票系统源代码

C语言编程---火车订票系统源代码
C语言编程---火车订票系统源代码

火车订票系统源码

#include

#include

#include

#include

intshoudsave=0 ;

int count1=0,count2=0,mark=0,mark1=0 ;

/*定义存储火车信息的结构体*/

struct train

{

char num[10];/*列车号*/

char city[10];/*目的城市*/

char takeoffTime[10];/*发车时间*/

char receiveTime[10];/*到达时间*/

int price;/*票价*/

intbookNum ;/*票数*/

};

/*订票人的信息*/

struct man

{

charnum[10];/*ID*/

char name[10];/*姓名*/

intbookNum ;/*需求的票数*/

};

/*定义火车信息链表的结点结构*/

typedefstruct node

{

struct train data ;

struct node * next ;

}Node,*Link ;

/*定义订票人链表的结点结构*/

typedefstruct people

{

struct man data ;

struct people*next ;

}bookMan,*bookManLink ;

/* 初始界面*/

voidprintInterface()

{

puts("********************************************************"); puts("* Welcome to use the system of booking tickets *");

puts("********************************************************"); puts("* You can choose the operation: *");

puts("* 1:Insert a train information *");

puts("* 2:Inquire a train information *");

puts("* 3:Book a train ticket *"); puts("* 4:Update the train information *"); puts("* 5:Advice to you about the train *");

puts("* 6:save information to file *");

puts("* 7:quit the system *"); puts("********************************************************"); }

/*添加一个火车信息*/

voidInsertTraininfo(Link linkhead)

{

struct node *p,*r,*s ;

charnum[10];

r = linkhead ;

s = linkhead->next ;

while(r->next!=NULL)

r=r->next ;

while(1)

{

printf("please input the number of the train(0-return)");

scanf("%s",num);

if(strcmp(num,"0")==0)

break ;

/*判断是否已经存在*/

while(s)

{

if(strcmp(s->data.num,num)==0)

{

printf("the train '%s'has been born!\n",num);

return ;

}

s = s->next ;

}

p = (struct node*)malloc(sizeof(struct node));

strcpy(p->data.num,num);

printf("Input the city where the train will reach:");

scanf("%s",p->data.city);

printf("Input the time which the train take off:");

scanf("%s",p->data.takeoffTime);

printf("Input the time which the train receive:");

scanf("%s",&p->data.receiveTime);

printf("Input the price of ticket:");

scanf("%d",&p->data.price);

printf("Input the number of booked tickets:");

scanf("%d",&p->data.bookNum);

p->next=NULL ;

r->next=p ;

r=p ;

shoudsave = 1 ;

}

}

/*打印火车票信息*/

voidprintTrainInfo(struct node*p)

{

puts("\nThe following is the record you want:");

printf(">>number of train: %s\n",p->data.num);

printf(">>city the train will reach: %s\n",p->data.city);

printf(">>the time the train take off: %s\nthe time the train reach: %s\n",p->data.takeoffTime,p->data.receiveTime);

printf(">>the price of the ticket: %d\n",p->data.price);

printf(">>the number of booked tickets: %d\n",p->data.bookNum); }

struct node * Locate1(Link l,charfindmess[],char numorcity[])

{

Node*r ;

if(strcmp(numorcity,"num")==0)

{

r=l->next ;

while(r)

{

if(strcmp(r->data.num,findmess)==0)

return r ;

r=r->next ;

}

}

else if(strcmp(numorcity,"city")==0)

{

r=l->next ;

while(r)

{

if(strcmp(r->data.city,findmess)==0)

return r ;

r=r->next ;

}

}

return 0 ;

}

/*查询火车信息*/

voidQueryTrain(Link l)

{

Node *p ;

intsel ;

char str1[5],str2[10];

if(!l->next)

{

printf("There is not any record !");

return ;

}

printf("Choose the way:\n>>1:according to the number of train;\n>>2:according to the city:\n");

scanf("%d",&sel);

if(sel==1)

{

printf("Input the the number of train:");

scanf("%s",str1);

p=Locate1(l,str1,"num");

if(p)

{

printTrainInfo(p);

}

else

{

mark1=1 ;

printf("\nthe file can't be found!");

}

}

else if(sel==2)

{

printf("Input the city:");

scanf("%s",str2);

p=Locate1(l,str2,"city");

if(p)

{

printTrainInfo(p);

}

else

{

mark1=1 ;

printf("\nthe file can't be found!");

}

}

}

/*订票子模块*/

voidBookTicket(Link l,bookManLink k)

{

Node*r[10],*p ;

charch,dem ;

bookMan*v,*h ;

int i=0,t=0 ;

charstr[10],str1[10],str2[10];

v=k ;

while(v->next!=NULL)

v=v->next ;

printf("Input the city you want to go: ");

scanf("%s",&str);

p=l->next ;

while(p!=NULL)

{

if(strcmp(p->data.city,str)==0)

{

r[i]=p ;

i++;

}

p=p->next ;

}

printf("\n\nthe number of record have %d\n",i);

for(t=0;t

printTrainInfo(r[t]);

if(i==0)

printf("\n\t\t\tSorry!Can't find the train for you!\n"); else

{

printf("\ndo you want to book it?<1/0>\n");

scanf("%d",&ch);

if(ch == 1)

{

h=(bookMan*)malloc(sizeof(bookMan)); printf("Input your name: ");

scanf("%s",&str1);

strcpy(h->https://www.doczj.com/doc/b411887103.html,,str1);

printf("Input your id: ");

scanf("%s",&str2);

strcpy(h->data.num,str2);

printf("Input your bookNum: ");

scanf("%d",&dem);

h->data.bookNum=dem ;

h->next=NULL ;

v->next=h ;

v=h ;

printf("\nLucky!you have booked a ticket!"); getch();

shoudsave=1 ;

}

}

}

bookMan*Locate2(bookManLinkk,charfindmess[]) {

bookMan*r ;

r=k->next ;

while(r)

{

if(strcmp(r->data.num,findmess)==0)

{

mark=1 ;

return r ;

}

r=r->next ;

}

return 0 ;

}

/*修改火车信息*/

voidUpdateInfo(Link l)

{

Node*p ;

charfindmess[20],ch ;

if(!l->next)

{

printf("\nthere isn't record for you to modify!\n"); return ;

}

else

{

QueryTrain(l);

if(mark1==0)

{

printf("\nDo you want to modify it?\n");

getchar();

scanf("%c",&ch);

if(ch=='y');

{

printf("\nInput the number of the train:");

scanf("%s",findmess);

p=Locate1(l,findmess,"num");

if(p)

{

printf("Input new number of train:");

scanf("%s",&p->data.num);

printf("Input new city the train will reach:");

scanf("%s",&p->data.city);

printf("Input new time the train take off");

scanf("%s",&p->data.takeoffTime);

printf("Input new time the train reach:");

scanf("%s",&p->data.receiveTime);

printf("Input new price of the ticket::");

scanf("%d",&p->data.price);

printf("Input new number of people who have booked ticket:"); scanf("%d",&p->data.bookNum);

printf("\nmodifying record is sucessful!\n");

shoudsave=1 ;

}

else

printf("\t\t\tcan't find the record!");

}

}

else

mark1=0 ;

}

}

/*系统给用户的提示信息*/

voidAdvicedTrains(Link l)

{

Node*r ;

charstr[10];

int mar=0 ;

r=l->next ;

printf("Iuput the city you want to go: ");

scanf("%s",str);

while(r)

{

if(strcmp(r->data.city,str)==0&&r->data.bookNum<200)

{

mar=1 ;

printf("\nyou can select the following train!\n");

printf("\n\nplease select the fourth operation to book the ticket!\n"); printTrainInfo(r);

}

r=r->next ;

}

if(mar==0)

printf("\n\t\t\tyou can't book any ticket now!\n");

}

/*保存火车信息*/

voidSaveTrainInfo(Link l)

{

FILE*fp ;

Node*p ;

int count=0,flag=1 ;

fp=fopen("c:\\train.txt","wb");

if(fp==NULL)

{

printf("the file can't be opened!");

return ;

}

p=l->next ;

while(p)

{

if(fwrite(p,sizeof(Node),1,fp)==1)

{

p=p->next ;

count++;

}

else

{

flag=0 ;

break ;

}

}

if(flag)

{

printf("the number of the record which have been saved is %d\n",count); shoudsave=0 ;

}

fclose(fp);

}

/*保存订票人的信息*/

voidSaveBookmanInfo(bookManLink k)

{

FILE*fp ;

bookMan*p ;

int count=0,flag=1 ;

fp=fopen("c:\\man.txt","wb");

if(fp==NULL)

{

printf("the file can't be opened!");

return ;

}

p=k->next ;

while(p)

{

if(fwrite(p,sizeof(bookMan),1,fp)==1)

{

p=p->next ;

count++;

}

else

{

flag=0 ;

break ;

}

}

if(flag)

{

printf("the number of the record which have been saved is %d\n",count); shoudsave=0 ;

}

fclose(fp);

}

int main()

{

FILE*fp1,*fp2 ;

Node*p,*r ;

char ch1,ch2 ;

Link l ;

bookManLink k ;

bookMan*t,*h ;

l=(Node*)malloc(sizeof(Node));

l->next=NULL ;

r=l ;

k=(bookMan*)malloc(sizeof(bookMan));

k->next=NULL ;

h=k ;

fp1=fopen("c:\\train.txt","ab+");

if((fp1==NULL))

{

printf("can't open the file!");

return 0 ;

}

while(!feof(fp1))

{

p=(Node*)malloc(sizeof(Node));

if(fread(p,sizeof(Node),1,fp1)==1)

{

p->next=NULL ;

r->next=p ;

r=p ;

count1++;

}

}

fclose(fp1);

fp2=fopen("c:\\man.txt","ab+");

if((fp2==NULL))

{

printf("can't open the file!");

return 0 ;

}

while(!feof(fp2))

{

t=(bookMan*)malloc(sizeof(bookMan)); if(fread(t,sizeof(bookMan),1,fp2)==1)

{

t->next=NULL ;

h->next=t ;

h=t ;

count2++;

}

}

fclose(fp2);

{

system("cls");

printInterface();

printf("please choose the operation: ");

scanf("%d",&sel);

system("cls");

if(sel==8)

{

if(shoudsave==1)

{

getchar();

printf("\nthe file have been changed!do you want to save it(y/n)?\n"); scanf("%c",&ch1);

if(ch1=='y'||ch1=='Y')

{

SaveBookmanInfo(k);

SaveTrainInfo(l);

}

}

printf("\nThank you!!You are welcome too\n");

break ;

}

switch(sel)

{

case 1 :

InsertTraininfo(l);break ;

case 2 :

QueryTrain(l);break ;

case 3 :

BookTicket(l,k);break ;

case 4 :

UpdateInfo(l);break ;

case 5 :

AdvicedTrains(l);break ;

case 6 :

SaveTrainInfo(l);SaveBookmanInfo(k);break ;

case 7 :

return 0;

}

printf("\nplease press any key to continue.......");

getch();

}

}

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

C语言程序设计习题答案(1-5章)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

火车站售票管理系统

火车站售票管理系统 文档类别:规格需求说明书 项目名称:火车站售票管理系统 编写人员: 完成日期:

目录 1 引言 (2) 2 可行性分析 (2) 2.1 研发依据 (2) 2.2 国外现状 (2) 2.3 顶层数据流图 (2) 3 实现功能 (2) 3.1 该软件的功能为 (2) 3.1.1 售票功能 (2) 3.1.2查询功能 (2) 3.1.3管理统计功能 (2) 3.2 性能 (2) 3.3 系统的输入 (2) 3.4 系统的输出 (2) 3.5 中层数据流图 (2) 4 底层数据流图分解 (2) 4.1 售票功能的分解 (2)

4.3 管理统计功能的分解 (2) 5 数据字典 (2) 5.1 售票功能 (2) 5.2 查询功能 (2) 5.3 管理统计功能 (2) 6用列图 (2) 6.1 P1售票功能 (2) 6.2 P2查询功能 (2) 6.3 P3管理统计功能 (2) 7 功能模块图 (2) 8 E-R图 (2) 8.1 P1售票功能E-R图 (2) 8.2 P2查询功能E-R图 (2) 8.3 P3统计管理功能E-R图 (2) 8.4 E-R总图 (2) 9 数据库设计 (2) 9.1 P1售票功能 (2)

9.3 P3管理统计功能 (2) 10 P1售票功能 (2) 10.1 类图 (2) 10.2 时序图 (2) 10.3 协作图 (2) 11 P2查询功能 (2) 11.1 类图 (2) 11.2 时序图 (2) 11.3 协作图 (2) 12 P3管理统计功 (2) 12.1 类图 (2) 12.1 时序图 (2) 12.3 协作图 (2)

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言实用程序设计100例流程图

C语言实用程序100例 第一篇基础与提高 实例1利用库函数编写基本显示程序 实例2变量属性 实例3运算符与类型 实例4关于程序结构 实例5显示函数曲线图 实例6二分法选代的应用 实例7多变的立方体 实例8一维整型数组应用(1) 实例9一维整型数组应用(2) 实例10一维整型数组应用(3) 实例11一维整型数组应用(4) 实例12二维数组应用(1)——显示杨辉三角实例13二维数组应用(2)——魔方阵 实例14字符数组应用(1)——逻辑判断 实例15字符数组应用(2)——数据模拟 实例16二维数组应用——字符比较 实例17利用指针进行数据处理 实例18指针与字符串 实例19利用指针处理二维数组 实例20一级指针 实例21利用指针传递参数值 实例22结构体的应用 实例23链表的应用(1)

实例24链表的应用(2) 实例25链表的应用(3) 实例26共用体的应用 实例27枚举类型应用 实例28位运算 买例29义件加密 实例30文件的按记录随机读写 第二篇图形与多媒体 实例31改变文字背景色 实例32及本颜色设置 实例33制作表格 实例34制作多样的椭圆 实例35美丽的透视图形 实例36错位窗口 实例37能移动的矩形 实例38多变的填充矩形 实例39黄黑相间的矩形与圆 实例40六叶图案 实例41特殊图案 实例42国际象棋棋盘 实例43制作楼梯 实例44使用线类型函数设置多个汉字实例45彩色群点 实例46饼图 买例47产品折线图 实例48直方图 实例49变大变色的拒形与国

实例50多变的填充多边形 实例51流星球 实例52小球动态碰撞 买倒53多,曲线 实例54多变的圆与环 实例55优美的球体 实例56运动的小车 实例57统计动画消失次数 实例58运行的时钟 实例59直升飞机 实例60演绎“生命游戏” 实例61猜猜看 买例62艺术清屏 买倒63制作火焰 实例64动态绘制256条不同颜色的直线实例65红绿蓝三原色渐变 第三篇综合小程序 实例66两个矩阵相乘 实例67艺术钟 实例68家庭财务管理小程序 实例69用系统时间实现随机数 实例70闪动的多彩圆 实例71检查系统有无鼠标 实例72圆形光盘与矩形 实例73动态渐变图案 实例74往返两地间的小车 实例75飘扬的红旗

火车站售票管理系统的设计与实现-软件工程课程设计

山西大学商务学院 《软件工程课程设计》报告 题目:火车站售票管理系统的设计与实现 班级:10软件G2班 组长:景巧鑫 组员姓名:夏丹丹崔新华王伟

说明 一、火车站售票管理系统 二、小组成员及任务分配情况 姓名学号任务分配 景巧鑫2010847209需求分析、总体设计、系统实现夏丹丹2010847227可行性研究、详细设计、系统实现崔新华2010847204数据库的设计、系统实现 王伟2010847223系统界面设计与实现

信息学院《软件工程课程设计》报告 目录 1.开发目的和意义 (1) 1.1研究背景 (1) 1.2开发目的和意义 (1) 1.3完成情况 (2) 2.开发技术及方法 (3) 2.1开发环境和开发工具 (3) 2.2技术及方法 (3) 2.2.1B/S模式 (3) https://www.doczj.com/doc/b411887103.html, (3) https://www.doczj.com/doc/b411887103.html, (4) 3.系统分析 (5) 3.1可行性分析 (5) 3.1.1经济可行性 (5) 3.1.2技术可行性 (5) 3.1.3操作可行性 (5) 3.2需求分析 (5) 3.2.1功能需求 (5) 3.2.2数据需求 (8) 3.2.3性能需求 (9) 4.系统设计 (10) 4.1总体设计 (10) 4.2详细设计 (10) 4.2.1过程设计 (10) 4.3数据库设计 (16) 4.3.1用户表 (16) 4.3.2车次详细信息表 (17) 4.3.3订票纪录表 (17) 4.3.4退票纪录表 (18) 5.系统实现 (19) 5.1系统登录界面 (19) -II-

信息学院《软件工程课程设计》报告 5.2系统管理员登录界面 (19) 5.3票务管理员登录界面 (20) 5.4乘客登录界面 (21) 6.系统测试 (22) 6.1测试方法 (22) 6.2测试过程 (22) 6.3测试结果 (22) 7.总结 (24) 7.1小结 (24) 7.2实践感想 (24) 参考文献 (26) 附录1可行性分析文档 (27) 附录2需求分析文档 (30) 附录3详细设计文档 (33) 附录4系统测试文档 (39) -III-

火车订票管理系统

学号11~15 选题三:火车票订票管理系统 1.基本要求:为方便管理火车票购买信息,编写一个火车票订票管 理系统软件。系统记录必须包括订票人姓名、订票人身份证号、始发站、终到站、票价、席别、订票时间等。 2.基本管理功能: [1]添加:增加一条订票人的记录到管理系统中。 [2]查询:根据订票人身份证查找订票人的相关信息并显示,若 找不到也要给出相应提示。 [3]修改:在管理系统中修改订票人的订票记录。 [4]保存:将所有订票信息保存在一个文件中(数据库文件或普 通的文本文件)。 [5]读取:从文件中读取已保存了数据。 [6]删除:从管理系统中删除一条记录。 [7]恢复:能恢复被删除的记录。 [8]统计:(A) 统计每天订票张数和总车票金额;(B) 统计单价 在100元以下、100~400元之间和400元以上的票数总张数

及总金额;(C) 以表格形式打印所有订票信息。 源代码: #include #include #include #include using namespace std; int d;//用于选择(按1继续,按2退出,按他其他报错待完善) int x=1;//用于脱出while循环 string sfz;//身份证号码,用户输入可用到 class ticket {public: string ID; string name; string Sstation; string Tstation; float price; string seat; string time; ticket *next; ticket(string I,string n,string S, string T,float p, string s,string t) {ID=I;name=n;Sstation=S;Tstation=T;price=p;seat=s;time=t;} void display(); }; void ticket::display() {cout<

C语言课程设计报告—飞机订票系统

C语言课程设计报告 指导老师:

C语言课程设计报告 一、 C语言课程设计的目的 C语言的教学是学生根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。具体来说: 1.进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法; 6、掌握书写程设计开发文档的能力(书写课程设计报告); 二、课程设计报告正文 (1)课程设计题目的原文; 假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(文件保存) 完成航班信息浏览功能; 查询航线(至少一种查询方式)。 (2)题目的分析(需求分析); 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中) 浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外 要提供键盘式选择菜单以实现功能选择。 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、 预售票总数、已售票数。 (3)整体设计与模块划分;

根据需求分析,该程序可分为以下四大模块: 飞机订票系统 输入模块显示模块查询模块退出模块 (4)代码设计; 包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等; (一)主函数 (1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所需的文件;调用菜单函数。 程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。 菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数。 (2)程序: void menu() { int n,w; do { puts("\t\t***********************MENU***************************\n\n"); puts("\t\t\t\t 1.enter new data"); puts("\t\t\t\t 2.Browse all"); puts("\t\t\t\t 3.Search"); puts("\t\t\t\t 4.exit");

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

C语言程序设计课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 掷骰子游戏 (5) 射击游戏 (7) 计算存款本息之和 (8) 肇事逃逸 (10) 礼炮 (12) 汽车加油 (14) 大优惠 (16) 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 调试过程及实验结果

火车票售票管理系统

电子商务分析与设计 设计题目火车站售票管理系统 组长 成员 成员

目录 一、需求分析 (1) 1.1功能需求 (1) 1.2系统用例分析 (1) 1.2.1.火车站售票管理系统的参与者 (1) 1.2.2.管理员用例图 (2) 1.2.3.系统管理员用例图 (3) 1.2.4.票务管理员用例图 (4) 1.2.5.乘客用例图 (5) 二、静态模型设计 (6) 2.1类图 (6) 2.2数据库字段 (6) 三、动态模型设计 (8) 3.1时序图 (8) 3.1.1“系统管理员时序图 (8) 3.1.2顾客时序图 (9) 3.1.3.票务管理员时序图 (11)

3.1.4.售票员时序图 (12) 3.2 状态图 (14) 3.3协作图 (15) 3.4活动图 (16) 3.4.1.“乘客查询”活动图 (16) 3.5系统部署图 (19) 四、小组成员分工说明 (20) 五、课程设计的收获和总结 (21) 参考资料 (22)

一、需求分析 1.1功能需求 线上预订火车票系统是一款功能强大、操作简便、易维护的、具有良好人机交互界面的线上订票系统,它包括用户管理模块、系统参数设置模块、票务信息模块(提供票价、列车的实时信息)、订票管理模块(提供订票和退订功能)、实时信息提示模块(提供车况、路况、列车晚点等实时信息)、数据管理模块(提供数据备份、数据操作功能)。实现火车票线上预定的自动化的计算机系统,为旅客提供准确、精细、迅速的火车票销售信息和方便、简单的订票功能。 线上预订火车票系统主要是对于订票信息的统一管理,满足了中小型线上订票网站对于用户的管理,订票信息的收集和处理方面的要求。用现代化的方式取代以前的传统模式,更有利于信息的流通,资源的宏观管理。具有体积小,代码简洁,易维护、易修改的优点。 1.2系统用例分析 1.2.1.火车站售票管理系统的参与者 *乘客:查询、预订车票的人员。 *售票员:具体负责乘客的车票订单。 *票务管理员:负责更新车票信息。 *系统管理员:系统管理员负责系统的员工信息管理,会员信息管理以及系

C语言飞机订票系统

课程设计 课程:数据结构 专业班级:xx软件工程 xx班姓名:xx 学号:xxx 姓名:xxx 学号:xxx 设计时间:xxx 指导老师:xxx

课程设计题:飞机订票系统 一、设计目的 1.掌握结构体数组的表示和存储。 2. 掌握链表的存储和操作。 3.掌握文件的操作。 二、设计内容和要求 1. 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否 满仓);可以输入起飞抵达城市,查询飞机航班情况; 订票:订票情况可以存在一个数据文件中,结构自己设定。可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件。 要求:根据以上功能说明,设计航班信息,订票信息的存储结

构,设计程序完成功能 设计思想: 管理操作系统,主要考虑的是信息的录入,这里利用文件的读写完成该 功能;输出,查询以及删除,利用结构数组存储航班与客户信息,依次 对订票,退票,查询及相关操作编写成子程序,然后再主程序中调用, 这样程序看起来相当简练,而且易读懂; 算法设计分析: (次系统运行环境为VC6.0) 1.txt beijing shanghai 1 1 12 0 1 1 18 0 6 100 2 shanghai wuhang 2 2 12 0 2 2 14 0 2 110 1 wuhang chibi 3 3 13 0 3 3 14 0 1 50 2 (此文件是程序执行航班信息录入时自动生成,在信息读取时需要调用) 首先是航班于客户信息的存储,结构数组的利用很好的解决该问题; 其次是文件的操作,在主函数中利用文件的读与写;下面介绍订票退票

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

一个简单的火车票售票管理系统

一个简单的火车票售票管理系统(原创) #include #include #define MAX 100 #define N 50 typedef struct time //时间类型 { int x,y,z; //分别对应年,月,日 }TIME; typedef struct cnode //票信息类型 { int no; //票号 int id; //购票人证件号 TIME date; //购票日期 struct cnode *next; }CNODE; typedef struct tnode //车次信息类型 { char data; //车次编号 struct tnode *lchild,*rchild; CNODE *head; }TNODE; void create(); //按车次建立二叉排序树 void insert(int ); //增加新的车次(二叉排序树的插入) void del(); //取消车次(二叉排序树节点删除) void inorder(TNODE *); //中序遍历车次二叉排序树(仅显示车次信息)void inorder_all(TNODE *); //中序遍历车次二叉排序树(显示车次及售票信息)void preorder(TNODE *); //先序遍历车次二叉排序树(仅显示车次信息)TNODE *search(); //按车次编号搜索 CNODE *insert_c(CNODE *); //插入新的售票信息(单张) CNODE *insert_c_more(CNODE *); //插入新的售票信息(批量) CNODE *del_c(CNODE *,CNODE *); //退票处理(删除售票信息) CNODE *search_c(CNODE *,int); //按票号查询 void search_c_id(CNODE *,int); //按购票人证件号搜索(限定某车次) void search_c_id_all(TNODE *,int); //按购票人证件号搜索(所有车次) void search_date(CNODE *,TIME); //按购票日期搜索(限定某车次) void search_date_all(TNODE *,TIME); //按购票日期搜索(所有车次) void print_c(CNODE *); //输出售票纪录(单张) void print_c_all(CNODE *); //输出售票纪录(批量)

C语言飞机订票系统课程设计

第一章绪论 1.1:项目背景描述 1、课程设计性质与目的: C语言程序设计是一门实践性很强的课程。C程序课程设计是学习C语言 程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解,提高动手操作能力及分析问题和解决问题的能力。 2、课程设计包含的知识点: 1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语句。 2.掌握数组的基本概念。掌握一维数组与二维数组的使用,掌握字符数组与字符串的关系。 3.熟练掌握指针、地址、指针类型的概念及其使用。掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。 5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。结构体与指针、函数的关系。

第二章可行性分析 一、问题描述: 假设某航空公司只有N架X个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。 二、功能要求: 1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包 括:起飞地、目的地航班号、航班定额。 2、本系统显示这样的菜单: 1.)录入:可以录入航班情况(数据可以存储在一个数据文件中) 2.)浏览:航班信息浏览功能需要提供显示操作; 1、查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以 查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是 否满仓);另外要提供键盘式选择菜单以实现功能选择。 (1)输入航班信息 (2)输出航班信息 (3)查找航班信息 (4)订票预约 (5)删除定票预约 (6)退出系统 2、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入, 并且它们都允许用户收回其输入。 3、查找航班信息既可按线路查,也可按目的地查。 4、在两次运行之间,数据被保存于一个文件里,当本程序重新开 始的时候,它首先从该文件读入数据 三、算法提示: 1、数据结构:结构体类型数组 2、数据库结构:下表构成该系统的基本数据库。 四、测试数据: 录入北京到上海的星期一起飞的航班,假设其定额为30,上海到南京的航班起飞时间为星期二。 五、其它: 在实现系统基本功能后,完善系统的其它功能。在测试数据是发现退票系统出现问题,退票数会超过定额,在加上一个限定条件后成功。基于本系统可以尝试输出所定票的的顾客的完整信息,包括姓名,身份证号等个人信息,由于时间有限,尚未添加。

c语言程序设计流程图详解

c语言程序设计流程图详解 介绍常见的流程图符号及流程图的例子。 本章例1-1的算法的流程图如图1-2所示。本章例1-2的算法的流程图如图1-3所示。 在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”、“假”或“T、”“F或”“Y、”“N”注“真”、“假”或“T、”“F或”“Y、”“N”

另外还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。 2.算法的结构化描述 早期的非结构化语言中都有goto语句,它允许程序从一个地方直接跳转到另一个地方去。 执行这样做的好处是程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,如果有错,排起错来更是十分困难。这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。而结构化程序设计,就是要把这团乱麻理清。 经过研究,人们发现,任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成,因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑 单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。 相应地,只要规定好三种基本结构的流程图的画法,就可以画出任何算法的流程图。 (1)顺序结构 顺序结构是简单的线性结构,各框按顺序执行。其流程图的基本形态如图1-4所示,语句 的执行顺序为:A→B→C。 (2)选择(分支)结构 这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。其基本形状有两种,如图1-5a)、b)所示。图1-5a)的执行序列为:当条件为真时执行A,否则执 行B;图1-5b)的执行序列为:当条件为真时执行A,否则什么也不做。 (3)循环结构 循环结构有两种基本形态:while型循环和do-while型循环。 a.while型循环 如图1-6所示。 其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环紧后的语句。 b.do-while型循环 如图1-7所示。

火车票务管理系统(C语言)

火车票务管理系统 一、课题内容和要求 设计目标:设计一个火车票务管理系统,用C语言实现。对该系统的要求如下: 需求描述: 1.系统功能 (1)火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价。 数据存入数据文件hchsk.dat或hchsk.txt中。 (2)火车时刻信息查询。 按照车次查询 按终点查询 按起点查询 按终点和日期查询 (3)统计 按终点统计每日的车次数 按起点统计每日的车次数 2. 系统主界面应有以下功能选项 录入火车时刻信息 查询火车时刻信息 统计火车车次 退出 注:建议用VC环境开发用户界面。 结果形式: 提交程序设计报告和可演示的系统软件 二、需求分析 系统主界面应有以下功能选项 1.录入火车时刻信息 2.查询火车时刻信息 3.统计火车车次 4.退出

(1)火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价。 数据存入数据文件hchsk.dat或hchsk.txt中。 (2)火车时刻信息查询。 按照车次查询 按终点查询 按起点查询 按终点和日期查询 (3)统计 按终点统计每日的车次数 按起点统计每日的车次数 二、概要设计 void SearchTrainNum();//按照车次查询 void SearchToPlace();//按终点查询 void SearchFromPlace();//按起点查询 void SearchToPlaceAndDate();//按终点和日期查询 void CountToPlace();//按终点统计每日的车次数 void CountFromPlace();//按起点统计每日的车次数 三、详细设计 程序的源代码与注释 #include #include #include void SearchTrainNum(); void SearchToPlace(); void SearchFromPlace(); void SearchToPlaceAndDate(); void CountToPlace();

数据结构课程设计(C语言版)飞机订票系统

———C语言版 课题:飞机订票系统和图的遍历的动态演示 姓名: 学号: 班级: 指导教师:

订票系统 1.需求分析 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件 要求: 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 2:主要设计思路: 1)算法构造流程图: A:主菜单:

B:各分块模板的构造流程图:

3:功能函数设计: (1):订票系统主菜单函数menu_select() 本函数主要构造系统的主菜单,系统需要实现很多功能,并且各个功能需要各自的函数支持,所以通过主菜单可以轻松的进入各个函数下实现各自的功能,故主菜单显得尤为重要。其实就是通过键盘输入选择项,然后通过scanf接受,在通过swtich判断进入各个选择项。 (2):工作人员管理函数enter()&change() 系统需要各个航班的详细信息,所以需要工作人员把信息输入系统里,以供乘客查询订票。enter()函数的构造就是为了解决这个问题。而有可能航班线路更改或由于天气等原因飞机的起飞时间发生了更改,故工作人员需要及时更改信息,所以需要构造change()函数。 (3):列出航班信息的函数list() 乘客需要查询各个航班的信息,所以通过系统要能调出上面工作人员已经录入好的航班信息,所以构造本函数来实现这个功能。(4)乘客具体查询函数search() 本函数分两个分函数:search1()和search2(),它们分别实现乘客的按航班查询和按出发及抵达城市的两种查询方案。 (5)票务管理函数book()&quit() 通过book()函数可以实现乘客的订票操作,通过quit()可

相关主题
文本预览
相关文档 最新文档