公交车站管理系统c++解析.docx
《公交车站管理系统c++解析.docx》由会员分享,可在线阅读,更多相关《公交车站管理系统c++解析.docx(17页珍藏版)》请在冰豆网上搜索。
公交车站管理系统c++解析
沈阳航空航天大学
实验报告
课程名称:
面向对象程序设计及C++
实验题目:
公交车站点信息管理软件
院(系):
计算机学院
专业:
计算机科学与技术
班级:
34010105
学号:
2013040101204
姓名:
孙思
一、实验目的
达到对所学面向对象程序设计知识的一次综合运用,熟练掌握面象对象分析问题、解决问题的方法。
2、实验内容描述
设计一个公交车站点信息管理软件,它能够被用户和管理人员使用,管理人员利用这个软件对站点进行插入、删除的管理功能;用户则可以利用这个软件查询公交车站的信息,例如,某路公交经过的所有站点。
三、类设计及描述
该程序设计了一个公交车类bus,其中定义了name表示公交车的线路名称例如100,spot_num表示一路公交汽车经过的站点的个数,字符数组spot[50][30]表示该路公交车经过的站点个数用字符数组数组spot[50][]表示,每个站点的名字用字符数组spot[][30]表示。
Bus类中还定义了三个函数Insert,Delete,search_name,分别表示向某路公交车线路中加入、删除站点信息以及线路的查询。
四、关键函数描述
findstat:
显示查询线路函数。
显示查询线路目录,用户根据提示选择要查询线路的所有站点,根据输入的选项,调用函数search_name输出该路线的所有站点信息。
init:
初始化函数,读入已经存好的站点信息。
user:
显示使用者界面函数。
有查询公交车线路和返回选项,根据用户输入,调用findstat函数或者返回主界面,当输入其它选项时输出“并没有这个选项”。
addstat:
显示加入站点函数。
根据输入情况对某路公交车调用insert函数插入站点。
当输入其它选项时输出“并没有这个选项”。
delestat:
显示删除站点函数。
根据输入情况对某路公交车调用delete函数删除站点。
当输入其它选项时输出“并没有这个选项”。
manager:
显示管理者界面函数。
有加入、删除、查询站点三个选项,根据输入分别调用addstat、delestat、findstat函数。
当输入其它选项时输出“并没有这个选项”。
main:
主函数。
显示初始界面,选择进入管理者界面或者使用者界面或者退出程序。
分别调用manager函数或者user函数。
bus类中定义的函数:
1.Insert:
加入某站
输入要加入站点的位置,用一个for循环找到正确的位置,输入要加入站点名称,并且用strcpy函数依次将后边的站点向后移动一位,站点的个数增加一个。
增加成功后显示“加入成功!
”。
2.Delete:
删除某站
输入要删除站点的名称,对比已经存在的站点和要删除的站点找到找到正确的位置,依次将后边的站点向前移动一位,站点的个数减一。
删除成功后显示“删除站点成功”。
3.search_name:
输出公交车所有路线
用for循环输出每个站点的信息,输出spot[i]。
5、程序测试/运行的结果
图5.1初始界面
图5.2管理者界面
图5.3查询界面
图5.4显示线路界面
图5.5插入站点界面
图5.6成功插入站点信息界面
图5.7再次查询检验是否成功插入界面
图5.8删除站点界面
图5.9成功删除站点界面
图5.10再次查询检查是否成功删除站点界面
图5.11使用者界面
图5.11查询站点界面
图5.12显示线路界面
6、实验总结
在课堂上我知道了c++是兼容c语言的,但是在变成过程中还是体会到了两者之间不小的差别,c语言中没有类的概念,但是和c语言的结构体很像但是又不完全相同,这给我刚编程是造成了很多的困扰,后来理清思路设计每一个功能模块,再将每个函数实现,软件就完成了。
这次程序设计老师让我们自己设计功能自由发挥,有很多东西要写但是后来将程序变得复杂,最后删了又删,有很多地方还不够完善,界面做的也不够美观。
但是这次程序设计还是有很大的收获,理论的学习和实际操作还是有很大的差距,只有勤于练习才能学好c++。
附录(实验代码)
#include
#include
#include
#include
usingnamespacestd;
classbus
{
public:
intname,spot_num;
charspot[50][30];
intInsert();//加入某站
intDelete();//删除某站
intsearch_name();//输出公交车所有路线
};
staticbuscar1,car2,car3;
intbus:
:
Insert()
{
intloc,i;
charaddstation[10];
cout<<"请输入要加入的站点的名称"<cin>>addstation;
cout<<"请输入要加入的位置"<cin>>loc;
for(i=spot_num++;i>=loc;i--)
strcpy(spot[i],spot[i-1]);
strcpy(spot[i],addstation);
cout<<"加入成功!
!
"<system("pause");
return0;
}
intbus:
:
Delete()
{
inti;
charaddstation[10];
cout<<"请输入要删除的站的名称"<cin>>addstation;
for(i=spot_num-1;i>=0;i--)
{
if(strcmp(spot[i],addstation)==0)
{
for(;istrcpy(spot[i],spot[i+1]);
break;
}
}
spot_num--;
cout<<"删除站点成功"<system("pause");
return0;
}
intbus:
:
search_name()
{
inti=0;
cout<"<for(;icout<cout<system("pause");
return0;
}
intfindstat()
{
intn;
while
(1)
{
system("CLS");
printf("\n\n\t\t1.查询100路的所有站点\n");
printf("\t\t2.查询200路的所有站点\n");
printf("\t\t3.查询300路的所有站点\n");
printf("\t\t4.退出\n");
scanf("%d",&n);
switch(n)
{
case1:
system("CLS");car1.search_name();break;
case2:
system("CLS");car2.search_name();break;
case3:
system("CLS");car3.search_name();break;
case4:
return0;
default:
printf("并没有这个选项\n");system("pause");
}
}
return0;
}
intinit()
{
inti;
FILE*f=fopen("input.txt","r");
car1.name=100;
car2.name=200;
car3.name=300;
car1.spot_num=9;
car2.spot_num=9;
car3.spot_num=9;
for(i=0;i<9;i++)
fscanf(f,"%s",car1.spot[i]);
for(i=0;i<9;i++)
fscanf(f,"%s",car2.spot[i]);
for(i=0;i<9;i++)
fscanf(f,"%s",car3.spot[i]);
return0;
}
intuser()
{
intn;
while
(1)
{
system("CLS");
printf("\n\n\t\t使用者界面\n");
printf("\t\t1.查询公交车线路\n");
printf("\t\t2.返回\n");
scanf("%d",&n);
switch(n)
{
case1:
findstat();break;
case2:
return0;
default:
printf("并没有这个选项\n");system("pause");
}
}
return0;
}
intaddstat()
{
intn;
while
(1)
{
system("CLS");
printf("\n\n\t\t1.向100路中加入站点\n");
printf("\t\t2.向200路中加入站点\n");
printf("\t\t3.向300路中加入站点\n");
printf("\t\t4.退出\n");
scanf("%d",&n);
switch(n)
{
case1:
car1.Insert();break;
case2:
car2.Insert();break;
case3:
car3.Insert();break;
case4:
return0;
default:
printf("并没有这个选项\n");system("pause");
}
}
return0;
}
intdelestat()
{
intn;
while
(1)
{
system("CLS");
printf("\n\n\t\t1.从100路中删除站点\n");
printf("\t\t2.从200路中删除站点\n");
printf("\t\t3.从300路中删除站点\n");
printf("\t\t4.退出\n");
scanf("%d",&n);
switch(n)
{
case1:
system("CLS");car1.Delete();break;
case2:
system("CLS");car2.Delete();break;
case3:
system("CLS");car3.Delete();break;
case4:
return0;
default:
printf("并没有这个选项\n");system("pause");
}
}
return0;
}
intmanager()
{
intn;
while
(1)
{
system("CLS");
printf("\n\n\t\t管理者界面");
printf("\n\t\t1.向公交车中加入车站\n");
printf("\t\t2.从公交车中删除车站\n");