《软件工程编程实践(Python)》大作业题目及要求
一、项目选题
项目选题要求结合本课程所学的主要知识和技能点来进行设计,能够在项目中应用自主学习的新技术,能够发挥创新的意愿提出优秀的创意。
依照一人一题的原则,
二、项目要求
构思并开发一个C/S架构的Python应用程序,覆盖Python面向对象的类、继承、多态、异常处理、数据库访问、多线程网络服务器、GUI界面等特征。
或者基于课堂教学案例项目——天气监测软件(V4TCP/IP通信及多线程服务器版本),从以下八个方面进行扩展。
1.组件设计(20分):
-要求:气象系统可以监测PM2.5、风力和风向,设计中考虑到了未来还可能增加新的气象指标。
2.异常处理(20分):
-要求:当服务器端在运行过程中,当出现数据库访问故障时,系统可以切换到其他存储方式或者平稳地继续运行以等待数据库的恢复。
3.Python GUI(20分):
-要求:用曲线图的方式显示最近5次PM2.5采样数据的折线图,或者用风向标指示最新的风向,或者用饼图指示风力大小(注:10级风为360度满饼图),或者在一个UI中展示不同地点的气象数据集。
4.文件I/O(20分):
-要求:可以根据用户的选择或系统运行情况,将采集到的气象数据,存储到文件中。
5.数据库表扩充及JDBC访问(20分):
-要求:设计并实现适当的数据库表结构,以存储更多的气象数据。
6.数据库结构扩展及JDBC访问(20分):
-要求:系统当前版本,仅采集到一处地点的气象数据,请对表的设计进行扩展,使其可以采集、存储不
同地点的气象数据。
7.多线程与网络通信(20分):
-要求:为气象站编写一个多线程服务器,可以动态获得不同位置的传
感器组传来的气象数据集,并正确存储于数据库中。
8.功能创新(20分):
-要求:自行设计并实现一个与天气监测相关的功能扩展,让这个系统
更加完善。
9.技术创新(20分):
-要求:自主学习Python新技术、新方法,并用于气象系统的改进与完善。
三、考核内容及评分标准
指标考核点
等级1(示范级)等级2(提高级)等级3(进步级)等级4(初始级)17-20分13-16分10-12分0-9分
组件设计-组件设计考虑到
了当前的气象指
标,如PM2.5、风
力和风向。
-组件设计灵活性
强,可以轻松地扩
展以支持未来可能
增加的新的气象指
标。
-组件设计考虑
到了当前的气象
指标,如PM2.5、
风力和风向,并提
供了相应的功能
和接口。
-组件设计能够
部分支持未来可
能增加的新的气
象指标,但可能需
要进行一些修改
和调整。
-
组件设计考虑
到了当前的气象
指标,如PM2.5、
风力和风向,但在
功能和接口上还
有一些不完善的
地方。
-组件设计需要
进行较大的修改
和调整才能支持
未来可能增加的
新的气象指标。
-组件设计只考虑了
部分或没有考虑当前
的气象指标,如
PM2.5、风力和风向。
-组件设计没有考虑
到未来可能增加的新
的气象指标的扩展
性。
异常处理-异常处理机制完
善,能够及时捕获
数据库访问故障的
异常。
-系统能够根据配
置或预设策略,切
换到其他存储方式
或平稳地继续运
行,以等待数据库
的恢复。
-异常处理机制能
够捕获数据库访
问故障的异常,并
进行相应的处理。
-系统能够部分切
换到其他存储方
式或平稳地继续
运行,以等待数据
库的恢复,但可能
需要进行一些手
动干预。
-异常处理机制能
够捕获数据库访
问故障的异常,但
java程序设计主要内容
在处理方式上还
有一些不完善的
地方。
-系统在出现数据
库访问故障时可
能会出现一些问
题,需要进行一些
手动干预才能继
续运行。
-异常处理机制没有
考虑到数据库访问故
障的情况。
-系统在出现数据库
访问故障时无法继续
运行,需要手动修复
才能恢复正常。
Python GUI -Python GUI能够
以曲线图的方式有
效地显示最近5次
PM2.5采样数据。
-GUI界面设计美
观,用户友好,标
签和坐标轴清晰可
见。
-折线图准确地表
示PM2.5数据,并
实时更新。
-Python GUI成功
地使用风向标指
示最新的风向,或
者使用饼图指示
风力大小。
-GUI提供清晰直
观的风向或风力
可视化。
-风向或风力实
时更新。
-Python GUI尝试
在一个UI中展示
不同地点的气象
数据集。
-GUI在设计或功
能上可能有一些
限制,但能基本展
示气象数据。
-气象数据定期
更新,但不一定是
实时的。
-Python GUI无法有
效地显示所要求的气
象数据可视化。
-GUI可能存在重大
的设计或功能问题,
使用户难以理解或与
数据进行交互。
-
气象数据可能无法
正确显示或更新。
文件IO -Python程序能够
根据用户的选择或
系统运行情况,将
采集到的气象数据
准确存储到文件
中。
-文件存储格式清
晰明确,数据完整
且易于读取。
-
程序能够处理异
常情况,如文件写
入失败或文件不存
在等。
-Python程序能够
根据用户的选择
或系统运行情况,
将采集到的气象
数据存储到文件
中。
-文件存储格式
清晰,数据完整,
并提供一定的读
取和解析功能。
-程序能够处理
一些异常情况,如
文件写入失败或
文件不存在等,但
可能存在一些限
制或不完善的地
方。
-Python程序尝试
根据用户的选择
或系统运行情况,
将采集到的气象
数据存储到文件
中。
-文件存储格式
可能存在一些问
题,数据可能不完
整或难以读取。
-Python程序无法根
据用户的选择或系统
运行情况,正确地将
采集到的气象数据存
储到文件中。
-文件存储格式混乱
或不符合要求,数据
可能丢失或无法读
取。
-程序无法处理异常
情况,导致文件写入
失败或文件不存在等
问题。
数据库表扩充及JDBC访问-设计并实现了适
当的数据库表结
构,能够存储更多
的气象数据。
-使用JDBC技术
成功连接数据库,
并能够进行数据的
插入、查询、更新
和删除操作。
-数据库表结构设
计合理,能够满足
数据存储和查询的
需求。
-设计并实现了
适当的数据库表
结构,能够存储更
多的气象数据。
-使用JDBC技术
成功连接数据库,
并能够进行数据
的插入、查询、更
新和删除操作。
-
数据库表结构
设计基本合理,但
可能存在一些不
必要的冗余或不
完善的地方。
-设计并尝试实
现了适当的数据
库表结构,以存储
更多的气象数据。
-使用JDBC技术
连接数据库,并能
够进行部分数据
的插入、查询、更
新和删除操作。
-数据库表结构
设计可能存在一
些问题,如冗余、
不一致或不完善
等。
-未能设计或实现适
当的数据库表结构,
无法存储更多的气象
数据。
-未能成功使用JDBC
技术连接数据库,或
无法进行数据的插
入、查询、更新和删
除操作。
-数据库表结构设计
不合理,无法满足数
据存储和查询的需
求。
数据库结构扩展及JDBC访问-成功对表的设计
进行扩展,使其可
以采集、存储不同
地点的气象数据。
-使用JDBC技术
成功连接数据库,
并能够进行数据的
插入、查询、更新
和删除操作。
-数据库表结构设
计合理,能够满足
多地点气象数据的
存储和查询需求。
-成功对表的设
计进行扩展,使其
可以采集、存储不
同地点的气象数
据。
-使用JDBC技术
成功连接数据库,
并能够进行数据
的插入、查询、更
新和删除操作。
-
数据库表结构
设计基本合理,但
可能存在一些不
必要的冗余或不
完善的地方。
-尝试对表的设
计进行扩展,使其
可以采集、存储不
同地点的气象数
据。
-使用JDBC技术
连接数据库,并能
够进行部分数据
的插入、查询、更
新和删除操作。
-数据库表结构
设计可能存在一
些问题,如冗余、
不一致或不完善
等。
-未能对表的设计进
行扩展,无法采集、
存储不同地点的气象
数据。
-未能成功使用JDBC
技术连接数据库,或
无法进行数据的插
入、查询、更新和删
除操作。
-数据库表结构设计
不合理,无法满足多
地点气象数据的存储
和查询需求。
多线程与网络通信-成功编写了一个
多线程服务器,能
够接收不同位置传
感器组传来的气象
数据集。
-能够正确解析接
收到的数据,并将
其存储于数据库
中。
-服务器能够同时
处理多个传感器组
的数据传输请求。
-成功编写了一
个多线程服务器,
能够接收不同位
置传感器组传来
的气象数据集。
-能够正确解析
接收到的数据,并
将其存储于数据
库中。
-服务器能够同
时处理多个传感
器组的数据传输
请求,并具备一定
的并发处理能力。
-尝试编写一个
多线程服务器,能
够接收不同位置
传感器组传来的
气象数据集。
-能够基本解析
接收到的数据,并
将其存储于数据
库中。
-服务器可能存
在一些并发处理
的问题,如线程安
全性、同步等方面
的不完善。
-未能成功编写一个
多线程服务器,无法
接收不同位置传感器
组传来的气象数据
集。
-无法正确解析接收
到的数据,并将其存
储于数据库中。
-服务器无法同时处
理多个传感器组的数
据传输请求,或存在
严重的并发处理问
题。
功能创新-设计并实现了一
个与天气监测相关
的功能扩展,使系
统更加完善。
-扩展功能具有一
定的创新性和实用
性。
-扩展功能能够与
原有系统无缝集
成,并能够正常运
行。
-设计并实现了
一个与天气监测
相关的功能扩展,
使系统更加完善。
-扩展功能具有
较高的创新性和
实用性。
-扩展功能能够
与原有系统较好
地集成,并能够正
常运行。
-扩展功能可能
存在一些小的问
题或改进的空间。
-设计并尝试实
现了一个与天气
监测相关的功能
扩展,试图使系统
更加完善。
-扩展功能具有
一定的创新性和
实用性。
-扩展功能可能
存在一些问题或
未能完全实现预
期的功能。
-扩展功能与原
有系统的集成可
能存在一些困难
-未能成功设计并实
现与天气监测相关的
功能扩展,无法使系
统更加完善。
-未能展现出创新性
和实用性。
-
未能与原有系统进
行有效集成,或无法
正常运行。
或不完善之处。
技术创新-自主学习并成功
应用了Python的
新技术和新方法,
对气象系统进行了
改进与完善。
-技术创新具有较
高的创造性和实用
性。
-技术创新能够有
效提升系统的性能
和功能。
-技术创新的应用
过程和结果能够清
晰地展示出来。
-自主学习并应
用了Python的新
技术和新方法,对
气象系统进行了
改进与完善。
-技术创新具有
一定的创造性和
实用性。
-技术创新能够
在一定程度上提
升系统的性能和
功能。
-技术创新的应
用过程和结果能
够展示出来,但可
能存在一些小的
问题或改进的空
间。
-尝试自主学习
并应用了Python
的新技术和新方
法,试图对气象系
统进行改进与完
善。
-技术创新具有
一定的创造性和
实用性。
-技术创新在一
定程度上尝试提
升系统的性能和
功能,但可能存在
一些问题或未能
完全实现预期的
效果。
-技术创新的应
用过程和结果能
够展示出来,但与
原有系统的集成
可能存在一些困
难或不完善之处。
-未能成功自主学习
并应用Python的新技
术和新方法,无法对
气象系统进行改进与
完善。
-未能展现出创造性
和实用性。
-未能有效提升系统
的性能和功能。
-未能展示技术创新
的应用过程和结果,
或与原有系统的集成
存在严重问题。
四、提交
通过《作业系统》提交如下成果物:
(1)项目代码:提交完整的工程代码,打包文件名:编号姓名.zip (2)项目报告:单独提交word文件,文件名:编号姓名.docx