c语言车辆管理系统课程设计
- 格式:docx
- 大小:22.00 KB
- 文档页数:12
/**************************头文件声明************************************/#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;}。
Xxxxx大学xxxxxxxxxxx系20xx-20xx学年第一学期《C程序设计》课程设计题目名称:停车场管理系统设计姓名:学号:班级:指导教师:编写日期: 20 年1月5日—20 年1月31日成绩:目录(一)需求分析 (3)1-1停车 (3)1-2取车 (3)1-3功能的选择 (3)(二)总体设计(程序设计组成框图) (3)2-1停车模块 (3)2-2取车模块 (3)2-3车辆信息浏览模块 (4)2-4程序设计组成框图 (4)(三)详细设计 (4)3-1停车场分析 (4)3-2停车操作 (4)3-3收费管理(取车) (5)3-4车辆信息 (5)3-5退出系统 (5)(四)程序运行结果测试与分析 (5)(五)结论与心得 (7)(六)参考文献 (7)(七)致谢 (8)附录: (8)(一)需求分析1-1停车车辆信息要用文件存储,因而要提供文件的输入输出操作。
1-2取车当车离开时,要删除文件中该车的信息,因而要提供文件的删除操作。
1-3功能的选择提供现实操作和用键盘式菜单实现功能选择。
(二)总体设计(程序设计组成框图)2-1停车模块对车辆信息赋值,分配前检查车位使用情况(按行查找park 数组,元素为0 表示车位为空,则允许分配)。
把新添加的车辆信息以追加的方式写入汽车信息文件,并更改汽车信息文件中其他汽车信息的停车时间(停车时间加5)。
2-2取车模块计算费用(停车费用=停车时间*0.2 元),从文件中删除该车信息。
并将该车位对应的二位数组变量设为0,表示该车位可用。
输出提示信息:是否输出停车费用总计?(Y/N)如果选择Y,则输出停车费用,否则回到上级菜单。
2-3车辆信息浏览模块输出车辆信息文件中的记录。
另外,用户按Esc 键退出系统。
2-4程序设计组成框图(三)详细设计3-1停车场分析有一个两层的停车场, 每层有6个车位, 当第一层车停满后才允许使用第二层。
( 停车场可用一个二维数组实现, 每个数组元素存放一个车牌号 ) 假设停车场初始状态为第一层已经停有4辆车, 其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 . 即先将这四辆车的信息存入文件”car.dat”中。
车辆出入库管理plc课程设计一、课程目标知识目标:1. 理解PLC(可编程逻辑控制器)的基本原理和在工业控制中的应用;2. 掌握车辆出入库管理系统中PLC的编程方法和技巧;3. 学会使用相关软件进行PLC程序的编写、调试和优化;4. 了解车辆出入库管理系统的基本构成和运作流程。
技能目标:1. 能够独立进行车辆出入库管理PLC程序的编写和调试;2. 能够分析和解决车辆出入库管理过程中出现的PLC相关问题;3. 能够运用所学的PLC知识,针对实际需求进行简单的系统设计和改进;4. 培养学生的动手操作能力和团队协作能力。
情感态度价值观目标:1. 培养学生对自动化技术和PLC的兴趣,激发学生的学习热情;2. 培养学生具备良好的工程素养,关注工程实践中的实际问题;3. 增强学生的环保意识和社会责任感,了解PLC技术在节能减排方面的应用;4. 培养学生的创新精神和批判性思维,敢于挑战传统观念,探索新技术。
课程性质:本课程为实践性较强的专业课,注重理论联系实际,培养学生具备实际操作和解决问题的能力。
学生特点:学生处于高年级阶段,具备一定的PLC基础知识和实践经验,具有较强的学习能力和动手能力。
教学要求:教师应结合课程特点和学生实际情况,采用案例教学、任务驱动等教学方法,引导学生掌握PLC技术在车辆出入库管理中的应用,提高学生的实际操作能力和综合素质。
同时,注重培养学生的团队合作精神,提高学生的沟通与协作能力。
通过本课程的学习,使学生能够达到上述课程目标,为未来从事相关工作打下坚实基础。
二、教学内容1. PLC基础理论回顾:包括PLC的定义、结构、工作原理、编程语言等,重点回顾与车辆出入库管理相关的基础知识。
2. 车辆出入库管理系统概述:介绍车辆出入库管理系统的基本构成、功能、运作流程及其在工业自动化中的应用。
3. PLC编程与调试:详细讲解PLC编程软件的使用方法,针对车辆出入库管理系统进行编程、调试和优化。
c语言课程设计交通一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。
1.知识目标:通过本章节的学习,学生需要掌握C语言的基本语法、数据类型、运算符、控制结构等基础知识。
2.技能目标:学生能够运用C语言编写简单的交通管理系统,实现对车辆信息的增删查改功能。
3.情感态度价值观目标:培养学生对编程语言的兴趣,提高学生解决问题的能力,培养学生的创新思维。
二、教学内容本章节的教学内容主要包括以下几个部分:1.C语言的基本语法和数据类型。
2.运算符和控制结构。
3.函数的定义和调用。
4.文件的读写操作。
5.交通管理系统的实现。
三、教学方法为了提高教学效果,本章节将采用多种教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符和控制结构等知识点。
2.案例分析法:通过分析实际的交通管理系统案例,让学生理解并掌握如何运用C语言解决实际问题。
3.实验法:让学生动手编写交通管理系统,提高学生的实际操作能力。
4.讨论法:在课堂上学生进行讨论,促进学生之间的交流与合作。
四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》。
2.参考书:《C语言编程实例教程》。
3.多媒体资料:交通管理系统的案例视频、演示文稿等。
4.实验设备:计算机、网络等。
通过以上教学资源的支持,为学生提供丰富的学习体验,提高教学效果。
五、教学评估本章节的评估方式包括以下几个方面:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现来评估。
2.作业:布置相关的编程作业,评估学生对C语言知识的掌握程度和运用能力。
3.考试:进行期末考试,包括选择题、填空题、编程题等,全面评估学生的学习成果。
评估方式应客观、公正,能够全面反映学生的学习成果。
通过评估,及时发现学生的不足,给予针对性的指导和帮助。
六、教学安排本章节的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保学生系统地掌握C语言知识。
C语言课程设计报告目录一、题目要求,需求分析二、总体设计思路与功能模块划分三、程序设计四、程序运行测试五、总结前言计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。
因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。
如今,高等教育的计算机教育发展十分迅速。
十多年前,只有部分理工科专业开设计算机课程。
今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。
人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。
而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。
计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。
一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。
根据我们专业的性质和要求,则应侧重于上机操作运用。
为此,学校特意在本学期最后安排了32个学时的上机实习。
现将一星期的实习内容及结果分析分列如下:一、题目要求:27.停车场管理21、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。
2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。
即先将这四辆车的信息存入文件“car.dat"中(数组的对应元素也要进行赋值)。
3、停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件"car.dat"中,并将在此之前的所有车的停车时间加5。
《C语言程序设计课设》课程设计指导书一、课程设计的目的(1)加深对讲授内容的理解,尤其是一些语法规则。
(2)熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用。
(3)能够综合运用所学知识,编程解决实际问题。
(4)培养团队分工合作的意识,最终使学生提高编程技能和解决实际问题的能力。
二、课程设计基本要求2.1.组织管理1.由院、系指派经验丰富的专业教师担任指导教师。
2.课程设计实行课程负责人与指导教师共同负责制。
3.课程负责人主要进行课设的命题、指导教师的考核、技术把关和全面管理。
4.指导教师全面负责所承担班级的课程设计指导、管理和考核评定工作。
2.2设计要求1.自选题目、小组管理、团队合作、小组评测。
2.模块化程序设计。
3.锯齿型书写格式。
4.必须上机调试通过。
三、选题要求:每个题目限定1-2人,每人必须负责一部分功能,并独立完成,推举出一个组长,负责任务分工,汇总到班长处,然后交给指导教师。
四、设计报告格式及要求:1、题目2、设计目的3、总体设计(程序设计组成框图、流程图)4、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)5、运行结果及分析6、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施7、课程设计心得及体会8、源程序清单和执行结果:清单中应有足够的注释五、课程设计成绩评定5.1基本要求:(1)每个人必须有程序运行结果;(2)每个人必须交《C语言课程设计》报告5.2、成绩评定和打分标准由指导教师对学生在课程设计期间的表现,所完成的设计报告的质量、设计结果的验收和答辩情况进行综合考核。
具体评定标准如下:(1)上机考勤:注重平时上机考勤与遵守纪律情况20%(2)结果验收:学生能运行、讲述或调试自己的程序,回答教师提问,每个人必须有程序运行结果40%(3)小组自评成绩结果10%(4)设计报告:每个人必须交《C语言课程设计》报告和《C语言课程设计》日志30%以上四项缺一不可,否则不能到得相应学分依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。
case常量表达式1:[语句1]case常量表达式2:[语句2]case常量表达式n:[语句n][default:语句n+l])其中,switch后表达式的值和case后常量表达式的值可以是整型、字符型、枚举型,但不能是浮点型;方括号括起来的内容是可选项。
switch语句的执行过程如图3-12所示(洋见教材).首先计算switch后表达式的值,然后将其结果与case后常量表达式的值依次进行比较,若此值与某case后常量表达式的值一致,即转去执彳锹case后的语句;若没有找到与之匹配的常量表达式,则执行defauh后的语句.【课堂问答】*【教师】随机邀请学生回答以下问题请同学们思考,switch语句结构中的default语句是否必须包含?*【学生】聆听、思考、回答÷【教师】总结学生的回答【课堂练习】÷【教师】出示【例3・7】,组织学生编写代码用switch语句实现,输入学生百分制成绩,输出五分制成绩,判定标准见表3-5所列(详见教材)0÷【学生】编写程序、运行、对比结果÷【教师】解析例题由判定标准可以看出,成绩的取值有5个范围,每个范围对应一个等级。
这是一个典型的多分支选择结构,可以定义整型变量score,当其取在0~100时,使用switch语句判断score/10的值,利用case语句检验SCore/10值的不同情况,并输出相关等级。
……(参考程序详见教材)【运行结果】在提示信息后输入87/,程序运行结果如图3/3所示(详见教材)【程序说明】多个case可以共用一组执行语句。
例如,当分数大于等于90分时,即score/10为10和9时,均对应等级"优秀(A)”,此时,可只在最后一个分支后写上处理语句。
在每个case或default语句后都有一个break关键字,用于跳出switch结构。
【课堂讨论】÷【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论没有break语句,switch语句将如何执行?÷【学生】讨论、总结、回答÷【教师】总结学生的回答break语句和switch语句最外层的右大括号是退出switch选择结构的出口,当遇到第一个break语句时终止执行switch语句。
c语言课课程设计管理系统一、教学目标本章节的教学目标是使学生掌握C语言课程设计管理系统的基本概念、原理和方法,培养学生运用C语言进行程序设计的能力,提高学生的实际操作技能和解决实际问题的能力。
具体来说,知识目标包括:1.掌握课程设计管理系统的基本概念和原理。
2.理解C语言在课程设计管理系统中的应用。
3.熟悉常用的数据结构和算法。
技能目标包括:1.能够使用C语言进行程序设计。
2.能够运用常用的数据结构和算法解决实际问题。
3.能够独立完成课程设计管理系统的开发和调试。
情感态度价值观目标包括:1.培养学生的团队合作意识和沟通能力。
2.培养学生的自主学习能力和探究精神。
3.培养学生对C语言和课程设计管理系统的兴趣和热情。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据结构、算法和课程设计管理系统的基本概念和原理。
具体来说,教学大纲如下:1.C语言的基本语法:数据类型、变量、运算符、表达式、语句等。
2.数据结构:数组、链表、栈、队列、树、图等。
3.算法:排序算法、查找算法、动态规划算法等。
4.课程设计管理系统的基本概念和原理:系统结构、模块划分、功能实现等。
三、教学方法为了实现教学目标,本章节将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,使学生掌握C语言和课程设计管理系统的基本概念和原理。
2.讨论法:通过小组讨论,培养学生的团队合作意识和沟通能力。
3.案例分析法:通过分析实际案例,使学生了解课程设计管理系统的应用和实现方法。
4.实验法:通过实际操作,培养学生运用C语言进行程序设计的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《C语言程序设计》等。
2.参考书:《C语言编程实践》、《数据结构与算法》等。
3.多媒体资料:课件、教学视频等。
4.实验设备:计算机、网络设备等。
以上教学资源将有助于丰富学生的学习体验,提高学生的实际操作技能和解决实际问题的能力。
车辆管理系统uml课程设计一、课程目标知识目标:1. 学生能够理解UML的基本概念,掌握UML图的基本元素和表示方法。
2. 学生能够运用UML图描述车辆管理系统的功能需求、业务流程和数据结构。
3. 学生了解车辆管理系统的基本功能模块,并掌握它们之间的关系。
技能目标:1. 学生能够运用UML工具绘制各类UML图,如用例图、类图、序列图等,以表达车辆管理系统的设计思路。
2. 学生能够通过UML图分析车辆管理系统的功能模块,提出优化和改进方案。
3. 学生具备团队协作能力,能够与团队成员共同完成车辆管理系统的UML课程设计。
情感态度价值观目标:1. 学生培养对软件工程和系统设计感兴趣的态度,激发学习编程和系统分析的内在动力。
2. 学生通过课程学习,认识到UML在软件开发中的重要性,提高对软件工程规范的认识。
3. 学生在课程实践中,学会与他人沟通、协作,培养团队精神和责任感。
课程性质:本课程为实践性较强的课程设计,旨在让学生通过实际操作,掌握UML在车辆管理系统设计中的应用。
学生特点:学生具备一定的编程基础和软件工程知识,对UML有一定了解,但实际应用能力有待提高。
教学要求:注重理论与实践相结合,强调动手实践,培养学生的实际操作能力和团队协作能力。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. UML基本概念及图的绘制方法- UML的基本元素、图类型及其应用场景- 用例图、类图、序列图等UML图的绘制方法2. 车辆管理系统的功能模块分析- 车辆管理系统业务流程及功能需求- 利用UML用例图表达系统功能模块- 数据库设计与UML类图的应用3. UML图在车辆管理系统设计中的应用- 用例图描述系统功能模块- 类图表达系统中的类及其关系- 序列图展示系统业务流程4. 车辆管理系统UML课程设计实践- 按照教学大纲,分阶段完成UML图的绘制- 团队协作,共同完成车辆管理系统的UML设计- 针对设计成果进行评价和优化教学内容安排与进度:1. 第1周:UML基本概念及图的绘制方法学习2. 第2周:车辆管理系统的功能模块分析3. 第3-4周:UML图在车辆管理系统设计中的应用实践4. 第5周:课程设计成果评价与优化教材章节关联:本教学内容与教材中关于UML图、软件系统设计、数据库设计等相关章节紧密关联,旨在巩固学生所学知识,提高实际应用能力。
车辆租赁管理系统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语言课程设计汽车售票系统一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程技巧,能够运用C语言设计并实现一个简单的汽车售票系统。
具体目标如下:1.理解C语言的基本数据类型和运算符。
2.掌握C语言的控制结构,如条件语句和循环语句。
3.熟悉C语言的函数定义和调用。
4.理解C语言的指针和数组。
5.能够使用C语言编写简单的程序。
6.能够运用C语言实现数据的输入和输出。
7.能够运用C语言进行基本的逻辑判断和循环控制。
8.能够设计并实现简单的函数。
情感态度价值观目标:1.培养学生对计算机编程的兴趣和热情。
2.培养学生解决问题的能力和团队合作精神。
二、教学内容本课程的教学内容主要包括C语言的基本语法和编程技巧,以及如何设计一个简单的汽车售票系统。
具体内容如下:1.C语言的基本数据类型和运算符。
2.C语言的控制结构,如条件语句和循环语句。
3.C语言的函数定义和调用。
4.C语言的指针和数组。
5.C语言的输入输出操作。
6.C语言的逻辑判断和循环控制。
7.C语言的函数设计。
8.汽车售票系统的设计和实现。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
通过多种教学方法的综合运用,激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法和编程技巧,使学生掌握相关知识。
2.案例分析法:通过分析具体的编程案例,使学生理解并掌握C语言的应用。
3.实验法:通过编写和运行C语言程序,使学生动手实践,巩固所学知识。
四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言教材,如《C程序设计语言》。
2.参考书:提供相关的C语言编程参考书籍,如《C语言编程思想》。
3.多媒体资料:制作精美的教学PPT,提供相关的教学视频和案例分析。
4.实验设备:提供计算机实验室,让学生能够进行实际编程和实验。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评估学生的学习成果。
课程设计课程设计名称:课程设计专业班级:学生姓名:学号:指导教师:课程设计时间:目录1 需求分析。
.。
...。
....。
.。
...。
.。
.....。
....。
..。
.。
.。
.。
.。
.。
.....。
.。
.。
.。
....。
..。
...。
32 概要设计。
.。
.。
.。
..。
..。
.。
..。
.。
.。
.。
.。
.。
.。
.。
..。
..。
.。
..。
..。
..。
.。
....。
..。
....。
.。
.。
.33详细设计..。
..。
.。
.。
.。
.。
.。
..。
..。
.。
..。
.。
.....。
.。
.。
..。
..。
.。
..。
..。
.......。
..。
.。
...。
..。
..。
44 运行环境..。
..。
.。
..。
.。
.。
..。
.。
....。
.。
.。
..。
.。
..。
.。
..。
..。
..。
...。
..。
.。
.。
..。
..65开发环境。
.。
..。
..。
..。
..。
...。
..。
.。
...。
.。
.。
..。
.。
......。
.。
.。
.。
.。
.。
.。
66 程序设计.。
.。
..。
.。
.....。
...。
....。
.。
...。
.。
.。
.。
..。
..。
..。
..。
.。
......。
..。
.。
.。
.。
67 调试分析。
.。
...。
..。
.。
......。
.。
.。
....。
.。
.。
...。
..........。
.。
..。
..。
..。
.。
..。
.。
118 测试结果。
.。
.。
.。
.。
.。
..。
..。
.。
.。
.。
.。
...。
........。
..。
.。
..。
.。
.。
.。
...。
.。
.。
. (19)9参考文献.。
..。
....。
.。
.。
..。
.。
..。
.。
...。
.....。
..。
.。
..。
.。
.。
...。
....。
.。
(22)10心得体会。
.。
.。
.。
.。
.。
..。
.。
...。
..。
...。
......。
..。
....。
.。
....。
..。
.。
.。
.....。
.。
...。
(23)11成绩评价表。
.。
.。
..。
.。
.。
.。
..。
.。
...。
.。
.。
...。
......。
使用C语言开发的车载导航系统设计与实现随着科技的不断发展,车载导航系统已经成为现代汽车中不可或缺的一部分。
它可以帮助驾驶员规划最佳路线、提供实时交通信息、指引到达目的地等功能,极大地提升了驾驶的便利性和安全性。
在本文中,我们将探讨如何使用C语言开发车载导航系统,并介绍其设计与实现过程。
1. 车载导航系统概述车载导航系统是一种集成了地图数据、定位技术和路线规划算法的智能设备,通过GPS等定位技术获取车辆当前位置,并根据用户输入的目的地信息规划最佳行驶路线。
在设计车载导航系统时,需要考虑以下几个关键点:地图数据:包括道路信息、POI(Point of Interest)信息等。
定位技术:如GPS、北斗导航系统等。
路线规划算法:根据起点、终点和实时交通信息计算最佳行驶路线。
2. 使用C语言开发车载导航系统的优势C语言作为一种高效、灵活的编程语言,在嵌入式系统和底层开发中被广泛应用。
使用C语言开发车载导航系统具有以下优势:高效性:C语言编译生成的机器码执行效率高,适合对性能要求较高的应用。
灵活性:C语言可以直接操作内存和硬件,方便与底层硬件进行交互。
可移植性:C语言代码具有较好的可移植性,可以在不同平台上进行移植和扩展。
3. 车载导航系统设计与实现3.1 地图数据处理在车载导航系统中,地图数据是至关重要的。
我们可以使用C语言读取地图数据文件,并将其存储在内存中以便后续快速访问。
地图数据通常包括道路信息、POI信息等,我们可以设计相应的数据结构来存储这些信息,并提供查询接口供路线规划算法使用。
3.2 定位模块设计定位模块是车载导航系统中的核心组成部分之一。
通过GPS等定位技术,我们可以获取车辆当前位置的经纬度信息,并将其与地图数据进行匹配,从而确定车辆所处位置。
在C语言中,我们可以调用相应的库函数来实现GPS数据的解析和处理。
3.3 路线规划算法实现路线规划算法是车载导航系统中最复杂的部分之一。
常用的路线规划算法包括Dijkstra算法、A*算法等。
汽车租赁管理系统c 课程设计一、课程目标知识目标:1. 学生能理解汽车租赁管理系统的基本概念,掌握其功能模块和业务流程。
2. 学生能运用数据库管理知识,设计合理的数据库表结构,实现数据存储和查询。
3. 学生掌握面向对象编程思想,能运用所学编程语言,实现汽车租赁管理系统的核心功能。
技能目标:1. 学生具备分析实际问题的能力,能根据需求设计合适的系统解决方案。
2. 学生能运用编程工具和数据库技术,独立完成汽车租赁管理系统的开发与调试。
3. 学生通过项目实践,提高团队协作和沟通能力,培养解决问题的实际操作能力。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机科学与技术专业的兴趣和热情,增强学习动力。
2. 学生树立正确的价值观,认识到技术在实际生活中的应用价值,提高社会责任感。
3. 学生在项目开发过程中,学会尊重他人意见,培养良好的团队合作精神和职业道德。
课程性质:本课程为高年级计算机科学与技术专业的实践课程,旨在通过项目实践,使学生将所学理论知识应用于实际项目中,提高解决实际问题的能力。
学生特点:高年级学生已具备一定的编程基础和数据库知识,具有较强的自学能力和团队协作精神。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调项目实践,培养学生解决实际问题的能力和团队协作精神。
通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. 汽车租赁管理系统概述- 系统需求分析- 功能模块划分- 业务流程设计2. 数据库设计与实现- 数据库表结构设计- SQL语句编写与优化- 数据库连接与操作3. 编程语言应用- 面向对象编程思想- 常用编程技巧与规范- 系统核心功能实现4. 系统测试与优化- 测试用例设计- 系统性能优化- 异常处理与调试5. 项目实践与团队协作- 项目分工与进度管理- 团队沟通与协作技巧- 项目总结与评价教学内容依据课程目标进行选择和组织,保证科学性和系统性。
C语言程序设计课程设计任务书C语言程序设计课程设计任务书C语言程序设计课程设计任务书C语言程序设计课程设计任务书C语言程序设计课程设计任务书C语言课程设计任务书题目:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
2、输入功能:可以一次完成若干条记录的输入。
3、显示功能:完成全部教师记录的显示。
4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。
5、排序功能:按职工号或教学效果综合评分进行排序。
6、插入功能:按教学效果综合评分高低插入一条教师记录。
7、将教师记录存在文件中。
8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。
课程设计的最后成果是实验报告一份,内容包括:1、预习报告(题目、流程图、程序的设计思想等);2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。
C语言课程设计任务书题目:酒店房间登记与计费管理系统功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。
2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。
3、进一步要求:完成计费和费用查询功能。
要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
#include ""#include ""#include ""#include ""/**************************函数声明************************************/void init(); .\n");fp=fopen("","w"); um!='\0')continue;else{printf("\n添加第%d辆公交车路线记录:\n",i+1);printf("\n请输入路线编码(3位编码,第一位为大写字母,后两位为数字):\n"); um,cc)==0){printf("\n与已有路线编码重复,按回车键返回!!!\n");fflush(stdin); um,cc);printf("\n请输入司机姓名: "); ame);printf("\n请输入途径站台总数(>=2):"); ;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);[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请输入公交车的起始时间(格式为:时:分): "); open);printf("请输入公交车的终止时间(格式为:时:分): "); close);printf("\n请输入公交车的票价: "); oney);printf("\n第%d辆公交车路线记录创建成功!!!\n",i+1);save();printf("\n\t按回车键返回!!!\n");fflush(stdin); um!='\0'&&i<N;i++) um!='\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); um!='\0'&&i<N;i++) um,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); um!='\0'&&k<N;k++){if(strcmp(a[k].num,mod)==0){printf("与已有编号重复,按回车键返回主菜单\n");fflush(stdin);um,mod);save();break;}case '2': ame);printf("\n请输入新的公交车票价:");scanf("%d",&a[i].money);save();break;}case '3': +1>12) +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': [k-1].c);save();break;}case '3': ;j++){a[i].b[j]=a[i].b[j+1];}a[i].n=a[i].n-1;save();break;}case '4': ;printf("\n");while(a[i].n<2||a[i].n>12) ;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': open);printf("请输入公交车的终止时间(格式为:时:分): ");scanf("%s",a[i].tclose);save();break;}case '5':{printf("\n\t\t按回车键返回主菜单\n");fflush(stdin);um!='\0'&&i<N;i++) um,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));um!='\0'&&j+1<N;j++) um!='\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); um!='\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); um!='\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); um!='\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.知识目标:理解C语言的基本语法、数据类型、运算符、控制结构等基本概念;掌握函数、指针、数组等高级特性;了解C语言在汽车租赁系统中的应用。
2.技能目标:能够使用C语言编写简单的程序;能够运用C语言实现汽车租赁系统的基本功能;能够进行C语言程序的调试和优化。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情;培养学生独立思考、解决问题的能力;培养学生团队协作、沟通交流的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等基本概念,以及函数、指针、数组等高级特性。
具体安排如下:1.C语言的基本语法和数据类型;2.C语言的运算符和控制结构;3.函数的定义和调用;4.指针的概念和应用;5.数组的概念和应用;6.C语言在汽车租赁系统中的应用。
三、教学方法本课程将采用讲授法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构等基本概念,以及函数、指针、数组等高级特性,使学生掌握C语言的基本知识。
2.案例分析法:通过分析汽车租赁系统的实际案例,使学生了解C语言在实际应用中的重要性,提高学生的实践能力。
3.实验法:安排实验课程,让学生动手编写C语言程序,培养学生的实际操作能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.参考书:推荐学生阅读一些经典的C语言参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT,为学生提供直观的学习体验。
4.实验设备:配置适当的实验设备,确保学生能够进行实际操作。
五、教学评估本课程的评估方式包括平时表现、作业和考试等,以全面、客观地反映学生的学习成果。
一、实验目的1. 熟悉车辆管理系统的基本功能和操作流程。
2. 了解车辆管理系统的设计原理和实现方法。
3. 培养实际应用中解决实际问题的能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 数据库:MySQL 5.74. 编程语言:C#三、实验内容1. 车辆管理系统概述2. 系统设计3. 系统实现4. 系统测试5. 实验总结四、实验步骤1. 车辆管理系统概述车辆管理系统是一个用于管理车辆信息的软件系统,主要包括车辆信息管理、车辆租赁管理、车辆维修管理、车辆保险管理等功能。
本实验以车辆信息管理为核心,实现车辆的基本信息、租赁信息、维修信息、保险信息等数据的录入、查询、修改和删除。
2. 系统设计(1)系统架构本系统采用B/S架构,分为前端和后端两部分。
前端使用HTML、CSS和JavaScript等技术开发,实现用户界面和交互功能;后端使用C#和MySQL数据库技术开发,实现数据存储和业务逻辑处理。
(2)功能模块系统主要包括以下功能模块:1)用户模块:实现用户注册、登录、权限管理等功能。
2)车辆信息管理模块:实现车辆信息的录入、查询、修改和删除。
3)车辆租赁管理模块:实现车辆租赁信息的录入、查询、修改和删除。
4)车辆维修管理模块:实现车辆维修信息的录入、查询、修改和删除。
5)车辆保险管理模块:实现车辆保险信息的录入、查询、修改和删除。
3. 系统实现(1)数据库设计本系统使用MySQL数据库,设计以下表:1)用户表(user):包含用户名、密码、角色等信息。
2)车辆信息表(vehicle):包含车辆编号、品牌、型号、颜色、购买日期等信息。
3)租赁信息表(rent):包含租赁编号、用户编号、车辆编号、租赁日期、归还日期等信息。
4)维修信息表(maintenance):包含维修编号、车辆编号、维修项目、维修日期、维修费用等信息。
5)保险信息表(insurance):包含保险编号、车辆编号、保险公司、保险类型、保险金额、保险期限等信息。
中国海洋大学青岛学院C语言课程设计报告书题目汽车车票管理系统学生姓名指导教师学院专业班级组内分工目录1 前言 (1)2 需求分析 (2)3 模块设计图 (3)4 NS流程图清单 (4)5 存储结构及函数说明 (17)6 课程设计结果 (20)7 实践心得体会 (26)1 前言1.1 课程设计题目:汽车车票管理管理系统1.2 课程设计目的:车票管理管理系统是车站对车票信息管理的工具。
系统能够实现车票信息的录入,浏览,查询,订票,退票等功能.1.3 功能概述:车票管理系统主要分为管理员登录和普通用户登录两大部分。
其中管理员登录后,可以录入、浏览和查询车票信息。
普通用户登录后可进行查询、退票和订票等操作。
2 需求分析2.1 车次的信息包括:班次、发车时间、起点站、终点站、行车时间、额定人数、已定票人数、票价等。
2.2 系统能够完成车票信息的录入、浏览、查询、订票、退票等功能。
(1)车次信息录入功能: 可进行车次信息的录入,并以文件保存。
(2)车次信息浏览功能: 浏览所有班次信息,并可显示出所有班次当前状态,若某车次发车时间已过,则显示“车已开出”。
(3)车次信息查询功能: 查询车次信息。
可按班次号查询,也可按终点站查询。
(4)车票订票功能:只有当已订票人数小于额定载客量且该班次未到发车时间时才能完成订票。
(5)车票退票功能: 退票时,输入退票班次,若此班次未发出则可能完成退票。
(6)票数变更功能:当用户订票或退票成功后,票数会自动发生相应的改变。
3 模块设计图4 NS流程图清单5 存储结构及函数说明5.1 存储结构系统中,车票信息主要采ticket结构体进行储存,ticket结构体中嵌入time 结构体记录发车时间。
系统还会建立ticket.txt文档和record.txt文档用来存储车次信息和车次记录的条数。
struct time //定义记录时间的结构体{int hour; //小时int minute; //分钟};struct ticket //定义记录车票信息的结构体{int number; //定义车次struct time ft ; //记录发车时间char origin_station[20]; //起始站名称数组char last_station[20]; //终点站名称数组double last_time; //持续时间int max_number; //车次最大运载量int sold_ticket; //已售车票int price; //票价};5.2 系统的主要功能函数int system_time();显示系统时间函数。
#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 *); /*车辆到达*/voidLeave(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;}}}。