软件构造Lab3实验总结

本次实验是软件构造课程当中工作量最大,且最为复杂的一个。主要工作是实现一个多轨道系统,在这个系统的基础上完成三个应用。
track game
atom structure
social network circle
三种应用都具有一定的多轨道结构。track game 中的轨道是跑道, atom structure当中是不同的原子轨道,social network circle中的轨道承载着不同亲密度的好友。共同操作包括移动物体到其他轨道,增删物体等等。但social network circle还需要有计算逻辑距离等特殊操作。
正则表达式的设计是本实验的核心内容之一。设计过程中充分考虑了多于空格,多于空行等情况的存在。具体设计方案如下。
track game的正则表达式设计
读入游戏类型:“Game ::= (100|200|400)”
读入轨道数量:“NumOfTracks ::= (4|5|6|7|8|9|10)”
读入运动员信息:“Athlete ::= <([a-zA-z]+),(\d+),([A-Z]{3}),(\d+),(\d{1,2}.\d{2})>”
atom structure的正则表达式设计
读入元素名称:“ElementName ::= ([a-zA-Z]{1,2})”
读入原子轨道数目:“NumberOfTracks ::= (\d+)”
读入各层原子数目:"(\d+)/(\d+)"
因为各层原子数目的表达较为复杂。轨道数目是不确定的,因而采用了一种较为简单的实现方式,即只通过”/”符号来区分各个轨道的数据。
social network circle的正则表达式设计
读入中心用户"CentralUser ::= <([a-zA-Z0-9]+) *, *(\d+) *, *(M|F)>"
读入朋友用户"Friend ::= <([a-zA-Z0-9]+) *, *(\d+) *, *(M|F)>"
读入社交关系"SocialTie ::= <([a-zA-Z0-9]+) *, *([a-zA-Z0-9]+) *, *((0|1).\d{1,3})>"
实验当中难度最大的是图形化,这部分工作我利用的中国大学MOOC上《面向对象编程》课程的图形绘制库。实现效果如下
在这里插入图片描述
总而言之,此次实验是我构造过的规模最大的软件,对提升编程能力很有帮助。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值