当前位置:文档之家› 火车票系统,课程设计报告

火车票系统,课程设计报告

课程设计报告课程设计题目: Linux下的火车系统专业:软件工程班级:姓名:学号:指导教师:20 16年7月1日(一)实验题目Linux下的火车售票系统(二)实验时间,地点2016.6.27到2016.6.30,软件楼506(三)实验目的在linux下做一个火车售票系统(四)实验要求要求采用多线程编程,实现车票信息的查询,录入,更新,车次的修改;实现用户注册登录,订票查询、火车票预订、退票申请以及后台方面的列车车次信息发布更新、车票生成、提供取票服务。

(五)实现思路该算法用c语言编写,再在linux下用vi建立文档,gcc后生成可行文件后,./运行。

C语言实现思路为1.把ticket,user,定义为结构,其中ticket 中有四个数据。

User1和user2一开始都是为空2.定义开始地点四个,终点4个3. 定义数组c1.c2,daaress.uname1,pass1.uname1,uname24.写个选择页面,共有5个页面。

5. 如果用户选择1购票,下面for循环控制路线。

如果用户选择2注册,把输入的数据存入数组如果用户选择3查询,建立for循环如果用户选择4购票,用if判断语句判断用户输入的是否在数组里如果用户选择5购票.用exit退出实现过程:定义结构,再加while if等循环实现代码#include <stdio.h>Struct ticket /*定义火车票为结构体*/{char* starName;—char* endName;int number;};struct user /*定义用户为结构体*/{char* userName;char* passWord;};struct ticket tickets[4] ;/* 火车票里有4个对象*/struct user user1={NULL,NULL};/* 用户初始为空*/struct user user2={NULL,NULL} ;int lq_index();/*定义数组*/void gotolq_Index();void main(){int i =0 ;char* starNames[4]={"南昌","深圳","广州","九江"};/*4个起点*/char* endNames[4]={"深圳","南昌","九江","广州"};/*4个终点*/for(i=0;i<4;i++){tickets[i].starName=starNames[i];tickets[i].endName=endNames[i];tickets[i].number=rand()%21+30;}/*for(i=0;i<4;i++){printf("%s-%snumber:%d\n",tickets[i].starName,tickets[i].endName,tickets [i].number);}*/printf("\t**********欢迎使用火车票系统**********\n");/*输出主页面*/while(1==1){if(lq_index()==5)break;}}int lq_index(){int i=0,j=0;char yn;char c1[20];/*2个数组*/char c2[20] ;charaddress[20],uname1[20],pass1[20],uname2[20],pass2[20];printf("\n [1] 购票[2] 注册\n" );printf(" [3] 查询[4] 登录\n" );printf(" [5] 退出\n" );printf("请输入编号");scanf("%d",&i);if(i==1) {printf("输入目的地和出发地:");scanf("%s %s",c1,c2); /*接受用户输入的数据*/j=0;for(i=0;i<4;i++){j++;if(strcmp(tickets[i].starName,c1)==0&&strcmp(tickets[i].en dName,c2)==0)/*判断是否有票*/{if(tickets[i].number>0){printf("您的选择的线路%s-%s 还剩%d张票是否确定购买(y/n) : ",c1,c2,tickets[i].number);scanf(" %c",&yn);if(yn=='y'||yn=='Y'){if(erName!=NULL){tickets[i].number -- ;printf("恭喜您购票成功! ");}else{printf("登录后才能购票! ");—}/*如果没登录显示用户登录*/gotolq_Index();/*选择路线*/}else if(yn=='n'||yn=='N'){gotolq_Index();}else{printf("输入有误!\n");i--;j--;continue;}return 1;}else{printf("抱歉您的选择的线路%s-%s 已无票出售!",c1,c2);/*如果无票就提示*/gotolq_Index();return 1;}}else if(j==4)/*路线不存在提示*/{printf("您的选择的线路%s-%s 系统中不存在!",c1,c2);gotolq_Index();return 1;}}}else if(i==2){printf("输入账号:");/*注册账号*/scanf("%s",uname1) ;erName=uname1;printf("输入密码: ");scanf("%s",pass1);user1.passWord=pass1;printf("恭喜%s用户注册成功!",erName);gotolq_Index();}else if(i==3){printf("输入要查询的地点:"); /*查询车票*/scanf("%s",address);printf("始发站\t终点站\t票数\n");i=0;for(i=0;i<4;i++){if(strcmp(tickets[i].starName,address)==0){printf(" %s\t %s\t %d\n",tickets[i].starName,tickets[i].end Name,tickets[i].number);}else{j++;}if(j==4){printf("未找到相应数据!\n");}}gotolq_Index();return 1;}else if(i==4){printf("输入账号:");/*用户登录与已经注册的判断*/scanf("%s",uname2) ;erName=uname2;printf("输入密码: ");scanf("%s",pass2);user2.passWord=pass2;if(erName!=NULL){if(strcmp(erName,erName)==0&&strcmp( user1.passWord,user2.passWord)==0){printf("欢迎%s用户使用本系统!",erName);}else{erName=NULL;user2.passWord=NULL;printf("输入账号或者密码不一致!");}}else{printf("请先注册用户!");/*不一致提示注册*/ }gotolq_Index();}else if(i==5){printf("欢迎再次使用本系统!");return 5 ;}return 1 ;}void gotolq_Index(){printf("任意键返回首页!");/返回*/printf("\n************************************** \n");}。

相关主题