基于Android的学习管理系统设计与开发
基于Android的学习管理系统设计与开发
本次设计选用了时下比较热门的Android平台来作为开发技术,实现了一套较为实用的学习管理系统。在校学生可以通过本软件来记录每一天的上课课程信息,记录学习信息等等。
开发工具及环境简介
- Eclipse Classic 3.7.2
- SQLite3
- ADT
- Android SDK
2.系统功能需求
- 课程表的创建与查询
- 课程信息的创建与查询
- 课程学习时间的设定与管理(相当于学习计划)
- 学习效果的反馈与总结
3.系统功能模块设计
本系统采用SQLite数据库来实现数据的持久性管理,本系统采用数据库来存放每一周要上的课程信息和上课地点信息,系统的模块架构设计
4.数据库设计
本系统用到的数据库为Android自带的SQLite数据库,系统采用一个数据库表来记录每一周的课程信息和上课地点信息。
表1: tb_weeks 课程信息表
各个表的详细设计:
序号 | 列名 | 数据类型 | 主键 | 说明 |
1 | id | int | 是 | 主键 |
2 | Week | int | 第几周 | |
3 | Weekindex | int | 周几 | |
4 | Node12 | Varchar | 1、2节课程 | |
5 | Node34 | Varchar | 3、4节课程 | |
6 | Node56 | Varchar | 5、6节课程 | |
7 | Node78 | Varchar | 7、8节课程 | |
8 | Node90 | Varchar | 9、10节课程 | |
9 | Address12 | Varchar | 1、2节地点 | |
10 | Address 34 | Varchar | 3、4节地点 | |
11 | Address 56 | Varchar | 5、6节地点 | |
12 | Address 78 | Varchar | 7、8节地点 | |
13 | Address 90 | Varchar | 9、10节地点表 |
工程文件结构设计
在程序开发阶段,首先确定“即基于Android的学习管理系统”的工程名称为StudyManagement,根据程序模块设计的内容,建立StudyManagement项目, StudyManagement项目的文件结构如图
为了使代码文件结构更加清晰, StudyManagement工程设置了多个命名空间,分别保存了用户界面、数据适配器、常用类库和实体多个包,源代码的名称以及说明如表4.3所示:
包名称 | 文件名 | 说明 |
com.cm.activity | LoginActivity.java | 登录界面视图 |
com.cm.activity | RegisterActivity.java | 注册界面视图 |
com.cm.activity | StudyPlanActivity.java | 计划界面视图 |
com.cm.activity | DialogEditActivity.java | 课程设置界面视图 |
com.cm.activity | CourseListActivity.java | 课程列表视图 |
课表查询界面
用户打开软件进入系统后,可以看到每一周的课程安排信息,可以通过手指滑动来切换不同周次的课程信息。
在课程信息表里,第一行显示了周一到周日标题,第一列显示了一天五个课节信息,而表格主体部分则显示了每一天每个节次所上的课程信息。
具体的实现效果如图
核心代码:
@Override
private LinearLayout createView(int cur_week) {
LinearLayout llRoot = new LinearLayout(this);
llRoot.setOrientation(LinearLayout.VERTICAL);
lParams = new LinearLayout.LayoutParams(width, width);
lParams.leftMargin = 2;
lParams.topMargin = 2;
llLayout = new LinearLayout(this);
llLayout.setOrientation(LinearLayout.HORIZONTAL);
for (int i = 0; i < AppConstant.Weeks.length + 1; i++) {
textView = new TextView(this);
textView.setText(i == 0 ? "" : AppConstant.Weeks[i - 1]);
textView.setGravity(Gravity.CENTER);
textView.setTextColor(getResources().getColor(R.color.gray12));
textView.setBackgroundColor(getResources().getColor(R.color.gray2));
textView.setLayoutParams(lParams);
llLayout.addView(textView);
}
llRoot.addView(llLayout);
for (int i = 0; i < AppConstant.Sessions.length; i++) {
llLayout = new LinearLayout(this);
llLayout.setOrientation(LinearLayout.HORIZONTAL);
textView = new TextView(this);
textView.setText(AppConstant.Sessions[i]);
textView.setGravity(Gravity.CENTER);
textView.setTextColor(getResources().getColor(R.color.gray12)); textView.setBackgroundColor(getResources().getColor(R.color.gray2));
textView.setLayoutParams(lParams);
llLayout.addView(textView);
for (int j = 0; j < AppConstant.Weeks.length; j++) {
textView = new TextView(this);
llLayout.setGravity(Gravity.CENTER);
textView.setTextColor(getResources().getColor(R.color.gray8));
textView.setTextSize(10);
textView.setBackgroundColor(getResources().getColor(R.color.gray1));
textView.setLayoutParams(lParams);
textView.setOnClickListener(onClickListener);
for (int j2 = 0; j2 < list.size(); j2++) {
if (list.get(j2).getWeeks() == cur_week && list.get(j2).getWeekindex() == (j + 1)) {
textView.setTag(list.get(j2).get_id() + "," + i);
switch (i) {
case 0:
textView.setText(list.get(j2).getNode12());
break;
case 1:
textView.setText(list.get(j2).getNode34());
break;
case 2:
textView.setText(list.get(j2).getNode56());
break;
case 3:
textView.setText(list.get(j2).getNode78());
break;
case 4:
textView.setText(list.get(j2).getNode90());
break;
}
break;
}
}
llLayout.addView(textView);
}
llRoot.addView(llLayout);
}
return llRoot;
}
课表设置界面
用户在课表查询界面里点击一个单元格可以修改课程信息,包括课程名称和上课地点信息,修改之后可以通过电脑机保存按钮来把修改结果提交到数据库。
如果修改成功,则在课程查询模块里可以查询到刚刚修改的信息;
具体的实现效果如图
学习 规划 界面
用户可以在系统上记录自己的学习计划,例如用户即可计划某一段时间的学习内容。
具体的实现效果如图
总结界面
用户可以对过去的学习效果进行总结,并可以通过软件记录到手机里。
具体的实现效果如图
需要请联系微信zlee_com_cn
感谢打赏,手动狗头;)