第三次作业——结对编程
031302329 031302320
功能分析: |
首先来看这次我们要实现的功能:
将初始的排课excel空表导入系统,再将其展现在你们设计的原型里
简而言之,关键就是要实现将excel的导入导出。那么如何快速便捷的实现这个功能呢?我们一开始想到的便是时下大热的Android APP,便于实时的阅读上传,但是同时问题也暴露出来了,这次的客户要求,是要导入整个excel表格,可以想象这可能是一个很大的表格,不适合在小巧的手机屏幕下浏览,虽然可以将大多数信息隐藏在另一个窗口下,但是这样浏览很不直观,也不利于客户对于各种数据的比较,用户体验并没有想象当中的好。而WEB界面下客户可以直观的看到整张完整的表格,不论是在电脑上(更便于操作与观察,毕竟负责人一般都是在电脑上完成excel上的工作,而不是在手机上,然后可以直接在WEB端上传),还是在手机上(手机上也能打开WEB,可以自由缩放,直观的观察到导出的excel表格)。综上,我们选择了在WEB上进行尝试。
实现思路: |
1、使用PowerDesigner 进行数据库设计
数据库设计的考量:
以开课计划书为实体,以年级、专业、专业人数、课程名称、选修专业、学分、学时、实验学时、上机学时、起讫周序、任课教师和备注为属性设计数据库。因为此次作业要求为excel表格导入mysql,以及内容的web显示,所以数据库设计得较为简单,后序步骤中再添加其他实体以及关系。
mysql表设计:
2、功能实现
首先要将excel的数据导入MySQL 数据库。这要怎么做呢?我们2个人想了2个方法。plan a :利用mySql自带的导入功能将excel导入,这个方法不需要编码,可以说很容易做到。但是每次都要填写属性名,可以说是不太方便。所以我们想了一个plan b:利用java程序一键将excel导入mysql数据库。实现方法就是利用poi jar的插件功能,对excel表格按行读入,从上到下,从左到右读入数据 并将每一格的数据存入mysql,这便实现了导入功能。结果展示我们考虑到做android app我们的能力有限,所以选择了Java web实现。通过编写一个jsp页面将mysql中的内容显示在网页中。最终,我们选择了Plan B 实现将excel导入mysql数据库。 Plan B是通过java程序实现的,而数据的显示我们是用java web来实现的。由于时间有限,所以还没有对其进行封装,在之后我们打算利用servlet实现在web上点击“导入”按钮将excel的内容导入mysql。这边的路径是已经定好的,接下来会将其完善成自定义路径。
Plan A(excel手动导入mysql):
这个方法需要手动导入,并不是很方便。
Plan B(利用java程序将excel导入mysql):
(1)将项目导入后,这边我们已经设置好了计算机1.xls的路径
(2)右键项目Run As - Java Application ,单击OK后等待console栏出现finished字样。
(3)使用Navicat for Mysql 打开couse_info表就得到
在web上显示mysql中数据(通过jsp页面)
(1)如图,右键项目
(2)网址输入 http://localhost:8080/CourseManage/ 得到
这样要求的功能就实现了。
附上github commit的记录
我们每人负责一部分代码的完成与修改。因为项目的雏形之前一直没有完成好,所以在github上仓库创建的时间晚了一点。
结对照片:
这是我们在讨论设计数据库的照片。
这是我们在修改bug时的照片。
PSP表格: |
工具:MySQL,myeclipse
两次结对小结: |
王旭銮031302320
1.说实话真的非常地累,因为本身没有Android的基础,而在上次的原型设计中我们选择了Android APP的方式实现,所以我一开始就硬着头皮去试着做一个将mysql数据库的内容显示在手机上的APP。我参考了许多网上别人的代码,可是没有安卓基础的我连基本的修改代码都做不到,熬夜熬到2,3点,还是毫无头绪,基本的报错都不知道怎么去应对。这样大概浪费了1天左右的时间,我实在没有办法,和队友讨论了一下,他也觉得我们的安卓基础不行,很久都可能做不出来,所以我们开始将方向往java web项目转。因为我们暑假都有一起留校学习,有一点java web 项目的基础,所以做起来不会那么陌生了。这个项目真的很磨练人,程序员应该是见过最多次“凌晨四点的夜晚”的人了。为了实现这次作业的功能,我们查阅了许多资料,参考了许多代码。有时修改错误或者修改功能修改到很晚,不是因为不想睡,而是想尽快把脑子中的想法实现起来,害怕睡醒就忘记了。当然,程序的成功运行也是让人喜悦的。Coding的过程可能比较枯燥,但是在这个过程中,我和小伙伴一起探讨,一起学习,这个过程是十分开心的。
2.这两次的结对作业真的让我学到了很多,上一次作业做得不太理想,我一直在找自己做得不好的地方,努力改正自己的不足。团队合作让我知道了1+1是可以大于2的,有些事情我可能做不好,这时候就需要队友来弥补自己的短处。从上一次作业我懂得了,一份优秀的文档是十分重要的,也是一个“敲门砖”,程序实现是之后的事,首先在想法上需要让客户满意。今后的学习之路上,要想成为一名优秀的、合格的程序员,有着很强的编码能力是远远不够的。现代的程序员还需要掌握写文档的能力,才能为自己的项目增色不少。这次作业让我知道了我还需要学习很多,对于陌生的事物也要勇于地尝试,尝试就是宝贵的学习经验。
最后附上代码库链接:
代码库链接