结对编程三
031302301 031302302
本次的结对编程我们决定设计一款app来帮助老师解决困难
功能分析
将初始的拥有一定数据的排课excel表导入系统,再将其展现在我们设计的原型里。基本可以分成两个部分,第一部分是从Excel到数据库,第二部分是从数据库到图形界面。
实现思路
我们的思路是,将已经接收到的空表导入至电脑本地的数据库中,之后数据库导入系统中。由我完成第二部分,由我的队友完成第一部分。
数据库建立
开始时我们先在SQL建立了一个数据库,在PowerDesigner 中设计了一张表,在SQL下运行脚本,将表添加到了数据库中
将表格导入数据库
在这个时候我们小队进行了分工,由队友负责将excel表格的数据导入到数据库中,由我将数据库的数据显示在app上。我们最开始的想法是在手机中放置excel表格,在软件执行的过程中选择路径导入,但是理想是丰满的,现实是骨感的,我这个萌新安卓工程师谷歌了之后尝试了好久没并没有把这个问题解决。我的队友来请教我,我也没有好的解决办法。我们只能退而求其次,先用JAVA将excel导入到电脑本地的数据库库中,用SQL Converter把我的数据库转换成db文件,直接给我使用,虽然这种方式有些取巧,在实际设计应用的时候应该非人工完成的,不过这次应该只是一个demo,我们会抓紧学习,掌握安卓直接解析excel的方式。在之后的实际应用中实现。
将数据库内容导入到系统中
在数据库导入到系统的过程中,我先使用了继承SQLiteopenhelper类的方法,但是出了许多错误,当时我连看错误都不知道在哪看。最后只好改用openorcreatdatebase这个方法来创建一个临时的数据库进行测试。后来,又发现这种方法不能打开在assests文件夹底下的数据库,而那时候就剩一天时间了,于是只好上网查找资料。然后改用io流将test1.db数据库在运行时copy到SD卡中。才使得任务完成。在从sql里面的数据库转换到.db的数据库的过程中,我发现了一个很好用的小软件sqlconverter。这个软件能够很方便的将sql中的数据库转换成.db文件的数据库。
合并
两部分的开发完成,我们到了结合的时候,我们马上就发现了问题,类型问题,队友导入的时候将一些数据定义为了int型,一些varchar型,但我做的时候完全用的是varchar,我们只能从新修改,队友将我导入时的程序修改,才成功和我合并。
最终效果
数据库设计的考量
对于数据库的设计,我们设计了以下列名(id,zhuanye,renshu,kechengmingcheng ,xuanxiuleixing , xuefen , xueshi ,shiyanxueshi ,shangjixueshi , qizhizhouxu , renkejiaoshi , beizhu)将给出的表格列与本数据库对应,导入即可。
PSP表格
源码的Github链接,commit日志
https://github.com/BiCaiteam/CourseManagement.git
结对照片
总结
对于本次的结对作业,从之前的小组结对设计开始,我们就是比较紧张的,因为我们两个在之前对于安卓开发都没有什么接触,从结对开始到现在我们真的是边学边做,虽然中间磕磕绊绊麻烦不断,但是能上交一份demo我们已经很开心了。我们的设计虽然简陋,敲得代码也不多,但是我们也在这当中收获了一些经验。在设计表格的时候,我参考了谷歌上面的一些实例,按照助教建议的先将一个实例跑起来,再了解这部分该如何使用。因为表格是最先能够直观的感受到的东西,而数据库的建立与否并不直观。在当时我甚至连错误都不知道怎么看,所以先完成了表格方面的开发。在群里问了之后,就去百度了一下如何查询错误,明白不需要看android开头的东西之后,就明白如何看错误报告了。询问有经验的人也是一种很好的方法。
1.双方要多沟通
两个人分工,要多进行交流,约定好一些必要的信息,并且随着时间不断的更新, 而且更多的东西是需要面对面交流才能正确的讲清楚的,单靠文字有许多难以理解的地方。甚至由于表达能力问题,有时有的人会有不同的理解。。
2.实践是最容易获得知识的过程
在实践过程中,总会遇到未知的问题,解决这些问题需要查阅资料,需要接触很多看视频不会提到的类,布局,包等等,这些东西在实践过程中会渐渐的转换成我们的知识,也许仅仅只是囫囵吞枣,但是总会有所收获,随着知识水平的提高,这些东西相信在再次接触的时候就不会再是困难的。