当前位置: 首页 > news >正文

基于安卓的课程管理系统app设计

目 录
第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() {
			@Override
			public 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() {
			@Override
			public 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() {
			@Override
			public 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() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				Spinner spinner = (Spinner) parent;

			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {

			}
		});

	}

	private void prestore() {
		nameET.setText(classInfo.getName());
		homeworkET.setText(classInfo.getHomework());
		timeSp.setSelection(id % 20);
	}

	@Override
	protected 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));
				}

			}
		}
	}

}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 2022,记录与华为的这场会议
  • Log,SqlServerProfile, EFProfile三种监视EntityFramework中的sql流
  • 2021.03青少年软件编程(Python)等级考试试卷(二级)
  • 网站变灰,6行代码,通通变灰
  • linux命令二
  • C语言竞赛
  • 关于ElasticSearch日期格式不一致的异常,可以这么解决
  • java面试题-java基础
  • r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
  • 使用VMware 16 安装中标麒麟 7
  • 高光时刻 | 方正璞华联合开发的「人力资源法律服务共享平台」在创新创业大赛中获奖
  • BP综述:自闭症中基于功能连接体的预测模型
  • 【第一章 Linux目录结构,网络连接三种模式,vi和vim】
  • 用细节问题撬动自我进化:首届雪浪算力开发者大赛来了!
  • Windows: Longmai GM3000 ukey修改注册表实现是否清PIN码方法
  • 计算机毕业设计Java棉花(源代码+数据库+系统+lw文档)
  • 央视主持人康辉再次出圈,一口气播出一个多小时不卡顿、零失误
  • 14 求导法则
  • 挑战Typescript项目中的strict编译模式
  • 西门子1200PLC中OB,FC,FB,DB
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉