目 录
第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. electron打包可选择安装位置,可自动更新
  2. 003_FastDFS分布式横向扩容和纵向添加storage
  3. 中国稀土永磁材料市场发展态势及产销需求规模预测报告2021版
  4. c++标准I/O输入流
  5. word把选择答案弄到题目里_一个极限案例弄明白为何“看答案都明白,做题目就是想不起来”...
  6. FPGA系列之一:Cyclone V中的时钟资源
  7. 语音识别之语音数据预处理
  8. 档案+户口+租房,你都清楚了吗?
  9. 云服务器/树莓派搭建我的世界Minecraft多人游戏服务器
  10. 速都app推广:移动网页seo优化和APP发布与aso优化试水
  11. 什么是子网掩码?如何设置子网掩码?
  12. 从WAVE SUMMIT+2021,寻找新一代AI人不可或缺的“凝视”
  13. 上汽集团进军网约车市场  滴滴的市场地位会被传统车企们挑战成功吗?
  14. 操作系统 | 银行家算法及代码实现
  15. win2008服务器终端多用户同时连接,Win2008下如何实现远程多用户共享
  16. JavaScript-----BOM
  17. 医院LIS系统解决方案
  18. MFC基本类库——链表类CList
  19. SSM整合版本一之普通的CRUD
  20. Closing non transactional SqlSession导致spring事务不生效

热门文章

  1. 高级之路篇十二:全面解析web安全及防御方法
  2. 每个小组对本组的意见
  3. 计算机快速访问怎么设置方法,Win10快速访问如何设置?Win10快速访问设置方法介绍...
  4. 移动互联网产品设计小结
  5. C#仿qq窗体项目 登录 注册 聊天 点赞 更换头像 添加好友 删除好友 基础功能
  6. excel中if多条件判断语句
  7. 月报 | 2021 年 6 月文章汇总
  8. 战地3点加入服务器无响应,战地3服务器设置
  9. android 调用第三方应用市场,给自身应用评分
  10. Sata Driver List