公交车管理系统实现与设计

合集下载

C语言课程设计——简易公交车管理系统(数组实现)

C语言课程设计——简易公交车管理系统(数组实现)

/**************************头文件声明************************************/#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"/**************************函数声明************************************/void init(); //初始化函数void add(); //信息录入函数void view(); //信息显示函数void mod(); //信息修改函数void modmeun(); //修改菜单void modnavimeun(); //路线修改菜单void del(); //信息删除函数void find(); //信息查询函数void findmeun(); //查询菜单void findnavi(); //路线导航查询函数void findnum(); //路线编号查询函数void findstameun(); //站台信息查询菜单void findsta(); //站台信息查询函数void save(); //信息保存函数void mainmeun(); //主菜单char Test(char a,char b,char c); //菜单输入检测函数/**************************宏定义声明************************************/ #define N 100 //公交车数量/**************************结构体定义************************************/ struct station //途径站点信息{char c[20]; //站点名称};struct bus //公交车信息{char num[20]; //公交车路线编号char name[20]; //司机姓名int n; //站台数目struct station b[12]; //站台名称char topen[20]; //起始时间char tclose[20]; //终止时间int money; //票价}a[N];/**************************函数定义************************************/int main(){char a;init();printf("\n\t\t目前所能录入的公交车数量上限为 %d 辆\n\n",N);printf("\n\t\t输入回车键继续\n");fflush(stdin); //清除键盘缓冲区while(1){system("cls");mainmeun();a=Test(getchar(),'1','6'); //菜单检测输入函数switch(a){case '1': system("cls"); add(); break;case '2': system("cls"); view(); break;case '3': system("cls"); mod(); break;case '4': system("cls"); del(); break;case '5': system("cls"); find(); break;case '6': return 0;}}return 0;}void init() //初始化函数{FILE *fp; //文件指针int i;if((fp=fopen("bus.txt","r+"))==NULL) //初次尝试打开"bus.txt"文本文件{printf("\n\t\t文件打开失败\n\n\t\t正在尝试创建新文件...\n");fp=fopen("bus.txt","w"); //创建"bus.txt"文本文件if((fp=fopen("bus.txt","r+"))==NULL) //再次判断是否打开成功{printf("\t\t文件创建失败\n");return;}}fp=fopen("bus.txt","r+");for(i=0;i<N;i++) //将磁盘中的信息输出到内存中if(fread(&a[i],sizeof(struct bus),1,fp)!=1)break;fclose(fp);printf("\n\t\t初始化完成\n\n");return;}void add() //信息录入函数{FILE *fp=NULL; //文件指针int i,j;char cc[20];for(i=0;i<N;i++){if(*a[i].num!='\0')continue;else{printf("\n添加第%d辆公交车路线记录:\n",i+1);printf("\n请输入路线编码(3位编码,第一位为大写字母,后两位为数字):\n"); //路线编码scanf("%s",cc);for(j=0;j<N;j++) //检验是否重复if(strcmp(a[j].num,cc)==0){printf("\n与已有路线编码重复,按回车键返回\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}strcpy(a[i].num,cc);printf("\n请输入司机姓名: "); //司机姓名scanf("%s",a[i].name);printf("\n请输入途径站台总数(>=2): "); //站台总数scanf("%d",&a[i].n);printf("\n");if(a[i].n<2||a[i].n>12){while(a[i].n<2||a[i].n>12){printf("\n站台总数应满足(2<=n<=12),请重新输入: ");scanf("%d",&a[i].n);printf("\n");}}for(j=0;j<a[i].n;j++){printf("请输入第%d个站台名称: ",j+1); //站台名称scanf("%s",a[i].b[j].c);}printf("\n自动生成公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++){printf(" ----> (%d) %s",j+1,a[i].b[j].c);}printf("\n\n请输入公交车的起始时间(格式为:时:分): "); //起始时间scanf("%s",a[i].topen);printf("请输入公交车的终止时间(格式为:时:分): "); //终止时间scanf("%s",a[i].tclose);printf("\n请输入公交车的票价: "); //票价scanf("%d",&a[i].money);printf("\n第%d辆公交车路线记录创建成功\n",i+1);save();printf("\n\t按回车键返回\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}}if(i==N)printf("\n\n\n\t空间已满,不能录入\n");printf("\n\t按回车键返回\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}void view() //信息显示函数{int i,j,min;struct bus t;for(i=0;*a[i].num!='\0'&&i<N;i++) //按“路线编号”用选择法排序{min=i;for(j=i+1;*a[j].num!='\0'&&j<N;j++)if(strcmp(a[i].num,a[j].num)>0)min=j;t=a[i];a[i]=a[min];a[min]=t;}printf("\n\n 公交车信息库");printf("\n**************************************************************** ****************\n");for(i=0;*a[i].num!='\0'&&i<N;i++){printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}printf("\n**************************************************************** ****************\n");printf("\n\t\t公交车信息显示完毕\n");printf("\n\t\t输入回车键返回主菜单:");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}void mod() //信息修改函数{int i,j,m=0;char t,cc[20],mod[20];printf("请输入要修改信息的公交车路线编号:\n");scanf("%s",cc);for(i=0;*a[i].num!='\0'&&i<N;i++) //查找所输入的公交车{if(strcmp(a[i].num,cc)==0){m=1;printf("\n\n\t\t已找到\n");while(1){system("cls");printf("\n\n 正在修改的公交车信息\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");modmeun();fflush(stdin); //清除键盘缓冲区t=Test(getchar(),'1','5'); //菜单检测输入函数system("cls");switch(t){case '1': //修改路线编号{int k;printf("\n请输入新的公交车编号:");scanf("%s",mod);for(k=0;*a[k].num!='\0'&&k<N;k++){if(strcmp(a[k].num,mod)==0){printf("与已有编号重复,按回车键返回主菜单\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}}strcpy(a[i].num,mod);save();break;}case '2': //修改车辆信息{printf("\n请输入新的司机姓名:");scanf("%s",a[i].name);printf("\n请输入新的公交车票价:");scanf("%d",&a[i].money);save();break;}case '3': //修改行车路线{void modnavimeun(); //路线修改菜单int k;char z;while(1){system("cls");modnavimeun();fflush(stdin); //清除键盘缓冲区z=Test(getchar(),'1','5'); //菜单检测输入函数system("cls");switch(z){case '1': //添加站点{if(a[i].n+1>12) //判断是否满足条件{printf("\n站台总数达到12个,无法添加新站点\n\n按回车键返回\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}printf("\n请输入需要添加第几个站点:");scanf("%d",&k);while(a[i].n+1<k){printf("目前共%d个站点,无法添加第%d个站点\n请重新输入:",a[i].n,k);scanf("%d",&k);printf("\n");}a[i].n=a[i].n+1;for(j=a[i].n;j>k-1;j--){a[i].b[j]=a[i].b[j-1];}printf("\n请输入新添加的站点名称:");scanf("%s",a[i].b[k-1].c);save();break;}case '2': //修改站点{printf("\n请输入需要修改第几个站点:");scanf("%d",&k);printf("\n请输入新的站点名称:");scanf("%s",a[i].b[k-1].c);save();break;}case '3': //删除站点{printf("\n请输入需要删除第几个站点:");scanf("%d",&k);for(j=k-1;j<a[i].n;j++){a[i].b[j]=a[i].b[j+1];}a[i].n=a[i].n-1;save();break;}case '4': //重置路线{printf("\n请输入新的途径站台总数(2<=n<=12): ");scanf("%d",&a[i].n);printf("\n");while(a[i].n<2||a[i].n>12) //判断是否满足条件{printf("\n站台总数应满足(2<=n<=12),请重新输入: ");scanf("%d",&a[i].n);printf("\n");}for(j=0;j<a[i].n;j++){printf("请输入新的第%d个站台名称:",j+1);scanf("%s",a[i].b[j].c);}printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");save();break;}case '5': //返回菜单{printf("\n\t\t按回车键返回菜单\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return; //返回主菜单}}}}case '4': //修改行车时间{printf("\n\n请输入公交车的起始时间(格式为:时:分): ");scanf("%s",a[i].topen);printf("请输入公交车的终止时间(格式为:时:分): ");scanf("%s",a[i].tclose);save();break;}case '5':{printf("\n\t\t按回车键返回主菜单\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return; //返回主菜单}}}}}if(m==0)printf("\n\n\t\t无此公交车信息\n");printf("\n\t\t按回车键返回\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}void modmeun() //修改菜单{printf("\n\t\t 修改菜单 ");printf("\n\t\t********************************************");printf("\n\t\t* 1、修改路线编号 *");printf("\n\t\t* 2、修改车辆信息 *");printf("\n\t\t* 3、修改行车路线 *");printf("\n\t\t* 4、修改行车时间 *");printf("\n\t\t* 5、返回到主菜单 *");printf("\n\t\t********************************************");printf("\n\n\t\t请输入您的选择:");}void modnavimeun() //路线修改菜单{printf("\n\t\t 路线修改菜单 ");printf("\n\t\t********************************************");printf("\n\t\t* 1、站点添加 *");printf("\n\t\t* 2、站点修改 *");printf("\n\t\t* 3、站点删除 *");printf("\n\t\t* 4、路线重置 *");printf("\n\t\t* 5、返回菜单 *");printf("\n\t\t********************************************");printf("\n\n\t\t请输入您的选择:");}void del() //信息删除函数{int i,j,t,m=0;char cc[20];printf("\n请输入要删改信息的公交车路线编号:\n");scanf("%s",cc);for(i=0;*a[i].num!='\0'&&i<N;i++) //查找所输入的公交车{if(strcmp(a[i].num,cc)==0){m=1;printf("\n已找到:\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("即将删除该公交车信息\n确定请按1:");scanf("%d",&t);if(t==1){if(i+1==N)memset(&a[i],'\0',sizeof(struct bus)); //最后一辆直接进行清空elsefor(j=i;*a[j].num!='\0'&&j+1<N;j++) //后面的公交车信息补上删去的公家车信息a[j]=a[j+1];printf("编号为%s的公交车信息删除完毕!\n",cc);save();break;}}}if(m==0)printf("\n\n\t\t无此公交车信息\n");printf("\n\n\t输入回车键返回主菜单:");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}void find() //信息查询函数{char t;while(1){findmeun();fflush(stdin); //清除键盘缓冲区t=Test(getchar(),'1','4'); //菜单检测输入函数switch(t){case '1': system("cls"); findnavi();break; //路线导航查询case '2': system("cls"); findnum();break; //路线编号查询函数case '3': system("cls"); findsta();break; //站台信息查询函数case '4': system("cls"); return; //返回主菜单}}return;}void findmeun() //查询菜单{printf("\n\t\t 查询菜单 ");printf("\n\t\t********************************************");printf("\n\t\t* 1、路线导航查询 *");printf("\n\t\t* 2、路线编号查询 *");printf("\n\t\t* 3、站台信息查询 *");printf("\n\t\t* 4、返回到主菜单 *");printf("\n\t\t********************************************");printf("\n\n\t\t请输入您的选择:");}void findnavi() //路线导航查询函数{int i,j,k,m=0;char c1[20],c2[20];printf("请输入您目前所在的站点:\n\t\t");scanf("%s",c1);printf("请输入您想要前往的站点:\n\t\t");scanf("%s",c2);printf("\n\n您可选择的公交车信息如下\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");for(i=0;*a[i].num!='\0'&&i<N;i++){for(j=0;j<a[i].n;j++)for(k=j+1;k<a[i].n;k++)if(strcmp(a[i].b[j].c,c1)==0&&strcmp(a[i].b[k].c,c2)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("\t\t\t\t显示完毕\n");if(m==0)printf("\n\n\t\t\t\t抱歉,无途径此路线的公交车\n");printf("\n\t\t\t\t输入回车键返回查询菜单:");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}void findnum() //路线编号查询函数{int i,j,m=0;char cc[20];printf("请输入您想要查找的公交路线编号:\n");scanf("%s",cc);for(i=0;*a[i].num!='\0'&&i<N;i++){if(strcmp(a[i].num,cc)==0){m=1;printf("\n已找到:\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");break;}}if(m==0)printf("\n\t\t无此公交车信息\n");printf("\n\t\t输入回车键返回查询菜单:");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return;}void findstameun() //站台信息查询菜单{printf("\n\t\t 站台信息查询菜单");printf("\n\t\t********************************************");printf("\n\t\t* 1、起始站台查询 *");printf("\n\t\t* 2、终止站台查询 *");printf("\n\t\t* 3、途径站台查询 *");printf("\n\t\t* 4、返回查询菜单 *");printf("\n\t\t********************************************");printf("\n\n\t\t请输入您的选择:");}void findsta() //站台信息查询函数{int i,j,k;char t;char cc[20];while(1){int m=0;findstameun();fflush(stdin); //清除键盘缓冲区t=Test(getchar(),'1','4'); //菜单检测输入函数system("cls");switch(t){case '1':{printf("请输入您所要查询的起始站台名称:\n");scanf("%s",cc);printf("\n以%s为起始站台的公交车如下:\n",cc);printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");for(i=0;*a[i].num!='\0'&&i<N;i++){if(strcmp(a[i].b[0].c,cc)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("\t已全部显示完毕\n");if(m==0)printf("\n\t没有公交车以该站点为起始站台\n");break;}case '2':{printf("请输入您所要查询的终止站台名称:\n");scanf("%s",cc);printf("\n以%s为终止站台的公交车如下:\n",cc);printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");for(i=0;*a[i].num!='\0'&&i<N;i++){k=a[i].n;if(strcmp(a[i].b[k-1].c,cc)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("\t已全部显示完毕\n");if(m==0)printf("\n\t没有公交车以该站点为起始站台\n");break;}case '3':{printf("请输入您所要查询的途径站台名称:\n");scanf("%s",cc);printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");for(i=0;*a[i].num!='\0'&&i<N;i++)for(k=1;k<a[i].n-1;k++)if(strcmp(a[i].b[k].c,cc)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("\t已全部显示完毕\n");if(m==0)printf("\n\t没有公交车以该站点为途径站台\n");break;}case '4':{printf("\n\t\t按回车键返回查询菜单\n");fflush(stdin); //清除键盘缓冲区getchar();system("cls");return; //返回主菜单}fflush(stdin); //清除键盘缓冲区getchar();system("cls");}}return;}void save() //信息保存函数{FILE *fp=NULL;int i;if((fp=fopen("bus.txt","w+"))==NULL) //以读写的方式打开名称为"bus"的文本文件{printf("文件打开错误\n");return;}fp=fopen("bus.txt","w+");for(i=0;*a[i].num!='\0'&&i<N;i++) //将内存中的数据输出到磁盘中if(fwrite(&a[i],sizeof(struct bus),1,fp)!=1)break;printf("\n\t保存成功\n");fclose(fp);return;}void mainmeun() //主菜单{printf("\n\t\t 主菜单");printf("\n\t\t****************************************");printf("\n\t\t* 1、信息录入 *");printf("\n\t\t* 2、信息显示 *");printf("\n\t\t* 3、信息修改 *");printf("\n\t\t* 4、信息删除 *");printf("\n\t\t* 5、信息查询 *");printf("\n\t\t* 6、退出系统 *");printf("\n\t\t****************************************");printf("\n\n\t\t\t请输入您的选择:");}//菜单输入检测函数char Test(char a,char b,char c){while(a<b||a>c){printf("\n\t\t\t输入错误,请重新输入: ");fflush(stdin); //清除键盘缓冲区a=getchar();}return a;}。

基于云计算的智能交通管理系统设计与实现

基于云计算的智能交通管理系统设计与实现

基于云计算的智能交通管理系统设计与实现智能交通管理系统是基于云计算技术的一种新型交通管理方式。

借助云计算平台,可以实现交通数据的实时采集、分析和处理,以提高交通运输的效率、安全性和环境性能。

本文将介绍智能交通管理系统的设计与实现,并分析其在城市交通管理中的应用前景。

一、系统设计1. 系统架构设计智能交通管理系统基于云计算平台实现,该平台由云服务器集群、云存储、云数据库和云服务组成。

云服务器集群用于接收和处理交通数据,云存储用于存储交通数据和模型训练样本,云数据库用于存储系统配置和实时交通信息,云服务提供各种交通管理和分析功能。

2. 数据采集与处理系统通过安装在交通设备(如摄像头、交通信号灯、车辆传感器等)上的传感器实时采集交通数据,包括车流量、速度、车型、车辆位置等信息。

传感器将采集到的数据传输至云服务器集群进行处理和分析,通过各种算法和模型提取交通信息。

3. 数据存储与管理采集到的交通数据、交通模型和系统配置信息将存储在云存储和云数据库中。

云存储提供高可靠性和可扩展性的数据存储服务,云数据库提供结构化数据存储和实时查询功能,以支持用户对交通数据的检索和分析。

4. 实时交通信息显示基于云计算平台的智能交通管理系统可以实时显示交通信息,如拥堵情况、交通流量、路况预测等。

用户可以通过Web或移动应用程序查看交通信息,并根据实时信息做出相应的交通管理决策。

二、系统实现1. 数据采集与处理首先,需要选择适合的传感器和设备来采集交通数据。

可以使用高清摄像头、车检器、车载GPS等设备来收集交通信息。

采集到的数据将通过无线网络传输至云服务器集群进行处理和分析。

在云服务器集群上,可以利用计算机视觉、机器学习和深度学习等算法来处理交通数据,提取交通信息。

例如,通过目标检测算法可以实时识别车辆,通过车辆跟踪算法可以计算车辆速度和位置。

同时,可以使用聚类算法和预测模型来分析交通流量和预测交通拥堵。

2. 数据存储与管理交通数据、交通模型和系统配置信息可以存储在云存储和云数据库中。

城市公交车辆 GPS定位调度管理系统方案

城市公交车辆 GPS定位调度管理系统方案

城市公交车辆GPS定位调度管理系统方案随着我国国民经济的飞速发展,城市建设日新月异,城市交通问题日益严重,已成为严重影响许多大中城市发展的重点问题之一。

许多大中城市政府部门每年都要投入大量的人力、物力,用以改善和解决城市交通拥挤的问题。

国家已将智能交通建设列入“十五”科技规划予以重点支持。

许多大中城市都在陆续申请建立城市智能交通示范基地。

据了解,国家已批准,2个城市首批建立此种示范基地。

由于城市公共交通与小汽车相比,具有客运量大、相对投资少、占有资源少、效率高、污染相对较少、人均占用道路少等优点。

据有关专家测算:“城市中公共交通的载客量为小汽车的30倍,承载着城市80%以上的客运量”。

“以常规公交运输占用道路面积为1计算,则运输同样多的乘客,自行车占用的道路面积为5,小汽车为15”;“按单位载客量计,它的公里耗油量、尾汽排放量等指标与小汽车相比。

均优于小汽车10倍左右”。

因此,近年来,各地政府领导及交通管理部门都逐渐形成这样一些共识:“发展公共交通是改善城市交通的战略选择”“解决城市交通问题必须体现优先发展城市公交的原则”。

显然,大力发展公共交通,实现数字化、智能化城市公文管理,努力提高公共交通运营管理效率和社会服务水平,现已成为摆在各城市主管领导及交通管理部门面前的重要课题,它是适合中国国情的现代化大中城市发展的必然要求。

应该建立什么样的公交智能化调度管理系统呢?公交智能管理系统的基本要求及关键技术问题分析1、对系统的基本要求·乘客对城市公交系统的基本要求:安全、舒适、方便、迅速、准点,及时了解所乘车辆何时到站。

·管理部门对公交管理的基本要求:自动、准确、方便。

·实现城市公共交通数字化、现代化管理的核心问题是对运动中的不断变化的公交车辆运行情况的实时掌握和调度能力。

·建立一体化、数字化的先进管理系统将大大有利于管理效率的提高,更好的发挥人和设备的潜力。

·建立有效的、准确的与广告牌相结合的电子站牌系统,将大大有利于乘客及时了解本线路车辆离到站的情况,缩短乘客与公交系统的“距离”。

定制公交系统运营管理方案

定制公交系统运营管理方案

定制公交系统运营管理方案一、引言公交运输作为城市交通枢纽的重要组成部分,具有对城市发展具有重要的推动作用。

定制公交系统是现代城市交通运输的一种新型模式,通过精细化的线路规划和定时定点的运营,提供更加个性化、便捷、高效的交通服务,受到了越来越多城市的关注和采纳。

建立一个科学有效的定制公交系统运营管理方案,将对城市公共交通的提升和改善起到积极的推动作用。

本文将从运营目标、线路规划、班次安排、人员管理、车辆管理等方面进行详细探讨,并结合实际案例进行说明。

二、运营目标1. 提供便捷高效的交通服务。

定制公交系统的首要目标是满足乘客的个性化需求,提供方便、舒适、高效的交通服务。

为实现这一目标,可以通过合理的线路规划、提高班次密度、优化车辆分配等方式来缩短乘客等待时间,并提供精准的到站时间信息,方便乘客准时乘车。

2. 优化交通资源配置。

定制公交系统要充分发挥其高效的运营模式,合理配置交通资源,充分利用车辆、司机等运营资源,避免产生空驶和重复行驶现象,提高运营效率和资源利用率。

此外,还要充分利用现代科技手段,如智能调度系统、GPS定位等技术手段,提高调度的精细化程度,实现动态调整和优化。

三、线路规划1. 用户需求分析。

在制定线路规划时,首先要充分了解用户的出行需求。

通过调查问卷、用户反馈等方式,了解用户的出行时间、出行路线、出行人数等信息,并根据不同用户的需求制定相应的服务方案。

2. 制定精细化线路规划方案。

根据用户需求,制定线路规划方案。

可以通过GIS技术对城市交通网络进行分析,优化线路布局,减少换乘次数和行程时间。

同时,要充分考虑乘客的上下车点,选择离用户最近的站点,提供更便捷的乘车条件。

3. 动态调整线路。

线路规划不是一成不变的,需要根据实际情况进行动态调整。

通过分析乘客的乘车数据,了解用户的变动需求,及时调整线路,提高运营效率。

四、班次安排1. 合理分配班次密度。

定制公交的特点是根据用户需求进行运营,班次密度应根据乘客出行需求和线路规模来合理配置。

城市公交管理信息系统设计

城市公交管理信息系统设计

城市公交管理信息系统设计随着我国国民经济的快速发展和城市化进程的加快,如何解决城市公交管理问题已经成为城市可持续发展的一个重要课题.城市公交管理问题是一个系统工程,常用的经验性的方法是不能完全解决问题的,必须运用科学的、系统的方法来解决.近年来,运用数字化技术尤其是GIS技术来解决交通领域的空间数据处理和规划分析等问题已经成为交通管理信息化的一个重要手段.为了便于管理这些公交信息,同时也为了方便公交乘客的出行,本文开发了城市公交管理信息系统.该系统不但可以方便地查询到城市的公交站点、道路和公交线路,其中最重要的一个功能是在乘客给出起点和终点后,自动计算出最优的乘车路线,设计出合理而有效的算法,而且可以在一定程度上,使公交客流分配更加合理.一:功能需求分析1对于市内对公交线路不太熟悉的居民以及外地旅客来说,他们在以公交方式出行时,在选择公交线路和乘行方案方面存在着很大的盲目性,而该系统除了可以为出行者提供公交线网基础信息、线路运行信息外,还可以将几种经过计算机分析的最佳出行线路及换乘方案推荐给出行者,通过对乘客选择线路进行合理引导,减少乘客的出行延误,从而提高整个公交线网的运行效率.2对于城市公交管理部门来说,应当是在快捷、方便、舒适、经济地实现人的移动的经营活动中,使公共交通管理达到经济效益、社会效益和环境效益的统一,适应市场经济体制的建立,适应改革与发展.利用该系统GIS的专题地图可以显示出一个城市或一个地区的交通事故分布、交通违章分布、道路的现状和道路规划等专题情况,为交通管理部门提供一个直观的决策分析工具.在交通运营管理中,利用GIS技术的网络分析,缓冲分析等功能可以很直观地反映一个城市的公交网络覆盖状态,分析公交线路设置是否合理,评价公交站点选址是否科学等.3经济效益的好坏是评价一个企业成败的关键.当然,对于城市公交企业来讲也不例外,众所周知,城市公交企业的经营和发展受多种环境因素和内部条件制约,如政府政策、城市人口数量、居民消费需求、城市交通结构等,以及企业资产状况、产权体制、经营管理者水平、技术创新能力等.而经营管理是众多因素中最重要的一个.该系统可以帮助企业的管理部门确定乘客的地理分布以及确定公交线路和站点附近的人口,出行流量,线路上公交车辆的满载率,道路交通状况等因素,从而方便了企业对公交线路的规划以及线路上公交车辆的投放量的部署.二:系统结构设计城市公交管理信息系统总体结构城市公交管理信息系统旨在通过GIS技术在城市公交交通管理信息中的应用,提高城市公共交通综合管理水平,为政府科学决策提供依据.系统功能结构如下图所示.1 路径查询: 为乘客的公交出行提供准确、及时、优化的公交信息服务.2 出行预测: 公交出行需求预测可用于从宏观上指导城市公交发展,尽可能使城市公交规模与城市规模相匹配.3 路网显示: 可以直观显示城市公共交通发展规模、场站布置和线路布设.4 公交覆盖:公交服务的覆盖性及方便舒适性是出行者选择公共交通方式的主要因素.5交通服务:主要内容包括居民出行指南和交通项目上报审批服务. 6地图管理:主要内容包括地理信息系统中常用的操作与分析工具等功能,如地图放大、缩小、图层控制、地图打印以及对道路、物点、区域等地图信息进行编辑和修改等.城市公交管理信息系统在几个主要模块中的详细设计2.2.1 路径查询系统路径查询系统开发的目的是为乘客的公交出行提供准确、及时、优化的公交信息服务.系统向乘客提供公交信息的动态走向,生成出行辅助计划,对乘客的出行进行主动而合理的引导,最大程度上方便乘客,从而将无序的交通出行变得有序,优化客流分布,提高公交线网的运行效率,同时将该系统投入实际应用也是提高城市形象的一项重要举措.A .该系统的具体开发思路如下:① 公交乘客对现有的公交站点、公交线路、运营计划进行查询. ② 公交乘客输入任意出行起点、终点,系统在相应的约束条件下,查找搜索出最优公交出行路径集和换乘方案,最后以图表的形式反馈给乘客.③ 公交部门管理人员可根据站点、线路的变更,运营调度计划的调整,及时更新系统的公交线网,对与公交有关的其它基础数据进行方便的管理和维护.B .系统具体介绍① 路径查询系统的开发过程见下图:② 路径查询系统的功能路径查询系统主要服务于公交出行者.对于市内对公交线路不太熟悉的居民以及外地旅客来说,他们在以公交方式出行时,在选择公交线路和乘行方案方面存在着很大的盲目性,而该问路系统除了可以为出行者提供公交线网基础信息、线路运行信息外,还可以将几种经过计算机分析的最佳出行线路及换乘方案推荐给出行者,通过对乘客选择线路进行合理引导,苏州市道路网图基础图形数据减少乘客的出行延误,从而提高整个公交线网的运行效率.C.该查询系统的整个分析决策过程如下:1用户通过在苏州市区图上点击的方式或通过对话框选择的方式,向系统输入出行的起点和终点.2系统收到输入信息后,分别在系统的地图和数据库中寻找与出行起点和终点相应的地理编码和属性数据,并将其输入至分析模块中.3根据地理编码和属性数据,在公交线网中,分别在以起点和终点为中心的一定半径范围内,寻找公交站点,并通过对比分析,确定有效站点.4根据最短路数学模型在公交线网上搜寻最优出行方案,并将该结果输出,显示公交线路走向、所经站点及运营信息.5系统分析过程如下图:D.此路径查询系统采用的算法最短路数学模型是该问路系统的核心,目前,较多采用的Digkstra算法重复计算多,速度慢,不适合公交网络的特点.通过反复的分析研究,我们采用链表技术对D算法进行了修正,使之适合我国的公交网络特点,创建了一种新的D算法修正模型,它对于今后其它公交网络的分析研究也具有一定的借鉴作用.具体算法流程图如下:2.2.2 出行数据预测公交系统的好坏直接影响着整个城市交通运输系统的交通状况.而公交需求预测是进行城市公交规划、建设、管理与控制的基础,是确定城市公共交通发展规模、布置场站和布设线路的依据,可用于从宏观上指导城市公交发展,尽可能使城市公交规模与城市规模相匹配.本系统是根据土地利用、人口密度和公交站点覆盖率确定各小区的公交分担率,再进行公交出行分布预测.将物理学中的熵概念引入交通状态分析中,进行公共交通出行分布预测.首先根据城市发展水平,土地利用、人口密度和公交站点覆盖率确定各交通区的公交分担率,即可得到交通区的公交出行总量.假设区i的交通发生概率为fi,区j的交通吸引概率为gj,区i的交通选择目的区j的选择概率为hij,上述数值可分别由下式求出.fi=Xi/X,∑j fi=1gj=Yj/X,∑j gj=1 1hij=Xij/Xi,∑j hij=1式中:Xi为区i的公交出行发生量;Yj为区j的公交出行吸引量;Xij 为交通区i和j之间的公交出行量;X为全域的公交出行产生量.使用上述概率及发生,吸引端的出行守恒条件可由式2式3表示:∑j hij=1 2∑i fihij=gj 3以上两式相当于∑jXij=Xi和∑iXij=Yj.假设交通区i、j之间的公交出行量的先验概率qij由式 4重力模型给定,其中,∑qij=1.tij表示行驶时间,α和γ为回归系数,可通过实测数据确定.qij=αfigjt-γij 4不考虑先验概率,将总量为X的公交出行量任意分布到各小区之间产生的组合数E可由式5表示:E=X/∏i∏jXij 5具体算法流程如下图:基于最大熵原理的公交分布模型计算流程利用该系统的GIS专题制图功能可以直观地反映出不同交通小区居民出行量的大小.在系统开发中,居民出行量分布预测专题图如下图所示选用了等级符号专题图类型,通过符号大小来表示不同的出行量大小,专题变量为交通小区居民出行发生量大小.2.2.3 公交路网的显示随着公交站点与公交路线的增加,不断增加数据库维护人员的难度,直接导致了算法计算复杂性的增加.本文首先充分利用GIS所具有的地理分析特性,设计了一种简单便于维护的数据结构.公交路网G = NROUTE,ROAD,N是公交站点的集合,ROUTE是公交路线的集合,ROAD是城市道路集合此集合的数据来自于街道的中心线,并带有相应的属性信息如是否单行等,其主要是用于步行分析,根据公交站点在道路中的位置,确定乘客的步行路线.同时,合理地考虑了乘客的出行心理 ,考虑到一些可能出现的特殊情况,设计了一种更加人性化的而且面向乘客的最优公交路线的判断标准.具体的公交路网的拓扑关系见下图,图中包括详细的公交站点、公交线路以及道路的数据表表1~3.表2中的站点编码n即是表1中的站点编码,其顺序是按照该条线路的公交站点的前后顺序排列的,表2中的“是否单行”表示的是:当一条公交线路的来、回所经过的公交站点不同时,则认为其是两条线路.2.2.4 公交交通服务覆盖公共交通这种在时间和空间覆盖上的局限性决定了公交服务的覆盖性对人们选择公交出行方式具有重要影响:只有存在公共交通服务,人们才会把公共交通作为出行方式的选择之一.公交服务的覆盖性主要体现在空间、时间、运力和信息4个方面:公交服务的空间覆盖性一般指的是出行起点和终点的步行范围内通常取5 m ni步行距离,即约400 m半径范围内是否设有公交车站,并考虑线路间的换乘,公交线路是否四通八达.在公交线网密度较低的区域还应考虑在公交车站的附近设置机动车和非机动车的停车区域以扩大公交车站的服务半径,提高公交服务的空间覆盖率,使更多的人能够选择公共交通方式.公交服务的时间覆盖性指的是公交车的发车频率和公交线路营运时间的长短,它对出行者决定是否使用公交也有着重要的影响.公交车的发车频率越高,乘客在车站的等候时间就越短,而且选择出行时间的灵活性也越强.公交线路营运时间过短,大量发生在营运时间以外的出行只能采用公交以外的交通方式.公交运力的不足也会影响公交服务的覆盖性.如果在车站候车的出行者无法登上一辆已载满乘客的公交车时,公交服务运力覆盖率在此时此地就出现了空白.在公交信息方面,乘客需要了解下辆车到站时间、票价,是否换乘等信息,这些信息对外地人和不经常使用公交服务的人们尤为重要,如果无法获得这方面的信息,他们就不太可能选择公共交通方式.可见公交服务在上述4个方面的覆盖性缺一不可,只有在空间、时间、运力和信息同时覆盖的条件下,公共交通才能成为出行方式的选择之一.当公共交通成为出行方式的选择之一后,出行者还要考虑公交服务的方便舒适性,它主要包括车辆的乘载率、班次的可靠性、行车速度、乘车安全性、车辆整洁舒适性等方面,是出行者在多种交通方式中最终选择公交方式的主要因素.总之,只有在公交服务的覆盖性及方便舒适性达到一定程度的情况下出行者才会选择公共交通方式.否则将选择其他的出行方式,如步行、自行车、私家车等.公交覆盖率计算与研究公交覆盖率的数学计算方法可描述为:选定某个交通小区,然后用该交通小区内所有公交站点覆盖面积之和或者小区内公交车所经过的道路面积之和除以该小区覆盖面积,所得的商值就是公交覆盖率值.以上方法涉及到图形学中的多边形求和及多边形的面积计算等问题,在实际操作时精确求解不规则多边形面积比较麻烦,可以想象在一个较大规模的城市公交网络中,如果这些计算都采用人工进行,将花费很大的人力和物力,而且计算中很容易出错,精确度也不高.采用GIS软件的图形化工具就可以有效的解决上述问题,在系统开发中,我们采用了MapInfo平台的MapX控件技术来完成多边形面积计算及求和的工作.实践表明:MapX的图形化工具拥有强大的图形实体分析和计算功能,启用MapX的Selections对象和选择工具以及被选对象的Area等方法可以有效地实现多边形的求和与求交计算.下图显示了系统计算某个交通小区的公交覆盖率值的操作.三:系统的界面设计系统提供可视化友好界面,通过电子地图导引,使用户能快捷的进人所需要的面层和区域,完成各项查询和规划工作.界面图如下:四:结语笔者通过对GIS地理信息系统的学习并通过查询相关的文献资料,设计开发了城市公交管理消息系统.此系统对于城市居民,公交管理部门以及公交企业都有不同的用途.居民可以利用该系统查询公交线网基础信息、线路运行信息外,以及最佳出行线路及换乘方案等;在交通运营管理中,利用GIS技术的网络分析,缓冲分析等功能可以很直观地反映一个城市的公交网络覆盖状态,分析公交线路设置是否合理,评价公交站点选址是否科学等.而且该系统可以帮助企业的管理部门确定乘客的地理分布以及确定公交线路和站点附近的人口,出行流量,线路上公交车辆的满载率,道路交通状况等因素,从而方便了企业对公交线路的规划以及线路上公交车辆的投放量的确定.该系统操作简便,实用性较好,兼容性强.基本上能够实现城市公交管理的功能要求.同时也能兼顾市民及企业的使用要求,方便管理者对数据的更新和维护.。

公交车管理系统的实现与设计(源代码及全套资料)

公交车管理系统的实现与设计(源代码及全套资料)
3.
SQLServer2000是一种功能强大的数据库开发工具,数据库汇集了信息以供查询、存储和检索。它的优点在于强大的数据库引擎,它可以承受10000条以上的记录测试,而且数据库运行于服务器上,相对于本地数据库,可以明显的减少内存占用,提高运行速度和本机的利用效率。SQL数据库具有友好的管理界面
——企业管理器,其中的视图可以直观的进行数据处理,同时支持直观的数据库设计,也可以通过词法分析器,使用SQL语句进行数据库的各种操作,包括数据库的建立,表的建立和修改等一系列操作。












公交车管理系统的设计与实现
论 文 作 者 姓 名:帅希涛
申 请 学 位 专 业:计算机科学与技术
申 请 学 位 类 别:工学学士
指导教师姓名(职称):秦智(讲师)
论 文 提 交 日 期:2007年 6 月10日
公交车管理系统的设计与实现
摘要
随着经济的日益增长,信息化时代已经到来,生活中各种信息趋向数字化、
允许为空
是否为主键
说明
ID
Int
4


唯一标志
LineName
nvarchar
50


路线名称
LineCode
nvarchar
50


路线代号
StartTime
nvarchar
50


起始时间
EndTime
nvarchar
50


中止时间
StratPlace
nvarchar
50是Leabharlann 否起点Remark

智能公交车调度管理系统的设计与实现

智能公交车调度管理系统的设计与实现

智能公交车调度管理系统的设计与实现智能公交车调度管理系统是基于先进的科技和信息技术的公交车辆管理系统,旨在提高公交车运营的效率和服务质量。

本文将从系统设计和实现两个方面介绍智能公交车调度管理系统的设计与实现。

一、系统设计1.需求分析:在设计智能公交车调度管理系统之前,我们首先需要进行需求分析,明确系统的功能和目标。

根据公交车调度的实际需求,系统应具备车辆调度、车辆监控、路线优化、智能导航、客流统计等功能。

2.系统架构:智能公交车调度管理系统的架构可以分为前端和后端两部分。

前端部分包括乘客端和司机端,乘客端提供公交车实时位置查询、线路查询等功能;司机端提供车辆调度、车辆监控、导航等功能。

后端部分包括服务器和数据库,负责数据存储和处理。

3.算法设计:智能公交车调度管理系统的核心是路线优化算法和车辆调度算法。

路线优化算法可以基于乘客的出行需求和交通状况,动态规划最优的公交车线路,减少乘客的等待时间和乘车时间。

车辆调度算法可以根据乘客的上下车需求和车辆的实时位置,智能地分配车辆,提高运输效率。

二、系统实现1.技术选型:在实现智能公交车调度管理系统时,可以采用现有的技术和工具。

前端可以选择使用HTML、CSS 和JavaScript开发乘客端和司机端的界面,后端可以选择使用Java或Python等编程语言进行服务器的搭建。

数据库可以选择使用MySQL或MongoDB等。

2.界面设计:在乘客端的界面设计中,应注重用户友好性和易用性。

提供简洁明了的线路查询和公交车实时位置查询等功能。

在司机端的界面设计中,应重点考虑实时监控和导航功能,确保司机能够方便、快速地完成车辆调度工作。

3.数据采集与处理:智能公交车调度管理系统需要采集和处理大量的数据,包括乘客上下车的信息、车辆的位置和行驶速度等。

可以利用传感器和GPS设备等技术实时采集车辆和乘客的数据,并通过数据处理算法将数据转化为有用的信息,为车辆调度和路线优化提供支持。

数据库公交车管理系统课程设计范本

数据库公交车管理系统课程设计范本

数据库公交车管理系统课程设计
课程设计
课题题目:公交车管理系统
学部:理工学部
专业:
班级:
学号:
姓名:
指导老师:
年月日
成绩:
需求分析
用户需求
城市的扩张使得公交线路越来越复杂,为了使得用户更加方便地
能够获得最新公交线路,“公交线路管理系统”帮助人们解决这个问题。

本系统面向的对象是普通乘客,对于普通乘客来说,她们最关心的就是查询。

系统也只对用户提供信息查询功能,并不对用户开放对数据的编辑权限。

对于任何用户,只要浏览本系统的首页,就能够根据自己的需求进行查询。

数据的修改、删除、及时更新工作只能由管理人员实现并对系统进行定期的维护,保证其运行的稳定性。

主要功能
本系统从用户的需求出发,可实现以下功能:
1、线路具体情况查询:输入线路名称就可得到该线路的途经站
点,使用年限和车辆的相关信息。

2、经过此站点的所有路线查询:输入公交车编号就能够查询相
应的路线和站点个数。

3、车辆分配线路管理实现了增,删,改,查的基本的操作
一、系统功能分析与设计(给出模块图及分析说明)例如:
二、数据库设计(全局E-R图及各表)例如:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《软件工程导论》课程设计报告公交车管理系统的设计与实现学生姓名:张勇学号:090403010063年级专业:09信息管理与信息系统指导教师:龙海目录第一章绪论.............................................................................................................................................. 第二章系统分析......................................................................................................................................2.1.组织结构分析..................................................................................................................................2.2.业务流程分析..................................................................................................................................2.3.数据流程分析..................................................................................................................................2.4.系统需求分析..................................................................................................................................2.5.需求规格说明书..............................................................................................................................2.6.处理逻辑说明.................................................................................................................................. 第三章可行性研究..................................................................................................................................3.1引言..................................................................................................................................................3.2现行公交车管理概况......................................................................................................................3.3拟建立的信息系统..........................................................................................................................3.4经济可行性分析..............................................................................................................................3.5技术可行性分析..............................................................................................................................3.6社会可行性分析..............................................................................................................................3.7可行性研究结论.............................................................................................................................. 第四章系统设计......................................................................................................................................4.1.引言..................................................................................................................................................4.2.系统设计方案..................................................................................................................................第五章公交车管理系统的功能实现 ......................................................................................................5.1登陆界面编码设计..........................................................................................................................5.2人员整体信息管理界面编码设计..................................................................................................5.3财务信息管理界面编码设计 .........................................................................................................5.4客运信息查询 ................................................................................................................................. 第六章系统测试计划..............................................................................................................................6.1.引言..................................................................................................................................................6.2.计划..................................................................................................................................................6.3.测试设计说明..................................................................................................................................6.4.评价准则.......................................................................................................................................... 第七章总结..............................................................................................................................................第一章绪论针对公交车传统作业流程中的种种弊端,结合现代迅速发展的信息技术,我运用所学的信息管理及系统分析与设计的知识开发出了公交车的管理信息系统。

一个计算机管理系统必须有一个正确的设计指导思想,通过合理的选择数据结构,操作系统以及开发环境,构成一个完善的网络系统,才能充分发挥计算机信息管理优势。

现代化的车站售票是集预定车票、售票、退票、车次查询、报表及其他各种服务,车站售票组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。

相关文档
最新文档