目 录
第1章 绪论 1
1.1 什么是电子课程管理 1
1.2 系统开发的背景 1
1.3 本文主要工作 1
1.4 系统设计目标分析 2
第2章 基本技术方案 3
2.1 Android概述 3
2.2 Android系统的四大组件 3
2.3 Android中的相关技术介绍及分析 5
2.3.1 Android系统架构研究 5
2.3.2 Android架构分析 6
2.3.3 Android应用程序架构 7
2.3.4 Android运行时组件 8
2.3.5 Android应用的构成和工作机制 8
2.4 Eclipse简介 8
2.5 XML简介 9
第3章 系统分析 10
3.1 系统需求分析 10
3.2 系统流程 10
3.3 功能模块划分 11
3.3.1课程添加模块 11
3.3.2 程序设置模块 11
3.3.3 作业功能模块 12
第4章 系统总体设计 13
4.1 概要分析 13
4.2 数据库分析 13
4.2.1 SQLite数据表设计 13
4.3 程序中的主要类 15
4.3.1 GalleryTabActivity类和ClassListActivity类 15
4.3.2 ClassAddActivity类和SettingActivity类 16
4.3.3 SQLiteHelper类和SQLClassTime类 16
4.3.4 HomeworkActivity类和SettingActivity类 16
第5章 系统功能的具体实现 18
5.1程序首页面 18
5.2 课程设置实现 18
5.3课程添加实现 19
5.4 关于 20
5.5作业功能实现 20
结论 22
参考文献 23
致 谢 24
第3章 系统分析
无忧课程管理包括:运行首页课程信息的显示跟具体作业信息情况的显示。这是面向用户的一个Activity,在此用户可以方便地查看本周的课程情况及课后的作业情况。除此之外,是课程信息管理。用户可以添加,删除,修改课程信息和作业信息,设置上课时间。
3.1 系统需求分析
手机电子课程管理在手机应用程序中并不常见,一般在手机上较为常见的日程提醒程序无法实现自由设置课程信息。
经过对周边同学的调查研究,普遍认为这款软件方便实用,其主要功能如下:
课程的添加、删除和修改;
课程作业的添加、交作业的时间查看;
每节课程上课时间段的设置;
每周课程预览;
课程具体信息预览;
3.2 系统流程
根据课程管理的特点,将课程管理分为首页的课程信息预览,作业内容预览,作业的增加与修改,课程添加,上课时间设置。流程图如图3-1所示:

图3-1程序流程图
该程序的流程就如图所示,用户进入程序后,可以通过点击MENU按钮添加课程、设置课程时间、查看本程序的关于信息、退出程序。添加完课程信息,设置好上课时间之后,在进入程序的第一个Activity将当前一周的课程信息及作业信息显示出来,点击课程信息,可以对作业信息进行添加、修改、删除。
3.3 功能模块划分
根据程序的设计,将程序分成3个模块。课程添加、课程设置、作业的添加和修改。每个模块都有对应的功能及相关工作。如图3-2所示:

图3-2功能模块表示图
3.3.1课程添加模块
该模块实现了如下几个功能:
1、添加课程信息;
2、添加上课地点;
3、设定课程在星期几上课;
4、设定课程是当天的第几节课。
该模块实现课程的添加工作,可以将课程的名称、上课地点、上课时间、课程节数添加到数据库中。
3.3.2 程序设置模块
设置模块里面设计了两项内容,设置可以设置每天十节课的上课时间段,设置清空上一周的所有课程信息。
3.3.3 作业功能模块
在预览界面点击具体一节课程的信息,就可以对作业信息进行添加、修改及删除:
1、在上完课后添加作业信息;
2、如果作业需要修改,再次点击,则可以对作业进行修改;
3、在课后如果作业完成后就可以删除作业内容,从而删除作业;
4、可以设置作业的截至时间。

package info.evagle;import info.evagle.model.ClassInfoModel;
import info.evagle.model.ClassTimeModel;
import info.evagle.sql.SQLClassTime;
import info.evagle.sql.SQLiteHelper;import java.text.SimpleDateFormat;
import java.util.Date;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;public class HomeworkActivity extends Activity {public static final int REQUEST_CODE = 1;private Button add;private Button cancel;private Button dateChoosen;private EditText nameET;private EditText deadlineET;private EditText homeworkET;private Spinner timeSp;private ClassInfoModel classInfo;private SQLiteHelper sqlHelper;private SQLClassTime classTime;private String name;private String deadline;private String homework;private int id;private ArrayAdapter<String> timeAdapter;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.add_homework_layout);Bundle bundle = getIntent().getExtras();Boolean isAdd = bundle.getBoolean("isadd");sqlHelper = new SQLiteHelper(this);classTime = new SQLClassTime(this);prepareViews();setListeners();classInfo = new ClassInfoModel();if (!isAdd) {add.setText("修改");id = bundle.getInt("id");setTitle("" + id);classInfo = sqlHelper.getClassById(id + "");prestore();}}private void prepareViews() {add = (Button) findViewById(R.id.add_ahl);cancel = (Button) findViewById(R.id.cancel_ahl);dateChoosen = (Button) findViewById(R.id.btn_date_choosen_ahl);nameET = (EditText) findViewById(R.id.class_name_ahl);timeSp = (Spinner) findViewById(R.id.time_spinner_ahl);homeworkET = (EditText) findViewById(R.id.homework_content_ahl);}private void setListeners() {add.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {name = nameET.getText().toString();homework = homeworkET.getText().toString();// classInfo.setName(name);classInfo.setHomework(homework);if (deadline == null || deadline.trim() == "") {int tmp = 24 * 60 * 60 * 1000;Long time = new Date().getTime();time = time / tmp * tmp;String t = (String) timeSp.getSelectedItem();int h = Integer.parseInt(t.substring(1, 2));ClassTimeModel timeModel = new SQLClassTime(HomeworkActivity.this).getClassById(h + "");time += timeModel.getEnd();deadline = time + "";}classInfo.setDeadline(deadline);sqlHelper.update(classInfo);Log.d("addhomework1", classInfo.toString());ClassInfoModel cs = sqlHelper.getClassById("21");Log.d("addhomework2", cs.toString());Intent intent = new Intent(HomeworkActivity.this,GalleryTabActivity.class);startActivity(intent);}});cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent = new Intent(HomeworkActivity.this,GalleryTabActivity.class);startActivity(intent);}});SimpleDateFormat df = new SimpleDateFormat("MM月dd日 ");Long today = (new Date().getTime()) / (24 * 3600 * 1000)* (24 * 3600 * 1000);dateChoosen.setText(df.format(new Date(today)));dateChoosen.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(HomeworkActivity.this,DateWidget.class);startActivityForResult(intent, REQUEST_CODE);}});SQLClassTime sql = new SQLClassTime(HomeworkActivity.this);int c = 0;for (int i = 1; i <= 10; i++) {ClassTimeModel model = sql.getClassById(i + "");if (model.getStart() > 0)c++;}final String[] time = new String[c];c = 0;for (int i = 1; i <= 10; i++) {ClassTimeModel model = sql.getClassById(i + "");if (model.getStart() > 0) {time[c++] = "第"+ i+ "节"+ " "+ ClassTimeSetting.format(Math.max(model.getStart(),model.getEnd()));}}timeAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, time);timeSp.setAdapter(timeAdapter);timeSp.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {Spinner spinner = (Spinner) parent;}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}});}private void prestore() {nameET.setText(classInfo.getName());homeworkET.setText(classInfo.getHomework());timeSp.setSelection(id % 20);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == REQUEST_CODE) {if (resultCode == RESULT_CANCELED)setTitle("取消");else if (resultCode == RESULT_OK) {String temp = null;Bundle extras = data.getExtras();if (extras != null) {Long dl = extras.getLong("deadline");String t = (String) timeSp.getSelectedItem();int h = Integer.parseInt(t.substring(1, 2));ClassTimeModel timeModel = classTime.getClassById(h + "");dl += timeModel.getEnd();deadline = dl + "";SimpleDateFormat df = new SimpleDateFormat("MM月dd日 ");Date date = new Date(dl);dateChoosen.setText(df.format(date));}}}}}









基于安卓的课程管理系统app设计相关推荐

  1. 基于安卓AndroidStudio在线订餐app设计

    开发环境: Idea2021 + AndroidStudio2021 + Mysql5.6 + 夜神模拟器 功能介绍: 基于安卓的在线订餐app设计,项目一共2个身份包括管理员和用户.管理员在web端 ...

  2. 基于安卓技术的单词app设计与实现

    目录 1 引言 1.1 课题背景 1.2研究现状 1.3本文研究的目的和研究内容 1.3.1研究内容 1.3.2研究目的 1.4相关技术与开发平台 1.4.1技术支持 1.4.2开发环境 2.1安卓系 ...

  3. 基于Android的学生管理系统App设计与实现(Eclipse开发)

    目 录 摘 要 I Abstract II 1 绪论 1 1.1 选题背景及意义 1 1.2 研究现状 1 1.2.1 教育系统发展现状 1 1.2.2 手机的应用市场发展现状 1 1.2.3 And ...

  4. 基于JavaScript的物业管理系统APP设计

    目 录 1绪论 5 1.1选题背景简介 5 1.2目的和意义 5 2 技术简介 6 2.1 ASP.NET技术简介 6 2.2 SQL Serer 简介 7 2.3 C#语言简介 9 2.4 Visu ...

  5. android校园淘论文,基于安卓的校园寻物app的设计与实现--大学生毕业论文(设计).doc...

    基于安卓的校园寻物app的设计与实现--大学生毕业论文(设计) 文 献 信 息 检 索 论 文 课题名称:基于安卓的校园管理软件的设计与实现 负 责 人: 班 级: 学 号: 完成时间: 2014年1 ...

  6. android studio 课程表,基于课程表的安卓Android手机控制APP设计(AndroidStudio,SQLite)(含录像)...

    基于课程表的安卓Android手机控制APP设计(AndroidStudio,SQLite)(含录像)(毕业论文12000字,程序代码) 摘 要 随着IT技术的发展,以前老套的课程表内容查询管理方式已 ...

  7. 基于Java的学生课程管理系统的设计和实现

    基于Java的学生课程管理系统的设计和实现 软件工程王曦楠 要] 学生课程管理系统一直是学校高效组织管理办法信领域内的一个重要课题,特别随着当前教育领域内的深度变革,怎样才能让学生课程管理系统在教育机 ...

  8. 微博app是用java写的吗_基于安卓Android第三方微博APP的设计(Eclipse)

    基于安卓Android第三方微博APP的设计(Eclipse)(论文11000字,程序代码) 摘要:Android系统是基于LINUX的手机操作系统,其最大的优势在于整个系统的开源性和免费性.本系统以 ...

  9. C++课程设计实训_基于多态书籍信息管理系统的设计与实现、附源码、有过程截图

    C++课程设计实训_基于多态书籍信息管理系统的设计与实现.附源码,有过程截图 书籍信息管理系统的设计与实现(基于多态) 学生姓名: 学 号: 指导老师: 所 在 系: 专 业: 班 级: C++课程设 ...

最新文章

  1. 【产品干货】幼年产品狗如何养成?这是完全自我修炼教程!
  2. 离线地图显示连接服务器未打开,如何在uwp中使用OSM离线地图?没有可用的互联网连接时出现问题...
  3. android如何让自定义控件居中,Android自定义控件之自定义TextView,实现drawableLeft可以和文字一起居中...
  4. 基于逻辑回归的标准评分卡实现
  5. QT 中QComboBox控件鼠标事件过滤
  6. 推荐!12个经典开源人脸识别数据库
  7. 干货丨7款易上手C语言编程软件推荐
  8. Python爬虫爬取腾讯视频动漫专区的动漫及其描述
  9. SQL中计算字符串的长度函数
  10. YOLOV5网络结构
  11. SIMULIA-达索系统一体化仿真解决方案
  12. 强烈推荐的程序员键盘--红轴手感好按键压力小写代码更轻松
  13. 由OSS AccessKey泄露引发的思考
  14. AUTO CAD出现无法识别的版本,如何解决?
  15. 各类行业资源学习资料大全
  16. 线程池:酷我音乐网站热歌排行榜里面的歌曲!
  17. 《剑指offer》刷题——【链表】从尾到头打印链表
  18. 马斯诺的行为科学体系的基础
  19. 【Unity编程】Unity中的欧拉旋转
  20. ros ubuntu 卸载_ROS的安装和卸载

热门文章

  1. 百度百科的内容修改方法
  2. 数据库第三章习题_完整版
  3. 计算机网络办公自动化及安全策略探究,计算机网络办公自动化及安全策略探究...
  4. 彗星http_项目彗星
  5. 李立宗《讲给入门者的深度学习》
  6. Morgan Stanley OA题库
  7. 【树莓派4B 遇到红警OPENRA】誓要夺回树莓派霸王枪排名第一位
  8. 深圳市蛋壳公寓租房数据分析
  9. 紫光华宇拼音输入法V6 beta2
  10. 无人驾驶学习笔记——摄像头雷达联合标定