c语言课程设计车票管理系统.docx

上传人:b****6 文档编号:16751013 上传时间:2023-07-17 格式:DOCX 页数:37 大小:704.76KB
下载 相关 举报
c语言课程设计车票管理系统.docx_第1页
第1页 / 共37页
c语言课程设计车票管理系统.docx_第2页
第2页 / 共37页
c语言课程设计车票管理系统.docx_第3页
第3页 / 共37页
c语言课程设计车票管理系统.docx_第4页
第4页 / 共37页
c语言课程设计车票管理系统.docx_第5页
第5页 / 共37页
c语言课程设计车票管理系统.docx_第6页
第6页 / 共37页
c语言课程设计车票管理系统.docx_第7页
第7页 / 共37页
c语言课程设计车票管理系统.docx_第8页
第8页 / 共37页
c语言课程设计车票管理系统.docx_第9页
第9页 / 共37页
c语言课程设计车票管理系统.docx_第10页
第10页 / 共37页
c语言课程设计车票管理系统.docx_第11页
第11页 / 共37页
c语言课程设计车票管理系统.docx_第12页
第12页 / 共37页
c语言课程设计车票管理系统.docx_第13页
第13页 / 共37页
c语言课程设计车票管理系统.docx_第14页
第14页 / 共37页
c语言课程设计车票管理系统.docx_第15页
第15页 / 共37页
c语言课程设计车票管理系统.docx_第16页
第16页 / 共37页
c语言课程设计车票管理系统.docx_第17页
第17页 / 共37页
c语言课程设计车票管理系统.docx_第18页
第18页 / 共37页
c语言课程设计车票管理系统.docx_第19页
第19页 / 共37页
c语言课程设计车票管理系统.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计车票管理系统.docx

《c语言课程设计车票管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计车票管理系统.docx(37页珍藏版)》请在冰点文库上搜索。

c语言课程设计车票管理系统.docx

c语言课程设计车票管理系统

河北建筑工程学院

 

课程设计报告

 

课程设计名称:

C语言课程设计

课程设计题目:

车票管理系统

 

院(系):

理学院

专业:

信息与计算科学

班级:

信142

学号:

20143140219

姓名:

李嘉星

指导教师:

李鸿强

完成日期:

2015-6-17

 

前言

随着计算机技术的发展,可视编程技术占有了越来越重要的作用。

VisualC++6.0是一种功能强大行之有效的可视化编程工具。

因此此软件是在VisualC++6.0环境下编写的。

对于我们,随着学习的深入,已经大体掌握了VisualC++6.0环境下的程序开发。

为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于VisualC++6.0环境的软件开发,先以字符统计软件作为开始,对VisualC++6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个员工培训系统软件的开发进行的更加顺利。

本文档详细叙述了基于VisualC++6.0环境下的车票管理系统的设计过程以及程序源代码。

本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。

此次车票管理系统的开发目的是使我们用面向对象的方式来思考和解决问题的能力,并且可以掌握字符数组的使用、字符指针的使用、数据库的设计和文件使用以及C语言语法。

程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,车票管理系统和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。

 

第1章概要设计

1.1题目的内容与要求

一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。

班次发车时间起点站终点站行车时间额定载量已定票人数

18:

00郫县广汉24530

26:

30郫县成都0.54040

37:

00郫县成都0.54020

410:

00郫县成都0.5402

(一)功能要求:

用c/c++设计一系统,能提供下列服务:

(1)录入班次信息(信息用文件保存),可不定时地增加班次数据

(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显示车次函数该系统将这些信息均放在文件20143140219中。

最后定义main()函数,利用函数调用,实现程序的各种功能。

将其放在系统文件车20143140219中。

第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-11

注销班次界面

图4-12

普通登录菜单

图4-13

图4-14

售票窗口

图4-15

图4-16

退票界面

 

参考文献

1、《C程序设计(第四版)》作者:

谭浩强书号:

ISBN9787302224464出版社:

清华大学出版社。

2、《C语言学习路线图》作 者:

明日科技书号:

ISBN9787302276593出版社:

清华大学出版社。

3、《C语言从入门到精通(第2版)》作者:

明日科技书号:

ISBN9787302287520出版社:

清华大学出版社。

4、《21天学通C语言(第7版)》作者:

(美)琼斯等著,姜估译书号:

ISBN9787115355379

出版社:

人民邮电出版社。

5、《CPrimerPlus(第五版)中文版》作者:

[美]StephenPrata书号:

ISBN9787115130228

出版社:

人民邮电出版社。

谢鸣:

XX文库XX贴吧XX百科C语言之家Linux开源俱乐部

网络资料来源:

1、

2、

3、Hotscripts

4、

附录(程序清单)

代码

//增加记录

#include

#include"news.h"

#include

#include

voidadd()

{

voidopen();

intget();

voidsave();

voidmenu1();

inti,j=5;

open();//调用按班次查询函数

system("cls");//清屏

printf("1.增加班次\n");

printf("2.返回\n");

printf("请选择(1-2)\n");

scanf("%d",&i);

if(i==1)

{

system("cls");//清屏

printf("1.请输入要增加的班次:

\n");

scanf("%d",&timetable[class_num].no);

for(i=0;i

if(timetable[class_num].no==timetable[i].no)

//比较是否相等,判断车次是否重复

{

printf("输入错误!

\n");

getch();//收集回车

break;

}

if(i==class_num)

{

get(i,j);//修改及增加班次*

class_num++;//使班次数加1

save();//调用保存函数

}

else

menu1();

}

}

#include

voidCipher()//密码验证函数

{

intm,n=123;//规定密码

voidmenu1();//上级菜单的声明;容错机制

printf("请输入密码:

");//输入提示

scanf("%d",&m);//密码输入

while

(1){//容错机制

if(m==n)

menu1();

else

printf("密码错误请重新输入:

");

scanf("%d",&m);

}}

//删除班次信息

#include

#include//system("cls")的声明

#include//getch()的声明

#include"news.h"

voiddel()

{voidsave();

intfindnum(ints1);

inti,h=0;

intnum;

charor[10];

system("cls");//清屏

printf("1.删除班次\n");

printf("2.返回\n");

printf("请选择(1-2):

\n");

scanf("%d",&i);

if(i==1)

{

system("cls");//清屏

printf("请输入要删除的班次:

\n");

scanf("%d",&num);

i=findnum(num);//调用班次查询函数

if(i==class_num)//全部匹配后但无匹配项

{

printf("输入错误,无此班次!

\n");

getch();//收集回车

del();

}

else

{

printf("确定?

(y/n)\n");//确认机制

scanf("%s",or);

if(or[0]=='y'||or[0]=='Y')

{

for(;i

timetable[i]=timetable[i+1];

class_num--;//班次总数减1

save();//调用保存函数

}

}

}

}

//查找函数

#include

#include"news.h"

#include

voidfind(ints1,chars2[])

{

inti,h=0,m;

if(s2[0]=='\0')

m=1;//1为无条件执行

elsem=0;

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

printf("\n|班次|发车时间|起点站|终点站|行车时间|额定载量|已售票|\n");

for(i=0;i

if(s1=timetable[i].no||strcmp(s2,timetable[i].Last_station)==0)

//判断字符串比较是否相等

{

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

printf("|%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++;

break;

}

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

if(h==0)//不能break则执行

printf("要查找的班次不存在!

\n");

}

//查找班次

#include

#include"news.h"

intfindnum(ints1)

{

inti;

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

for(i=0;i

{

if(s1==timetable[i].no)//判断字符串比较是否相等,如果符合则输出车次等信息

{

printf("|----------|----------|----------|----------|--------|--------|--------|\n");

printf("|%10d|%5d:

%-4d|%10s|%10s|%8.1f|%8d|%8d|",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);

break;

}

}

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

returni;

}

//欢迎界面

#include

voidhuanying(){

printf("\n\n\n\n");

printf("\t************************************************************\n");

printf("\n\n\n\n");

printf("\t\t\t\t车票管理系统\n");

printf("\n\n\n\n");

printf("\t\t\t设计人:

李嘉星;刘新月;田宇\n");

printf("\n\n");

printf("\t\t\t\t感谢您的使用\n\t\t\t\t按任意键继续\n");

printf("\n\n");

printf("\t************************************************************\n");

}

//信息录入界面

#include

#include"news.h"

#include

#include

voidInput(){

{

inti=0,j=5,h;

chars[5];

voidsave();

voidadd();

voidget(inti,intj);

FILE*fp;//定义文件型指针变量

system("cls");//清屏

if((fp=fopen("车票管理系统0.dat","rb"))!

=NULL)//fopen打开文件

{

printf("车票信息已经存在!

\n");

printf("任意输入进入添加菜单\n");

scanf("%s",s);//收集任意输入

i=1;//通过是1

add();

}

if(i==0)

{

system("cls");//清屏

printf("请输入要录入班次总数:

\n");

scanf("%d",&class_num);//指向班次指针

system("cls");//清屏

for(i=0;i

{

system("cls");//清屏

printf("请输入第%d个班次信息:

\n",i+1);

h=-1;

for(;h!

=i;)///循环输出

{

printf("请输入班次:

\n");

scanf("%d",&timetable[i].no);

for(h=0;h

if(timetable[h].no==timetable[i].no)

{

printf("输入错误!

该班次已存在!

\n");

break;//返回

}

}

get(i,j);//修改及增加班次

j=5;

}

save();//调用保存函数

}

}

}

voidget(inti,intj)//修改及增加班次

{

for(;;)

{

printf("请输入发车时间(xxxx)");scanf("%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)

break;

else

{

printf("输入错误!

\n");

getch();//收集回车

}

}

printf("请输入起点站:

\n");

scanf("%s",timetable[i].Starting_station);

printf("请输入终点站:

\n");

scanf("%s",timetable[i].Last_station);

printf("请输入行车时间:

\n");

scanf("%f",&timetable[i].time);

printf("请输入额定载量:

\n");

scanf("%d",&timetable[i].max_number);

printf("请输入已售票数:

\n");

scanf("%d",&timetable[i].sold_number);

}

//管理员菜单界面

#include

voidmenu1(){

voidInput();

voidtimetable1();

voidsave();

voiddel();

voidsearchesmenu();

voidland();

voidadd();

intn;

printf("\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");

printf("\t\t\t请输入需要运行的命令编号\n");

while

(1){//死循环形成菜单

scanf("%d",&n);

switch(n){

case1:

Input();break;//车辆信息录入

case2:

add();break;//增加车次信息

case3:

timetable1();break;//浏览时刻表

case4:

searchesmenu();break;//车辆信息查询

case5:

del();break;//注销车次

case6:

save();break;//保存命令

case7:

land();break;//返回上级菜单

default:

printf("非法输入\n");break;

}

}

}

//普通登录菜单

#include

voidmenu2(){

voidtimetable1();

voidticketorder();

voidticketdelete();

voidland();

voidsearchesmenu();

intn;

printf("\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");

printf("\t\t\t请输入需要运行的命令编号\n");

while

(1){

scanf("%d",&n);

switch(n){

case1:

timetable1();break;//时刻表浏览

case2:

searchesmenu();break;//车辆信息查询

case3:

ticketorder();break;//购买车票

case4:

ticketdelete();break;//退回车票

case5:

land();break;//返回上级菜单

default:

printf("非法输入\n");break;

}

}

}

#include

voidhuanying();

voidland();

intmain(){

charch;

huanying();

ch=getchar();//收集回车

land();

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2