欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新c语言课程设计车票系统.doc

    • 资源ID:33805101       资源大小:981KB        全文页数:40页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新c语言课程设计车票系统.doc

    精品资料c语言课程设计车票系统.河北建筑工程学院课 程 设 计 报 告课程设计名称:C语言课程设计课程设计题目:车票管理系统院(系):理学院 专 业:信息与计算科学班 级:信142学 号:20143140219姓 名:李嘉星指导教师:李鸿强完成日期: 2015-6-17目 录前言随着计算机技术的发展,可视编程技术占有了越来越重要的作用。Visual C+6.0 是一种功能强大行之有效的可视化编程工具。因此此软件是在Visual C+6.0环境下编写的。对于我们,随着学习的深入,已经大体掌握了Visual C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于Visual C+6.0环境的软件开发,先以字符统计软件作为开始,对Visual C+6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个员工培训系统软件的开发进行的更加顺利。本文档详细叙述了基于Visual C+6.0环境下的车票管理系统的设计过程以及程序源代码。本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。此次车票管理系统的开发目的是使我们用面向对象的方式来思考和解决问题的能力,并且可以掌握字符数组的使用、字符指针的使用、数据库的设计和文件使用以及C语言语法。程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,车票管理系统和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。第1章 概要设计1.1题目的内容与要求一车站每天有n个发车班次,每个班次都有一班次号(1、2、3n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数1 8:00 郫县 广汉 2 45 302 6:30 郫县 成都 0.5 40 403 7:00 郫县 成都 0.5 40 204 10:00 郫县 成都 0.5 40 2(一)功能要求:用c/c+设计一系统,能提供下列服务:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总。(3)查询路线:可按班次号查询 ,可按终点站查询(4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档欢迎界面管理员菜单普通登录菜单增加信息查询信息订票保存信息查询信息删除信息退票信息1.2总体结构 图1-1 功能模块图第2章 详细设计主模块流程图欢迎界面管理员菜单普通登录菜单增加信息查询信息订票保存信息查询信息删除信息退票密码验证按车次按终到站按车次按终到站图2.1 主模块流程图车票管理系统软件详细设计一个名Timetable的结构体进行定义,包括 int no;/班次int hour;/发车时间(时)int minute;/发车时间(分)char Starting_station10;/始发站char Last_station10;/终点站float time;/行车时间int max_number;/最大载客数int sold_number;/已售票数等结构体成员。然后对调用函数进行定义。void add()增加记录,void Cipher()密码验证函数,void del()删除班次信息函数,void find(int s1,char s2) 查找函数,int findnum(int s1)查找班次函数,void Input() 信息录入函数,void huanying () 欢迎界面,void land() 登录选择界面,void menu1()管理员菜单界面,void menu2()普通菜单界面,void open() 调用数据函数,void save()保存函数,void searchesmenu()查询菜单,void ticketdelete()退票函数,void ticketorder()售票函数,int timee(int i) 判断时间是否超出函数,void timetable1显示车次函数该系统将这些信息均放在文件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、 作者: 书号:ISBN9787302224464 出版社:。2、 作 者: 书号:ISBN9787302276593出版社:。3、C语言从入门到精通(第2版) 作者: 书号:ISBN 9787302287520出版社:。4、21天学通C语言(第7版) 作者:(美)等著,译 书号:ISBN 9787115355379出版社:。5、C Primer Plus(第五版)中文版 作者:美 书号:ISBN 9787115130228出版社:。谢鸣:百度文库 百度贴吧 百度百科 C语言之家 Linux开源俱乐部网络资料来源:1、2、 3、 Hotscripts 4、附 录(程序清单)代码/增加记录#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>void add() void open();int get();void save();void menu1();int i,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",&timetableclass_num.no);for(i=0;i<class_num;i+)if(timetableclass_num.no=timetablei.no)/比较是否相等,判断车次是否重复 printf("输入错误!n");getch(); /收集回车break;if(i=class_num) get(i,j); /修改及增加班次*class_num+; /使班次数加1save(); /调用保存函数elsemenu1();#include<stdio.h>void Cipher()/密码验证函数int m,n=123;/规定密码void menu1(); /上级菜单的声明;容错机制printf("请输入密码:");/输入提示scanf("%d",&m);/密码输入while(1)/容错机制if(m=n)menu1();elseprintf("密码错误请重新输入:");scanf("%d",&m);/删除班次信息#include<stdio.h>#include<stdlib.h> /system("cls")的声明#include<conio.h> /getch()的声明#include"news.h"void del() void save(); int findnum(int s1);int i,h=0;int num;char or10;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();elseprintf("确定?(y/n)n");/确认机制scanf("%s",or);if(or0='y'|or0='Y')for(;i<class_num-1;i+) timetablei=timetablei+1;class_num-; /班次总数减1save(); /调用保存函数/查找函数#include<stdio.h>#include"news.h"#include<string.h>void find(int s1,char s2)int i,h=0,m;if(s20='0')m=1; /1为无条件执行else m=0;printf("n|-|-|-|-|-|-|-|n"); printf("n| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |n");for(i=0;i<class_num;i+)if(s1=timetablei.no|strcmp(s2,timetablei.Last_station)=0) /判断字符串比较是否相等 printf("n|-|-|-|-|-|-|-|n");printf("|%10d|%5d:%-4d|%10s|%10s|%8.1f|%8d|%8d|n",timetablei.no,timetablei.hour,timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time,timetablei.max_number,timetablei.sold_number);if(m=1)h+;break;printf("n|-|-|-|-|-|-|-|n"); if(h=0)/不能break则执行printf("要查找的班次不存在!n");/查找班次 #include<stdio.h>#include"news.h"int findnum(int s1) int i;printf("n|-|-|-|-|-|-|-|n"); for(i=0;i<class_num;i+)if(s1=timetablei.no) /判断字符串比较是否相等,如果符合则输出车次等信息 printf("|-|-|-|-|-|-|-|n");printf("|%10d|%5d:%-4d|%10s|%10s|%8.1f|%8d|%8d|",timetablei.no,timetablei.hour,timetablei.minute,timetablei.Starting_station,timetablei.Last_station,timetablei.time,timetablei.max_number,timetablei.sold_number);break;printf("n|-|-|-|-|-|-|-|n"); return i;/欢迎界面#include <stdio.h>void huanying ()printf("nnnn");printf("t*n");printf("nnnn");printf("tttt车票管理系统n");printf("nnnn");printf("ttt设计人:李嘉星;刘新月;田宇n");printf("nn");printf("tttt感谢您的使用ntttt按任意键继续n");printf("nn");printf("t*n");/信息录入界面#include <stdio.h>#include "news.h"#include<stdlib.h>#include<conio.h>void Input() int i=0,j=5,h; char s5;void save();void add();void get(int i,int j);FILE *fp; /定义文件型指针变量system("cls"); /清屏if(fp=fopen("车票管理系统0.dat","rb")!=NULL) /fopen打开文件 printf("车票信息已经存在!n");printf("任意输入进入添加菜单n");scanf("%s",s); /收集任意输入i=1; /通过是1add();if(i=0) system("cls"); /清屏printf("请输入要录入班次总数:n");scanf("%d",&class_num); /指向班次指针system("cls"); /清屏for(i=0;i<class_num;i+) system("cls"); /清屏printf("请输入第%d个班次信息:n",i+1);h=-1;for(;h!=i;) /循环输出printf("请输入班次:n");scanf("%d",&timetablei.no);for(h=0;h<i;h+)if(timetableh.no=timetablei.no) printf("输入错误!该班次已存在!n");break; /返回get(i,j); /修改及增加班次j=5;save(); /调用保存函数void get(int i,int j) / 修改及增加班次 for(;)printf("请输入发车时间(xx xx)");scanf("%d %d",&timetablei.hour,&timetablei.minute);if(timetablei.hour<24&&timetablei.hour>=0&&timetablei.minute<60&&timetablei.minute>=0)break;elseprintf("输入错误!n");getch(); /收集回车printf("请输入起点站:n");scanf("%s",timetablei.Starting_station);printf("请输入终点站:n");scanf("%s",timetablei.Last_station);printf("请输入行车时间:n");scanf("%f",&timetablei.time);printf("请输入额定载量:n");scanf("%d",&timetablei.max_number);printf("请输入已售票数:n");scanf("%d",&timetablei.sold_number);/管理员菜单界面#include <stdio.h>void menu1()void Input();void timetable1();void save();void del();void searchesmenu();void land();void add();int n;printf("tttt1、车次信息录入ntttt2、增加车次信息ntttt3、时刻表浏览ntttt4、车辆信息查询ntttt5、注销车次ntttt6、保存ntttt7、返回n");printf("ttt 请输入需要运行的命令编号n"); while(1)/死循环形成菜单scanf("%d",&n);switch(n)case 1:Input();break;/车辆信息录入case 2:add();break;/增加车次信息case 3:timetable1();break;/浏览时刻表case 4:searchesmenu();break;/车辆信息查询case 5:del();break;/注销车次case 6: save();break;/保存命令case 7:land();break;/返回上级菜单default: printf("非法输入n");break;/普通登录菜单#include <stdio.h>void menu2()void timetable1();void ticketorder();void ticketdelete();void land(); void searchesmenu();int n;printf("tttt1、时刻表浏览ntttt2、车辆信息查询ntttt3、购买车票ntttt4、退回车票ntttt5、返回n");printf("ttt 请输入需要运行的命令编号n"); while(1)scanf("%d",&n);switch(n)case 1:timetable1();break;/时刻表浏览case 2:searchesmenu();break;/车辆信息查询case 3:ticketorder();break;/购买车票case 4:ticketdelete(); break;/退回车票case 5:land();break;/返回上级菜单default: printf("非法输入n");break;#include<stdio.h>void huanying ();void land();int main()char ch;huanying(); ch=getchar( );/收集回车land();return 0;#include <stdio.h>#include <stdlib.h>#include "news.h"#include<conio.h>void open()FILE *fp1,*fp2;if(fp1=fopen("车票管理系统.dat","rb")=NULL)system("cls"); /清屏printf("文件打开错误!n");getch(); /收集回车exit(0);if(fp2=fopen("车票管理系统0.dat","rb")=NULL)system("cls"); /清屏printf("文件打开错误!n");getch(); /收集回车 exit(0); /退出fread(&class_num,sizeof(int),1,fp2); /读入信息fread(timetable,sizeof(timetable0),class_num,fp1);/读入信息fclose(fp1);fclose(fp2); /文件关闭#include <stdio.h>#include <stdlib.h>#include "news.h"void save() /保存函数void menu1();FILE *fp1,*fp2; /文件行指针if(fp1=fopen("车票管理系统.dat","wb")=NULL) /打开文件、为输出打开一个二进制文件printf("文件打开错误!n");exit(0);if(fp2=fopen("车票管理系统0.dat","wb")=NULL) /打开文件、为输出打开一个二进制文件printf("文件打开错误!n");exit(0);fwrite(&class_num,sizeof(int),1,fp2); /写入文件信息fwrite(timetable,sizeof(timetable0),class_num,fp1);fclose(fp1);fclose(fp2); /关闭文件 printf("保存成功");menu1();/查询菜单#include<stdio.h>#include<stdlib.h>#include<conio.h>void searchesmenu()int i;void find(int s1,char s2);char s1=0,s210='0'void open();void land();system("cls"); /清屏printf("1. 按班次查询n");printf("2. 按终点站查询n");printf("3. 退出n");printf("请选择(1-3):n");scanf("%d",&i);open(); / 调用按班次查询函数switch(i) /菜单 case 1: printf("请输入要查询的班次:n"); /s1为班次scanf("%d",&s1);find(s1,s2); /调用查找函数break;case 2:printf("请输入要查询终点站:n"); /s2为终点站scanf("%s",s2);find(s1,s2); /调用查找函数break; case 3:land();break;/返回机制default : printf("输入错误!n");break;printf("按任意键继续.n");getch(); /收集回车/退票函数#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>void ticketdelete() int i;int num;char or;int timee();void open(); int findnum(int s1);void save();void menu2();system("cls"); /清屏printf("1. 退票n");printf("2. 返回n");printf("请选择(1-2)n:");scanf("%d",&i);if(i=1)system("cls"); /清屏open(); / 调用按班次查询函数printf("请输入要退票的班次:n");scanf("%d",&num);i=findnum(num); /调用班次查询函数if(num=timetablei.no) /判断字符串比较是否相等 待比较的字符串 if(timee(i) /判断时间是否超出函数scanf("%c",&or);if(or='y'|or='Y')getch();timetablei.sold_number-; /使已售票加1printf("退票成功!n");save(); /调用保存函数getch(); /从控制台读取一个字符,但不显示在屏幕上elseprintf("该班车已发出,无法退票!n");getch(); /收集回车/售票函数#include<stdio.h>#include"news.h"#include<stdlib.h>#include<conio.h>void ticketorder() int i;int num;void save();int timee(int i);void open();void searchesmenu();void land();system("cls"); /清屏printf("1. 售票n");printf("2. 返回n");printf("请选择(1-2):n");scanf("%d",&i);if(i=1)open(); / 调用openprintf("请输入要订票的班次(若无请输入0):n");scanf("%d",&num);for(i=0;i<class_num;i+)if(num=timetablei.no)/比较是否相等if(timetablei.sold_number>timetablei.max_number&&timee(i)=1) /判断时间是否超出函数*并且*没超出最大客量timetablei.sold_number+; /使已售的票数+1printf("通向%s班次为%d的票订票成功!n",timetablei.Starting_station,timetablei.no);save(); /调用保存函数getch(); /收集回车break;elseprintf("该班次已满或已发出!n");getch(); /收集回车land();else land();#include<time.h>#include<stdlib.h>#include"news.h"int timee(int i) /判断时间是否超出函数*struct tm *local; /时间结构体 time_t t; /把当前时间给tt=time(NULL); /NULL在stdio.h中定义为0local=localtime(&t); /获取当前系统时间 if(local->tm_hour<timetablei.hour|local->tm_hour=timetablei.hour&&local->tm_min<timetablei.minute) return 1; else return

    注意事项

    本文(最新c语言课程设计车票系统.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开