031302301 031302302
本次的结对编程我们决定设计一款app来帮助老师解决困难
功能分析
将初始的排课excel空表导入系统,再将其展现在我们设计的原型里。实现以下两个步骤的操作:1、将初始排课表以文件上传的形式导入系统数据库;2、将系统数据库的排课数据显示在界面里。仅考虑上述功能的实现,暂不考虑后续细节。
实现思路
我们的思路是,将已经接收到的空表导入至电脑本地的数据库中,之后数据库导入系统中。
数据库建立
开始时我们先在SQL建立了一个数据库,在PowerDesigner 中设计了一张表,在SQL下运行脚本,将表添加到了数据库中
将表格导入数据库
在这个时候我们小队进行了分工,由我负责将excel表格的数据导入到数据库中,由队友将数据库的数据显示在app上。我们最开始的想法是在手机中放置excel表格,在软件执行的过程中选择路径导入,但是理想是丰满的,现实是骨感的,我这个萌新安卓工程师百度了之后尝试了好久没并没有把这个问题解决。我去请教我的队友,他也没有好的解决办法。我们只能退而求其次,先用JAVA将excel导入到电脑本地的数据库库中,用SQL Converter把我的数据库转换成db文件,直接给我的队友使用,虽然这种方式有些取巧,在实际设计应用的时候应该非人工完成的,不过这次应该只是一个demo,我们会抓紧学习,掌握安卓直接解析excel的方式。在之后的实际应用中实现。
导入数据库的部分代码
数据库中的表格
使用的SQL Converter
转换后的test1.db
将数据库内容导入到系统中
本段由队友书写
在数据库导入到系统的过程中,我先使用了继承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日志
test2中为我写的部分,hee为队友写的部分
https://github.com/BiCaiteam/CourseManagement.git
结对照片
总结
对于本次的结对作业,从之前的小组结对设计开始,我们就是比较紧张的,因为我们两个在之前对于安卓开发都没有什么接触,从结对开始到现在我们真的是边学边做,虽然中间磕磕绊绊麻烦不断,但是能上交一份demo我们已经很开心了。我们的设计虽然简陋,敲得代码也不多,但是我们也在这当中收获了一些经验。
沟通一定要及时
两个人分工,不能说了你大概做什么,我大概做什么就结束了,要时时讨论,分则就会出现我们在合并是出现的问题。你的数据是这样的类型,我的是那样的。其实这个问题可以在编程开始的时候就避免的,归结起来就是我们在开始的时候沟通交流的不够多。
懂得放弃
在编程的时候,遇到自己不懂得问题,用心的钻研是必须的,但是在实际的项目中,我觉得还是要懂得取舍,懂得放弃,我们对于我之前上面说的用安卓解析excel并不了解。在两个人都不会的时候,面对deadline马上就要到了,一定要懂得放弃,选择其他途径来解决问题。
多思考
从这次的任务中,我和队友遇到了很多问题,有很多是教学视频或者百度上用不到的,也有的是直接百度下来也不确定是什么意思的,但是似乎马上就能解决问题,当我们遇到这类的代码时,虽然解决了一时的问题,不能就当做已经理解了。我们在后面的时候要努力钻研,把这部分不懂的弄懂。
小心命名
在写的过程中一定会不停的推翻之前的代码。慎用最终版命名。。。。。。