课程设计报告书模板.docx

上传人:b****8 文档编号:30135123 上传时间:2023-08-05 格式:DOCX 页数:13 大小:115.57KB
下载 相关 举报
课程设计报告书模板.docx_第1页
第1页 / 共13页
课程设计报告书模板.docx_第2页
第2页 / 共13页
课程设计报告书模板.docx_第3页
第3页 / 共13页
课程设计报告书模板.docx_第4页
第4页 / 共13页
课程设计报告书模板.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

课程设计报告书模板.docx

《课程设计报告书模板.docx》由会员分享,可在线阅读,更多相关《课程设计报告书模板.docx(13页珍藏版)》请在冰豆网上搜索。

课程设计报告书模板.docx

课程设计报告书模板

任务要求:

编程模拟火车站售票大厅,售票厅内任何时刻最多可以容纳20名旅客进入购票,否则在售票厅外等候。

1.要求建立就绪等待队列和进程运行队列,售票员有一人

2.使用信号量相关知识编程,并且就绪队列与进程运行队列要动态更新。

内容摘要:

1、乘客购票时用菜单选择起点站和终到站。

如果选择的起点站和终到站为同一个站则报错,程序退出。

2、选好起点站和终到站之后,通过调用函数intBuyTicket()为之计算票价和里程,并在屏幕上显示出来。

3、售票大厅人数一旦到达20,就不能进入,等待。

4、要求采用数组、结构体等数据类型。

教师评语:

 

成绩

签名:

日期:

 

课程设计报告书

 

售票员与乘客

 

班级:

方0905-2

学号:

20095765

姓名:

刘康

指导教师:

焦小炜

 

石家庄铁道大学四方学院

2012年6月12日

一设计思想

一、编程实现车票订购统计系统:

下图是昆明——北京的沿途车站与票价:

请用C语言为之开发一个售票程序,要求如下:

1.乘客购票时用菜单选择起点站和终到站。

如果选择的起点站和终到站为同一个站则报错,程序退出。

2.选好起点站和终到站之后,通过调用函数intBuyTicket()为之计算票价和里程,并在屏幕上显示出来。

3.假设一天的业务量不超过1000张票,存储每一次售票记录,并统计一天的总售票金额,到各站的旅客流量。

4.要求采用数组、结构体等数据类型。

二系统完成功能及框图

系统完成功能:

三核心算法及说

1.主函数

voidmain()

{

if(count<1000)

{printf("***欢迎使用铁路售票系统***\n");/*约束售票上限,每天不超过1000张*/

control();

control();

control();

place();

choice();

BuyTicket(a,b,r);

}

elseprintf("对不起,票已售完!

\n");

}

voidplace()/*输出供选择的站名*/

{

printf("***您已进入买票程序***\n");

printf("以下为供选择站名:

\n");

for(i=0;i<5;i++)

printf("%d%s\n",sta[i].num,sta[i].place);

}

2.流量处理函数

voidliuliang()

{intcount1=0,count2=0;

intcount3;

for(i=0;i<4;i++)

{

for(j=0;j<100;j++)

{

if(strcmp(sells[j].starpl,sta[i].place)==0)

count1=count1+sells[j].number;

if(strcmp(sells[j].endpl,sta[i].place)==0)

count2=count2+sells[j].number;

}

count3=count1+count2;

printf("%s站的旅客流量为:

%d\n",sta[i].place,count3);

}

}

四界面设计

五结论

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。

这次课程设计,开始感觉还是比较难的,因为我觉得自己上学期学的不够努力,没有掌握好老师课堂所讲内容,课后也没有认真的复习。

因此在完成这次课程设计过程中遇到了不少困难.但是,通过读课本、上网查资料,当然,更离不开老师和同学们的帮助,最终完成了本次设计!

在这里郑重的像他们表示感谢,谢谢大家!

参考资料

《C程序设计(第二版)》谭浩强著

《C程序设计(第三版)》谭浩强著

附录

程序代码如下:

#include/*文件包含处理*/

#include

#include

voidplace();/*函数声明*/

voidBuyTicket(intx,inty,intz);

voidcontrol();

voidrecords();

voidchoice();

voidliuliang();

inta,b,r;/*定义全局变量*/

inti,j=0,count=0;

structsta_Info/*定义结构体数组以存储车站信息*/

{

charplace[6];

intnum;

intdistance;

intprice;

}sta[5]={

{"昆明",0,700,68},

{"长沙",1,1100,90},

{"武汉",2,1000,85},

{"郑州",3,500,60},

{"北京",4,0,0}

};

structsell/*定义存储售票记录的结构体*/

{

charstarpl[6];

charendpl[6];

intnumber;

inttotalpri;

}sells[100];

voidmain()/*主函数*/

{

if(count<1000)

{printf("***欢迎使用铁路售票系统***\n");/*约束售票上限,每天不超过1000张*/

control();

control();

control();

place();

choice();

BuyTicket(a,b,r);

}

elseprintf("对不起,票已售完!

\n");

}

voidplace()/*输出供选择的站名*/

{

printf("***您已进入买票程序***\n");

printf("以下为供选择站名:

\n");

for(i=0;i<5;i++)

printf("%d%s\n",sta[i].num,sta[i].place);

}

voidBuyTicket(intx,inty,intz)/*购票函数,计算票价和里程并且输出*/

{

intd=0,p=0;

intt;

if(a>b)

{

t=a;

a=b;

b=t;

for(i=a;i

{d=d+sta[i].distance;

p=p+sta[i].price;

}

p=p*r;

printf("%s-->%s\n",sta[b].place,sta[a].place);

strcpy(sells[j].starpl,sta[b].place);/*把此次起始站存入结构体数组中*/

strcpy(sells[j].endpl,sta[a].place);/*把此次终点站存入结构体数组中*/}

else

{

for(i=a;i

{

d=d+sta[i].distance;

p=p+sta[i].price;

}

p=p*r;

printf("%s---%s\n",sta[a].place,sta[b].place);

strcpy(sells[j].starpl,sta[a].place);

strcpy(sells[j].endpl,sta[b].place);

}

printf("票价:

%d元\n",p);

printf("里程:

%dkm\n",d);

sells[j].number=r;/*把此次卖出票数存入结构体数组中*/

sells[j].totalpri=p;/*把此次起售票金额存入结构体数组中*/

count=count+sells[j].number;/*记录卖票张数*/

j++;

}

voidliuliang()/*流量处理函数*/

{intcount1=0,count2=0;

intcount3;

for(i=0;i<4;i++)

{

for(j=0;j<100;j++)

{

if(strcmp(sells[j].starpl,sta[i].place)==0)

count1=count1+sells[j].number;

if(strcmp(sells[j].endpl,sta[i].place)==0)

count2=count2+sells[j].number;

}

count3=count1+count2;

printf("%s站的旅客流量为:

%d\n",sta[i].place,count3);

}

}

voidchoice()/*选择起始站和终点站的函数*/

{

while(a<0||a>4);

{

printf("请输入起始站所对应的数字:

\n");

scanf("%d",&a);

if(a<0||a>4)

printf("您的输入有误,请重新输入!

\n");

}

while(b<0||b>4);

{

printf("请输入终点站所对应的数字:

\n");

scanf("%d",&b);

if(b<0||b>4)

printf("您的输入有误,请重新输入!

\n");

}

if(a==b)

{

printf("对不起,您的输入有误!

\n");

exit

(1);

}

else

{printf("请输入您想买的张数:

");

scanf("%d",&r);

}

}

voidrecords()/*输出售票情况信息*/

{

inttotal=0;

for(j=0;j<100;j++)

{

total=total+sells[j].totalpri;

}

printf("今天总共卖出%d张票\n",count);

printf("售票总金额为:

%d元\n",total);

}

voidcontrol()/*用户控制*/

{intc;

printf("请输入您的选择:

\n1.买票\n2.查看今天卖票情况\n3.查看各车站流量\n");

scanf("%d",&c);

if(c==1)/*进入买票函数*/

{

place();

choice();

BuyTicket(a,b,r);

}

else

{if(c==2)/*输出今天售票金额*/

records();

else

if(c==3)

liuliang();

}

}

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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