车票管理系统C语言课程设计Word文件下载.docx
- 文档编号:17727555
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:32
- 大小:704.60KB
车票管理系统C语言课程设计Word文件下载.docx
《车票管理系统C语言课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《车票管理系统C语言课程设计Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
(2)浏览班次信息,可显示出所有班次当前状总。
(3)查询路线:
可按班次号查询,可按终点站查询
(4)售票和退票功能
A:
当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数
B:
退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
欢迎界面
管理员菜单
普通登录菜单
增加信息
查询信息
订票
保存信息
删除信息
退票信息
1.2总体结构
图1-1功能模块图
第2章详细设计
主模块流程图
退票
密码验证
按车次
按终到站
图2.1主模块流程图
车票管理系统软件详细设计
一个名Timetable的结构体进行定义,
包括intno;
//班次
inthour;
//发车时间(时)
intminute;
//发车时间(分)
charStarting_station[10];
//始发站
charLast_station[10];
//终点站
floattime;
//行车时间
intmax_number;
//最大载客数
intsold_number;
//已售票数等结构体成员。
然后对调用函数进行定义。
voidadd()增加记录,voidCipher()密码验证函数,voiddel()删除班次信息函数,voidfind(ints1,chars2[])查找函数,intfindnum(ints1)查找班次函数,voidInput()信息录入函数,voidhuanying()欢迎界面,voidland()登录选择界面,voidmenu1()管理员菜单界面,voidmenu2()普通菜单界面,voidopen()调用数据函数,voidsave()保存函数,voidsearchesmenu()查询菜单,voidticketdelete()退票函数,voidticketorder()售票函数,inttimee(inti)判断时间是否超出函数,voidtimetable1显示车次函数该系统将这些信息均放在文件中。
最后定义main()函数,利用函数调用,实现程序的各种功能。
将其放在系统文件车中。
第3章调试分析
1、程序陷入死循环
解决办法:
仔细分析程序间的关系,画程序流程图分析问题所在。
利用break命令跳出循环
2、程序出现乱码
利用VC6.0本身的调试功能查找错误的所在,修改源程序。
3、所学知识不能很好的完成程序
上网查找相关资料,进入一些开源论坛寻求一定的帮助。
第4章使用说明与执行结果
图4-1
图4-2
登录菜单
图4-3
管理员登录的密码机制
图4-4
密码容错机制
图4-5
图4-6
图4-7
班次录入界面
图4-8
图4-9
班次增加界面
图4-10
时刻表浏览界面
图4-11
查询界面
注销班次界面
图4-12
图4-13
图4-14
售票窗口
图4-15
图4-16
退票界面
参考文献
1、《C程序设计(第四版)》作者:
谭浩强书号:
ISBN64:
清华大学。
2、《C语言学习路线图》作
者:
明日科技书号:
ISBN93:
3、《C语言从入门到精通(第2版)》作者:
ISBN20:
4、《21天学通C语言(第7版)》作者:
(美)琼斯等著,估译书号:
ISBN79
:
人民邮电。
5、《CPrimerPlus(第五版)中文版》作者:
[美]StephenPrata书号:
ISBN28
鸣:
XX文库XX贴吧XX百科C语言之家Linux开源俱乐部
网络资料来源:
1、.xuexi111./
2、snippets.dzone./tag/c/
3、.hotscripts./category/c-cpp/scripts-programs/Hotscripts
4、https:
//.daniweb./software-development/cpp/code/_/8
附录(程序清单)
代码
//增加记录
#include<
stdio.h>
#include"
news.h"
stdlib.h>
conio.h>
voidadd()
{
voidopen();
intget();
voidsave();
voidmenu1();
inti,j=5;
open();
//调用按班次查询函数
system("
cls"
);
//清屏
printf("
1.增加班次\n"
2.返回\n"
请选择(1-2)\n"
scanf("
%d"
&
i);
if(i==1)
{
system("
printf("
1.请输入要增加的班次:
\n"
scanf("
timetable[class_num].no);
for(i=0;
i<
class_num;
i++)
if(timetable[class_num].no==timetable[i].no)
//比较是否相等,判断车次是否重复
{
printf("
输入错误!
getch();
//收集回车
break;
}
if(i==class_num)
get(i,j);
//修改及增加班次*
class_num++;
//使班次数加1
save();
//调用保存函数
else
menu1();
}
}
voidCipher()//密码验证函数
intm,n=123;
//规定密码
//上级菜单的声明;
容错机制
printf("
请输入密码:
"
//输入提示
scanf("
m);
//密码输入
while
(1){//容错机制
if(m==n)
menu1();
else
密码错误请重新输入:
}}
//删除班次信息
//system("
)的声明
//getch()的声明
voiddel()
{voidsave();
intfindnum(ints1);
inti,h=0;
intnum;
charor[10];
1.删除班次\n"
请选择(1-2):
{
请输入要删除的班次:
num);
i=findnum(num);
//调用班次查询函数
if(i==class_num)//全部匹配后但无匹配项
{
printf("
输入错误,无此班次!
getch();
del();
}
else
{
确定?
(y/n)\n"
//确认机制
scanf("
%s"
or);
if(or[0]=='
y'
||or[0]=='
Y'
)
{
for(;
class_num-1;
i++)
timetable[i]=timetable[i+1];
class_num--;
//班次总数减1
}
}
//查找函数
string.h>
voidfind(ints1,chars2[])
{
inti,h=0,m;
if(s2[0]=='
\0'
m=1;
//1为无条件执行
elsem=0;
\n|----------|----------|----------|----------|--------|--------|--------|\n"
\n|班次|发车时间|起点站|终点站|行车时间|额定载量|已售票|\n"
for(i=0;
if(s1=timetable[i].no||strcmp(s2,timetable[i].Last_station)==0)
//判断字符串比较是否相等
|%10d|%5d:
%-4d|%10s|%10s|%8.1f|%8d|%8d|\n"
timetable[i].no,timetable[i].hour,
timetable[i].minute,timetable[i].Starting_station,timetable[i].Last_station,timetable[i].time,
timetable[i].max_number,timetable[i].sold_number);
if(m==1)
h++;
if(h==0)//不能break则执行
要查找的班次不存在!
//查找班次
intfindnum(ints1)
inti;
if(s1==timetable[i].no)//判断字符串比较是否相等,如果符合则输出车次等信息
|----------|----------|----------|----------|--------|--------|--------|\n"
%-4d|%10s|%10s|%8.1f|%8d|%8d|"
break;
returni;
//欢迎界面
#include<
voidhuanying(){
\n\n\n\n"
\t************************************************************\n"
\t\t\t\t车票管理系统\n"
\t\t\t设计人:
嘉星;
新月;
田宇\n"
\n\n"
\t\t\t\t感您的使用\n\t\t\t\t按任意键继续\n"
//信息录入界面
#include"
voidInput(){
inti=0,j=5,h;
chars[5];
voidadd();
voidget(inti,intj);
FILE*fp;
//定义文件型指针变量
if((fp=fopen("
车票管理系统0.dat"
"
rb"
))!
=NULL)//fopen打开文件
车票信息已经存在!
任意输入进入添加菜单\n"
s);
//收集任意输入
i=1;
//通过是1
add();
if(i==0)
请输入要录入班次总数:
class_num);
//指向班次指针
system("
请输入第%d个班次信息:
i+1);
h=-1;
for(;
h!
=i;
)///循环输出
请输入班次:
scanf("
timetable[i].no);
for(h=0;
h<
i;
h++)
if(timetable[h].no==timetable[i].no)
{
printf("
该班次已存在!
break;
//返回
}
get(i,j);
//修改及增加班次
j=5;
save();
voidget(inti,intj)//修改及增加班次
{
for(;
;
请输入发车时间(xxxx)"
%d%d"
timetable[i].hour,&
timetable[i].minute);
if(timetable[i].hour<
24&
&
timetable[i].hour>
=0&
timetable[i].minute<
60&
timetable[i].minute>
=0)
请输入起点站:
timetable[i].Starting_station);
请输入终点站:
timetable[i].Last_station);
请输入行车时间:
%f"
timetable[i].time);
请输入额定载量:
timetable[i].max_number);
请输入已售票数:
timetable[i].sold_number);
//管理员菜单界面
voidmenu1(){
voidInput();
voidtimetable1();
voiddel();
voidsearchesmenu();
voidland();
intn;
\t\t\t\t1、车次信息录入\n\t\t\t\t2、增加车次信息\n\t\t\t\t3、时刻表浏览\n\t\t\t\t4、车辆信息查询\n\t\t\t\t5、注销车次\n\t\t\t\t6、保存\n\t\t\t\t7、返回\n"
\t\t\t请输入需要运行的命令编号\n"
while
(1){//死循环形成菜单
n);
switch(n){
case1:
Input();
break;
//车辆信息录入
case2:
add();
//增加车次信息
case3:
timetable1();
//浏览时刻表
case4:
searchesmenu();
//车辆信息查询
case5:
del();
//注销车次
case6:
save();
//保存命令
case7:
land();
//返回上级菜单
default:
非法输入\n"
//普通登录菜单
voidmenu2(){
voidticketorder();
voidticketdelete();
\t\t\t\t1、时刻表浏览\n\t\t\t\t2、车辆信息查询\n\t\t\t\t3、购买车票\n\t\t\t\t4、退回车票\n\t\t\t\t5、返回\n"
while
(1){
//时刻表浏览
ticketorder();
//购买车票
ticketdelete();
break;
//退回车票
voidhuanying();
voidland();
intmain(){
charch;
huanying();
ch=getchar();
//收集回车
land();
return0;
voidopen(){
FILE*fp1,*fp2;
if((fp1=fopen("
车票管理系统.dat"
))==NULL)
//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车票 管理 系统 语言 课程设计