车站信息管理系统(面向对象程序设计python版)

一、基本概述

1.项目背景

随着大数据时代的发展,大数据抓取了人们最想要的信息,数据查询能帮助用户获取更有用的信息,让每个人都能享受到大数据带给生活的高效和便捷。

2.设计目的

为了大大缩减人们出行选择站点所需时间,为了让人们在陌生地区,在对当地交通不熟的情况下,能有效获取交通站点地址和联系方式等,所以设计了车站信息管理系统,该系统可以方便人们查询某地区车站、火车站、机场和轮渡相关信息。

3.主要工作

设计了简单版的一个车站信息管理系统,使用Python语言开发,先对需求与设计进行分析,然后开始开发项目,即对具体功能代码的实现,主要数据存储,数据格式化,文件操作与管理等技术,最后对功能实现进行在不同情况下多次测试。

解释:面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。

二、需求分析

1.引入库

主要实现车站相关信息的增、删、改、查等功能
主要用到的模块是正则表达式模块re和操作系统模块os
在这里插入图片描述

2.功能清单

a. 录入车站相关信息:
1)输入车站信息,包括车站名称,所属地区,联系电话,具体地址,行政区划代码,
输入格式正确则按行保存数据到文件中。
2)如果输入格式错误,则抛出异常,捕获异常,打印’输入无效’。
3)输入错误可重新输入,输入正确可以继续添加,也可以结束程序。

b. 查找车站相关信息:
1)选择查找的方式,输入查找信息。
2)找到则显示查询结果,没找到则打印’无相关信息’。

c. 删除车站相关信息:
1)当车站信息为空时,打印’车站信息还未录入’,当车站信息不为空时,可输入正确 车站名称可删除对应数据。
2)如果输入车站名称错误,则打印’没有找到该名称的车站信息’。

d. 修改车站相关信息:
1)先显示全部车站信息,输入要修改的车站名称 。
2)输入车站存在且输入格式正确即可修改数据,输入错误,则不修改任何数据。

e. 对车站信息进行排序:
1)先显示全部车站信息,选择升序或降序排序。
2)选择排序方式即可对信息进行重新排序。

f. 统计车站的总数量:
1)输入对应的菜单项,可打印出车站的总数量,方便统计。

g. 显示所有车站信息:
1)输入对应菜单项,显示全部信息,方便用户查找需要的内容。

h. 退出系统:
1)输入对应菜单项,可结束进程,退出系统。

程序设计

函数设计

主函数:

def main():
    ctrl = True  # 标记是否退出系统
    while ctrl:
        menu()  # 显示菜单
        option = input("请选择菜单项:")  # 选择菜单项
        option_str = re.sub(r"\D", "", option)  # 把非数字替换掉,提取数字
        if option_str in ['0', '1', '2', '3', '4', '5', '6', '7']:
            option_int = int(option_str)
            if option_int == 0:  # 退出系统
                print('您已退出车站信息管理系统!')
                ctrl = False
            elif option_int == 1:  # 录入车站相关信息
                insert()
            elif option_int == 2:  # 查找车站相关信息
                search()
            elif option_int == 3:  # 删除车站相关信息
                delete()
            elif option_int == 4:  # 修改车站相关信息
                modify()
            elif option_int == 5:  # 对车站信息进行排序
                sort()
            elif option_int == 6:  # 统计车站的总数量
                total()
            elif option_int == 7:  # 显示所有车站信息
                show()
        else:
            print("你输入的数字不在功能菜单(0 ~ 7)范围内!")

数据存储设计

1)先建立一个空列表,把录入的数据保存到一个字典中,再把字典添加到这个空列表中。

2)利用for循环从列表中把每一个字典提出来,以追加模式写入文件,添加换行符,按行存储。

3)如果文件不存在用写入模式,创建并打开文件,然后再进行2)中的操作。

开发

编写代码

这部分为7个部分,对应7个主要的功能函数,每个函数对应一种功能。

功能函数1:录入

# 1 录入车站相关信息
def insert():
    station_list = []  # 保存车站信息的列表,保存字典到这个列表
    mark = True  # 是否继续添加
    while mark:
        sta_name = input("请输入车站名称:")
        if not sta_name:  # 名称为空,跳出循环
            break
        sta_area = input("请输入地区(如 鲤城区/县):")
        if not sta_area:  # 地区为空,跳出循环
            break
        sta_address = input("请输入车站具体地址:")
        if not sta_address:  # 地址为空,跳出循环
            break
        try:
            sta_division_code = int(input("请输入车站对应县(区)行政区划代码:"))
            sta_telephone = int(input("请输入联系电话:"
  • 14
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值