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

合集下载

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

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

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

c语言课程设计

c语言课程设计

课程设计报告正文1、目的:1) 对C各部分知识的综合应用能力2) 提咼程序设计的能力3) 提升对于较大程序的抽象分析设计能力4) 学习调试和测试的技巧2、所做题目的意义:通讯录管理系统在当今这个信息发达的社会是必不可少的,这个通讯录管理系统可以方便的为我们添加、管理联系人,不必一定要记住这些庞大的信息,可以很方便的调用出自己所需要的信息,随时的修改这些信息,这些在这个时代是非常的必要的。

3、本人所作的工作:(1)、写出了预习报告。

从图书馆搜集了些这方面的资料(2)、想好思路,写出了程序代码(3)、调试程序,找出其中的错误,最终成功的运行出程序(4)、写出课程设计报告4、系统的主要功能:该系统的是一个小型的通讯系统,它具有一般的通讯系统都具有的功能该程序具有查找、添加、修改、删除功能,其讯录包括:街道,城市,省,邮编。

5、、系统的总体设计:系统的基本要求和容:该系统要求具有查找,添加,修改,删除功能,其讯录包括:、,街道,城市,省,邮编。

但在实际设计中增加了一项,那就是末尾添加,可以在已有的记录末尾再次添加,不必每次都重新添加,方便用户描绘及绘制出系统的功能结构框图、程序设计组成框图,流程图等:此系统共分为九大模块,分别为以下的模块:第一模块:主函数ma in ()的功能是:根据选单的选项调用各函数,并完成相应的功能。

第二模块:quitRec()的功能是:退出选单。

第三模块:createRec()的功能是:创建新的通讯录。

第四模块:addRec()的功能是:在通讯录的末尾写入新的信息,并返回选单第五模块:findRec()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。

第六模块:alterRec()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回。

第七模块:deleteRec()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。

C语言课程设计报告-停车场管理系统.doc

C语言课程设计报告-停车场管理系统.doc

C语言课程设计报告目录一、题目要求,需求分析二、总体设计思路与功能模块划分三、程序设计四、程序运行测试五、总结前言计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。

因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。

如今,高等教育的计算机教育发展十分迅速。

十多年前,只有部分理工科专业开设计算机课程。

今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。

人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。

而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。

计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。

一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。

根据我们专业的性质和要求,则应侧重于上机操作运用。

为此,学校特意在本学期最后安排了32个学时的上机实习。

现将一星期的实习内容及结果分析分列如下:一、题目要求:27.停车场管理21、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。

2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。

即先将这四辆车的信息存入文件“car.dat"中(数组的对应元素也要进行赋值)。

3、停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件"car.dat"中,并将在此之前的所有车的停车时间加5。

数据结构c语言版课程设计停车场管理系统

数据结构c语言版课程设计停车场管理系统

课程设计:停车场c语言版本的数据结构课程设计,要求用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统停车场停满车后车会停在便道上面下面附上源码,vc:(下编译#include 〈stdio。

h>//#include 〈stdlib。

h〉//malloc#include 〈time。

h〉//获取系统时间所用函数#include <conio.h> //getch()#include 〈windows。

h〉//设置光标信息mallco #define MaxSize 5 /*定义停车场栈长度*/#define PRICE 0。

05 /*每车每分钟收费值*/#define BASEPRICE 0。

5 //基础停车费#define Esc 27 //退出系统#define Exit 3 //结束对话#define Stop 1 //停车#define Drive 2 //取车int jx=0,jy=32;//全局变量日志打印位置typedef struct{int hour;int minute;}Time,*PTime;/*时间结点*/typedef struct /*定义栈元素的类型即车辆信息结点*/{int num ;/*车牌号*/Time arrtime;/*到达时刻或离区时刻*/}CarNode;typedef struct /*定义栈,模拟停车场*/{CarNode stack[MaxSize];int top;}SqStackCar;typedef struct node /*定义队列结点的类型*/{int num; /*车牌号*/struct node *next;}QueueNode;typedef struct /*定义队列,模拟便道*/ {QueueNode *front,*rear;}LinkQueueCar;/*函数声明*/PTime get_time();CarNode getcarInfo();void qingping(int a);void gotoxy(int x,int y);void printlog(Time t,int n,int io,char ab,int po,double f);void printstop(int a,int num,int x0,int y0);void printleave(int a,int po,int num);/*初始化栈*/void InitSeqStack(SqStackCar *s){s—〉top=—1;}/* push入站函数*/int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈if(s->top==MaxSize-1)return(0); //如果栈满,返回0 else{s—〉stack[++s-〉top]=x; //栈不满,到达车辆入栈return(1);}}/*栈顶元素出栈*/CarNode pop(SqStackCar *s){CarNode x;if(s->top〈0){x。

C语言课程设计

C语言课程设计

C语言课程设计一.实训要求:1、进一步掌握和利用C语言进行程设计的能力。

2、进一步理解和运用结构化程设计的思想和方法。

3、初步掌握开发一个小型实用系统的基本方法。

4、学会调试一个较长程序的基本方法。

5、学会利用流程图或N-S图表示算法。

6、掌握书写程设计开发文档的能力(书写实习报告)。

二.实训内容:通过复习C语言所学习内容,完成如下编程任务,要求每个题目都画出流程图或者是N-S图,并写出解决此问题的实训报告(即详细的解题过程、分析过程和实训心得),并附最终得到的完整的c语言代码。

1、实现学生成绩管理系统:(也可以选择类似的学籍管理系统)系统要求如下a、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.b、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息.c、新生插入:按照该生的学号,将此生的信息保存进文件。

d、可以把各科的平均成绩,最高和最低分分别全部输出。

e、输出全部学生信息和全部学生成绩。

f、退出系统。

2、计算器。

编写一个计算器程序,实现加、减、乘、除、求平方根(正数)、求平方数等功能。

①要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)等。

②要求程序能进行浮点数的算术运算。

③程序要求可以连续做多次算术运算,每次运算结束后,程序都给出提示:Do you want to continue(Y/N or y/n)?用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。

三、实训评分标准实训成绩由三部分构成:实训考勤分数(30%),实训态度分数(20%),实训报告分数(50%)。

实训时间为一周,分上下午分别签到,每次到课可得到3分,共30分,到课不满60%的学生没有实训成绩;实训时玩游戏,看视频及其他与实训无关的动作,将在实训态度分中分别扣除相应的分数。

《C语言程序设计课设》课程设计指导书

《C语言程序设计课设》课程设计指导书

《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分)五级记分制评定学生课程设计成绩。

中职《C语言程序设计》教案第6课输出车辆限行提示

中职《C语言程序设计》教案第6课输出车辆限行提示

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语言课课程设计管理系统一、教学目标本章节的教学目标是使学生掌握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.实验设备:计算机、网络设备等。

以上教学资源将有助于丰富学生的学习体验,提高学生的实际操作技能和解决实际问题的能力。

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

C语言课程设计报告停车场管理系统

C语言课程设计报告停车场管理系统

算法与数据结构课程设计题目:停车场管理专业班级:软件四班姓名:学号:指导教师:成绩:______________目录一、题目及要求 (2)二、题目分析 (3)三、数据结构说明 (4)四、各函数算法分析 (5)(1)主函数 (5)(2)车辆到达函数 (7)(3)车辆离开函数 (8)(4)列表显示函数 (10)五、程序测试 (14)(1)测试信息对错误的处理 (14)(2)列表显示 (15)(3)同时输出等待的提示作息 (16)(4)计算它们的应交费用 (17)六、课程设计感悟与收获 (18)七、源代码 (19)八、参考文献 (25)一、题目及要求[要求]设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。

车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆国就进入停车场。

停车场内如有某辆车要走,在它之后进来的车都必须退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。

每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。

如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且其他在便道上等待的车辆的次序不变。

编制一程序模拟停车场管理。

[提示]汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去时刻)。

例如:(’A’,1,5)表示1号牌照车在5这个时刻到达,而(’D’,5,20)表示5号牌照车在20这个时刻离去,整个程序可以在输入信息为(’E’,0,0)时结束。

基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交的费用和它在停车场内停留的时间。

根据题目要求,停车场可以用一个长度为n的堆栈来模拟。

由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。

程序设计c语言课程设计

程序设计c语言课程设计

程序设计c语言课程设计一、教学目标本课程的教学目标是使学生掌握C语言程序设计的基本概念、语法和编程技巧,培养学生运用C语言解决实际问题的能力。

具体分解为以下三个方面的目标:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等概念。

2.技能目标:学生能够熟练使用C语言编写程序,解决简单的数学计算、数据处理和排序等问题。

3.情感态度价值观目标:培养学生对编程语言的兴趣,增强其自主学习和解决问题的能力,使其认识到程序设计在现代社会的重要性。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等。

具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点和基本语法。

2.第二章:数据类型和运算符,讲解整型、浮点型、字符型数据以及各类运算符的用法。

3.第三章:控制结构,学习顺序结构、分支结构和循环结构的使用。

4.第四章:函数,讲解函数的定义、声明和调用,以及常用的库函数。

5.第五章:数组和指针,学习一维、二维数组的操作以及指针的基本用法。

6.第六章:字符串和文件操作,了解字符串的表示方式、文件的基本操作。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式:1.讲授法:教师通过讲解、举例等方式,向学生传授C语言的基本概念和编程技巧。

2.案例分析法:教师通过分析实际案例,引导学生运用C语言解决具体问题。

3.实验法:学生动手编写程序,巩固所学知识,培养实际编程能力。

4.讨论法:学生分组讨论,共同解决问题,提高沟通和合作能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C语言入门教程》3.多媒体资料:教学PPT、视频教程、在线编程练习平台4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

C语言课程设计停车场管理系统方案

C语言课程设计停车场管理系统方案

c语言课程设计主题停车管理系统主题停车管理系统教官颜东学生专业电子信息工程教学单位物理系(盖章)目录1设计能力和设计要求1.1系统功能简介1.2系统运行环境2功能划分,模块详细说明3程序流程图4操作和操作说明4.1系统的运行4.2操作说明摘要5......5......6......7......8......9 (9)附件:源程序列表1设计能力和设计要求1.1系统功能介绍⏹该系统具有简洁的菜单界面,用户通过输入简单的选项即可完成相应的工作。

⏹用户可以选择1、2、3、4进行相应的操作,统一查看,统一输出。

⏹这个停车场管理系统(1)停车场为两层,每层6个车位。

只有一楼住满了,二楼才能用。

(停车场可以用二维数组实现,每个数组元素存储一个车牌号。

)每辆车的来信(2)假设停车场的初始状态是一层停了4辆车,车位为1-4个,停车时间为20、15、10、5。

即这四辆车的信息会先存储在文件“car.dat”中(数组的对应元素也会被赋值)。

(3)停车操作:当一辆车进入停车场时,先输入其车牌号,然后分配给它一个楼层号和一个车位号(分配前检查车位的使用情况,如果一楼空着就停在一楼),停车时间设置为5。

最后,将新停放的汽车的信息添加到文件“car.dat”中,在此之前所有汽车的停放时间加5。

(4)收费管理(取车):汽车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元。

(设置一个变量可以节省停车费),同时从文件“car.dat”中删除该车的信息,将该车对应的车位设置为可用状态(即二维数组的对应元素被重置)。

根据用户的选择,判断是否输出停车费。

(5)输出停车场所有车辆的信息。

(6)退出系统。

⏹1.2系统运行环境⏹运行在C++6.0,对硬件基本没有要求。

现在,大多数计算机系统都可以运行这个系统。

4系统的操作和描述4.1系统的操作系统初始运行时,会显示如图4-1所示的输入界面,用户可以根据提示做出相应的选择,完成系统提供的各种功能。

C语言课程设计汽车售票系统

C语言课程设计汽车售票系统

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.实验设备:提供计算机实验室,让学生能够进行实际编程和实验。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评估学生的学习成果。

C语言课程设计任务书(18份)详细版

C语言课程设计任务书(18份)详细版

C语言课程设计任务书详细版(18份)C语言课程设计任务书1题目:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。

2、输入功能:可以一次完成若干条记录的输入。

3、显示功能:完成全部教师记录的显示。

4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。

5、排序功能:按职工号或教学效果综合评分进行排序。

6、插入功能:按教学效果综合评分高低插入一条教师记录。

7、将教师记录存在文件中。

8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。

课程设计的最后成果是实验报告一份,内容包括:1、预习报告(题目、流程图、程序的设计思想等);2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书2题目:酒店房间登记与计费管理系统功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。

2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。

3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。

3、进一步要求:完成计费和费用查询功能。

要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

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语言
在车辆工程学领域,C语言是一种常用的编程语言,它用于开发汽车相关的软件和控制系统。

C语言因其高效性和接近硬件的特性能,被广泛应用于车辆工程中的以下几个方面:
1. 嵌入式系统:汽车中的许多电子控制单元(ECUs)和传感器都是嵌入式系统,C语言是这些系统的主要编程语言。

2. 数据采集:车辆测试和诊断过程中,C语言可以用于采集和处理来自汽车传感器的数据。

3. 控制算法:C语言用于实现汽车控制系统的算法,如发动机控制、制动系统、车辆稳定性控制等。

4. 仿真与建模:在车辆设计和测试阶段,C语言可以用于创建仿真模型,以预测车辆在不同条件下的性能。

5. 车辆网络通信:车辆内部和外部的通信协议,如CAN(控制器局域网络)和MOST(媒体导向系统运输),可以使用C语言进行编程。

6. 用户界面和图形显示:虽然C语言不常用于开发复杂的用户界面,但它可以用于创建一些基本的图形界面和数据显示。

7. 软件开发:C语言还可以用于开发车辆工程领域的桌面应用程序和工具,以提高工作效率。

学习C语言对于车辆工程学的学生和专业人士来说是非常重要的,因为它为他们提供了一种工具,使他们能够更好地理解和参与到现代汽车技术中。

通过掌握C语言,学生可以更好地准备自己进入车
辆工程领域,并在未来的职业生涯中发挥重要作用。

C语言课程设计——简易公交车管理系统

C语言课程设计——简易公交车管理系统

#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语言课程设计汽车租赁系统

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 3 /*车库容量*/
#define price 0.5 /*每车每分钟费用*/ 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).该车库的收费标准为:%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; /*打印列表信息*/
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->leave.hour), &(p->leave.min));
printf("离开车辆的车牌号为:");
puts(p->num);
printf("其到达时间为: %d:%d\n", p->reach.hour, 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;。

相关文档
最新文档