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

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

{

if(*a[i].num!='\0')

continue;

else

{

printf("\n添加第%d辆公交车路线记录:\n",i+1);

printf("\n请输入路线编码(3位编码,第一位为大写字母,后两位为数字):\n"); //路线编码

scanf("%s",cc);

for(j=0;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

{

printf("请输入第%d个站台名称: ",j+1); //站台名称

scanf("%s",a[i].b[j].c);

}

printf("\n自动生成公交路线:(1) %s",a[i].b[0].c);

for(j=1;j

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值