课设任务书.docx

上传人:b****7 文档编号:23878518 上传时间:2023-05-21 格式:DOCX 页数:27 大小:99.03KB
下载 相关 举报
课设任务书.docx_第1页
第1页 / 共27页
课设任务书.docx_第2页
第2页 / 共27页
课设任务书.docx_第3页
第3页 / 共27页
课设任务书.docx_第4页
第4页 / 共27页
课设任务书.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

课设任务书.docx

《课设任务书.docx》由会员分享,可在线阅读,更多相关《课设任务书.docx(27页珍藏版)》请在冰豆网上搜索。

课设任务书.docx

课设任务书

课程设计(论文)任务书

软件学  院  14软件+电气专  业2班

一、课程设计(论文)题目  火车售票系统  

二、课程设计(论文)工作自2016年1月4日起至2016年1月10日止。

三、课程设计(论文)地点:

创新大楼303

四、课程设计(论文)内容要求:

1.课程设计的目的

《数据结构》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完

《数据结构》课程后进行的一次全面的综合练习。

目的是要达到理论与实际应用相结

合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际

问题在计算机内部表示出来,并培养良好的程序设计技能。

要求能从实际应用问题出发,合理地选择数据结构,设计相应的数据处理算法,

并对算法进行必要的分析;合理选择编程工具,实现数据的物理结构和相应的数据处

理算法;对算法进行调试和测试,并对调试及测试结果进行分析;针对数据结构及算

法的设计、调试及测试过程认真写出设计分析报告。

2.课程设计的任务及要求

1)基本要求

(1)要充分认识课程设计的重要性,认真做好上机前的各项准备工作;

(2)独立按时完成规定的工作任务,不得弄虚作假、抄袭他人内容;

(3)课设过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、

按质、按量完成课程设计;

(4)按规范撰写课程设计报告,对设计进行总结和讨论。

2)课程设计论文编写要求

(1)要按照书稿的规格撰写打印课程设计论文;

(2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等;

(3)正文中要有问题描述与分析、算法的设计、算法的实现、调试分析与结果;

(4)课程设计论文装订按学校的统一要求完成

3)课设考核

(1)考勤和态度;

(2)任务的难易程度及设计思路;

(3)动手调试能力;

(4)论文撰写的水平、格式的规范性。

4)课程设计进度安排

内容天数      地点

构思及收集资料1       创新大楼

程序设计与调试1       创新大楼

撰写论文1       创新大楼

5)具体任务及要求

⑴在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、车厢、座位情况。

⑵为简单起见,在此假设所有出售的车票均为同一车次的车票。

⑶购票时,可以显示余票信息,并可以选择买哪张票。

⑷退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票,而且退票可以再次销售。

⑸演示程序以用户和计算机的对话方式进行。

学生签名:

2016年1月4日

课程设计(论文)评审意见

(1)考勤和态度:

优( )、良( )、中( )、一般( )、差( )

(2)任务难易及设计思路 :

优( )、良( )、中( )、一般( )、差( )

(3)动手调试能力评价  :

优( )、良( )、中( )、一般( )、差( )

(4)论文撰写水平及规范性评价:

优( )、良( )、中( )、一般( )、差( )

 

评阅人:

 职称:

讲师

年月日

目 录

1绪论4

1.1课设的目的4

1.1.1预期的结果4

2需求分析4

3概要设计4

4详细设计5

5编码实现6

6调试分析与结果7

7课设总结.............................................9

参考文献10

附录11

 

1绪论

1.1课设的目的

编出一个程序,实现用户可以从网上购买火车票,可以从网上查询还有没有火车票,还有多少票。

也可以从网上退掉一些不需要的票。

1.1.1预期的结果

通过我的努力,我对程序有了一个大致的框架构思,我觉得我能设计出能实现以上功能的程序,并且能够实现上述操作,能够进行网上查票,订票与退票。

但是程序还不够严谨,我会努力查阅书籍,尽力完善程序。

2需求分析

现在越来越多的人依赖手机,人们用手机上网。

如果可以在网上购买火车票,可以省去许多不必要的麻烦,也可以让火车站免于因人们排队购买火车票而造成拥挤。

3概要设计

我用的是c++来书写这个程序,我是根据程序的需求过程来书写程序的顺序。

在编写这个程序的时候,我翻阅了相关的书籍,然后上网参考了别人写的程序结构,了解了程序的书写方法,然后写完了程序。

在程序中我用顺序表来存储,用dowhile来循环订票,判断是否输入错误。

以上就是我的设计思路

4详细设计

4.1流程图

火车票网上售票系统

 

4.2算法设计

 

5编码实现

数据体结构声明:

#include

#include

usingnamespacestd;

构造与初始化单链表:

voidInitList_L(LinkList&L)

{

L=newLNode;

L->next=NULL;

}

typedefstrucy

{

structTickets*elem;

intlength;

intlistsize;

}SqList;

 

用swichcase算法来开始输入:

switch(n)

{

case1:

ChaXun(L);break;

case2:

DingPiao(L);break;

case3:

TuiPiao(L);break;

case4:

TuiChu();break;

}

6调试分析与结果

进入程序根据提示输入数字如图1;然后进入查票界面后输入终点站如图2.

图1

图2

 

返回主界面后输入2进入订票界面后输入相关信息后如图3所示

图3

返回主界面后进入退票系统后根据提示输入信息后如图4所示

图4

退完票后返回主界面后进入退出系统如图5所示

图5

7课设总结

这个程序虽然不是很复杂,但是我努力后的作品,在编写的过程中虽然很多不懂得地方,但是我通过查阅书籍和别人沟通交流,最终克服了那些问题。

但是在编程的过程中,由于练得少,所以比较生疏,总是忘记加一些字符,但我以后会努力练习,争取彻底弄懂。

通过这次的课程设计,我收获颇丰。

这次的实习让我明白了编写一个程序系统的过程是多么的辛苦,哪怕是一个简单的程序也需要花费很大的心思来思考,需要考虑到很多方面的问题。

编程的过程虽然是枯燥乏味的,但当我们的努力得到回报之后,那时我们就会觉得吃再多的苦也是值得的。

通过这次课设我学到了更多知识,因为经过了自己认真翻书查阅,记得更加清楚。

参考文献

[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:

清华大学出版社,2007.

[2]软件开发技术联盟.C语言自学视频教程.北京;清华大学出版社;2010

[3]杨开城.C语言程序设计教程,实验与练习.北京:

人民邮电出版社,2005

[4]杨彩霞.C语言程序设计实验指导与习题解答.北京;中国铁道出版社,2006

[5]王贺艳.C语言程序设计综合实训.北京:

科学出版社,2005

附录

源代码

#include

#include

usingnamespacestd;

typedefstructLNode

{

structLNode*next;

char*name;

intdingnum;

char*zhengjian;

intchexiang;

intzhuoweihao[300];

intzhekou;

floatfufei;

}LNode,*LinkList;

typedefstructTickets

{

char*endstop;

char*checi;

floatpiaojia;

floatdiscut;

intday;

inttotalnum;

intlastnum;

inttuipiao[300];

inttuipiaoshu;

intmaipiao;

LinkListla;

}Tickets;

voidInitList_L(LinkList&L)//初始化单链表

{

L=newLNode;

L->next=NULL;

}

typedefstruct//构造顺序表

{

structTickets*elem;

intlistsize;

intlength;

}SqList;

SqListCreate_Sq(SqList&L)//初始化并创建顺序表

{

L.length=7;

L.elem=newTickets[7];

if(!

L.elem)cout<<"存储失败!

"<

for(intj=0;j

{

L.elem[j].tuipiaoshu=0;

L.elem[j].maipiao;//座位号从1开始

}

for(inti=0;i

{

InitList_L(L.elem[i].la);//创建顺序表

L.elem[0].endstop="九江";

L.elem[0].checi="T001";

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="T002";

L.elem[1].day=18;

L.elem[1].piaojia=37.5;

L.elem[1].discut=0.5;

L.elem[1].totalnum=L.elem[1].lastnum=100;

L.elem[2].endstop="婺源";

L.elem[2].checi="T003";

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="T004";

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="T005";

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="T006";

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="T007";

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;

returnL;

}

}

 

voidChaXun(SqList&L)

{

intn1;

do{

char*endstop=newchar[100];

cout<<"*******查票窗口********"<

cout<<"请输入终点站名:

";

cin>>endstop;

for(inti=0;i

{

if(strcmp(L.elem[i].endstop,endstop)==0)

{

cout<"<

"<

cout<<"日期:

"<<"1月"<

cout<<"车次:

"<

cout<<"车厢号:

"<<"1"<

cout<<"票价:

"<

cout<<"(学生5折):

"<

cout<<"余票量:

"<

cout<<"总票量:

"<

break;

}

if(i==L.length-1)cout<

"<

}

cout<<"1.返回主菜单;2.继续"<

cin>>n1;

}while(n1==2);

}

voidDingPiao(SqList&L)

{

intn2=2,zhekou;

intnum;

floatmoney;

char*endstop=newchar[100];

char*name=newchar[100];

char*zhengjian=newchar[100];

do

{

cout<

cout<

";

cin>>endstop;

cout<<"订票数:

";

cin>>num;

for(inti=0;i

{

if(strcmp(L.elem[i].endstop,endstop)==0)//有票

{

if(L.elem[i].lastnum==0)

{

cout<

"<

cout<

cin>>n2;

}

elseif(num>L.elem[i].lastnum)

{

cout<

"<

cout<

cin>>n2;

}

else

{

cout<

"<

cout<<"姓名:

"<

cin>>name;

cout<<"能不能打折(1:

能,2:

不能)"<

cin>>zhekou;

while(zhekou!

=1&&zhekou!

=2)

{

cout<<"输入错误"<

cin>>zhekou;

}

if(zhekou==1)

{

cout<<"学生证号码:

"<

cin>>zhengjian;

}

else

{

cout<<"身份证号码:

"<

cin>>zhengjian;

}

cout<

"<

cout<<"南昌--"<

"<

cout<<"日期:

"<<"1月"<

cout<<"车次:

"<

cout<<"车厢号:

"<<"1"<

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<<"座位号:

";

//有退票优先卖退票

intk=0;//k为买到的票是退票的数目

for(intj=L.elem[i].tuipiaoshu-1;j>=0;j--)

{

cout<<""<

k++;

if(k>=num)break;

}

if(k

{

for(intj=0;j

cout<<""<

}

cout<

"<

cout<<"1.确认;2.取消;3.返回主菜单"<

cin>>n2;

if(n2==1)

{

cout<<"订票成功!

"<

L.elem[i].lastnum-=num;

LinkListp,s;//用座位号记录购票人信息

p=L.elem[i].la;

s=newLNode;

if(!

s)

{

cout<<"内存分配失败!

"<

}

else

{

s->next=p->next;

p->next=s;

s->dingnum=num;

s->fufei=money;

s->zhekou=zhekou;

s->name=newchar[100];

s->zhengjian=newchar[100];

strcpy(s->name,name);

strcpy(s->zhengjian,zhengjian);

intindex=0;//座位号

while(L.elem[i].tuipiao>0)//买到的票是退票

{

intj=L.elem[i].tuipiaoshu-1;

s->zhuoweihao[index++]=L.elem[i].tuipiao[j];

L.elem[i].tuipiaoshu--;

if(index>=num)break;

}

while(index

{

s->zhuoweihao[index++]=L.elem[i].maipiao++;

}

}

}

}

break;

}

}

}

while(n2==2);

}

voidTuiPiao(SqList&L)

{

intn3=2,k;

LinkListp;

char*name=newchar[100];

char*zhengjian=newchar[100];

char*endstop=newchar[100];

do

{

cout<

cout<<"证件号:

"<

cin>>zhengjian;

for(inti=0;i

{

if(!

(strcmp(L.elem[i].endstop,endstop)==0))

{

p=L.elem[i].la;

if(!

p->next)cout<<"没有该购票者"<

else

{

p=p->next;

while(!

(strcmp(p->zhengjian,zhengjian)==0)&&p->next)p=p->next;

if(strcmp(p->zhengjian,zhengjian)==0)

{

cout<

"<

cout<<"南昌-->"<

cout<<"日期:

"<<"1月"<

cout<<"车次:

"<

cout<<"车厢号:

"<<"1"<

cout<<"姓名:

"<name<

cout<<"证件号码:

"<zhengjian<

if(p->zhekou==1)

{

cout<<"票价:

"<

}

else

{

cout<<"票价:

"<

}

cout<<"订票数:

"<dingnum<

cout<<"座位号:

";

for(intj=0;jdingnum;j++)

{

cout<<""<zhuoweihao[j];

}

cout<

"<fufei<

cout<<"退几张?

"<

cin>>k;

if(k>p->dingnum)

{

cout<<"你只有"<dingnum<<"张票,请重新确认!

"<

cout<<"1.重新确定;2.返回主菜单"<

cin>>n3;

}

else

{

cout<<"1.确认;2取消;3.返回主菜单"<

cin>>n3;

if(n3==1)

{

cout<<"退票成功!

"<

for(inti1=L.elem[i].tuipiaoshu,i2=p->dingnum-1;i1p->dingnum-k-1;i1++,i2--

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1