首页 > 其他分享 >大二暑期第二周每周总结

大二暑期第二周每周总结

时间:2023-07-02 09:56:33浏览次数:31  
标签:car self 暑期 货车 第二周 车辆 print 大二 type

这周完成了数据结构的小学期,开始了数据库的小学期。数据结构我写的是渡船管理模拟系统。主要的操作就是利用文件和队列将准备上船的车进行排序然后保存到文件里。题目如下:

题目3渡船管理模拟

渡口的每条渡轮一次能装载6辆汽车过江,车辆分为客车、鲜货车和普通货车3类,渡船管理规定;①同类汽车先到的先上船;②上船的优先级为:客车优先于鲜货车、鲜货车优先于普通货车;③每上3辆客车才允许上2辆鲜货车,然后再允许上1辆货车。若等待的客车不足3辆时,用鲜货车填补,当等待的鲜货车不足2辆时,按用普通货车填补;当没有普通货车等待时,按客车优先于鲜货车的原则填补;④当装满6辆后则自动开船;⑤1个小时为1个周期,若周期结束仍不满载则应人为控制开船。

设计要求:

(1) 模拟各类车辆到大渡口的情况;

(2) 模拟渡船开船的情况。

(3) 提供文件保存各类模拟数据,并提供基于文件的多种查询。

代码如下

class Car:
    def __init__(self, id, type):
        self.id = id
        self.type = type


class Ship:
    def __init__(self):
        self.cars = []

    def add(self, car):
        self.cars.append(car)

    def print(self):
        for car in self.cars:
            print(f"车辆 - 车牌号: {car.id}, 类型: {car.type}")

    def save(self, filename):
        with open(filename, 'w') as file:
            for car in self.cars:
                file.write(f"车辆 - 车牌号: {car.id}, 类型: {car.type}\n")

    def load(self, filename):
        self.cars = []
        with open(filename, 'r') as file:
            lines = file.readlines()
            for line in lines:
                line = line.strip()
                if line.startswith("车辆 - 车牌号"):
                    parts = line.split(": ")
                    id = parts[1].split(",")[0]
                    type = parts[1].split(",")[1].split(": ")[1]
                    car = Car(id, type)
                    self.add(car)

    def px(self):
        self.cars.sort(key=lambda x: (x.type != '客车', x.type != '鲜货车'))


def main():
    ship = Ship()
    filename = "aaa.txt"
    # 从文件中加载已保存的车辆数量
    with open(filename, 'r') as file:
        lines = file.readlines()
        saved_cars_count = sum(1 for line in lines if line.startswith("车辆 - 车牌号"))

    while True:
        print("渡船管理模拟")
        print("1. 上船车辆登记")
        print("2. 查看车辆上船顺序")
        print("3. 手动开船")
        print("0. 退出")
        choice = input("请输入您的选择:")

        if choice == '1':
            if len(ship.cars) >= 6:
                print("渡船已满载。无法再添加更多车辆。")
                continue
            id = input("请输入车辆的车牌号:")
            type = input("请输入车辆的类型(客车/鲜货车/普通货车):")
            car = Car(id, type)
            ship.add(car)
            saved_cars_count += 1  # 更新已保存的车辆数量
            ship.px()  # 按优先顺序重新排序车辆
            ship.save(filename)  # 将车辆信息保存到文件
            print(f"车辆信息已保存到文件:{filename}")
        elif choice == '2':
            # 打开文件
            file = open("aaa.txt", "r")
            # 读取文件内容
            data = file.read()
            if data == '':
                print("当前没有车辆上船")
            # 关闭文件
            file.close()
            # 打印数据
            print(data)

        elif choice == '3':
            # 如果已保存的车辆数量达到6组,则自动开船
            if saved_cars_count >= 6:
                print("渡船已满载。开始航行。")
                break
            else:
                print("渡船尚未满载。无法开船。")
                kc = input("现在就想开船吗?Y/N")
                if kc == 'Y':
                    print("渡船驶离港口。")
                elif kc == 'N':
                    print("渡船未满载,请等待更多车辆上船后再出发。")
        elif choice == '0':
            break
        else:
            print("无效的选择。请重新输入。")

if __name__ == '__main__':
    main()

数据库的小学期做了一个电商品牌管理系统,我练习了Java Web技术、Mapper、Maven和MyBatis进行数据库连接,同时采用了JSP、HTML、Vue和CSS进行前端开发。在实施过程中,我使用Java Web技术作为后端开发框架,结合Mapper和MyBatis的使用,使得数据库的连接和操作更加方便和简洁。HTML、Vue和CSS的使用提供了良好的用户界面设计体验,增强了系统的交互性和可视化效果。这些体会令我很震惊很有收获。品牌管理系统涉及到对商品品牌的增删改查操作,因此数据库的设计和管理至关重要。这里通过使用MyBatis编写Mapper接口和XML映射文件实现对数据库的操作。MyBatis可以取代传统的JDBC的连接数据库的方式。通过开发该品牌管理系统,我学到了许多关于数据库设计和优化等方面的知识和技能。总的来说,通过设计和开发某电商平台的品牌管理系统,我综合运用了Javaweb、Mapper、Maven、MyBatis、JSP、HTML、Vue和CSS等技术,实践了软件工程的项目开发流程,并从中收获了宝贵的经验和技能。我相信这些经验将对我未来的学习带来积极的影响。

标签:car,self,暑期,货车,第二周,车辆,print,大二,type
From: https://www.cnblogs.com/zbw-m/p/17520415.html

相关文章

  • 6-26到7-1暑期每周报告2
    这一周依旧是进行大数据技术的学习,通过林子雨老师的b站视频进行学习,但是还是不太懂,而且没有进行实操,因为虚拟机装了之后,硬盘满了,只能等回家加了内存在进行实操,现在离放假大概还有一个星期时间,我的计划是先停下对大数据技术的学习,先进行算法和spring的学习。spring学习:因为之前开......
  • 暑假第二周(6/25~7/01)
    6/25 从今天起,我爸我妈要上班(明明是周日),我弟要上学(万恶且该死的调休政策),所以今天一个人在家(中午也没一个人回来)早上8点,在太阳光的催促下我睁开了双眼,妈妈应该是刚走没多久,弟弟是五点钟起的床,不到六点就到了学校,现在学生真苦,初一就这么紧张。我起来进行洗漱,肚子饿了,在厨房里找......
  • 暑期第三周总结
    本周学习总结:1)本周做了什么:在本周,我完成了数据结构小学期的设计内容,主要学习了以下内容:JWT令牌的使用、AOP的使用和进阶、以及事务的管理。我花费了大约20个小时的时间用于学习这些概念、原理和实践,并且花费了大约15个小时的时间用于编写相关的代码。我还花费了大约5个小时的时......
  • 暑期记录1
    6月26​ 今天本没有什么事情发生的,但是既然要写就写一些吧。​ 本应昨天在端午节吃的粽子,可我在好几天前就吃过了,原因是我妹爱吃,尤其是刚刚煮熟和在冰箱冷藏几个小时的甜粽子。我是不喜欢的,红枣和蜜枣都太甜了,小时候还蛮爱吃的,现在觉得还得是粽子没小时候吃的有味道了。6月27......
  • 暑期熔炉第一周
    周记总宣言:(一般性文本为5号字,小字为14号)几个板块笔记:就是一些纯知识的  日记抒情:作者小胡时常发牢骚,尽管文学素养不怎么高  NEXT:小胡对下周的展望(尽管展望都是好的) 日记抒情:周日    这周首先安装了java,并且配置好了编程环境.大一学习c语言和c++......
  • 第二周
    这周平平淡淡但是有干了大事已经去练科目二了,因为比较着急刷时长,驾校一天最多四小时,所以我非常勇敢地选了四个小时,第一次!真的摸到车了还满新奇的,但是说实话离合器踩了一段时间脚就已经麻了,但是还要坚持四个小时,没关系自己选的路,跪着走呜呜呜呜呜呜,教练很幽默的,总算坚持了四个小......
  • 第二周笔记
     ......
  • 第二周
    每天看一小时科目一的题,本周的笔记在后面传的图片周一:看B站上的网课看的标识符和字符类型,幸好没跳过基础,java和C语言还是有些不同的,比如Java的布尔类型是boolean而不是bool周二:在网课上看了类型转化和那个变量和常量的内容周三:看了运算符的网课,运算符这部分我觉得和C语言都一样......
  • 20230630巴蜀暑期集训测试
    T1BS5656最大值Max期望/实际:\(17/17\)考场没思路,打暴力。将每个数分开看,dp预处理出对于每个数,再某些位置被加最终值得概率。再次dp,合并每个数的信息。T2BS5657染色Paint期望/实际:\(0/0\)部分分没调完。答案有下界,分析可得答案必过一条中轴线,分别处理两个方向......
  • 第二周总结
    本周完成内容1.pta完成1000分的题目2.读完了大道至简并且写了相应的读后感3.完成了Java相关软件的安装和环境配置4.学习了一部分java的语法5.下载完成数据库MySQL以及环境配置6.初步学习了一点数据库相关内容7.算法学习了几节,但是又感觉应该先学习数据结构,遇到的问题就是学......