课设--任务书
更新时间:2024-05-02 21:51:01 阅读量: 综合文库 文档下载
课程设计(论文)任务书
软件 学 院 14软件+电气 专 业 2 班
一、课程设计(论文)题目 火车售票系统 二、课程设计(论文)工作自2016 年 1 月 4 日起至 2016 年1 月 10 日止。
三、课程设计(论文) 地点: 创新大楼303 四、课程设计(论文)内容要求: 1.课程设计的目的
《数据结构》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完 《数据结构》课程后进行的一次全面的综合练习。目的是要达到理论与实际应用相结 合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际 问题在计算机内部表示出来,并培养良好的程序设计技能。
要求能从实际应用问题出发,合理地选择数据结构,设计相应的数据处理算法, 并对算法进行必要的分析;合理选择编程工具,实现数据的物理结构和相应的数据处 理算法;对算法进行调试和测试,并对调试及测试结果进行分析;针对数据结构及算 法的设计、调试及测试过程认真写出设计分析报告。
2.课程设计的任务及要求 1)基本要求
(1)要充分认识课程设计的重要性,认真做好上机前的各项准备工作; (2)独立按时完成规定的工作任务,不得弄虚作假、抄袭他人内容;
(3)课设过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、
按质、按量完成课程设计;
(4)按规范撰写课程设计报告,对设计进行总结和讨论。
2)课程设计论文编写要求
(1)要按照书稿的规格撰写打印课程设计论文;
(2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等; (3)正文中要有问题描述与分析、算法的设计、算法的实现、调试分析与结果; (4)课程设计论文装订按学校的统一要求完成
1
3)课设考核
(1)考勤和态度;
(2)任务的难易程度及设计思路; (3)动手调试能力;
(4)论文撰写的水平、格式的规范性。
4)课程设计进度安排
内容 天数 地点 构思及收集资料 1 创新大楼 程序设计与调试 1 创新大楼 撰写论文 1 创新大楼
5)具体任务及要求
⑴在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、车厢、座位情况。
⑵为简单起见,在此假设所有出售的车票均为同一车次的车票。 ⑶购票时,可以显示余票信息,并可以选择买哪张票。
⑷退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票,而且退票可以再次销售。
⑸演示程序以用户和计算机的对话方式进行。
学生签名:
2016年 1 月 4 日
课程设计(论文)评审意见
(1)考勤和态度 :优( )、良( )、中( )、一般( )、差( ) (2)任务难易及设计思路 :优( )、良( )、中( )、一般( )、差( ) (3)动手调试能力评价 :优( )、良( )、中( )、一般( )、差( ) (4)论文撰写水平及规范性评价:优( )、良( )、中( )、一般( )、差( )
评阅人: 职称: 讲师
年 月 日
2
目 录
1 绪 论 ........................................................................................... 4
1.1 课设的目的 ............................................................................................ 4 1.1.1预期的结果 ......................................... 4
2需求分析 .......................................................................................... 4 3概要设计 .......................................................................................... 4 4详细设计 .......................................................................................... 5 5编码实现 .......................................................................................... 6 6调试分析与结果 .............................................................................. 7 7课设总结.............................................9 参考文献 ........................................................................................... 10 附 录.............................................................................................. 11
3
姓名——题目名称
1 绪 论
1.1 课设的目的
编出一个程序,实现用户可以从网上购买火车票,可以从网上查询还有没有火车票,还有多少票。也可以从网上退掉一些不需要的票。
1.1.1预期的结果
通过我的努力,我对程序有了一个大致的框架构思,我觉得我能设计出能实现以上功能的程序,并且能够实现上述操作,能够进行网上查票,订票与退票。但是程序还不够严谨,我会努力查阅书籍,尽力完善程序。
2需求分析
现在越来越多的人依赖手机,人们用手机上网。如果可以在网上购买火车票,可以省去许多不必要的麻烦,也可以让火车站免于因人们排队购买火车票而造成拥挤。
3概要设计
我用的是c++来书写这个程序,我是根据程序的需求过程来书写程序的顺序。在编写这个程序的时候,我翻阅了相关的书籍,然后上网参考了别人写的程序结构,了解了程序的书写方法,然后写完了程序。在程序中我用顺序表来存储,用do while 来循环订票,判断是否输入错误。以上就是我的设计思路
4
4详细设计
4.1 流程图
火车票网上售票系统
退出 退票 订票 查票
4.2 算法设计
查票
输入终点站与票数 输入终点 输出信息 输入个人信息
退出 核对信息 退出 退票
输入终点站,姓名与证件号
系统核对
5
输出信息
姓名——题目名称
5编码实现
数据体结构声明:#include
#include
构造与初始化单链表:void InitList_L(LinkList &L)
{
L=new LNode; L->next=NULL; }
typedef strucy {
struct Tickets *elem; int length; int listsize; }SqList;
用swich case算法来开始输入: switch(n)
{
case 1:ChaXun(L);break; case 2:DingPiao(L); break; case 3:TuiPiao(L); break; case 4:TuiChu();break; }
6
6调试分析与结果
进入程序根据提示输入数字如图1;然后进入查票界面后输入终点站如
图2.
图1
图2
7
姓名——题目名称
返回主界面后输入2进入订票界面后输入相关信息后如图3所示
图3
返回主界面后进入退票系统后根据提示输入信息后如图4所示
图4
8
华东交通大学课程设计
退完票后返回主界面后进入退出系统如图5所示
图5
7 课设总结
这个程序虽然不是很复杂,但是我努力后的作品,在编写的过程中虽
然很多不懂得地方,但是我通过查阅书籍和别人沟通交流,最终克服了那些问题。
但是在编程的过程中,由于练得少,所以比较生疏,总是忘记加一些字符,但我以后会努力练习,争取彻底弄懂。
通过这次的课程设计,我收获颇丰。这次的实习让我明白了编写一个程序系统的过程是多么的辛苦,哪怕是一个简单的程序也需要花费很大的心思来思考,需要考虑到很多方面的问题。编程的过程虽然是枯燥乏味的,但当我们的努力得到回报之后,那时我们就会觉得吃再多的苦也是值得的。 通过这次课设我学到了更多知识,因为经过了自己认真翻书查阅,记得更加清楚。
9
姓名——题目名称
参考文献
[1] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社, 2007.
[2] 软件开发技术联盟. C语言自学视频教程. 北京;清华大学出版社;2010
[3] 杨开城. C语言程序设计教程,实验与练习.北京:人民邮电出版社,2005
[4] 杨彩霞. C语言程序设计实验指导与习题解答.北京;中国铁道出版社,2006
[5]王贺艳.C语言程序设计综合实训.北京:科学出版社,2005
10
华东交通大学课程设计
附 录
源代码
#include
typedef struct LNode {
struct LNode *next; char* name; int dingnum; char* zhengjian; int chexiang;
int zhuoweihao[300]; int zhekou;
float fufei; }LNode,*LinkList;
typedef struct Tickets { char* endstop; char* checi; float piaojia; float discut; int day; int totalnum; int lastnum; int tuipiao[300]; int tuipiaoshu; int maipiao; LinkList la; }Tickets;
11
姓名——题目名称
void InitList_L(LinkList &L) //初始化单链表 {
L=new LNode; L->next=NULL; }
typedef struct //构造顺序表 {
struct Tickets *elem; int listsize; int length; }SqList;
SqList Create_Sq(SqList &L)//初始化并创建顺序表 {
L.length=7;
L.elem = new Tickets[7];
if (!L.elem) cout<<\存储失败!\ for(int j=0;j L.elem[j].tuipiaoshu=0; L.elem[j].maipiao;//座位号从1开始 } for(int i=0;i InitList_L(L.elem[i].la); //创建顺序表 L.elem[0].endstop=\九江\ L.elem[0].checi=\ L.elem[0].day=18; L.elem[0].piaojia=30; L.elem[0].discut=0.5; L.elem[0].totalnum=L.elem[0].lastnum=100; L.elem[1].endstop=\吉安\ L.elem[1].checi=\ L.elem[1].day=18; L.elem[1].piaojia=37.5; 12 华东交通大学课程设计 L.elem[1].discut=0.5; L.elem[1].totalnum=L.elem[1].lastnum=100; L.elem[2].endstop=\婺源\ L.elem[2].checi=\ L.elem[2].day=18; L.elem[2].piaojia=35; L.elem[2].discut=0.5; L.elem[2].totalnum=L.elem[2].lastnum=100; L.elem[3].endstop=\赣州\ L.elem[3].checi=\ L.elem[3].day=18; L.elem[3].piaojia=40; L.elem[3].discut=0.5; L.elem[3].totalnum=L.elem[1].lastnum=100; L.elem[4].endstop=\安福\ L.elem[4].checi=\ L.elem[4].day=18; L.elem[4].piaojia=50; L.elem[4].discut=0.5; L.elem[4].totalnum=L.elem[4].lastnum=100; L.elem[5].endstop=\井冈山\ L.elem[5].checi=\ L.elem[5].day=18; L.elem[5].piaojia=60; L.elem[5].discut=0.5; L.elem[5].totalnum=L.elem[5].lastnum=100; L.elem[6].endstop=\峡江\ L.elem[6].checi=\ L.elem[6].day=18; L.elem[6].piaojia=20; L.elem[6].discut=0.5; L.elem[6].totalnum=L.elem[6].lastnum=100; return L; } } void ChaXun(SqList &L) 13 姓名——题目名称 { int n1; do{ char *endstop=new char[100]; cout<<\查票窗口********\ cout<<\请输入终点站名:\ cin>>endstop; for(int i=0;i if(strcmp(L.elem[i].endstop,endstop)==0) { cout< cout<<\日期:\月\日\ cout<<\车次:\ cout<<\车厢号: \ cout<<\票价:\ cout<<\学生5折): \ cout<<\余票量:\ cout<<\总票量:\ break; } if(i==L.length-1)cout< cout<<\返回主菜单;2.继续\ cin>>n1; }while(n1==2); } void DingPiao(SqList &L) { int n2=2,zhekou; int num; float money; char *endstop=new char[100]; char *name=new char[100]; 14 华东交通大学课程设计 char *zhengjian=new char[100]; do { cout< cout<<\订票数:\ cin>>num; for(int i=0;i if(strcmp(L.elem[i].endstop,endstop)==0) //有票 { if(L.elem[i].lastnum==0) { cout< cout< else if(num>L.elem[i].lastnum) { cout< { cout< cout<<\能不能打折(1:能,2:不能)\ cin>>zhekou; while(zhekou!=1&&zhekou!=2) { cout<<\输入错误\ cin>>zhekou; 15 姓名——题目名称 } if(zhekou==1) { cout<<\学生证号码:\ cin>>zhengjian; } else { cout<<\身份证号码:\ cin>>zhengjian; } cout< cout<<\日期:\月\日\ cout<<\车次:\ cout<<\车厢号: \ cout<<\姓名:\ cout<<\证件号码:\ if(zhekou==1) { cout<<\学生5折): \ money=L.elem[i].piaojia*L.elem[i].discut*num; } else { cout<<\票价:\ money=L.elem[i].piaojia*num; } cout<<\订票数:\ cout<<\座位号:\ //有退票优先卖退票 int k=0; //k为买到的票是退票的数目 for(int j=L.elem[i].tuipiaoshu-1;j>=0;j--) { cout<<\ k++; if(k>=num)break; 16 华东交通大学课程设计 } if(k for(int j=0;j cout<<\ } cout< cout<<\订票成功!\ L.elem[i].lastnum-=num; LinkList p,s; //用座位号记录购票人信息 p=L.elem[i].la; s=new LNode; if(!s) { cout<<\内存分配失败!\ } else { s->next=p->next; p->next=s; s->dingnum=num; s->fufei=money; s->zhekou=zhekou; s->name=new char[100]; s->zhengjian=new char[100]; strcpy(s->name,name); strcpy(s->zhengjian,zhengjian); int index=0; //座位号 while(L.elem[i].tuipiao>0) //买到的票是退票 { int j=L.elem[i].tuipiaoshu-1; s->zhuoweihao[index++]=L.elem[i].tuipiao[j]; 17 姓名——题目名称 L.elem[i].tuipiaoshu--; if(index>=num)break; } while(index s->zhuoweihao[index++]=L.elem[i].maipiao++; } } } } break; } } } while(n2==2); } void TuiPiao(SqList &L) { int n3=2,k; LinkList p; char *name=new char[100]; char *zhengjian=new char[100]; char *endstop=new char[100]; do { cout< for(int i=0;i if(!(strcmp(L.elem[i].endstop,endstop)==0)) { p=L.elem[i].la; if(!p->next)cout<<\没有该购票者\ else { p=p->next; 18 华东交通大学课程设计 while(!(strcmp(p->zhengjian,zhengjian)==0)&&p->next) p=p->next; if(strcmp(p->zhengjian,zhengjian)==0) { cout< cout<<\日期:\月\日\ cout<<\车次:\ cout<<\车厢号: \ cout<<\姓名:\ cout<<\证件号码:\ if(p->zhekou==1) { cout<<\票价:\ } else { cout<<\票价: \ } cout<<\订票数:\ cout<<\座位号:\ for(int j=0;j cout<<\ } cout< if(k>p->dingnum) { cout<<\你只有\张票,请重新确认!\ cout<<\重新确定;2.返回主菜单\ cin>>n3; } else 19 姓名——题目名称 { cout<<\确认;2取消;3.返回主菜单\ cin>>n3; if(n3==1) { cout<<\退票成功!\ for(int i1=L.elem[i].tuipiaoshu,i2=p->dingnum-1;i1 L.elem[i].tuipiao[i1]=p->zhuoweihao[i2]; } L.elem[i].tuipiaoshu+=k; L.elem[i].lastnum+=k; if(k==p->dingnum) { LinkList q=L.elem[i].la; while(q->next!=p)q=q->next; q->next=p->next; free(p); n3=3; } else { if(p->fufei==p->dingnum*L.elem[i].piaojia)p->fufei-=L.elem[i].piaojia*k; else { p->fufei-=L.elem[i].piaojia*k*L.elem[i].discut; } p->dingnum-=k; cout<<\你还有\张票\ n3=3; } } 20 华东交通大学课程设计 } } else { cout<<\没有该购票者购票的信息!请重新确认!\ n3=3; } } break; } } }while(n3==2); } void TuiChu() { cout< void main() { LinkList L0; InitList_L(L0); SqList L; Create_Sq(L); int n; do{ cout< cout<<\本站车票信息******************\ cout<<\日期\目的地\\车次\票价 *\ for(int i=0;i cout<<\ \月\日 21 姓名——题目名称 \ } cout<<\查询 2.订票 *\ cout<<\退票 4.退出 *\ cout<<\ ***************************************************\ cout< case 1:ChaXun(L); break; case 2:DingPiao(L); break; case 3:TuiPiao(L); break; case 4:TuiChu(); break; } }while(n!=4); cout< system(\系统终止,结束程序 } 22
正在阅读:
课设--任务书05-02
无处不在的皇上和公主作文300字06-25
(值得收藏)拳皇97人物绝对电脑键盘出招表(带图)06-11
科学谋划 夯实提升 赢在高效08-20
选修5《有机化学基础》测试试题205-17
数字的排列规律01-04
江苏师姓分布与支脉 - 图文09-09
初一历史第三单元统一国家的建立03-14
Photoshop实验指导书07-28
工程的量签证单(实用模板)09-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 任务书
- 创 杯 方 案
- 二年级上册语文基础训练答案
- 马克思主义与社会科学方法论课程论文2(3000字)
- XX年法院执行局的述职报告
- C#课后习题复习题
- 武汉理工大学本科工程经济学作业答案
- 014模仿中创新:标杆管理实操
- 《微机原理2》计算机接口技术
- 精品基于Delphi的题库系统和试卷生成系统论文-定
- 九年义务教育课本二年级第二学期数学教参
- 运筹学 - 案例分析
- 实验六SDS-PAGE
- 初二下物理讲义卷 1-16
- 工业分析与检验专业英文自荐书(精选多篇)
- C语言课程设计总结报告
- 土木工程毕业设计计算书和施工组织
- 武汉世纪华胜110kV变电站仿真系统性能说明书 - 图文
- 审计案例分析教材中复习思考题答案
- 葡萄籽油项目可行性研究报告(目录) - 图文
- 透明塑料光穿透率及雾度的标准检测方法