当前位置:首页 > 代码 > 正文

公交查询系统源代码(动态公交查询系统)

admin 发布:2022-12-19 09:14 122


本篇文章给大家谈谈公交查询系统源代码,以及动态公交查询系统对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求大神发一个c语言写的代码 公交路线的查询 具体要求【用户能够方便查询某条公交路线的详细信息。】

#include...

#define CHK_BY_LINE_ID 0

#define CHK_BY_BUS_ID 1

#define CHK_ERROR (-1)

#define MAX_LINE_ID 50

#define MAX_BUS_NUM 10

typedef struct

{

char bus_id[16];//公交车车牌号

unsigned char running_state;//运营状态,是收车了,还是在运营

unsigned short stop_id;//车站ID,表示公交车已经运行到哪个站了

unsigned char is_forward;//1表示从起点往终点开,0表示从终点往起点开

//其他你需要定义的内容,自己想吧

} BUS_INFO;//该结构体表示公交的信息

//公交车信息初始化

void init_bus_info(BUS_INFO **buses,int lines, int bus_numbers);

//打印公交车信息

void show_bus_info(BUS_INFO *buses, int lines);

//通过公交车线路编号,在buses中查询该线路的所有车辆信息

void search_bus_info_by_line_id(BUS_INFO **buses, unsignedshort line_id);

//通过公交车车牌号,在buses中查询该车的信息

void search_bus_info_by_bus_id(BUS_INFO **buses, char *bus_id_ptr);

//检查查询条件,是公交车线路编号,还是公交车车牌号,或无效的查询条件

int check_by_what(const char *key);

//循环函数

void loops(BUS_INFO **bus_info);

int main(int argc, char **argv)

{

//MAX_LINE_ID个线路,每个线路MAX_BUS_NUM辆车

BUS_INFO buses[MAX_LINE_ID][ MAX_BUS_NUM];

init_bus_info(buses, MAX_LINE_ID, MAX_BUS_NUM);//公交车信息初始化

loops(buses);//进程在此出于工作状态

return0; // 程序退出

}

void init_bus_info(BUS_INFO **buses,int line_numbers, int bus_numbers)

{

//初始化函数可以用手动输入信息的形式,也可以用自动的形式,我这里就用自动的方式了

//当然,手动形式初始化,函数的入参应采用另外的形式

int lines, bus;

for (lines=0; lines line_numbers; ++ lines)

for (bus = 0; bus bus_numbers; ++bus)

{

sprint(buses[lines][bus]. bus_id, “PRC-%d-%d”, lines, bus );//车牌号

buses[lines][bus]. running_state = 1;//运营中

buses[lines][bus]. stop_id = ((lines 8) 0x0000FF00)| (bus 0x000000FF);//位操作,lines为高字节号,bus为低字节号,两者共同构成车站号

buses[lines][bus]. is_forward = 1;

}

return;

}

int check_by_what(const char *key)

{

int i = 0;

int is_num = 1;

while (key[i] != ‘\0’)//未走到字符串尾部

{

if (key[i] = ‘0’ key[i] = ‘9’)

i++;

else

{

is_num = 0;

break;

}

}

if (is_num)//is_num未被置0,说明全是数字

return CHK_BY_LINE_ID;

//车牌号有效性检查

if(0 == strncmp(key, “PRC-”, 4))

return CHK_BY_BUS_ID;

else

returnCHK_ERROR;

}

void show_bus_info(BUS_INFO *buses, int lines)

{

printf(“LINE: %d BUS_ID:%s STATE:%d STOP_ID:%d IS_FORWARD:%d\n”,lines, buses-bus_id, buses-running_state,buses-stop_id, buses-is_forward);

return;

}

void search_bus_info_by_line_id(BUS_INFO **buses, unsignedshort line_id)

{

int index;

if(line_id= MAX_LINE_ID)//判断,防止数组越界

for (index=0; index MAX_BUS_NUM; index++)

show_bus_info(buses[line_id- 1][index], line_id);

else

printf(“Invalid bus line!!!\n”);

return;

}

void search_bus_info_by_bus_id(BUS_INFO **buses, char *bus_id_ptr)

{

int index1,index2;

int is_find = 0;

for (index1=0; index1 MAX_LINE_ID; ++index1 )

{

if(is_find )

break;//找到了,跳出外层循环

for (index2=0;index2 MAX_BUS_NUM; ++index2 )

if (0 ==strcmp(bus_id_ptr, buses[index1][index2].bus_id ))

{

show_bus_info(buses[index1][index2], index1);

is_find = 1;//is_find置为1,表示找到了,就不用再找了

// 因为车牌号是唯一的

break;//跳出内层循环

}

}

return;

}

void loops(BUS_INFO **bus_info)

{

char inputs[17];//为什么比车牌号缓冲区要多一个字符,自己想

int check_cond;

while (1)//死循环,学校教学的时候,告诉我们不能用这样的死循环

//今天在我看来,是错误的

//实际应用中,大多数后台进程都是死循环一直在运行

//关键是要在循环过程中,如何避免无谓的耗费cpu资源,如加阻塞函数

{

memset(inputs,0, sizeof(inputs));

printf(“Please input condition to search:”);

fflush(stdout);//上句没有“\n”,用此函数刷新标准输出

fgets(inputs, sizeof(inputs)-2, stdin);//从标准输入读取,是个阻塞函数

//没有输入时,一直停留在这一步,不耗费cpu资源;

inputs[strlen(inputs)-1] = 0;//把末尾换行符(不是我们想要的)替换为字符串的结束符

check_cond = check_by_what(inputs);

if (check_cond == CHK_BY_LINE_ID)

search_bus_info_by_line_id(bus_info,atoi(inputs));// atoi把字符串转化为数字

else if (check_cond == CHK_BY_BUS_ID)

search_bus_info_by_bus_id(bus_info, inputs);

else

printf(“Invalid condition!!!\n”);

}

return;//执行不到这一步,但还是写上,养成良好编程风格

}

先写到这里吧。不知道你是不是学生,为了完成作业,若是,这样可不好哦!

另外,该程序只有简单的查询功能,若想拓展新的功能,如:可实时更新公交车信息,可采用多线程编程,或其他方式。若你是学生的话,慢慢学吧,嘿嘿哟!

哎,刚直看了你的问题,没看到问题下面的要求。

公交车信息的录入,可以在loops函数里增加,要通过判断你从键盘输入了什么内容,比如格式化的命令,如:refresh info bus-id id running_state value。只是举个例子而已。

另外,也可以采用我上面说的多线程编程,这样更好,但是要主要互斥、加锁的问题。

由于本人是个上班的爷们,要是完成你所要的所有功能,非要写到半夜不可,所以就不给你多弄了,你自己学者弄吧。

用C++编写一个公交查询系统

可以通过Baidu Hi通知我们你的任务

有机会可完成你遇到的任务

根据此题目

我们可以提供一份适合于学生水平的源码

如果你有相关的要求也可通知我们

ES:\\22637675B30DB4B220F8C7B9215B86FC

交易提醒:预付定金是诈骗

交易提醒:勿轻信用户名中的联系方式

用C++ 编 北京交通查询系统 先发100分

在PUDN上给你找了几个,看看行不

公交查询系统源代码 是武汉的 提供简单的查询和乘车方案 vc++

都是直接下载地址了。

公交查询系统源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于动态公交查询系统、公交查询系统源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/5805.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载