999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

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

摘 要

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

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

1 前言

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

2 設(shè)計

2.1 設(shè)計模式

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

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

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

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

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

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

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

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

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

2.2 功能

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

2.2.1 登陸功能

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

2.2.2 圖書增刪改查功能

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

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

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

2.3.1 用戶表

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

2.3.2 圖書表

圖書的基本屬性為圖書編號、圖書名稱、圖書價格,其中圖書編號為主鍵。

3 功能實現(xiàn)

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

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

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

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

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

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

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

private DBHelper helper= new DBHelper();

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

//以只讀寫方式打開數(shù)據(jù)庫,實現(xiàn)對數(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的具體實現(xiàn)

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

主站蜘蛛池模板: 最新加勒比隔壁人妻| 久久综合干| 国产精品一区二区久久精品无码| 久久久久久久蜜桃| 国产精品刺激对白在线| 国产精品一区二区国产主播| 精品国产福利在线| 在线日本国产成人免费的| 69视频国产| 亚洲第一在线播放| 波多野结衣中文字幕久久| 国产喷水视频| 国产精品久久久久久搜索| 午夜人性色福利无码视频在线观看| 久久伊人久久亚洲综合| 国产无码制服丝袜| 久久99热66这里只有精品一| 日本精品中文字幕在线不卡| 亚洲第一视频区| 毛片大全免费观看| 99这里只有精品免费视频| 国产在线观看91精品| 亚洲精品亚洲人成在线| 毛片免费网址| 天天综合色网| 人妻中文久热无码丝袜| 女人一级毛片| 影音先锋丝袜制服| 女人18毛片一级毛片在线| 天堂av综合网| 亚洲欧美精品在线| 中文字幕资源站| 亚洲男人的天堂久久香蕉网| 国产熟睡乱子伦视频网站| 国产精品国产三级国产专业不 | 欧美一区精品| 国产在线观看一区精品| 激情综合网址| 九色在线观看视频| 99热这里只有精品国产99| 97久久精品人人做人人爽| 青青草一区二区免费精品| 999福利激情视频| 在线亚洲精品自拍| 国产欧美精品一区二区| 欧美成人综合在线| 亚洲伦理一区二区| 2019国产在线| 国产精女同一区二区三区久| 91精品视频在线播放| 久久久久亚洲AV成人人电影软件| 日韩亚洲综合在线| 中文字幕色站| 全色黄大色大片免费久久老太| 欧洲熟妇精品视频| 高清无码不卡视频| 91区国产福利在线观看午夜| 亚洲成人在线网| 国产一区二区网站| 亚洲色无码专线精品观看| 在线色国产| 日韩国产综合精选| 久久亚洲国产视频| 国产三级精品三级在线观看| 国产91线观看| 国产污视频在线观看| 国产电话自拍伊人| 日韩精品专区免费无码aⅴ| 在线日韩日本国产亚洲| 欧美啪啪精品| 日韩免费视频播播| 欧美日本不卡| 国产情侣一区| 国产美女视频黄a视频全免费网站| 四虎永久免费地址| 九色在线视频导航91| 国产成人综合网在线观看| 国产亚洲精品91| 有专无码视频| 国产理论精品| 波多野结衣二区| 色爽网免费视频|