C语言:地铁信息管理系统

本文介绍了使用C语言设计的地铁信息管理系统,包括系统界面设计、查询、增加、删除、更新和浏览信息等功能。用户可以通过编号操作各项功能,系统能按编号、线路、起始站和终点站查询地铁信息,并保存记录到文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地铁信息管理系统

一、问题描述
设计一简单的地铁管理系统可以对地铁线路进行简单管理,系统的主要功能:显示已有的地铁信息,分类显示,分别按地铁编号、线路、起始站、终点站进行查询记录,添加、删除和更新地铁线路,并保存记录至文件中等。
二、需求分析
功能需求分析
通过c程序实现对地铁信息管理的设计,建立文件,用来存储地铁的各类信息,在浏览信息时可以对文件中保存的信息进行调用浏览。其中有以下模块:地铁信息管理系统界面设计、查询信息、增加信息、删除信息、浏览所有信息和根据地铁的编号更新不同类别的信息;
地铁信息管理系统界面设计
主要功能是设计地铁信息管理系统的界面,能够提示用户的实际操作等。采用编号的形式实现相对应的操作,其中:0 刷新地铁信息 1 增加地铁信息 2 浏览地铁信息 3查询地铁信息 4 更新地铁信息 5 删除地铁信息 6 退出
在这里插入图片描述
查询信息模块
主要功能是查找需要的地铁线路信息,根据用户选择的三种方式输入查询的地铁线路、起始站、终点站,将会显示所有相关的线路信息
在这里插入图片描述
增加信息模块
主要功能是添加地铁信息,添加操作是根据用户的要求实现的,输入待增加的地铁数量,系统会提示之后进行输入地铁的编号,编号会自动更新,如果输入已有的编号,系统会提示输入正确的编号,之后在操作提示下输入增加的地铁线路、起始站、终点站、途径站数的信息,输入完成后,将提示用户录入成功;
删除信息模块
主要功能是删除不需要的地铁信息,根据输入地铁的编号删除相关的信息,系统会提示删除成功,如果输入的编号错误系统将提示该编号不存在!
浏览信息模块
主要功能是显示地铁的所有信息,包括地铁编号、线路、起始站、终点站、票价、途经站数,用户在浏览信息前需要先刷新系统,再进行浏览的操作;
更新信息模块
主要功能是更新地铁的信息,根据用户输入要更新的地铁编号再进行对地铁信息的修改;
在这里插入图片描述
代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <conio.h>
#define N 100 
struct subway//定义一个结构体 
{
   
   
	char num[N]; 
	char line[N];//地铁线路 
	char sstation[N];//起始站 
	char ostation[N];//终点站 
	char wstation[N];//途径站数 
	char charge[N];//票价 	
}sub[N];//给结构体起别名sub; 
    int k=1,n,m;
    char readfile();//文件读取 
    void save();//将信息保存至文件 
    void insert();//增加地铁信息 
    void Delete();//删除地铁信息 
    void Search();//查询地铁信息 
    void Print();//浏览地铁信息 
    void Update();//更新地铁信息 
    void menu();//主菜单调用其他函数 
int main()
{
   
     
    while(k)
    menu();
    system("pause");
    return 0;
} 
char readfile()
{
   
   
    FILE *fp;//要读取的文件指针 
    int i=0;//数组移动 
    if ((fp=fopen("subway.txt","r"))==NULL)//打开操作不成功 
    {
   
     
    printf("Open file is error!");
    system("pause");
    exit(0);
    }
    //原txt文档的数据之间是空格隔开的,fscanf用来格式化读取文件中的数据 
    while(fscanf(fp,"%s %s %s %s %s %s",sub[i].num,sub[i].line,sub[i].sstation,sub[i].ostation,sub[i].charge,sub[i].wstation)==6)
    {
   
   
    i++;
    }
    fclose(fp);//关闭文件 
    n=i;
    printf("录入完毕!\n");
    }
void save()
{
   
   
    int i;
    FILE *fp;//要读取的文件指针 
    fp=fopen("subway.txt","w"); //打开文件进行写入操作 
    for(i=0;i<n;i++)
    {
   
    
    //原txt文档的数据之间是空格隔开的,fprintf用来向文件写格式化数据 
    fprintf(fp,"%s %s %s %s %s %s\n",sub[i].num,sub[i].line,sub[i].sstation,sub[i].ostation,sub[i].charge,sub[i].wstation);
    }
    fclose(fp);//关闭文件 
}
void insert() /*插入函数*/
{
   
     
    FILE *fp;//要读取的文件指针 
    int i=0;//数组移动 
    if ((fp=fopen("subway.txt","r"))==NULL)//打开操作不成功
    {
   
     
    printf("Open file is error!");
    system("pause");
    exit(0);
    }
    //原txt文档的数据之间是空格隔开的,fscanf用来格式化读取文件中的数据 
   while(
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值