校车管理系统
学习C语言中相关知识,设计一个校车管理系统,包含以下主要功能(不限于以下)
实现对校车信息的管理,包括添加相关信息(车牌,座位数,司机姓名,联系方式等等),查询校车信息,删除校车信息(校车报废等原因);
实现小车站点的管理,包括添加站点信息,查询站点信息,删除站点信息等;
实现通过文件保存校车信息;
实现每个校区对应不同校车的分配管理(例如,青山校区需要两辆校车,洪山校区需要一辆校车,黄家湖校区需要三辆校车);
实现校车的预约功能,校内学生和职工可以通过输入规划第二天需要多少校车,实现校车的合理排班,校车司机适当的轮休;(提示,可以给每辆车或者司机增加一个出车状态标志)
题目要求:
必须使用C语言编写,使用C++或者其他高级语言者课程设计为不合格。
使用简单的控制台程序,可以修改背景颜色等,且不需要图形编程。
仅使用编译系统自带的库函数,不允许使用sqlite.dll等动态链接库。
本人承接java、C语言、c++、python、数据结构等课程设计,私聊源码和数据库,联系微信:15813406574
需要此项目的全部代码者微信私聊,永久在线
接下来给大家展示一下效果和重要代码展示:
部分代码展示(如果有需要可以加微信:15813406574):
1 int write_bus() 2 { 3 FILE* fp; 4 if ((fp = fopen("校车信息.txt", "wb+")) == NULL) //wb+新建一个二进制文件,已存在的文件将内容清空,允许读写 5 { 6 puts("Fail to open file!"); 7 exit(0); 8 } 9 10 BusList p = b->next; 11 while (p) 12 { 13 fwrite(p, sizeof(BusNode), 1, fp); 14 p = p->next; 15 } 16 fclose(fp);//关闭文件,数据流才存入磁盘 17 printf("校车信息写入完毕! "); 18 return 1; 19 } 20 21 ////////////从文档中读取校车结构体///////// 22 int read_bus() 23 { 24 FILE* fp; 25 if ((fp = fopen("校车信息.txt", "rb+")) == NULL)//rb+打开一个二进制文件,文件必须存在,允许读写 26 { 27 puts("Fail to open file!"); 28 exit(0); 29 } 30 BusList p = b; 31 while (!feof(fp))//调试发现feof会多读一次,所以加上fread返回值判断 32 { 33 BusNode tmp; 34 if (fread(&tmp, sizeof(BusNode), 1, fp)) 35 { 36 BusListInsert(&b, tmp.data);//判断fscanf的返回数值,它指示成功读取的数据 37 } 38 } 39 fclose(fp); 40 printf("校车信息读取完毕! "); 41 return 1; 42 } 43 44 ////////////把站点结构体数据存入文档中 45 int write_site() 46 { 47 FILE* fp; 48 if ((fp = fopen("站点信息.txt", "wb+")) == NULL) //wb+新建一个二进制文件,已存在的文件将内容清空,允许读写 49 { 50 puts("Fail to open file!"); 51 exit(0); 52 } 53 54 SiteList p = s->next; 55 while (p) 56 { 57 fwrite(p, sizeof(SiteNode), 1, fp); 58 p = p->next; 59 } 60 fclose(fp);//关闭文件,数据流才存入磁盘 61 printf("站点信息写入完毕! "); 62 return 1; 63 } 64 65 ////////////从文档中读取站点结构体///////// 66 int read_site() 67 { 68 FILE* fp; 69 if ((fp = fopen("站点信息.txt", "rb+")) == NULL) 70 { 71 puts("Fail to open file!"); 72 exit(0); 73 } 74 SiteList p = s; 75 int i = 1; 76 while (!feof(fp))//调试发现feof会多读一次,所以加上fread返回值判断 77 { 78 SiteNode tmp; 79 if (fread(&tmp, sizeof(SiteNode), 1, fp)) 80 { 81 SiteListInsert(&s, tmp.date,i);//判断fscanf的返回数值,它指示成功读取的数据 82 i++; SiteNum++; 83 } 84 } 85 fclose(fp); 86 printf("站点信息读取完毕! "); printf(" "); printf(" "); 87 return 1; 88 }