c语言车辆管理系统课程设计
- 格式:doc
- 大小:28.00 KB
- 文档页数:13
/**************************头文件声明************************************/#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 课程设计之车辆管理系统一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
通过本课程的学习,学生需要掌握车辆管理系统的相关知识,包括车辆管理的基本概念、车辆管理的流程和方法等。
同时,学生需要具备一定的实际操作能力,能够运用所学知识对车辆进行有效管理。
此外,学生应该树立正确的车辆管理意识,具备良好的道德品质和社会责任感。
二、教学内容本课程的教学内容主要包括车辆管理的基本概念、车辆管理的流程和方法。
具体包括以下几个方面:1. 车辆管理的基本概念:车辆管理的定义、特点和作用;2. 车辆管理的流程:车辆的采购、使用、维护和报废等环节的管理;3. 车辆管理的方法:车辆管理的常用方法和技术,如车辆识别码系统、车辆定位系统等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1. 讲授法:通过教师的讲解,使学生掌握车辆管理的基本概念和方法;2. 讨论法:通过分组讨论,培养学生的思考能力和团队协作能力;3. 案例分析法:通过分析实际案例,使学生了解车辆管理的具体操作过程;4. 实验法:通过实际操作,锻炼学生的动手能力和实际应用能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。
教学资源包括教材、参考书、多媒体资料和实验设备等。
1. 教材:选择权威、实用的教材,为学生提供全面、系统的学习资源;2. 参考书:推荐一些相关领域的参考书,帮助学生拓展知识面;3. 多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣;4. 实验设备:准备必要的实验设备,为学生提供实践操作的机会。
五、教学评估本课程的教学评估将采用多元化的方式,以全面、客观、公正地评估学生的学习成果。
评估方式包括但不限于以下几个方面:1. 平时表现:通过观察学生在课堂上的参与程度、提问回答等,了解学生的学习态度和理解程度;2. 作业:布置适量的作业,要求学生在规定时间内完成,以检验学生对知识的掌握情况;3. 考试:定期进行考试,以评估学生对课程知识的全面理解和运用能力。
武汉工程大学计算机科学与工程学院综合设计报告设计名称:程序设计综合设计设计题目:汽车租赁管理系统学生学号: 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语言车辆管理系统课程设计一、课程目标知识目标: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语言编程的基本概念和方法,培养学生解决实际问题的能力。
具体目标如下: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课程设计车辆管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握车辆管理系统的基本概念、原理和架构;技能目标要求学生能够运用所学知识设计并实现一个简单的车辆管理系统;情感态度价值观目标要求学生培养对车辆管理系统的兴趣,提高解决问题的能力。
二、教学内容本课程的教学内容主要包括车辆管理系统的基本概念、原理和架构,以及设计实现一个简单车辆管理系统的过程。
具体包括以下几个部分:1.车辆管理系统的基本概念:介绍车辆管理系统的定义、功能和应用场景。
2.车辆管理系统的原理:讲解车辆管理系统的运行原理和工作流程。
3.车辆管理系统的架构:介绍车辆管理系统的组成部分及其相互关系。
4.设计实现简单车辆管理系统:引导学生运用所学知识,分组完成一个简单车辆管理系统的设计、编码、测试和调试。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
讲授法用于讲解基本概念、原理和架构;讨论法用于引导学生深入思考和探讨问题;案例分析法用于分析实际案例,帮助学生理解车辆管理系统的工作原理;实验法用于让学生动手实践,培养实际操作能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于为学生提供理论知识的支撑;多媒体资料用于辅助教学,提高学生的学习兴趣;实验设备用于开展实验教学,让学生动手实践,培养实际操作能力。
五、教学评估本课程的教学评估采用多元化的方式,包括平时表现、作业、考试等。
平时表现主要评估学生的课堂参与度、提问回答等情况;作业分为平时练习和项目实践,评估学生对知识的理解和应用能力;考试分为期中考试和期末考试,全面测试学生的知识掌握和运用情况。
评估方式应客观、公正,能够全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:共计32课时,每周2课时,共16周完成。
教学地点安排在教室和实验室,以便于学生进行理论学习和实践操作。
车辆租赁管理系统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++车辆管理课程设计一、课程目标知识目标: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语言设计一个简单的车辆管理系统。
具体分为以下三个部分: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一、课程目标知识目标:1. 学生能理解车辆管理系统MFC的基本概念,掌握MFC编程的基本框架和关键步骤。
2. 学生能描述车辆管理系统的功能模块,如车辆信息管理、停车位管理、收费管理等,并了解它们之间的关联。
3. 学生能掌握使用MFC进行数据库操作的方法,实现对车辆管理系统中数据的有效存取。
技能目标:1. 学生能运用MFC软件开发工具,设计并实现一个简单的车辆管理系统。
2. 学生能通过调试和优化,解决车辆管理系统开发过程中遇到的问题,提高系统稳定性。
3. 学生能运用所学知识,对车辆管理系统进行功能扩展,提升系统实用性。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,树立编程改变生活的观念。
2. 学生通过小组合作,培养团队协作精神和沟通能力,增强解决问题的信心。
3. 学生关注车辆管理系统在实际生活中的应用,认识到技术对社会发展的推动作用。
课程性质:本课程为实践性较强的课程,结合课本知识,引导学生动手实践,培养编程能力和实际应用能力。
学生特点:初三学生具备一定的计算机基础和编程知识,对实际应用具有较强的兴趣。
教学要求:教师需注重理论与实践相结合,关注学生个体差异,提供个性化指导,确保学生能够学以致用。
在教学过程中,分解课程目标为具体学习成果,便于教学设计和评估。
二、教学内容1. 车辆管理系统概述:介绍车辆管理系统的概念、功能及在实际生活中的应用,使学生了解课程背景和实际意义。
- 教材章节:第一章 车辆管理系统简介2. MFC编程基础:讲解MFC的基本框架、常用控件及其使用方法,为学生后续开发打下基础。
- 教材章节:第二章 MFC编程基础3. 数据库操作:介绍数据库的基本概念,讲解MFC中如何进行数据库操作,如数据的添加、查询、修改和删除。
- 教材章节:第三章 数据库操作4. 功能模块设计:分析车辆管理系统的功能模块,引导学生按照模块化思想进行设计。
- 教材章节:第四章 车辆管理系统功能模块设计5. 系统实现与调试:讲解如何利用MFC工具将设计转化为实际系统,并介绍调试和优化方法。
c语言汽车课程设计一、课程目标知识目标:1. 学生能够掌握C语言的基本语法和编程技巧,尤其是与汽车相关数据结构的实现(如结构体、数组等)。
2. 学生能够运用C语言实现简单的汽车信息管理系统,包括汽车基本信息录入、查询和修改等功能。
3. 学生理解并能运用循环、条件语句以及函数调用来处理复杂逻辑,实现对汽车数据的有效管理。
技能目标:1. 学生能够运用所学知识设计并编写出具有实际意义的C语言程序,提高问题解决能力。
2. 学生通过课程实践,能够掌握基本的编程规范和调试技巧,形成良好的编程习惯。
3. 学生能够通过小组合作,进行有效沟通,共同完成课程设计任务,提高团队协作能力。
情感态度价值观目标:1. 学生在学习过程中培养对编程的兴趣,提高对计算机科学的认识,激发深入学习编程的动机。
2. 学生在课程设计中能够体会编程对于解决实际问题的价值,增强自信心和成就感。
3. 学生通过学习C语言汽车课程设计,认识到信息技术在现代汽车行业中的重要性,形成积极的技术态度和创新意识。
课程性质:本课程设计为实践性较强的学科课程,强调理论联系实际,注重培养学生的动手能力和实际问题解决能力。
学生特点:考虑到学生所在年级,应具备初步的逻辑思维能力,对编程有基础的认识和兴趣,但需进一步引导和实践以深化理解。
教学要求:教学内容需结合课本知识,同时注重实际应用,通过案例教学和项目驱动,激发学生的学习兴趣和探究欲望,确保学生能够达到上述课程目标。
在教学过程中,应不断评估学生的学习成果,及时调整教学策略,确保教学目标的实现。
二、教学内容1. C语言基础知识回顾:数据类型、变量、运算符、表达式、输入输出函数等,确保学生具备基本的编程能力。
相关教材章节:第一章至第三章2. 控制结构:顺序结构、选择结构、循环结构,为学生编写复杂程序打下基础。
相关教材章节:第四章3. 函数:函数的定义、调用、参数传递、递归等,培养学生模块化编程思维。
相关教材章节:第五章4. 数组和字符串:数组的使用、排序算法、字符串处理,为汽车信息管理提供数据支持。
车辆管理系统c 课程设计一、课程目标知识目标:1. 理解车辆管理系统的基本概念、功能及作用;2. 掌握车辆管理系统中数据库的建立、查询及更新方法;3. 学会分析并解决车辆管理系统中存在的问题。
技能目标:1. 能够运用C语言编写简单的车辆管理系统功能模块;2. 能够利用数据库技术对车辆信息进行有效管理;3. 能够通过实际操作,熟练使用车辆管理系统进行日常业务处理。
情感态度价值观目标:1. 培养学生对车辆管理系统及其实际应用的兴趣,提高学习积极性;2. 培养学生团队协作意识,学会与他人共同解决问题;3. 培养学生具备良好的信息素养,认识到信息技术在现实生活中的重要作用。
课程性质:本课程为信息技术学科,旨在让学生通过学习车辆管理系统,掌握数据库应用和C语言编程技能。
学生特点:学生处于高年级阶段,具备一定的信息技术基础,具有较强的逻辑思维能力和自主学习能力。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的实践操作能力和创新意识。
通过分解课程目标为具体学习成果,使学生在课程学习过程中不断提升自身能力,为后续教学设计和评估提供有力依据。
二、教学内容1. 车辆管理系统的基本概念与功能- 系统介绍:理解车辆管理系统的定义、分类及应用场景;- 功能模块:掌握车辆管理系统的主要功能模块及其相互关系。
2. 数据库技术在车辆管理系统中的应用- 数据库设计:学习如何建立车辆信息数据库,包括表结构设计、关系定义等;- 数据操作:掌握数据库的基本查询、更新、删除等操作。
3. C语言编程在车辆管理系统中的应用- 编程基础:回顾C语言基本语法和编程技巧;- 功能实现:学习使用C语言编写车辆管理系统中的功能模块。
4. 车辆管理系统的实践操作- 案例分析:分析实际车辆管理系统案例,了解系统在实际中的应用;- 实操演练:通过实际操作,学会使用车辆管理系统进行业务处理。
5. 教学内容的安排与进度- 第一周:车辆管理系统基本概念与功能模块介绍;- 第二周:数据库设计与数据操作;- 第三周: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。
#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课程设计车辆管理系统一、课程目标知识目标:1. 让学生理解车辆管理系统的基本概念,掌握系统的组成与功能。
2. 使学生掌握车辆管理系统中车辆信息管理、车辆调度管理、车位管理等方面的基本知识。
3. 帮助学生了解数据库在车辆管理系统中的应用,并掌握基本的数据库操作。
技能目标:1. 培养学生运用所学知识设计简单的车辆管理系统的能力。
2. 提高学生分析实际车辆管理问题,提出解决方案并进行优化的能力。
3. 培养学生通过小组合作,进行项目实践和沟通协调的能力。
情感态度价值观目标:1. 培养学生对车辆管理系统及相关技术领域的兴趣,激发他们的探究欲望。
2. 培养学生具备良好的团队协作精神,学会尊重他人意见,善于倾听。
3. 增强学生的社会责任感,使他们认识到车辆管理系统对城市交通、环境保护等方面的重要意义。
分析课程性质、学生特点和教学要求:本课程为信息技术课程,旨在让学生结合实际生活,运用所学知识设计车辆管理系统。
学生为初中生,具有一定的信息技术基础,对新鲜事物充满好奇。
教学要求注重实践操作,引导学生主动探究,培养解决问题的能力。
课程目标分解:1. 知识目标:通过本课程学习,学生能掌握车辆管理系统的基础知识,了解系统的各个模块及其功能。
2. 技能目标:学生能运用所学知识,设计并实现一个简单的车辆管理系统,具备一定的项目实践能力。
3. 情感态度价值观目标:学生在课程学习过程中,能够积极参与小组合作,尊重他人,关注社会问题,提高自身的社会责任感。
二、教学内容1. 车辆管理系统概述- 了解车辆管理系统的定义、作用及发展历程。
- 学习车辆管理系统的基本组成和功能模块。
2. 车辆信息管理- 掌握车辆基本信息的数据结构。
- 学习车辆信息录入、查询、修改和删除等操作。
3. 车辆调度管理- 了解车辆调度原则和方法。
- 学习车辆调度算法及其在实际中的应用。
4. 车位管理- 学习车位分配策略和车位查找算法。
- 掌握车位信息管理的基本操作。
#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;}}}。