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;}。
c课程设计之车辆管理系统
c 课程设计之车辆管理系统一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
通过本课程的学习,学生需要掌握车辆管理系统的相关知识,包括车辆管理的基本概念、车辆管理的流程和方法等。
同时,学生需要具备一定的实际操作能力,能够运用所学知识对车辆进行有效管理。
此外,学生应该树立正确的车辆管理意识,具备良好的道德品质和社会责任感。
二、教学内容本课程的教学内容主要包括车辆管理的基本概念、车辆管理的流程和方法。
具体包括以下几个方面:1. 车辆管理的基本概念:车辆管理的定义、特点和作用;2. 车辆管理的流程:车辆的采购、使用、维护和报废等环节的管理;3. 车辆管理的方法:车辆管理的常用方法和技术,如车辆识别码系统、车辆定位系统等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1. 讲授法:通过教师的讲解,使学生掌握车辆管理的基本概念和方法;2. 讨论法:通过分组讨论,培养学生的思考能力和团队协作能力;3. 案例分析法:通过分析实际案例,使学生了解车辆管理的具体操作过程;4. 实验法:通过实际操作,锻炼学生的动手能力和实际应用能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。
教学资源包括教材、参考书、多媒体资料和实验设备等。
1. 教材:选择权威、实用的教材,为学生提供全面、系统的学习资源;2. 参考书:推荐一些相关领域的参考书,帮助学生拓展知识面;3. 多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣;4. 实验设备:准备必要的实验设备,为学生提供实践操作的机会。
五、教学评估本课程的教学评估将采用多元化的方式,以全面、客观、公正地评估学生的学习成果。
评估方式包括但不限于以下几个方面:1. 平时表现:通过观察学生在课堂上的参与程度、提问回答等,了解学生的学习态度和理解程度;2. 作业:布置适量的作业,要求学生在规定时间内完成,以检验学生对知识的掌握情况;3. 考试:定期进行考试,以评估学生对课程知识的全面理解和运用能力。
C 课程设计方案汽车管理系统
武汉工程大学计算机科学与工程学院综合设计报告设计名称:程序设计综合设计设计题目:汽车租赁管理系统学生学号: 1005080214专业班级:计算机工程2班学生姓名:刘子龙学生成绩:指导教师(职称):刘黎志(讲师)课题工作时间: 2011-12-26 至 2012-1-6说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。
4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。
成绩评定表学生姓名:刘子龙学号: 1005080214 班级:计算机工程2班答辩记录表指导教师评语目录目录0摘要0ABSTRACT1第一章绪论21.1课题来源21.2课题意义21.3课题目的21.4应解决的主要问题及应达到的技术要求31.5本设计的理论依据4第二章设计简介及设计方案论述42.1设计内容与目标42.2设计的重点、难点和关键42.3整体设计方案5第三章详细设计73.1重点,难点技术设计与相关解决73.2整体、详细的设计方案8第四章设计结果及分析194.1进入系统分析194.2系统操作管理分析214.3系统工作流程分析234.4系统整体性能分析29总结29致谢30参考文献30附录主要程序代码30摘要在数据信息爆炸的时代,这个社会的人必然会因为要记忆各类繁多的信息多少有些烦恼。
《C语言版交通管理系统》课程设计实验指导
任务四:数据更新与删除模块
2. 实现事务处理机制,确保数据一致性。
3. 提供友好的用户界面,方便管理员进行操作。
04
实验结果与演示
实验结果展示
实验结果展示
学生需要将实验结果以书面报告 的形式展示出来,包括程序代码、 运行结果、数据分析和结论等部 分。
实验结果评价
教师对学生的实验结果进行评估, 包括程序的正确性、效率、可读 性和可维护性等方面。
03
培养学生对实际问题的分析和解决能力,提高学生 的编程实践能力和团队协作能力。
实验要求
01
完成一个简单的交通管理系统,实现车辆信息录入、
查询、修改和删除等基本功能。
02
在实现基本功能的基础上,可适当增加其他功能,如
按车牌号查询、按车主姓名查询、统计车辆数量等。
03
保证程序的正确性、稳定性和可维护性,遵循良好的
将各个模块进行整合,实现系统整体功能。
数据结构设计
车辆信息表
存储车辆的基本信息,如车牌号、车 型、颜色等。
驾驶员信息表
存储驾驶员的基本信息,如姓名、性 别、年龄等。
违章记录表
存储违章记录的信息,如违章时间、 地点、违章内容等。
事故处理表
存储事故处理的信息,如事故时间、 地点、责任方等。
03
实验任务与步骤
任务一:数据录入模块
2. 实现添加新数据的函数,包括输入验证和错误处理。
3. 确保数据的一致性和完整性。
任务二:数据查询模块
• 数据查询模块概述:该模块允许 用户根据特定条件查询交通信息。
任务二:数据查询模块
功能要求 1. 能够按车辆ID查询车辆信息。 2. 能够按驾驶员ID查询驾驶员信息。
c语言车辆管理系统课程设计
c语言车辆管理系统课程设计一、课程目标知识目标:1. 学生能掌握C语言基础,包括数据类型、运算符、控制结构等,并运用到车辆管理系统的设计与实现中。
2. 学生能理解并运用数组、结构体等数据结构进行车辆信息的存储与管理。
3. 学生能运用文件操作实现对车辆信息数据的持久化存储。
技能目标:1. 学生能运用C语言编写出功能完整的车辆管理系统,包括车辆信息的添加、删除、查询和修改。
2. 学生通过课程学习,培养编程思维和解决问题的能力,具备一定的系统分析和设计能力。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣,形成积极的学习态度和自主探究的精神。
2. 学生通过团队协作完成项目,培养沟通协作能力和集体荣誉感。
3. 学生在课程实践中,体会科技对生活的改变,增强对社会主义核心价值观的认同。
分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 掌握C语言基础知识,能独立完成车辆管理系统的基础功能编写。
2. 学会使用数据结构进行信息管理,提高代码的可读性和可维护性。
3. 通过项目实践,培养团队协作能力和解决问题的实际操作能力。
二、教学内容1. C语言基础:变量、数据类型、运算符、表达式、控制结构(顺序、选择、循环)。
相关教材章节:第一章至第四章。
2. 函数:函数定义、调用、参数传递、返回值。
相关教材章节:第五章。
3. 数组:一维数组、二维数组、数组操作。
相关教材章节:第六章。
4. 指针:指针的概念、指针操作、指针与数组、指针与函数。
相关教材章节:第七章。
5. 结构体:结构体定义、结构体变量操作、结构体数组、结构体指针。
相关教材章节:第八章。
6. 文件操作:文件打开、关闭、读写、定位。
相关教材章节:第十章。
7. 车辆管理系统设计与实现:系统需求分析、模块划分、功能实现、测试与调试。
教学内容安排:- 系统需求分析与设计:1课时- 车辆信息管理模块实现:2课时- 车辆信息查询模块实现:2课时- 车辆信息添加、删除、修改模块实现:2课时- 系统测试与调试:1课时教学内容确保科学性和系统性,以教材为基础,结合实际案例,使学生能够将所学知识应用于车辆管理系统的设计与实现中。
c课程设计车辆管理系统
c 课程设计车辆管理系统一、教学目标本课程旨在通过学习车辆管理系统,使学生掌握C语言编程的基本概念和方法,培养学生解决实际问题的能力。
具体目标如下:1.理解C语言的基本语法和数据类型。
2.掌握函数的定义和调用。
3.了解指针的概念和应用。
4.熟悉结构体的定义和使用。
5.掌握文件操作的基本方法。
6.能够使用C语言编写简单的程序。
7.能够运用结构体和指针处理复杂的数据结构。
8.能够使用文件操作实现数据的持久化存储。
9.能够独立分析和解决实际问题,编写相应的车辆管理系统程序。
情感态度价值观目标:1.培养学生的编程兴趣,提高自主学习的积极性。
2.培养学生的团队合作意识,学会与他人分享和交流。
3.培养学生的创新精神,鼓励学生大胆尝试和发现问题。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、函数、指针、结构体和文件操作等。
具体安排如下:1.C语言的基本语法和数据类型:介绍C语言的基本结构和数据类型,包括整型、浮点型、字符型等。
2.函数的定义和调用:讲解函数的声明、定义和调用,包括递归函数和外部函数。
3.指针的概念和应用:介绍指针的基本概念和运算,包括指针的声明、指针的赋值和指针的解引用等。
4.结构体的定义和使用:讲解结构体的定义和使用,包括结构体的声明、结构体的成员访问和结构体的指针等。
5.文件操作的基本方法:介绍文件的打开、关闭、读写等基本操作,包括文本文件和二进制文件的读写。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解和示范,使学生掌握C语言的基本概念和方法。
2.讨论法:学生进行小组讨论,培养学生的团队合作意识和问题解决能力。
3.案例分析法:通过分析实际案例,使学生了解C语言在车辆管理系统中的应用。
4.实验法:安排实验室实践,让学生亲自动手编写程序,巩固所学知识。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
c课程设计车辆管理系统
c课程设计车辆管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握车辆管理系统的基本概念、原理和架构;技能目标要求学生能够运用所学知识设计并实现一个简单的车辆管理系统;情感态度价值观目标要求学生培养对车辆管理系统的兴趣,提高解决问题的能力。
二、教学内容本课程的教学内容主要包括车辆管理系统的基本概念、原理和架构,以及设计实现一个简单车辆管理系统的过程。
具体包括以下几个部分:1.车辆管理系统的基本概念:介绍车辆管理系统的定义、功能和应用场景。
2.车辆管理系统的原理:讲解车辆管理系统的运行原理和工作流程。
3.车辆管理系统的架构:介绍车辆管理系统的组成部分及其相互关系。
4.设计实现简单车辆管理系统:引导学生运用所学知识,分组完成一个简单车辆管理系统的设计、编码、测试和调试。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
讲授法用于讲解基本概念、原理和架构;讨论法用于引导学生深入思考和探讨问题;案例分析法用于分析实际案例,帮助学生理解车辆管理系统的工作原理;实验法用于让学生动手实践,培养实际操作能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于为学生提供理论知识的支撑;多媒体资料用于辅助教学,提高学生的学习兴趣;实验设备用于开展实验教学,让学生动手实践,培养实际操作能力。
五、教学评估本课程的教学评估采用多元化的方式,包括平时表现、作业、考试等。
平时表现主要评估学生的课堂参与度、提问回答等情况;作业分为平时练习和项目实践,评估学生对知识的理解和应用能力;考试分为期中考试和期末考试,全面测试学生的知识掌握和运用情况。
评估方式应客观、公正,能够全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:共计32课时,每周2课时,共16周完成。
教学地点安排在教室和实验室,以便于学生进行理论学习和实践操作。
车辆租赁管理系统C课程设计
车辆租赁管理系统C 课程设计一、课程目标知识目标:1. 让学生理解车辆租赁管理系统的基本概念和功能需求,掌握系统设计的基本原理和步骤。
2. 使学生掌握数据库设计的基本方法,并能运用SQL语言进行数据操作。
3. 帮助学生掌握C语言编程技巧,实现车辆租赁管理系统的核心功能模块。
技能目标:1. 培养学生运用结构化分析方法进行系统需求分析的能力。
2. 培养学生运用数据库设计工具进行数据库设计的能力。
3. 提高学生编程实践能力,能够独立完成车辆租赁管理系统部分功能模块的开发。
情感态度价值观目标:1. 培养学生热爱编程,对计算机科学技术产生浓厚兴趣。
2. 培养学生具备团队协作精神,能够与他人共同完成项目任务。
3. 增强学生的责任感和使命感,认识到信息技术在现代社会中的重要作用。
课程性质:本课程为信息技术学科选修课程,结合实际项目案例,培养学生的编程实践能力和系统设计能力。
学生特点:学生具备一定的C语言基础和数据库知识,对编程和系统设计有一定兴趣,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,以项目为导向,培养学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 系统需求分析:讲解车辆租赁管理系统的功能需求、性能需求等,使学生掌握需求分析方法,学会编写需求规格说明书。
教材章节:第二章 系统分析与设计内容安排:2课时2. 数据库设计:介绍数据库设计的基本概念、E-R模型、关系模型等,使学生掌握数据库设计方法和SQL语言。
教材章节:第三章 数据库设计与实现内容安排:4课时3. C语言编程实践:讲解C语言在车辆租赁管理系统中的应用,包括数据结构、函数、模块化编程等,提高学生编程实践能力。
教材章节:第四章 C语言编程实践内容安排:6课时4. 系统功能实现:结合实际项目案例,讲解车辆租赁管理系统的核心功能模块,如用户管理、车辆管理、订单管理等。
教材章节:第五章 系统功能实现内容安排:8课时5. 系统测试与优化:介绍系统测试方法,让学生学会对车辆租赁管理系统进行功能测试、性能测试等,并能对系统进行优化。
车辆管理系统课程设计报告(C++)
}
if(i == '1')
{cout<<"请输入需查询车辆的制造公司:";
cin>>t;}
else if(i == '2')
{cout<<"请输入需查询的车辆编号:";
cin>>n;}
else if(i == '3')
{cout<<"请输入需查询的车辆型号(1-大客车,2-小轿车,3-卡车):";
cin>>m;}
10
总分
100
指导教师评语:
指导教师签名:
年月日
格式要求:
中文正文使用五号字体,英文及代码使用小五号字体
东华理工大学
课程设计评分表
学生姓名:C班级16*****学号:20162018****
课程设计题目:
项目内容
满分
实评
选
题
能结合所学课程知识、有一定的能力训练。符合选题要求
(5人一题)
10
工作量适中,难易度合理
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文献及运用文献资料能力
c++车辆管理课程设计
c++车辆管理课程设计一、课程目标知识目标:1. 掌握C++语言基础,包括数据类型、运算符、控制结构等;2. 学会使用C++面向对象编程思想,理解类与对象的关系;3. 掌握C++文件操作,实现车辆信息数据的读写;4. 了解STL模板库的使用,提高代码复用性。
技能目标:1. 能够运用C++编写车辆管理系统的基本功能模块;2. 独立设计并实现车辆信息管理、车辆租赁和归还等业务流程;3. 学会使用调试工具,找出并修复程序中的错误;4. 提高团队协作能力,通过分工合作完成课程设计。
情感态度价值观目标:1. 培养对计算机编程的兴趣和热情,增强学习动力;2. 培养良好的编程习惯,遵循编码规范,注重代码质量;3. 树立正确的价值观,认识到编程在解决实际问题中的重要作用;4. 增强团队意识,学会与他人沟通协作,共同解决问题。
课程性质:本课程为C++编程实践课程,以车辆管理系统为背景,培养学生运用C++语言解决实际问题的能力。
学生特点:学生已经具备一定的C++语言基础,具有一定的编程能力,但实践经验不足。
教学要求:结合学生特点,注重实践操作,提高学生的编程能力和团队协作能力。
在教学过程中,注重引导学生主动思考,培养学生解决问题的能力。
通过课程设计,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。
二、教学内容1. C++基础回顾- 数据类型与变量- 控制结构(条件语句、循环语句)- 函数的定义与调用2. 面向对象编程- 类与对象- 继承与多态- 抽象类与接口3. 文件操作- 文件的打开与关闭- 文件的读写操作- 文件异常处理4. STL模板库- 容器简介- 常用容器(如vector、list、map等)- 算法与迭代器5. 车辆管理系统功能模块设计- 车辆信息管理- 车辆租赁与归还- 费用计算与支付- 车辆维护与保养6. 编程规范与调试- 编码规范- 调试技巧- 代码优化7. 团队协作与项目实践- 项目分工与协作- 代码版本控制- 项目进度管理与沟通教学内容安排与进度:第一周:C++基础回顾第二周:面向对象编程第三周:文件操作第四周:STL模板库第五周:车辆管理系统功能模块设计第六周:编程规范与调试第七周:团队协作与项目实践教材章节关联:教学内容与教材中相关章节紧密关联,涵盖C++语言基础、面向对象编程、文件操作、STL模板库等内容,确保学生能够结合教材,系统地学习和掌握课程知识。
c语言课程设计车辆管理系统
c语言课程设计车辆管理系统一、教学目标本课程的目标是让学生掌握C语言的基本语法,能够运用C语言设计一个简单的车辆管理系统。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法,理解变量、数据类型、运算符、控制结构等基本概念。
2.技能目标:学生能够运用C语言编写程序,实现对车辆信息的增删改查功能。
3.情感态度价值观目标:培养学生对编程的兴趣,提高学生解决问题的能力,培养学生的团队合作精神。
二、教学内容本课程的教学内容主要包括C语言的基本语法、变量、数据类型、运算符、控制结构等。
具体安排如下:1.第一章:C语言概述,介绍C语言的基本语法和编程环境。
2.第二章:数据类型和变量,讲解整型、浮点型、字符型等数据类型以及变量的使用。
3.第三章:运算符和表达式,介绍算术运算符、关系运算符、逻辑运算符等。
4.第四章:控制结构,讲解顺序结构、选择结构、循环结构等。
5.第五章:函数,介绍函数的定义、声明和调用,以及常用的库函数。
6.第六章:指针,讲解指针的概念和运用,以及指针数组和指向指针的指针。
7.第七章:车辆管理系统,运用所学知识设计一个简单的车辆管理系统。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过讲解C语言的基本语法、数据类型、运算符等概念,使学生掌握基础知识。
2.案例分析法:通过分析实际案例,让学生理解控制结构、函数、指针等知识点在实际编程中的应用。
3.实验法:安排实验课程,让学生动手编写程序,培养实际编程能力。
四、教学资源1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C语言编程思想》3.多媒体资料:PPT课件、教学视频4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。
具体评估标准如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。
2.作业:占课程总评的30%,包括课后练习、编程任务等。
车辆管理系统课程设计MFC
车辆管理系统课程设计MFC一、课程目标知识目标:1. 学生能理解车辆管理系统MFC的基本概念,掌握MFC编程的基本框架和关键步骤。
2. 学生能描述车辆管理系统的功能模块,如车辆信息管理、停车位管理、收费管理等,并了解它们之间的关联。
3. 学生能掌握使用MFC进行数据库操作的方法,实现对车辆管理系统中数据的有效存取。
技能目标:1. 学生能运用MFC软件开发工具,设计并实现一个简单的车辆管理系统。
2. 学生能通过调试和优化,解决车辆管理系统开发过程中遇到的问题,提高系统稳定性。
3. 学生能运用所学知识,对车辆管理系统进行功能扩展,提升系统实用性。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,树立编程改变生活的观念。
2. 学生通过小组合作,培养团队协作精神和沟通能力,增强解决问题的信心。
3. 学生关注车辆管理系统在实际生活中的应用,认识到技术对社会发展的推动作用。
课程性质:本课程为实践性较强的课程,结合课本知识,引导学生动手实践,培养编程能力和实际应用能力。
学生特点:初三学生具备一定的计算机基础和编程知识,对实际应用具有较强的兴趣。
教学要求:教师需注重理论与实践相结合,关注学生个体差异,提供个性化指导,确保学生能够学以致用。
在教学过程中,分解课程目标为具体学习成果,便于教学设计和评估。
二、教学内容1. 车辆管理系统概述:介绍车辆管理系统的概念、功能及在实际生活中的应用,使学生了解课程背景和实际意义。
- 教材章节:第一章 车辆管理系统简介2. MFC编程基础:讲解MFC的基本框架、常用控件及其使用方法,为学生后续开发打下基础。
- 教材章节:第二章 MFC编程基础3. 数据库操作:介绍数据库的基本概念,讲解MFC中如何进行数据库操作,如数据的添加、查询、修改和删除。
- 教材章节:第三章 数据库操作4. 功能模块设计:分析车辆管理系统的功能模块,引导学生按照模块化思想进行设计。
- 教材章节:第四章 车辆管理系统功能模块设计5. 系统实现与调试:讲解如何利用MFC工具将设计转化为实际系统,并介绍调试和优化方法。
c语言汽车课程设计
c语言汽车课程设计一、课程目标知识目标:1. 学生能够掌握C语言的基本语法和编程技巧,尤其是与汽车相关数据结构的实现(如结构体、数组等)。
2. 学生能够运用C语言实现简单的汽车信息管理系统,包括汽车基本信息录入、查询和修改等功能。
3. 学生理解并能运用循环、条件语句以及函数调用来处理复杂逻辑,实现对汽车数据的有效管理。
技能目标:1. 学生能够运用所学知识设计并编写出具有实际意义的C语言程序,提高问题解决能力。
2. 学生通过课程实践,能够掌握基本的编程规范和调试技巧,形成良好的编程习惯。
3. 学生能够通过小组合作,进行有效沟通,共同完成课程设计任务,提高团队协作能力。
情感态度价值观目标:1. 学生在学习过程中培养对编程的兴趣,提高对计算机科学的认识,激发深入学习编程的动机。
2. 学生在课程设计中能够体会编程对于解决实际问题的价值,增强自信心和成就感。
3. 学生通过学习C语言汽车课程设计,认识到信息技术在现代汽车行业中的重要性,形成积极的技术态度和创新意识。
课程性质:本课程设计为实践性较强的学科课程,强调理论联系实际,注重培养学生的动手能力和实际问题解决能力。
学生特点:考虑到学生所在年级,应具备初步的逻辑思维能力,对编程有基础的认识和兴趣,但需进一步引导和实践以深化理解。
教学要求:教学内容需结合课本知识,同时注重实际应用,通过案例教学和项目驱动,激发学生的学习兴趣和探究欲望,确保学生能够达到上述课程目标。
在教学过程中,应不断评估学生的学习成果,及时调整教学策略,确保教学目标的实现。
二、教学内容1. C语言基础知识回顾:数据类型、变量、运算符、表达式、输入输出函数等,确保学生具备基本的编程能力。
相关教材章节:第一章至第三章2. 控制结构:顺序结构、选择结构、循环结构,为学生编写复杂程序打下基础。
相关教材章节:第四章3. 函数:函数的定义、调用、参数传递、递归等,培养学生模块化编程思维。
相关教材章节:第五章4. 数组和字符串:数组的使用、排序算法、字符串处理,为汽车信息管理提供数据支持。
车辆管理系统c课程设计
车辆管理系统c 课程设计一、课程目标知识目标:1. 理解车辆管理系统的基本概念、功能及作用;2. 掌握车辆管理系统中数据库的建立、查询及更新方法;3. 学会分析并解决车辆管理系统中存在的问题。
技能目标:1. 能够运用C语言编写简单的车辆管理系统功能模块;2. 能够利用数据库技术对车辆信息进行有效管理;3. 能够通过实际操作,熟练使用车辆管理系统进行日常业务处理。
情感态度价值观目标:1. 培养学生对车辆管理系统及其实际应用的兴趣,提高学习积极性;2. 培养学生团队协作意识,学会与他人共同解决问题;3. 培养学生具备良好的信息素养,认识到信息技术在现实生活中的重要作用。
课程性质:本课程为信息技术学科,旨在让学生通过学习车辆管理系统,掌握数据库应用和C语言编程技能。
学生特点:学生处于高年级阶段,具备一定的信息技术基础,具有较强的逻辑思维能力和自主学习能力。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的实践操作能力和创新意识。
通过分解课程目标为具体学习成果,使学生在课程学习过程中不断提升自身能力,为后续教学设计和评估提供有力依据。
二、教学内容1. 车辆管理系统的基本概念与功能- 系统介绍:理解车辆管理系统的定义、分类及应用场景;- 功能模块:掌握车辆管理系统的主要功能模块及其相互关系。
2. 数据库技术在车辆管理系统中的应用- 数据库设计:学习如何建立车辆信息数据库,包括表结构设计、关系定义等;- 数据操作:掌握数据库的基本查询、更新、删除等操作。
3. C语言编程在车辆管理系统中的应用- 编程基础:回顾C语言基本语法和编程技巧;- 功能实现:学习使用C语言编写车辆管理系统中的功能模块。
4. 车辆管理系统的实践操作- 案例分析:分析实际车辆管理系统案例,了解系统在实际中的应用;- 实操演练:通过实际操作,学会使用车辆管理系统进行业务处理。
5. 教学内容的安排与进度- 第一周:车辆管理系统基本概念与功能模块介绍;- 第二周:数据库设计与数据操作;- 第三周:C语言编程基础及功能实现;- 第四周:实践操作及案例分析。
汽车汽修管理系统c课程设计样本
目录一、设计题目 (1)二、设计目 (1)三、设计阐明 (1)四、总体设计 (2)五、详细设计 (3)六、结论 (7)七、附录(程序源代码): (7)一、设计题目汽车汽修管理系统二、设计目1.通过课程设计掌握面向对象程序设计思路。
2.通过课程设计掌握类继承、抽象类、多态、虚基类应用办法。
3.通过课程设计掌握C++中对文献进行查找、删除、修改等操作办法。
三、设计阐明1.系统功能需求描述本系统重要实现车辆信息、车辆修理单信息插入、删除及查询等功能。
编程实现汽车汽修管理系统,重要汽车汽修管理系统。
其中车辆信息应当涉及车牌号、牌号、型号、生产厂家、修理项目码、修理日期、修理项目、修理小时数、竣工日期。
车辆修理菜单信息涉及修理单编号、修理工工号、修理日期、修理项目、修理小时数、竣工日期。
详细功能如下:(1)顾客登录界面设计。
(2)信息维护:涉及车辆信息维护:增长车辆信息、删除车辆信息、膝盖车辆信息。
涉及车辆修理单信息维护:增长车辆修理单信息、删除和良修理单信息、修改车辆修理单信息。
(3)信息查询:对车辆信息查询时可实现按车辆名查询、按车主名查询等多条件查询。
对车辆修理单信息查询时可实现按车辆修理单号查询、按修理工工号查询等多条件查询。
(4)修理单记录:按月记录输出上汽车修理单信息。
按月记录每个修理工月修理信息。
2. 系统运营环境(1)硬件环境。
本系统合用于那种Inter386以上计算机,内存容量为128M,应配备键盘、鼠标、显示屏等外部设备。
(2)软件环境。
本系统设计采用Visual C++6.0编写。
在Windows XP SP2环境下测试通过。
四、总体设计1. 数据设计(1)类设计车辆信息类car_infor,该类有共同信息车牌号car_no、牌号car_brand、型号car_modles、生产厂家manufacturer、修理项目码repair_code、车主姓名owner_name、联系电话phone_nomber、修理日期repair_time。
c语言车辆管理系统课程设计
#include<stdio、h>#include<stdlib、h>#include<string、h>#define MAX 3 /*车库容量*/#define price 0、5 /*每车每分钟费用*/typedef struct time{ﻩint hour;intmin;}Time; /*时间结点*/typedefstructnode{char num[10];ﻩTime reach;Time leave;}CarNode;/*车辆信息结点*/typedefstruct NODE{CarNode *stack[MAX + 1];ﻩint top;}Moni_Cheku;typedef struct car{CarNode *data;struct car *next;}QueueNode;typedef structNode{ﻩQueueNode *head;QueueNode *rear;}Moni_Biandao;void InitStack(Moni_Cheku *); /*初始化车库*/int InitQueue(Moni_Biandao *);/*初始化便道*/intArrival(Moni_Cheku*, Moni_Biandao *); /*车辆到达*/void Leave(Moni_Cheku*, Moni_Cheku *,Moni_Biandao *); /*车辆离开*/void List(Moni_Cheku, Moni_Biandao); /*显示车库与便道得存车信息*/int main(){ﻩMoni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /*初始化车站*/ﻩInitStack(&Temp); /*初始化让路得临时链表*/ﻩInitQueue(&Wait); /*初始化便道*/printf("\n");printf(" ^_^欢迎进入停车场管理系统1!^_^\n");printf("\n");ﻩprintf("提示! (1)、该车库得最大容量为:%d;\n", MAX);printf(" (2)、该车库得收费标准为:%4、2f元/(辆*分钟)、\n", price);while (1)ﻩ{ﻩ system("CLS");printf("********************主菜单********************\n");ﻩﻩprintf("1、车辆到达");ﻩprintf(" 2、车辆离开");ﻩprintf(" 3、列表显示");printf(" 4、退出系统\n");ﻩprintf("**********************************************\n");ﻩ printf("请选择(1-4):[ ]\b\b");ﻩﻩwhile (1)ﻩ{ﻩﻩscanf("%d",&ch);ﻩﻩif(ch >= 1 && ch <= 4)break;ﻩﻩﻩelse printf("错误!请重选(1-4):[ ]\b\b");}switch (ch)ﻩ{case 1:Arrival(&Enter, &Wait); break;/*车辆到达*/ﻩcase 2:Leave(&Enter, &Temp,&Wait); break; /*车辆离开*/case 3:List(Enter, Wait); break; /*打印列表信息*/ﻩﻩcase4:exit(0); /*退出主程序*/default: break;ﻩ}}ﻩreturn 0;}void InitStack(Moni_Cheku *s) /*初始化车库*/{ﻩint i;ﻩs->top = 0;ﻩfor (i=0; i <= MAX; i++)s->stack[s->top] = NULL;}int InitQueue(Moni_Biandao*Q) /*初始化便道*/{ﻩQ->head = (QueueNode *)malloc(sizeof(QueueNode));ﻩif (Q->head!= NULL)ﻩ{ﻩ Q->head->next = NULL;Q->rear = Q->head;ﻩreturn(1);ﻩ}ﻩelsereturn(-1);}void PRINT(CarNode *p,int room) /*输出出库车得信息*/{ﻩint A1, A2, B1, B2;ﻩ{printf("请输入离开得时间:/**:**/");ﻩﻩscanf("%d:%d", &(p->leave、hour), &(p->leave、min));ﻩ printf("离开车辆得车牌号为:");puts(p->num);printf("其到达时间为: %d:%d\n", p->reach、hou r, p->reach、min);ﻩprintf("离开时间为: %d:%d\n", p->leave、hour, p->leave、min);ﻩA1 = p->reach、hour;ﻩA2 = p->reach、min;B1 =p->leave、hour;ﻩﻩB2 = p->leave、min;printf("应交费用为:%4、2f元", ((B1- A1) * 60 + (B2 - A2))*price);ﻩﻩfree(p);ﻩ}}int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/{ﻩCarNode *p;ﻩQueueNode *t;p = (CarNode *)malloc(sizeof(CarNode));ﻩfflush(stdin);ﻩprintf("请输入车牌号(例如:中CUG888):");scanf("%s",&(p->num));if(Enter->top <MAX) /*车库未满,车进车库*/{ﻩ Enter->top++;printf("该车在车库位置%d、\n", Enter->top);printf("请输入到达时间(**:**):");scanf("%d:%d", &(p->reach、hour), &(p->reach、min));ﻩﻩEnter->stack[Enter->top] = p;ﻩ return(1);ﻩ}ﻩelse /*车库已满,车进便道*/{printf("该车须在便道等待!\n");t= (QueueNode *)malloc(sizeof(QueueNode));t->data= p;ﻩﻩt->next = NULL;ﻩW->rear->next = t;ﻩ W->rear = t;return(1);}}void Leave(Moni_Cheku*Enter, Moni_Cheku *Temp, Moni_Biandao *W) /*车辆离开*/{int i, room;CarNode*p, *t;ﻩQueueNode *q;ﻩ/*判断车库内就是否有车*/if (Enter->top > 0) /*有车*/ﻩ{ﻩ printf("请输入车在车库得位置(1--%d):", Enter->top);/*输入车辆离开得信息*/while (1){ﻩscanf("%d",&room);ﻩﻩif (room >= 1 && room <= Enter->top) break;ﻩelse printf("错误!请重选:");ﻩﻩ}ﻩwhile (Enter->top > room) /*车辆离开*/{ﻩﻩTemp->top++;ﻩTemp->stack[Temp->top] = Enter->stack[Enter->top];ﻩﻩﻩEnter->stack[Enter->top] =NULL;ﻩEnter->top--;ﻩﻩ}p = Enter->stack[Enter->top];ﻩEnter->stack[Enter->top] = NULL;Enter->top--;while (Temp->top >=1)ﻩ {ﻩﻩEnter->top++;ﻩﻩEnter->stack[Enter->top]= Temp->stack[Temp->top];ﻩTemp->stack[Temp->top] = NULL;ﻩ Temp->top--;ﻩ }PRINT(p, room); /*判断通道上就是否有车及车库就是否已满*/ﻩif ((W->head != W->rear) && Enter->top <MAX) /*便道得车辆进入车库*/ﻩ {ﻩ q = W->head->next;ﻩﻩﻩt = q->data;ﻩﻩEnter->top++;ﻩﻩprintf("\n便道得%s号车进入车场第%d位置、", t->num,Enter->top);ﻩﻩﻩprintf("\n请输入现在得时间(**:**):");ﻩﻩscanf("%d:%d", &(t->reach、hour), &(t->reach、min));ﻩﻩﻩW->head->next= q->next;ﻩﻩif (q == W->rear) W->rear = W->head;ﻩEnter->stack[Enter->top] = t;ﻩﻩfree(q);ﻩ }ﻩelse printf("\n便道里没有车、\n");ﻩ}ﻩelse printf("车库里没有车!\n"); /*没车*/}void List1(Moni_Cheku *S) /*列表显示车库信息*/{ﻩint i;ﻩif (S->top > 0) /*判断车库内就是否有车*/{ﻩﻩprintf("车库号到达时间\t车牌号\n");ﻩfor (i = 1; i <= S->top; i++)ﻩ {ﻩﻩﻩprintf(" %d ", i);ﻩﻩﻩprintf(" \t%d:%d", S->stack[i]->reach、hour, S->stack[i]->reach、min);ﻩﻩprintf("\t\t%s\n",S->stack[i]->num);ﻩﻩ}ﻩ}ﻩelse printf("车库里没有车\n");}void List2(Moni_Biandao *W) /*列表显示便道信息*/{QueueNode *p;ﻩp = W->head->next;if (W->head != W->rear) /*判断便道上就是否有车*/ ﻩ{ﻩﻩprintf("在便道里等待得车辆得号码为:\n");ﻩ while (p != NULL)ﻩ{puts(p->data->num);ﻩ p = p->next;ﻩ}ﻩ}else printf("便道里没有车、\n");}void List(Moni_Cheku S, Moni_Biandao W) {int flag,tag;ﻩflag = 1;ﻩwhile (flag)ﻩ{printf("**********查瞧**********\n");printf("1、车库2、便道3、返回\n");ﻩ printf("************************\n");ﻩprintf("请选择(1-3):[ ]\b\b");ﻩwhile (1)ﻩﻩ{ﻩﻩscanf("%d", &tag);ﻩﻩﻩif (tag >= 1 && tag <= 3)break;ﻩ else printf("错误!请重选(1-3):[ ]\b\b"); ﻩ}ﻩ switch (tag)ﻩ{case 1:List1(&S);ﻩ break;/*列表显示车库信息*/case 2:ﻩList2(&W);break; /*列表显示便到信息*/ ﻩﻩcase 3:flag = 0;ﻩ break;ﻩdefault:ﻩbreak;ﻩ }ﻩ}}。
c课程设计车辆管理系统
c课程设计车辆管理系统一、课程目标知识目标:1. 让学生理解车辆管理系统的基本概念,掌握系统的组成与功能。
2. 使学生掌握车辆管理系统中车辆信息管理、车辆调度管理、车位管理等方面的基本知识。
3. 帮助学生了解数据库在车辆管理系统中的应用,并掌握基本的数据库操作。
技能目标:1. 培养学生运用所学知识设计简单的车辆管理系统的能力。
2. 提高学生分析实际车辆管理问题,提出解决方案并进行优化的能力。
3. 培养学生通过小组合作,进行项目实践和沟通协调的能力。
情感态度价值观目标:1. 培养学生对车辆管理系统及相关技术领域的兴趣,激发他们的探究欲望。
2. 培养学生具备良好的团队协作精神,学会尊重他人意见,善于倾听。
3. 增强学生的社会责任感,使他们认识到车辆管理系统对城市交通、环境保护等方面的重要意义。
分析课程性质、学生特点和教学要求:本课程为信息技术课程,旨在让学生结合实际生活,运用所学知识设计车辆管理系统。
学生为初中生,具有一定的信息技术基础,对新鲜事物充满好奇。
教学要求注重实践操作,引导学生主动探究,培养解决问题的能力。
课程目标分解:1. 知识目标:通过本课程学习,学生能掌握车辆管理系统的基础知识,了解系统的各个模块及其功能。
2. 技能目标:学生能运用所学知识,设计并实现一个简单的车辆管理系统,具备一定的项目实践能力。
3. 情感态度价值观目标:学生在课程学习过程中,能够积极参与小组合作,尊重他人,关注社会问题,提高自身的社会责任感。
二、教学内容1. 车辆管理系统概述- 了解车辆管理系统的定义、作用及发展历程。
- 学习车辆管理系统的基本组成和功能模块。
2. 车辆信息管理- 掌握车辆基本信息的数据结构。
- 学习车辆信息录入、查询、修改和删除等操作。
3. 车辆调度管理- 了解车辆调度原则和方法。
- 学习车辆调度算法及其在实际中的应用。
4. 车位管理- 学习车位分配策略和车位查找算法。
- 掌握车位信息管理的基本操作。
C课程设计之车辆管理系统
C++面向对象程序设计课程设计报告课程名称 C++面向对象程序设计课题名称车辆管理系统专业班级学号姓名指导教师年月日一、课程设计题目:题目4 车辆管理系统二、目的与要求:1、目的:1要求学生达到熟练掌握C++语言的基本知识和技能;2基本掌握面向对象程序设计的基本思路和方法;3能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题;2、基本要求:1要求利用面向对象的方法以及C++的编程思想来完成系统的设计;2要求在设计的过程中,建立清晰的类层次;3在系统中至少要定义四个类,每个类中要有各自的属性和方法;4在系统的设计中,至少要用到面向对象的一种机制;3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能;三、设计方法和基本原理:功能要求:1)添加车辆程序主要完成车辆信息的添加,要求编号唯一;如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果车辆信息库已满,则提示不能再添加新的车辆信息;2)查询车辆可按照三种方式进行物品的查询;·按车辆制造公司查询:·按编号查询:·按类别查询:如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;3)显示车辆信息库可显示当前车辆信息库中所有的车辆信息;4)修改车辆可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性;5删除车辆对已添加的车辆信息进行删除;如果当前车辆信息库为空,则提示“车辆信息库为空”并返回操作;否则输入要删除的编号,根据编号删除该车辆信息,如果没有找到该车辆信息,则提示“该编号不存在”;6统计功能输出当前车辆信息库中总车辆数,以及按车辆类别,统计出当前车辆信息库中各类别的车辆数并显示;7)保存车辆将当前系统中车辆信息存入文件中;8)读取车辆将保存在文件中的车辆信息读入到当前系统中,以供用户使用;在完成以上基本功能的基础上,可自行进行扩展或完善;3、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:1应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2分析系统中的各个实体以及它们之间的关系;3根据问题描述,设计系统的类层次;4完成类层次中各个类的描述;5完成类中各个成员函数的定义;6完成系统的应用模块;7功能调试;8完成系统总结报告;目录系统需求分析系统设计的目的与意义:随着社会的进步和人们生活水平的提高,车辆作为交通工具,已经成为人们日常生活中不可缺少的一部分.大大增加了交通压力,同时,也对车辆里的管理有了一个更高的要求.因此,需要一个车辆管理系统来对各种车辆的各种信息进行统一管理.系统功能需求:本系统有三个类:Car类、Truck类、Bus类,存储小轿车信息、卡车信息、大客车信息;1添加车辆程序主要完成车辆信息的添加,要求编号唯一;如果添加了重复编号的物品时,则提示用户数据添加重复并取消添加;如果车辆信息库已满,则提示不能再添加新的车辆信息;2查询车辆可按照三种方式进行物品的查询;·按车辆制造公司查询:·按编号查询:·按类别查询:如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;3显示车辆信息库可显示当前车辆信息库中所有的车辆信息;4修改车辆可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性;5删除车辆对已添加的车辆信息进行删除;如果当前车辆信息库为空,则提示“车辆信息库为空”并返回操作;否则输入要删除的编号,根据编号删除该车辆信息,如果没有找到该车辆信息,则提示“该编号不存在”;6统计功能输出当前车辆信息库中总车辆数,以及按车辆类别,统计出当前车辆信息库中各类别的车辆数并显示;7保存车辆将当前系统中车辆信息存入文件中;8读取车辆将保存在文件中的车辆信息读入到当前系统中,以供用户使用;总体设计系统功能分析:系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能;add函数用于录入信息;modify函数用来修改信息;del函数用来修改信息;search 函数用来查询车辆信息;read函数用于将文件中的数据读取到内存中;save函数用于将内存中的信息存入文件内;主函数main用于调用这些函数;系统功能模块划分与设计:系统定义了Car类、Truck类、Bus类这三个类,定义了add、modify、del、read、save、search等函数来实现系统所需功能;系统功能模块图:类的设计1Base类抽象类的设计:2小轿车类的设计3卡车类的设计:4大客车类的设计:详细设计及实现Baseclass Base{public:virtual void delint=0;virtual void save=0;virtual void search=0;};小轿车类的实现class Car:public Base{public:double carFee;char carID20;char carName20;void read;void add;void modifyint;void delint;void save;void search;};void Car::read{ifstream carfile;"轿车信息.txt";carfile>>carcount_car.carID>>carcount_car.carName>>carcount_car.carFee;while{count_car++;carfile>>carcount_car.carID>>carcount_car.carName>>carcount_car.carFee;};}void Car::add{arID,carID;strcpycarcount_car.carName,carName;carcount_car.carFee=carFee;count_car++;}void Car::modifyint index{strcpycarindex-1.carID,carID;strcpycarindex-1.carName,carName;carindex-1.carFee=carFee;}void Car::delint index{arID,cari.carID;strcpycari-1.carName,cari.carName;cari-1.carFee=cari.carFee;}count_car--;}void Car::search{forint i=0;i<count_car-1;i++{ifstrcmpcari.carID,carID==0||strcmpcari.carName,carName==0{cout<<"轿车车牌号 "<<"轿车品牌 "<<"轿车油耗费用"<<endl;cout<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;break;}elsecout<<"无此轿车数据"<<endl;break;}}void Car::save{ofstream carfile;"轿车信息.txt";forint i=0;i<=count_car-1;i++carfile<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;;}卡车类的实现class Truck:public Base{public:char truckID20;char truckName20;int truckNum;void read;void add;void modifyint;void delint;void save;void search;};void Truck::read{ifstream truckfile;"卡车信息.txt";truckfile>>truckcount_truck.truckID>>truckcount_truck.truckName>>t ruckcount_truck.truckNum;while{count_truck++;truckfile>>truckcount_truck.truckID>>truckcount_truck.truckName >>truckcount_truck.truckNum;};}void Truck::add{ruckName,truckName;strcpytruckcount_truck.truckID,truckID;truckcount_truck.truckNum=truckNum;count_truck++;}void Truck::modifyint index{strcpytruckindex-1.truckID,truckID;strcpytruckindex-1.truckName,truckName;truckindex-1.truckNum=truckNum;}void Truck::delint index{ruckID,truckID;strcpytrucki-1.truckName,truckName;trucki-1.truckNum=truckNum;}count_truck--;}void Truck::search{forint i=0;i<count_truck-1;i++{ifstrcmptrucki.truckID,truckID==0{cout<<"卡车车牌号 "<<"卡车品牌"<<"卡车载重数吨"<<endl;cout<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum<<endl;break;}elsecout<<"无此卡车数据"<<endl;break;}}void Truck::save{ofstream truckfile;"卡车信息.txt";forint i=0;i<=count_truck-1;i++truckfile<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum;;}大客车类的实现class Bus:public Base{public:char busName20;char busID20;int busNum;void read;void add;void modifyint;void delint;void save;void search;};void Bus::read{fstream busfile"客车信息.txt",ios::in|ios::out;busfile>>buscount_bus.busID>>buscount_bus.busName>>buscount_bus.busNum;while{count_bus++;busfile>>buscount_bus.busID>>buscount_bus.busName>>buscount_bus.busNum;};}void Bus::add{usID,busID;strcpybuscount_bus.busName,busName;buscount_bus.busNum=busNum;count_bus++;}void Bus::modifyint index{strcpybusindex-1.busID,busID;strcpybusindex-1.busName,busName;busindex-1.busNum=busNum;}void Bus::delint index{usID,busi.busID;strcpybusi-1.busName,busi.busName;busi-1.busNum=busi.busNum;}count_bus--;}void Bus::search{forint i=0;i<count_bus-1;i++{ifstrcmpbusi.busID,busID==0{cout<<"客车车牌号 "<<"客车品牌 "<<"客车最大载客数人"<<endl;cout<<busi.busID<<" "<<busi.busName<<" "<<busi.busNum<<endl;break;}elsecout<<"无此客车数据"<<endl;break;}}void Bus::save{ofstream busfile;"客车信息.txt";forint i=0;i<=count_bus-1;i++busfile<<busi.busID<<" "<<busi.busName<<" "<<busi.busNum<<endl; ;}include <>include<>include <>include <>include <>Car carMAXcar;Truck truckMAXtruck;Bus busMAXbus;int count_car=0;int count_truck=0;int count_bus=0;Base p=NULL;char c;加轿车信息"<<endl;cout<<" 2.修改轿车信息"<<endl;cout<<" 3.删除轿车信息"<<endl;cout<<" 4.查询轿车信息"<<endl;cout<<" 5.显示所有轿车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Car car1;p=&car1;cout<<"请输入轿车车牌号、轿车品牌、油耗费用:"<<endl; cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Car car2;p=&car2;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;cout<<"请选择轿车序号:"<<endl;cin>>index;cout<<"请输入要修改的轿车车牌号、轿车品牌、油耗费用:"<<endl; cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Car car3;p=&car3;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;cout<<"请选择要修改的轿车车牌号、轿车品牌、油耗费用的序列号:"<<endl;cin>>index;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Car car4;p=&car4;cout<<"请输入轿车的车名:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"轿车车牌号 "<<"轿车品牌 "<<"轿车油耗费用"<<endl;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<" "<<cari.carFee<<endl;system"pause";ifcount_car==0cout<<setw20<<"轿车信息库为空"<<endl;system"pause";break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl; break;}ifquit==truebreak;}system"cls";return;}加卡车信息"<<endl;cout<<" 2.修改卡车信息"<<endl;cout<<" 3.删除卡车信息"<<endl;cout<<" 4.查询卡车信息"<<endl;cout<<" 5.显示所有卡车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Truck truck1;p=&truck1;cout<<"请输入卡车的车牌号、卡车品牌、载重数吨:"<<endl; cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Truck truck2;p=&truck2;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<endl; cout<<"请选择要修改的卡车信息的序列号:"<<endl;cin>>index;cout<<"请输入要修改卡车的车牌号、卡车品牌、载重数吨:"<<endl;cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Truck truck3;p=&truck3;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<" "<<trucki.truckNum<<endl;cout<<"请选择要删除的卡车信息序列号:"<<endl;cin>>index;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc='n'||c=='N'{p->delindex;p->save;}break;}case 4:{Truck truck4;cout<<"请输入卡车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"卡车车牌号 "<<"卡车品牌 "<<"卡车载重数吨"<<endl;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum<<endl;system"pause";ifcount_truck==0cout<<setw20<<"卡车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}加客车信息"<<endl;cout<<" 2.修改客车信息"<<endl;cout<<" 3.删除客车信息"<<endl;cout<<" 4.查询客车信息"<<endl;cout<<" 5.显示所有客车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Bus bus1;p=&bus1;cout<<"请输入要添加的客车的车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Bus bus2;p=&bus2;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要修改的客车信息序列号:"<<endl;cin>>index;cout<<"请输入要修改的客车车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Bus bus3;p=&bus3;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要删除的客车信息序列号:"<<endl;cin>>index;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Bus bus4;cout<<"请输入客车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"客车车牌号 "<<"客车品牌 "<<"客车最大载客数人"<<endl;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;system"pause";ifcount_bus==0cout<<setw20<<"客车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}ead;Truck truck;truck.read;Bus bus;bus.read;int choice=1;车信息管理"<<endl;cout<<" 2.卡车信息管理"<<endl;cout<<" 3.客车信息管理"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1: car_manage;break;case 2: truck_manage;break;case 3: bus_manage;break;case 0: cout<<"谢谢您的使用"<<endl; return;break;default:cout<<"请输入0~3之间的数字"<<endl;break;}system"cls";}}加轿车信息"<<endl;cout<<" 2.修改轿车信息"<<endl;cout<<" 3.删除轿车信息"<<endl;cout<<" 4.查询轿车信息"<<endl;cout<<" 5.显示所有轿车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Car car1;p=&car1;cout<<"请输入轿车车牌号、轿车品牌、油耗费用:"<<endl;cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Car car2;p=&car2;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;cout<<"请选择轿车序号:"<<endl;cin>>index;cout<<"请输入要修改的轿车车牌号、轿车品牌、油耗费用:"<<endl; cin>>>>>>;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Car car3;p=&car3;int index;forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;cout<<"请选择要修改的轿车车牌号、轿车品牌、油耗费用的序列号:"<<endl;cin>>index;cout<<"是否保存轿车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Car car4;p=&car4;cout<<"请输入轿车的车名:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"轿车车牌号 "<<"轿车品牌 "<<"轿车油耗费用"<<endl; forint i=0;i<count_car;i++cout<<i+1<<"."<<cari.carID<<" "<<cari.carName<<""<<cari.carFee<<endl;system"pause";ifcount_car==0cout<<setw20<<"轿车信息库为空"<<endl;system"pause";break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl; break;}ifquit==truebreak;}system"cls";return;}加卡车信息"<<endl;cout<<" 2.修改卡车信息"<<endl;cout<<" 3.删除卡车信息"<<endl;cout<<" 4.查询卡车信息"<<endl;cout<<" 5.显示所有卡车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Truck truck1;p=&truck1;cout<<"请输入卡车的车牌号、卡车品牌、载重数吨:"<<endl; cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Truck truck2;p=&truck2;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<endl; cout<<"请选择要修改的卡车信息的序列号:"<<endl;cin>>index;cout<<"请输入要修改卡车的车牌号、卡车品牌、载重数吨:"<<endl;cin>>>>>>;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Truck truck3;p=&truck3;int index;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<" "<<trucki.truckNum<<endl;cout<<"请选择要删除的卡车信息序列号:"<<endl;cin>>index;cout<<"是否保存卡车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc='n'||c=='N'{p->delindex;p->save;}break;}case 4:{Truck truck4;cout<<"请输入卡车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"卡车车牌号 "<<"卡车品牌 "<<"卡车载重数吨"<<endl;forint i=0;i<count_truck;i++cout<<i+1<<"."<<trucki.truckID<<" "<<trucki.truckName<<""<<trucki.truckNum<<endl;system"pause";ifcount_truck==0cout<<setw20<<"卡车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}加客车信息"<<endl;cout<<" 2.修改客车信息"<<endl;cout<<" 3.删除客车信息"<<endl;cout<<" 4.查询客车信息"<<endl;cout<<" 5.显示所有客车信息"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1:{Bus bus1;p=&bus1;cout<<"请输入要添加的客车的车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->add;p->save;}break;}case 2:{Bus bus2;p=&bus2;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要修改的客车信息序列号:"<<endl;cin>>index;cout<<"请输入要修改的客车车牌号、客车品牌、最大载客数人:"<<endl; cin>>>>>>;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->modifyindex;p->save;}break;}case 3:{Bus bus3;p=&bus3;int index;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;cout<<"请选择要删除的客车信息序列号:"<<endl;cin>>index;cout<<"是否保存客车信息不区分大小写是y/Y否n/N"<<endl;cin>>c;ifc=='y'||c=='Y'{p->delindex;p->save;}break;}case 4:{Bus bus4;cout<<"请输入客车的车牌号:"<<endl;cin>>;;system"pause";break;}case 5:{cout<<"客车车牌号 "<<"客车品牌 "<<"客车最大载客数人"<<endl;forint i=0;i<count_bus;i++cout<<i+1<<"."<<busi.busID<<" "<<busi.busName<<""<<busi.busNum<<endl;system"pause";ifcount_bus==0cout<<setw20<<"客车信息库为空"<<endl;break;}case 0:quit=true;break;default:cout<<"请输入0~5之间的数字"<<endl;break;}ifquit==truebreak;}system"cls";return;}车信息管理"<<endl;cout<<" 2.卡车信息管理"<<endl;cout<<" 3.客车信息管理"<<endl;cout<<" 0.退出"<<endl;cout<<""<<endl;cout<<"请输入所要操作的编号:";cin>>choice;switchchoice{case 1: car_manage;break;case 2: truck_manage;break;case 3: bus_manage;break;case 0: cout<<"谢谢您的使用"<<endl; return;break;default:cout<<"请输入0~3之间的数字"<<endl;break;}system"cls";}系统调试在调试过程中,出现了下面一些错误:具体调试过程:(1)显示主菜单11111重复以上操作分别输入红旗、大众、三菱和现代1121123113114115110以上只演示了三个车辆类小轿车、卡车、大客车中的小轿车;其他两个类的操作基本类似,就不一一列举了;5、结论程序总共设计了三个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C++的编程思想来完成系统的设计,做到了用文件存储车辆信息、从文件中读取车辆信息、修改信息、查询信息、删除信息显示文件中存储的信息等要求;而且界面简洁,容易操作;但是程序不太条理,不够简练,导致出现错误很难发现和修改;同时,发现一个难点,那就是类的封装;一个可以运行的程序要把它成功的封装起来也很困难;系统的错误提示难以识别,错误点不易找到,导致程序的耗时量大大增加;6、心得体会这次课程设计历经两个星期左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,也有很多闻所未闻的东西,从而更加明白知识扎实的重要性,理解实践能力的重要性因为基础知识的不扎实让我在这次课程设计中走了许多弯路,不过我认为是值得的,它大大的补充了我知识不足的那一面,我始终相信付出必有收获;这次的课程设计,可以说是苦乐交加;在程序设计过程中,不仅检验、巩固了我所学的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情;课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程; 它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力;提高学生运用所学知识解决实际问题的能力;课程设计这类实践训练是我们迈向社会,从事职业工作前一个必不少的过程;“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义;我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础;通过这次车辆管理系统的设计,我在多方面都有所提高;首先,整体与局部的把握,在系统设计前,需要整体思考车辆管理系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合;其次,在实现用户权限设置这个功能时,通过查阅课本、资料,实践,对字符串的使用strcmpmm,"1234";更加熟悉、了解,能够熟练运用字符串,而且加强了对类中参数传值的使用,巩固了类定义,函数成员使用等知识,并通过条件语句实现不同的人设置不同的操作,在实现查找功能时,更熟练了指针对象的使用;最后,在整个程序运行时,考虑到屏幕出现的效果,查阅资料及其前人的登录系统代码,了解了库函数中的屏幕清零函数system"cls";,并能正确使用;课程设计使我对c++课程又进行了系统的复习,独立思考的能力也有了提高;通过这次编程使我们认识到在以后的学习中要多做练习增加自己的知识面才能更好的适应自己的工作,在其中由最初的沮丧中出来,充满信心地去解决问题;通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力;而且这次课程设计也让我受益匪浅,真切感觉到任何事情都需要细心和耐心,二者缺一不可;没有细心,做事情永远都是事倍功半,一旦某个细节错了,就会导致某个部分应用不了额,甚至可能导致整个系统都运行不了;没了耐心,可能就会导致这件事不能够完成,经常半途而废;七、参考书目1、谭浩强. C++程序设计教程清华大学出版社2、谭浩强. C++面向对象程序设计清华大学出版社3、Visual C++ 从入门到精通八、附录关键程序代码include <>include<>include <>include <>include <>class Base{public:virtual void read=0;virtual void add=0;virtual void modifyint=0;virtual void delint=0;virtual void save=0;virtual void search=0;};class Car:public Base{public:double carFee;char carID20;char carName20;。
车辆管理系统课程设计报告(C++)
课程设计报告课程设计题目:车辆管理系统学生姓名:A B C专业:软件工程班级:16*****指导教师:*祥 **康(完整源代码和注释在我上次的另一篇文章里)2017年 6 月 18 日东华理工大学课程设计评分表学生姓名:A 班级16***** 学号:****课程设计题目:格式要求:中文正文使用五号字体,英文及代码使用小五号字体东华理工大学课程设计评分表学生姓名:B 班级16***** 学号:****课程设计题目:格式要求:中文正文使用五号字体,英文及代码使用小五号字体东华理工大学课程设计评分表学生姓名:C 班级16***** 学号:****课程设计题目:格式要求:中文正文使用五号字体,英文及代码使用小五号字体【目录】一、题目 (03)二、课程设计任务 (03)三、数据结构 (04)四、模块划分 (04)五、程序的总体设计 (05)六、流程图 (06)七、主要源程序代码(附件源代码) (09)八、测试情况及调试中问题与解决方案 (10)九、实验小结及心得 (15)十、工作日志 (16)十一、东华理工大学评分表 (17)一、题目:车辆管理系统设计二、课程设计任务:车辆管理系统主要负责各种车辆的常规信息管理工作。
系统中的车辆主要有大客车、小轿车和卡车。
每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。
大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。
每台车辆当月总费用=油价*耗油量/公里+基本维护费用。
基本维护费用:客车:2000元/月,小轿车:1000元/月,卡车:1500元/月。
(1)添加车辆:主要完成车辆信息的添加,要求编号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。
(2)查询车辆:可按照三种方式来查询物品,分别为:按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”;按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”;按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”;(3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<>#include<>#include<>#define MAX 3 /*车库容量*/#define price /*每车每分钟费用*/ typedef struct time{int hour;int min;}Time; /*时间结点*/typedef struct node{char num[10];Time reach;Time leave;}CarNode;/*车辆信息结点*/typedef struct NODE{CarNode *stack[MAX + 1];int top;}Moni_Cheku;typedef struct car{CarNode *data;struct car *next;}QueueNode;typedef struct Node{QueueNode *head;QueueNode *rear;}Moni_Biandao;void InitStack(Moni_Cheku *); /*初始化车库*/int InitQueue(Moni_Biandao *);/*初始化便道*/int Arrival(Moni_Cheku *, Moni_Biandao *); /*车辆到达*/ void Leave(Moni_Cheku *, Moni_Cheku *, Moni_Biandao *); /*车辆离开*/void List(Moni_Cheku, Moni_Biandao); /*显示车库和便道的存车信息*/int main(){Moni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /*初始化车站*/InitStack(&Temp); /*初始化让路的临时链表*/InitQueue(&Wait); /*初始化便道*/printf("\n");printf(" ^_^欢迎进入停车场管理系统1!^_^\n");printf("\n");printf("提示! (1).该车库的最大容量为:%d;\n", MAX); printf(" (2).该车库的收费标准为:%元/(辆*分钟).\n", price);while (1){system("CLS");printf("********************主菜单********************\n");printf("1.车辆到达");printf(" 2.车辆离开");printf(" 3.列表显示");printf(" 4.退出系统\n");printf("**********************************************\n ");printf("请选择(1-4):[ ]\b\b");while (1){scanf("%d",&ch);if (ch >= 1 && ch <= 4)break;else printf("错误!请重选(1-4):[ ]\b\b");}switch (ch){case 1:Arrival(&Enter, &Wait); break; /*车辆到达*/case 2:Leave(&Enter, &Temp, &Wait); break; /*车辆离开*/case 3:List(Enter, Wait); break; /*打印列表信息*/case 4:exit(0); /*退出主程序*/default: break;}}return 0;}void InitStack(Moni_Cheku *s) /*初始化车库*/{int i;s->top = 0;for (i = 0; i <= MAX; i++)s->stack[s->top] = NULL;}int InitQueue(Moni_Biandao *Q) /*初始化便道*/{Q->head = (QueueNode *)malloc(sizeof(QueueNode));if (Q->head != NULL){Q->head->next = NULL;Q->rear = Q->head;return(1);}else return(-1);}void PRINT(CarNode *p, int room) /*输出出库车的信息*/ {int A1, A2, B1, B2;{printf("请输入离开的时间:/**:**/");scanf("%d:%d", &(p->, &(p->);printf("离开车辆的车牌号为:");puts(p->num);printf("其到达时间为: %d:%d\n", p->, p->;printf("离开时间为: %d:%d\n", p->, p->;A1 = p->;A2 = p->;B1 = p->;B2 = p->;printf("应交费用为:%元", ((B1 - A1) * 60 + (B2 - A2))*price);free(p);}}int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/ {CarNode *p;QueueNode *t;p = (CarNode *)malloc(sizeof(CarNode));fflush(stdin);printf("请输入车牌号(例如:中CUG888):");scanf("%s",&(p->num));if (Enter->top < MAX) /*车库未满,车进车库*/{Enter->top++;printf("该车在车库位置%d.\n", Enter->top);printf("请输入到达时间(**:**):");scanf("%d:%d", &(p->, &(p->);Enter->stack[Enter->top] = p;return(1);}else /*车库已满,车进便道*/{printf("该车须在便道等待!\n");t = (QueueNode *)malloc(sizeof(QueueNode));t->data = p;t->next = NULL;W->rear->next = t;W->rear = t;return(1);}}void Leave(Moni_Cheku *Enter, Moni_Cheku *Temp, Moni_Biandao*W) /*车辆离开*/{int i, room;CarNode *p, *t;QueueNode *q;/*判断车库内是否有车*/if (Enter->top > 0) /*有车*/{printf("请输入车在车库的位置(1--%d):", Enter->top);/*输入车辆离开的信息*/while (1){scanf("%d", &room);if (room >= 1 && room <= Enter->top) break;else printf("错误!请重选:");}while (Enter->top > room) /*车辆离开*/{Temp->top++;Temp->stack[Temp->top] = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top--;}p = Enter->stack[Enter->top];Enter->stack[Enter->top] = NULL;Enter->top--;while (Temp->top >= 1){Enter->top++;Enter->stack[Enter->top] = Temp->stack[Temp->top];Temp->stack[Temp->top] = NULL;Temp->top--;}PRINT(p, room); /*判断通道上是否有车及车库是否已满*/if ((W->head != W->rear) && Enter->top < MAX) /*便道的车辆进入车库*/{q = W->head->next;t = q->data;Enter->top++;printf("\n便道的%s号车进入车场第%d位置.", t->num, Enter->top);printf("\n请输入现在的时间(**:**):");scanf("%d:%d", &(t->, &(t->);W->head->next = q->next;if (q == W->rear) W->rear = W->head;Enter->stack[Enter->top] = t;free(q);}else printf("\n便道里没有车.\n");}else printf("车库里没有车!\n"); /*没车*/}void List1(Moni_Cheku *S) /*列表显示车库信息*/{int i;if (S->top > 0) /*判断车库内是否有车*/{printf("车库号到达时间 \t车牌号\n");for (i = 1; i <= S->top; i++){printf(" %d ", i);printf(" \t%d:%d", S->stack[i]->, S->stack[i]->;printf("\t\t%s\n",S->stack[i]->num);}}else printf("车库里没有车\n");}void List2(Moni_Biandao *W) /*列表显示便道信息*/ {QueueNode *p;p = W->head->next;if (W->head != W->rear) /*判断便道上是否有车*/ {printf("在便道里等待的车辆的号码为:\n");while (p != NULL){puts(p->data->num);p = p->next;}}else printf("便道里没有车.\n");}void List(Moni_Cheku S, Moni_Biandao W){int flag, tag;flag = 1;while (flag){printf("**********查看**********\n");printf("1.车库2.便道3.返回\n");printf("************************\n");printf("请选择(1-3):[ ]\b\b");while (1){scanf("%d", &tag);if (tag >= 1 && tag <= 3) break;else printf("错误!请重选(1-3):[ ]\b\b");}switch (tag){case 1:List1(&S);break;/*列表显示车库信息*/case 2:List2(&W);break; /*列表显示便到信息*/ case 3:flag = 0;break;default:break;}}}。