c语言车辆管理系统课程设计

合集下载

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课程设计之车辆管理系统

c 课程设计之车辆管理系统一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。

通过本课程的学习,学生需要掌握车辆管理系统的相关知识,包括车辆管理的基本概念、车辆管理的流程和方法等。

同时,学生需要具备一定的实际操作能力,能够运用所学知识对车辆进行有效管理。

此外,学生应该树立正确的车辆管理意识,具备良好的道德品质和社会责任感。

二、教学内容本课程的教学内容主要包括车辆管理的基本概念、车辆管理的流程和方法。

具体包括以下几个方面:1. 车辆管理的基本概念:车辆管理的定义、特点和作用;2. 车辆管理的流程:车辆的采购、使用、维护和报废等环节的管理;3. 车辆管理的方法:车辆管理的常用方法和技术,如车辆识别码系统、车辆定位系统等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1. 讲授法:通过教师的讲解,使学生掌握车辆管理的基本概念和方法;2. 讨论法:通过分组讨论,培养学生的思考能力和团队协作能力;3. 案例分析法:通过分析实际案例,使学生了解车辆管理的具体操作过程;4. 实验法:通过实际操作,锻炼学生的动手能力和实际应用能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。

教学资源包括教材、参考书、多媒体资料和实验设备等。

1. 教材:选择权威、实用的教材,为学生提供全面、系统的学习资源;2. 参考书:推荐一些相关领域的参考书,帮助学生拓展知识面;3. 多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣;4. 实验设备:准备必要的实验设备,为学生提供实践操作的机会。

五、教学评估本课程的教学评估将采用多元化的方式,以全面、客观、公正地评估学生的学习成果。

评估方式包括但不限于以下几个方面:1. 平时表现:通过观察学生在课堂上的参与程度、提问回答等,了解学生的学习态度和理解程度;2. 作业:布置适量的作业,要求学生在规定时间内完成,以检验学生对知识的掌握情况;3. 考试:定期进行考试,以评估学生对课程知识的全面理解和运用能力。

C 课程设计方案汽车管理系统

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语言版交通管理系统》课程设计实验指导

《C语言版交通管理系统》课程设计实验指导

任务四:数据更新与删除模块
2. 实现事务处理机制,确保数据一致性。
3. 提供友好的用户界面,方便管理员进行操作。
04
实验结果与演示
实验结果展示
实验结果展示
学生需要将实验结果以书面报告 的形式展示出来,包括程序代码、 运行结果、数据分析和结论等部 分。
实验结果评价
教师对学生的实验结果进行评估, 包括程序的正确性、效率、可读 性和可维护性等方面。
03
培养学生对实际问题的分析和解决能力,提高学生 的编程实践能力和团队协作能力。
实验要求
01
完成一个简单的交通管理系统,实现车辆信息录入、
查询、修改和删除等基本功能。
02
在实现基本功能的基础上,可适当增加其他功能,如
按车牌号查询、按车主姓名查询、统计车辆数量等。
03
保证程序的正确性、稳定性和可维护性,遵循良好的
将各个模块进行整合,实现系统整体功能。
数据结构设计
车辆信息表
存储车辆的基本信息,如车牌号、车 型、颜色等。
驾驶员信息表
存储驾驶员的基本信息,如姓名、性 别、年龄等。
违章记录表
存储违章记录的信息,如违章时间、 地点、违章内容等。
事故处理表
存储事故处理的信息,如事故时间、 地点、责任方等。
03
实验任务与步骤
任务一:数据录入模块
2. 实现添加新数据的函数,包括输入验证和错误处理。
3. 确保数据的一致性和完整性。
任务二:数据查询模块
• 数据查询模块概述:该模块允许 用户根据特定条件查询交通信息。
任务二:数据查询模块
功能要求 1. 能够按车辆ID查询车辆信息。 2. 能够按驾驶员ID查询驾驶员信息。

c语言车辆管理系统课程设计

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 课程设计车辆管理系统一、教学目标本课程旨在通过学习车辆管理系统,使学生掌握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课程设计车辆管理系统

c课程设计车辆管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握车辆管理系统的基本概念、原理和架构;技能目标要求学生能够运用所学知识设计并实现一个简单的车辆管理系统;情感态度价值观目标要求学生培养对车辆管理系统的兴趣,提高解决问题的能力。

二、教学内容本课程的教学内容主要包括车辆管理系统的基本概念、原理和架构,以及设计实现一个简单车辆管理系统的过程。

具体包括以下几个部分:1.车辆管理系统的基本概念:介绍车辆管理系统的定义、功能和应用场景。

2.车辆管理系统的原理:讲解车辆管理系统的运行原理和工作流程。

3.车辆管理系统的架构:介绍车辆管理系统的组成部分及其相互关系。

4.设计实现简单车辆管理系统:引导学生运用所学知识,分组完成一个简单车辆管理系统的设计、编码、测试和调试。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

讲授法用于讲解基本概念、原理和架构;讨论法用于引导学生深入思考和探讨问题;案例分析法用于分析实际案例,帮助学生理解车辆管理系统的工作原理;实验法用于让学生动手实践,培养实际操作能力。

四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。

教材和参考书用于为学生提供理论知识的支撑;多媒体资料用于辅助教学,提高学生的学习兴趣;实验设备用于开展实验教学,让学生动手实践,培养实际操作能力。

五、教学评估本课程的教学评估采用多元化的方式,包括平时表现、作业、考试等。

平时表现主要评估学生的课堂参与度、提问回答等情况;作业分为平时练习和项目实践,评估学生对知识的理解和应用能力;考试分为期中考试和期末考试,全面测试学生的知识掌握和运用情况。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:共计32课时,每周2课时,共16周完成。

教学地点安排在教室和实验室,以便于学生进行理论学习和实践操作。

车辆租赁管理系统C课程设计

车辆租赁管理系统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. 系统测试与优化:介绍系统测试方法,让学生学会对车辆租赁管理系统进行功能测试、性能测试等,并能对系统进行优化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;}}}。

相关文档
最新文档