第三次作业——结队编程
成员:
031302501
031302530
实现功能:
1、将初始的排课表导入数据库。
2、将系统数据库的排课数据 显示在APP的界面里。
功能分析:
1、对于第一个功能,主要是利用到java的处理excel的包,将excel表格的内容解析出来,存到设计好的数据库表里面,编码难度相对较大,需要考虑格式的转换等问题。
2、第二个功能是将成功导入数据库的表格给展示在界面上,难度要比较小,侧重点在于如何能够使界面友好,简洁。
实现思路:
1、本次任务我是负责将excel表导入数据库,并实现数据库的相关操作;我们组使用Android实现;java有专门的jar包来处理excel表格,我们导入jxl包;考虑到要实现数据的封装,我们专门建立一个课程类course.来储存excel表格中每个课程的信息;Android有自带的SQLite数据库,我们先创建一个类继承SQLiteOpenHelper类来创建course表,然后创建相应的方法来实现表的增删改查;这样就实现excel表导入数据库,后面就可以通过对数据库的操作将课程信息展现在相应界面上了。
2、在数据库操作类DBManager定义两个方法,一个能够返回所有的课程名称,将课程名称分别关联到ListView控件里面,作为每一个ListView的关键字,显示在一个ShowInfoActivity里面,点击任意一个ListView之后,把它对应的关键字利用intent.putExtra方法,传递给另一个用来显示对应课程名称的数据项的详细信息ShowCourseActivity,这个活动则利用获取到的关键字,调用DBManager的另一个方法得到该条数据项的信息,并用一系列的TextView显示出来。
数据库设计:
因为这次我们只需要创建一个course表,所以我们没有使用powerdesigner;
我们可以用sqlite studio来查看sqlite数据库中的course表:
PSP表格:
PSP |
Personal Software Process Stages |
Time(%) |
Planning | 计划 | 5 |
Estimate | 估计这个任务需要多少时间 | 5 |
Development | 开发 | 90 |
Analysis | 需求分析 | 5 |
Design Spec | 生成设计文档 | 0 |
Design Review | 设计复审 | 5 |
Coding Standard | 代码规范 | 5 |
Desin | 具体设计 | 20 |
Coding | 具体编码 | 30 |
Code Review | 代码复审 | 12 |
Test | 测试(自测,修改代码,提交修改) | 13 |
Reporting | 报告 | 5 |
Test Report | 测试报告 | 0 |
Size Measurement | 计算工作量 | 0 |
Post&ProImpro... | 事后总结,并提出过程改进计划 | 5 |
实现效果:
刚开始显示所有课程
点击课程会显示相应课程信息:
结对照片:
Github链接:
https://github.com/sefzu2015GHello/CourseManagement.git
Github日志:
总结:
1、我们在上传到github的时候一直faild,后来发现是因为当其他人已经往上面push过的时候,自己的代码可能和其他人的发生冲突了,无法合并,必须把github上的项目pull下来,在本地合并,然后把那些发生冲突的地方人工解决掉,之后再push上去就可以了。
2、本次在截止时间内我们小组没有完成任务,数据库的插入与查询方法有bug;这主要是因为我们对Android知识掌握不够,以及安排的时间不够:比如说开始我刚开始设计course表时有int、String|、Float类型(SQLite中对应为integer、text、real),运行时会遇到各种bug,最后只能把course表的所有类型改成String;再比如说表中有的字段是空值,在执行插入、查询操作时会报错,这次也主要是卡在这个地方,所以才不能完成任务;后面我们会解决这个bug,把这个任务完成;