• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MVC的Android平臺(tái)圖書管理系統(tǒng)

      2017-05-10 17:45:48王藝燕成麗君楊風(fēng)仙
      電子技術(shù)與軟件工程 2017年8期

      王藝燕+成麗君+楊風(fēng)仙

      摘 要

      描述了一個(gè)采用MVC設(shè)計(jì)模式,運(yùn)行在Android客戶端的多界面單機(jī)版圖書管理系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)過(guò)程。

      【關(guān)鍵詞】MVC框架 Android 圖書管理系統(tǒng)

      1 前言

      基于Android平臺(tái)的圖書管理系統(tǒng)不僅可以減少人力資源消耗,同時(shí)還可以隨時(shí)隨地的查看與管理圖書,方便用戶進(jìn)行操作。接下來(lái)本文將從設(shè)計(jì)與功能實(shí)現(xiàn)兩個(gè)方面進(jìn)行詳細(xì)闡述。

      2 設(shè)計(jì)

      2.1 設(shè)計(jì)模式

      該圖書管理系統(tǒng)采用MVC(model view controller)設(shè)計(jì)模式,將視圖與模型進(jìn)行解耦,從而增強(qiáng)代碼的可維護(hù)性與可擴(kuò)展性。該圖書管理系統(tǒng)的MVC框架具體設(shè)計(jì)如下:

      2.1.1 Model:實(shí)現(xiàn)應(yīng)用程序的核心功能

      (1)創(chuàng)建圖書管理數(shù)據(jù)庫(kù);

      (2)對(duì)數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查的功能。

      2.1.2 View:存放應(yīng)用程序的用戶界面

      (1)用Activity加載XML實(shí)現(xiàn)的用戶界面;

      (2)在用戶事件響應(yīng)函數(shù)里創(chuàng)建controller實(shí)例,調(diào)用controller里面相應(yīng)的處理用戶輸入的函數(shù)。

      2.1.3 Controller:從界面讀取數(shù)據(jù),向后臺(tái)轉(zhuǎn)發(fā)數(shù)據(jù)

      實(shí)現(xiàn)接受用戶請(qǐng)求的函數(shù),在函數(shù)里面調(diào)用model里面相應(yīng)的函數(shù)去處理該請(qǐng)求。

      2.2 功能

      本系統(tǒng)的用戶分為普通用戶和管理員。普通用戶權(quán)限有限,只可以實(shí)現(xiàn)登錄功能、查看圖書功能。管理員的權(quán)限較寬,不僅可以實(shí)現(xiàn)登錄功能,還可以實(shí)現(xiàn)對(duì)圖書的CRUD操作。如圖1所示。

      2.2.1 登陸功能

      通過(guò)輸入的用戶名和密碼判斷用戶的身份是普通用戶、管理員還是不存在的用戶。如果為普通用戶則顯示所有圖書信息,如果為管理員則進(jìn)入功能選擇界面,若為不存在的用戶則提示輸入信息有誤。

      2.2.2 圖書增刪改查功能

      通過(guò)輸入圖書的基本屬性,編號(hào)、價(jià)格、名稱來(lái)增加新的圖書信息。通過(guò)輸入圖書表的主鍵即圖書編號(hào),對(duì)圖書進(jìn)行唯一的識(shí)別然后刪除該圖書。通過(guò)輸入圖書編號(hào)、圖書名稱、圖書價(jià)格,實(shí)現(xiàn)對(duì)該圖書信息的更新。最終所有的圖書信息會(huì)以表格形式顯示在手機(jī)界面中。

      2.3 數(shù)據(jù)庫(kù)

      該圖書管理系統(tǒng)的數(shù)據(jù)庫(kù)采用Android自帶的輕量級(jí)SQLite。因?yàn)镾QLite在使用時(shí)無(wú)需安裝部署方便,同時(shí)源代碼開(kāi)放是一個(gè)精簡(jiǎn)版的SQL庫(kù)。表格設(shè)計(jì)共為兩張:

      2.3.1 用戶表

      用戶屬性為自增的id、姓名、密碼和用戶類型,用戶類型分為普通用戶和管理員,其中主鍵為id。

      2.3.2 圖書表

      圖書的基本屬性為圖書編號(hào)、圖書名稱、圖書價(jià)格,其中圖書編號(hào)為主鍵。

      3 功能實(shí)現(xiàn)

      在開(kāi)發(fā)過(guò)程中為了使各個(gè)模塊功能明確,所以采用MVC框架。在Android項(xiàng)目中,我們將程序分為三個(gè)包,從而使程序看起來(lái)清晰條理。目錄結(jié)構(gòu)如圖2所示,具體功能如圖3所示。

      3.1 Model的具體實(shí)現(xiàn)

      1.DBhelper類:創(chuàng)建數(shù)據(jù)庫(kù)book.db與圖書表book,同時(shí)添加setContext()靜態(tài)函數(shù),用于將環(huán)境變量context設(shè)置為整個(gè)應(yīng)用程序。核心代碼如下:

      public DBHelper(Context context, String name, CursorFactory factory,int version) {//實(shí)現(xiàn)上下文、數(shù)據(jù)庫(kù)名、CursorFactory類型、版本的傳參}

      public void onCreate(SQLiteDatabase db) {//使用execSQL()方法創(chuàng)建表 }

      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//封裝了升級(jí)數(shù)據(jù)庫(kù)的邏輯}

      2.BookManager:實(shí)現(xiàn)對(duì)book數(shù)據(jù)庫(kù)的增刪查改功能,分別使用db.instert(), db.delete(), db.update(), db.query()的方法。以添加圖書為例,核心代碼如下:

      private DBHelper helper= new DBHelper();

      public boolean add(String id, String name, String price){

      //以只讀寫方式打開(kāi)數(shù)據(jù)庫(kù),實(shí)現(xiàn)對(duì)數(shù)據(jù)的添加

      SQLiteDatabase db= helper.getWritableDatabase();

      Cursor cursor=db.query("book", null, "id=?", new String[]{id}, null, null, null);

      if(cursor.moveToFirst()==true) return false;

      ContentValues values=new ContentValues();

      values.put("id", id);values.put("name", name);

      values.put("price", price);db.insert("book", null, values);db.close();

      return true;}

      3.2 View的具體實(shí)現(xiàn)

      對(duì)每一個(gè)布局文件創(chuàng)建一個(gè)Activity,在activity中實(shí)現(xiàn)控件的實(shí)例化以及監(jiān)聽(tīng)事件,同時(shí)并向Controller對(duì)象發(fā)送用戶請(qǐng)求。以添加圖書為例,核心代碼如下:

      玉环县| 内丘县| 黑河市| 辛集市| 南丹县| 得荣县| 淳化县| 浙江省| 平利县| 宁德市| 凤山市| 普安县| 当涂县| 普定县| 横峰县| 安平县| 贺兰县| 辽源市| 苍溪县| 蚌埠市| 天全县| 彰武县| 富民县| 连城县| 峨眉山市| 青铜峡市| 邯郸县| 龙岩市| 中江县| 锡林浩特市| 甘南县| 景宁| 府谷县| 孟村| 鄯善县| 贵定县| 景东| 嫩江县| 桂东县| 梁山县| 勐海县|