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

    c语言学习知识课程教学设计车票管理方案计划系统.doc

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

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

    c语言学习知识课程教学设计车票管理方案计划系统.doc

    -* 河北建筑工程学院 课课 程程 设设 计计 报报 告告 课程设计名称:C 语言课程设计语言课程设计 课程设计题目:车票管理系统车票管理系统 院(系):理学院 专 业:信息与计算科学 班 级:信142 学 号:20143140219 姓 名:李嘉星 指导教师:李鸿强 完成日期: 2015-6-17 -* 目目 录录 前言前言.2 第第 1 章章 概要设计概要设计.3 1.1 题目的内容与要求.3 1.2 总体结构.3 第第 2 章章 详细设计详细设计.4 主模块流程图.4 车票管理系统软件详细设计.4 第第 3 章章 调试分析调试分析.6 第第 4 章章 使用说明与执行结果使用说明与执行结果.7 参考文献参考文献.15 附附 录(程序清单)录(程序清单).16 致致 谢谢.32 -* 前言 随着计算机技术的发展,可视编程技术占有了越来越重要的作用。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 30 2 6:30 郫县 成都 0.5 40 40 3 7:00 郫县 成都 0.5 40 20 4 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、 C 程序设计(第四版) 作者:谭浩强 书号:ISBN9787302224464 出版社:清华 大学出版社。 2、 C 语言学习路线图 作 者:明日科技 书号:ISBN9787302276593 出版社:清华大学 出版社。 3、 C 语言从入门到精通(第 2 版) 作者:明日科技 书号:ISBN 9787302287520 出版社: 清华大学出版社。 4、 21 天学通 C 语言(第 7 版) 作者:(美)琼斯等著,姜估译 书号:ISBN 9787115355379 出版社:人民邮电出版社。 5、 C Primer Plus(第五版)中文版 作者:美Stephen Prata 书号:ISBN 9787115130228 出版社:人民邮电出版社。 谢鸣:百度文库 百度贴吧 百度百科 C 语言之家 Linux 开源俱乐部 网络资料来源: 1、 2、 3、 Hotscripts 4、 -* 附 录(程序清单) 代码 /增加记录 #include #include"news.h" #include #include 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", if(i=1) system("cls"); /清屏 printf("1. 请输入要增加的班次:n"); scanf("%d", 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+; /使班次数加 1 save(); /调用保存函数 -* else menu1(); #include void Cipher()/密码验证函数 int m,n=123;/规定密码 void menu1(); /上级菜单的声明;容错机制 printf("请输入密码:");/输入提示 scanf("%d",/密码输入 while(1)/容错机制 if(m=n) menu1(); else printf("密码错误请重新输入:"); scanf("%d", /删除班次信息 #include #include /system("cls")的声明 #include /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", -* if(i=1) system("cls"); /清屏 printf("请输入要删除的班次:n"); scanf("%d", i=findnum(num); /调用班次查询函数 if(i=class_num) /全部匹配后但无匹配项 printf("输入错误,无此班次!n"); getch(); /收集回车 del(); else printf("确定?(y/n)n");/确认机制 scanf("%s",or); if(or0=y|or0=Y) for(;i<class_num-1;i+) timetablei=timetablei+1; class_num-; /班次总数减 1 save(); /调用保存函数 /查找函数 #include #include"news.h" #include 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 #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 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 #include "news.h" #include #include 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; /通过是 1 add(); if(i=0) system("cls"); /清屏 printf("请输入要录入班次总数:n"); scanf("%d", /指向班次指针 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", 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", if(timetablei.hour=0 else printf("输入错误!n"); getch(); /收集回车 printf("请输入起点站:n"); scanf("%s",timetablei.Starting_station); printf("请输入终点站:n"); scanf("%s",timetablei.Last_station); printf("请输入行车时间:n"); scanf("%f", printf("请输入额定载量:n"); scanf("%d", printf("请输入已售票数:n"); scanf("%d", /管理员菜单界面 #include 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", 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 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", 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 void huanying (); void land(); int main() char ch; huanying(); ch=getchar( );/收集回车 land(); return 0; #include #include #include "news.h" #include 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( /读入信息 fread(timetable,sizeof(timetable0),class_num,fp1);/读入信息 fclose(fp1);fclose(fp2); /文件关闭 #include #include #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( /写入文件信息 fwrite(timetable,sizeof(timetable0),class_num,fp1); fclose(fp1);fclose(fp2); /关闭文件 printf("保存成功"); menu1(); -* /查询菜单 #include #include #include 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", open(); / 调用按班次查询函数 switch(i) /菜单 case 1: printf("请输入要查询的班次:n"); /s1 为班次 scanf("%d", 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 #include"news.h" #include #include -* 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", if(i=1) system("cls"); /清屏 open(); / 调用按班次查询函数 printf("请输入要退票的班次:n"); scanf("%d", i=findnum(num); /调用班次查询函数 if(num=timetablei.no) /判断字符串比较是否相等 待比较的字符串 if(timee(i) /判断时间是否超出函数 scanf("%c", if(or=y|or=Y) getch(); timetablei.sold_number-; /使已售票加 1 printf("退票成功!n"); save(); /调用保存函数 getch(); /从控制台读取一个字符,但不显示在屏幕上 else printf("该班车已发出,无法退票!n"); getch(); /收集回车 -* /售票函数 #include #include"news.h" #include #include 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", if(i=1) open(); / 调用 open printf("请输入要订票的班次(若无请输入 0):n"); scanf("%d", for(i=0;itimetablei.max_number /使已售的票数+1 printf("通向%s 班次为%d 的票订票成功!n",timetablei. Starting_station,timetablei.no); save(); /调用保存函数 getch(); /收集回车 break; else printf("该班次已满或已发出!n"); getch(); /收集回车 -* land(); else land(); #include #include #include"news.h" int timee(int i) /判断时间是否超出函数* struct tm *local; /时间结构体 time_t t; /把当前时间给 t t=time(NULL); /NULL 在 stdio.h 中定义为 0 local=localtime( /获取当前系统时间 if(local->tm_hourtm_hour=timetablei.hour else return 0; #include #include "news.h" #include #include void timetable1() /显示车次函数 int i,j; void open(); int timee(int i); void land(); system("cls"); /清屏 open();/ 调用 open system("cls"); /清屏 printf("*MESSAGE 车程信息 -* *n"); printf("n|-|-|-|-|-|-|-|n"); printf("n| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |n"); for(i=0,j=0;i<class_num;i+,j+=2) /按班次顺序输出 printf("n|-|-|-|-|-|-|-|n"); if(timee(i)/判断时间是否超出 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); else printf("|%10d| 已发车 |%10s|%10s|%8.1f|%8d|%8d|",timetablei.no, timetablei.Starting_station,timetablei.Last_station,timetablei.time, timetablei.max_number,timetablei.sold_number); printf("n|-|-|-|-|-|-|-|n"); printf("n 按任意键继续.n"); getch(); /收集回车 land(); -* 课程设计总结:课程设计总结: 为了提高我们的实践能力和合作能力,让我们学以致用,能灵活运用所学的知识进行 再创造,学校特安排我们进行为期一周的C语言课程设计实习,并安排了专门的指导老师帮 助辅导,让我们在规范化、严谨化、实用化上面有了很大进展。为今后的工作适应环境。 在此次车票管理系统开发过程中,有很多东西值得我们思考并总结。 开发过程大体可分为以下几个步骤: (1)思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序 大体需要的几个模块和其中用到的 C语言基本操作符、语

    注意事项

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

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




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

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

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

    收起
    展开