zoukankan      html  css  js  c++  java
  • 课程表课程设计

    一、需求分析

    由于大学上课教室分散,学生经常会忘记自己的课程或是上课的教室。这在一定程度上促进学生课表软件的开发。使其可以帮助学生记录自己的课程和对自己课程的掌握。因为手机相对笔记本电脑更加具有便携性,可以随时随地的打开并使用它。相对于笔记本电脑的开机并打开软件所用的时间,其需要的时间更短,所以手机端的学生课表备受学生用户的青睐。通过手机管理课表也是目前比较流行的方式,该款软件是基于Android Studio平台与SQLite数据库开发的一款学生课表软件。

    UML需求用例图

    二、系统设计

    通过对Android技术的相关研究,了解Android源码实现原理以及过程,从而设计出一款能够使用的课程表。

    这款课程表实现的相关内容如下:

     简洁、实用的操作界面

     课程的增加

     课程的删除

     课程的修改

     课程的查看

     

    三、系统测试

    1、课程的增加

    添加课程时,数据由用户输入,点击确定按钮,判断数据是否合法(及用户名是否为空),合法则插入到数据库;不合法,提示课程信息有误,让用户重新输入。

     

    2、课程的删除

    当用户选定一个课程时,单击课程菜单,点击删除按钮,则从数据库中删除此条记录。数据删除流程

     

    3、课程的修改

    编辑课程时,输入修改后的数据,点击确定按钮,判断数据是否合法,合法,则更新数据库;不合法,则返回错误信息。

     

    4、课程的查看

    四、系统实现

    连立数据库,在数据库中创建表用来存储课程数据,其中包括课程名,星期几,课程开始结束时间,教师和教室。

     

    数据库有关代码

    //从数据库加载数据
    private void loadData() {
        //ArrayList<Course> coursesList = new ArrayList<>(); //课程列表
        DbHelper helper = new DbHelper(this);
        try {
            Dao<Course,Integer> sdao = helper.getDao(Course.class);
            List<Course> sl = sdao.queryForAll();
            //使用从数据库读取出来的课程信息来加载课程表视图
            for (Course course : sl) {
                createCourseView(course);
            }


        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //保存数据到数据库
    private void saveData(Course course) {
        try {
            Dao<Course,Integer> sdao = helper.getDao(Course.class);
            sdao.create(course);
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }

    //更新数据到数据库
    private void updataData(Course course) {
        try {
            Dao<Course,Integer> sdao = helper.getDao(Course.class);
            sdao.updateId(course,Integer.valueOf(course.getId()));
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //删除数据到数据库
    private void delData(Course course) {
        try {
            Dao<Course,Integer> sdao = helper.getDao(Course.class);
            sdao.deleteById(Integer.valueOf(course.getId()));
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    五、总结

    对于安卓,由于平时对手机这方面很感兴趣,所以在学习的时候,带着兴趣去学习的。当然,对一门新的android开发领域,在学习过程中,比想象要困难。为了在短时间内投入到开发,完成项目。需要花大量的时间去学习,动手编程。以最快的速度学习Android,掌握开发中的各种控件的使用,理解了Android开发框架,学习SQLite数据库的使用。

    这次综合课程设计是对自己的一个挑战,对于安卓,在经过努力,最终一步步都解决了。完成综合课程设计设计,让我受益匪浅,我相信它会对我以后的人生和工作起到很好的促进。

    附件1

    课设题目  基于Android的课程表应用软件

    技术说明

    技术名称

    分类

     

    应用与实现

    1

    UI设计

    课程表布局,以及菜单界面,多种布局的嵌套及控件的使用,

    2

    SQLite数据库

    课表添加与删除修改

    3

    Activity组件的应用

    添加课表单周双周课表添加与跳转

    4

    ListView的使用

    使用listview加载数据库课表信息进行显示

    UML类图

     

     

    代码

    清单文件:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.example.lcu_kcb">
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <application
            android:allowBackup="true"
            android:icon="@drawable/tb"
            android:label="阿健课程表"
            android:supportsRtl="true"
            android:theme="@style/AppTheme"
            tools:ignore="GoogleAppIndexingWarning">

            <activity android:name="com.example.lcu_kcb.MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:label="新建课程"
                android:name="com.example.lcu_kcb.AddCourseActivity"
                android:theme="@style/Theme.AppCompat.Light.Dialog"/>

            <activity
                android:name="com.example.lcu_kcb.Alter_Course"
                android:label="修改课程"
                android:theme="@style/Theme.AppCompat.Light.Dialog"/>


            <activity
                android:name="com.example.lcu_kcb.AboutActivity"
                android:label="关于"
                android:theme="@style/Theme.AppCompat.Light.Dialog"/>



            <activity
                android:label="课程详细信息"
                android:name="com.example.lcu_kcb.MessageCourseActivity"
                android:theme="@style/Theme.AppCompat.Light.Dialog"/>
            <activity
                android:name="com.example.lcu_kcb.SingleWeek"
                android:label="单周课程"
                />
            <activity
                android:name="com.example.lcu_kcb.DoubleWeek"
                android:label="双周课程"
                />
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
            <provider
                android:name="android.support.v4.content.FileProvider"
                android:authorities="com.example.write.fileprovider"
                android:exported="false"
                android:grantUriPermissions="true">
                <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/provider_paths"/>
            </provider>
        </application>
    </manifest>

     

    布局文件:

    1. 截图  如上:

    Java原码

    ......

    类说明

    类名

    说明

    AboutActivity

    实现关于页面类

    AddcourseActivity

    实现增加课程类

    Alter-course

    实现增加单周课程类

    Course

    实现课程类

    DbHelper

    数据库实现类

    Doubleweek

    实现增加双周课程类

    MainActivity

    实现主要页面类

    MessageCourseActivity

    实现课程信息类

    Singleweek

    实现课程视图类

    SpinnerActivity

    实现选择周类

  • 相关阅读:
    IOS、java支持DES加密
    多线程——@synchronized(object)
    LSM树存储模型
    System.setProperty()
    Filter及FilterChain的使用具体解释
    Java有用经验总结--Swing篇
    POJ3342——Party at Hali-Bula
    Hadoop-2.4.1学习之Writable及事实上现
    OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)
    Android中Context具体解释 ---- 你所不知道的Context
  • 原文地址:https://www.cnblogs.com/zz2333/p/12005259.html
Copyright © 2011-2022 走看看