版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教學(xué)單位 計(jì)算機(jī)學(xué)院 學(xué) 年 2015-2016 學(xué) 期 第二學(xué)期 物聯(lián)網(wǎng)移動(dòng)應(yīng)用開(kāi)發(fā)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 學(xué)生信息管理系統(tǒng) 專業(yè)班級(jí): 2013級(jí)物聯(lián)網(wǎng)3班 姓 名: 指導(dǎo)教師: 2016年6月24日目 錄1 課程設(shè)計(jì)概述11.1任務(wù)背景11.2開(kāi)發(fā)環(huán)境11.3 人員分配與進(jìn)度安排22 需求分析32.1功能需求32.2性能需求32.3安全性需求33系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)43.1系統(tǒng)總體設(shè)計(jì)43.2 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)5數(shù)據(jù)庫(kù)E-R圖5基表設(shè)計(jì)63.3 功能詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)73.3.1 注冊(cè)模塊設(shè)計(jì)與實(shí)現(xiàn)73.3.2 用戶登錄模塊設(shè)計(jì)與實(shí)現(xiàn)103.3.3 用戶修改模塊設(shè)計(jì)與實(shí)現(xiàn)123.3.4 用戶查詢模
2、塊設(shè)計(jì)與實(shí)現(xiàn)143.3.5 管理員修改記錄模塊設(shè)計(jì)與實(shí)現(xiàn)153.3.6 管理員查詢記錄模塊設(shè)計(jì)與實(shí)現(xiàn)173.3.7 管理員刪除記錄模塊設(shè)計(jì)與實(shí)現(xiàn)183.3.8 菜單模塊設(shè)計(jì)與實(shí)現(xiàn)194系統(tǒng)測(cè)試214.1測(cè)試環(huán)境214.2模塊測(cè)試214.2.1 注冊(cè)模塊測(cè)試214.2.2 用戶登錄模塊測(cè)試224.2.3 用戶查詢模塊測(cè)試244.2.4 用戶修改模塊測(cè)試254.2.5 管理員管理模塊測(cè)試264.2.6 管理員插入記錄模塊測(cè)試274.2.7 管理員刪除記錄模塊測(cè)試274.2.8 菜單模塊測(cè)試29總結(jié)與展望31物聯(lián)網(wǎng)移動(dòng)應(yīng)用開(kāi)發(fā)課程設(shè)計(jì)成績(jī)表32物聯(lián)網(wǎng)移動(dòng)應(yīng)用開(kāi)發(fā)課程設(shè)計(jì)學(xué)習(xí)體會(huì)331 課程設(shè)計(jì)概述1
3、.1任務(wù)背景學(xué)生信息管理是學(xué)校管理中異常重要的一個(gè)環(huán)節(jié),作為學(xué)校,除了育人,就是育知,學(xué)生信息管理的計(jì)算機(jī)化是整個(gè)學(xué)校教務(wù)管理中的重要一部分,能否實(shí)現(xiàn)這一步關(guān)系到學(xué)校辦學(xué)整體效率的高低,由于它的重要性,學(xué)生信息管理系統(tǒng)的開(kāi)發(fā)與應(yīng)用就逐漸提入議程,并占著越來(lái)越重要的份量。 運(yùn)用學(xué)生信息管理系統(tǒng)可以減輕學(xué)院教學(xué)人員的工作量,縮小開(kāi)支,提高工作效率與準(zhǔn)確率,能夠合理安排時(shí)間,能夠盡快的知道自己的考試成績(jī),投入新的課程的學(xué)習(xí)或復(fù)習(xí)這次沒(méi)有考過(guò)的課程。而學(xué)生信息管理系統(tǒng)的應(yīng)用也為今天的民辦教育在未來(lái)市場(chǎng)的競(jìng)爭(zhēng)力有所提高。從大的方向說(shuō),就是為了加速我國(guó)四化建設(shè)的發(fā)展,實(shí)現(xiàn)全部的自動(dòng)化,使我國(guó)發(fā)展成為通訊網(wǎng)
4、絡(luò)化,決策科學(xué)化,辦公自動(dòng)化的國(guó)家。 在現(xiàn)代,高科技的飛躍發(fā)展,人們工作習(xí)慣的改變,特別是電腦的大量普及,人們生活節(jié)奏越來(lái)越快,怎樣提高工作效率是人們首先考慮的問(wèn)題。學(xué)生信息管理是一個(gè)非常繁瑣與復(fù)雜的一項(xiàng)工作,一個(gè)原因就是工作量大不好管。對(duì)于一個(gè)學(xué)校而言,更應(yīng)該運(yùn)用一些本地資源,提高管理的力度,對(duì)學(xué)生負(fù)責(zé),對(duì)國(guó)家負(fù)責(zé)。開(kāi)發(fā)學(xué)生信息管理系統(tǒng)手機(jī)客戶端旨在方便管理學(xué)生信息,使同學(xué)android智能手機(jī)就可以管理學(xué)生信息,真正做到互聯(lián)網(wǎng)的全方位覆蓋。管理學(xué)生信息系統(tǒng)適用于具有android智能手機(jī)的用戶,在使用本軟件后,學(xué)生信息管理將更加方便快捷。1.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)此管理學(xué)生信息系統(tǒng)需要用到如下軟件
5、環(huán)境。(1)Eclipse 編程軟件。Eclipse是一個(gè)相當(dāng)著名的開(kāi)源Java IDE,主要以其開(kāi)放性、極為高效的GUI、先進(jìn)的代碼編輯器等著稱,其項(xiàng)目包括許多各種各樣的子項(xiàng)目組,包括 Eclipse插件、功能部件等,主要采用SWT界面庫(kù),支持多種本機(jī)界面風(fēng)格。Eclipse是一個(gè)綜合開(kāi)發(fā)環(huán)境(IntegratedDevelopmentEnvironment)IDE,它是一個(gè)功能完整且成熟的軟件,由IBM公司于2001年首次推出。 (2)JDK 1.7。系統(tǒng)選此作為開(kāi)發(fā)環(huán)境,因?yàn)镴DK 1.7版本是目前JDK最新的版本,有許多開(kāi)發(fā)者用到的功能,可以通過(guò)不同的操作系統(tǒng)平臺(tái)在官方網(wǎng)站上免費(fèi)下載使
6、用。(3)ADT簡(jiǎn)介目前Android開(kāi)發(fā)所用的開(kāi)發(fā)工具是Eclipse,在Eclipse編譯IDE環(huán)境中,安裝ADT,為Android開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更,簡(jiǎn)單理解為在Eclipse下開(kāi)發(fā)工具的升級(jí)下載工具。(4)Android系統(tǒng)。Android系統(tǒng)平臺(tái)的手機(jī)功能強(qiáng)大,此系統(tǒng)開(kāi)源、應(yīng)用程序無(wú)界限,隨著Android手機(jī)的普及,Android應(yīng)用的需求勢(shì)必會(huì)越來(lái)越大,這是一個(gè)潛力巨大的市場(chǎng),會(huì)吸引無(wú)數(shù)軟件開(kāi)發(fā)廠商和開(kāi)發(fā)者投身其中。(5)計(jì)算機(jī)硬件系統(tǒng)。CPU要求P4 1.8GHz以上,內(nèi)存要求512MB以上。1.3 人員分配與進(jìn)度安排表1 人員分配與進(jìn)度安排表時(shí)間任務(wù)分配完成人員完
7、成程度6月20日了解項(xiàng)目相關(guān)信息,掌握項(xiàng)目基本功能,環(huán)境搭建所有人員完成6月21日系統(tǒng)框架設(shè)計(jì),登錄、注冊(cè)、修改密碼等界面布局張珍、李恒完成所有資源的查詢收集,需求分析李恒、董永朋完成6月22日系統(tǒng)所有界面的布局、頁(yè)面跳轉(zhuǎn),以及項(xiàng)目整合張珍、梁志偉、董永朋完成部分文檔的編寫(xiě)李恒、董永朋完成6月23日J(rèn)ava代碼以及布局界面的整合張珍、梁志偉完成完善文檔中用戶登錄模塊的功能以及其他模塊、制作答辯PPT張珍、李恒、董永朋、梁志偉完成6月24日答辯所有人完成2 需求分析2.1功能需求本系統(tǒng)扮演著提供用戶直接查詢業(yè)務(wù)的重要角色。它主要提供友好的、方便的用戶操作界面。接受用戶的注冊(cè)、各項(xiàng)查詢以及密碼的修
8、改,具體的功能如下: 用戶功能:1.注冊(cè)功能:用戶初次登陸Android客戶端需要注冊(cè)自己的姓名(用戶名)、密碼、EMAIL和班級(jí)。2.查看個(gè)人信息功能:;用戶通過(guò)登陸自己的用戶名和密碼可以查看自己的個(gè)人信息。3.修改個(gè)人信息功能:用戶點(diǎn)擊修改資料按鈕可以修改自己的姓名(用戶名)、密碼、年齡、EMAIL、班級(jí)等個(gè)人信息。管理員功能:1.查詢信息功能:管理員通過(guò)登陸賬戶密碼,可以查看所有用戶信息。2.增加信息功能:管理員可以增加用戶。3.修改信息功能:管理員可以修改用戶注冊(cè)的信息。4.刪除信息功能:管理員可以刪除用戶注冊(cè)的信息2.2性能需求(1)相互合作的用戶數(shù)量:無(wú)上限。(2)系統(tǒng)支持的并發(fā)操
9、作數(shù)量:記錄相關(guān)信息無(wú)上限,設(shè)置相關(guān)信息時(shí)一時(shí)間只能有一個(gè)用戶設(shè)置相應(yīng)的相關(guān)信息。(3)一般操作的響應(yīng)時(shí)間應(yīng)在35秒內(nèi),響應(yīng)時(shí)間也應(yīng)在可接受的時(shí)間內(nèi)完成,具體情況以網(wǎng)絡(luò)速度為限制。(4)與實(shí)時(shí)系統(tǒng)的時(shí)間關(guān)系:時(shí)間一一對(duì)應(yīng)。2.3安全性需求系統(tǒng)用戶通過(guò)用戶名和密碼方式來(lái)控制用戶對(duì)數(shù)據(jù)的訪問(wèn)與操作,不同的用戶權(quán)限不同,確保正確的用戶使用正確的數(shù)據(jù)。每個(gè)用戶在第一次登錄后,必須更改他的系統(tǒng)預(yù)置登錄密碼,系統(tǒng)預(yù)置的登錄密碼不能重用。3系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1系統(tǒng)總體設(shè)計(jì)Android手機(jī)客戶端功能:(1)登錄學(xué)生信息管理系統(tǒng)android手機(jī)客戶端,用戶可以隨時(shí)隨地通過(guò)手機(jī)登錄信息管理系統(tǒng)的客戶端。(2)
10、注冊(cè)賬號(hào),用戶若沒(méi)有賬號(hào),可以通過(guò)手機(jī)客戶端進(jìn)行注冊(cè)成為系統(tǒng)會(huì)員。(3)查看并修改個(gè)人信息,用戶通過(guò)登陸可以查看自己的個(gè)人信息,如果用戶個(gè)人信息發(fā)生了改變,用戶可以通過(guò)手機(jī)登錄的方式方便地更改個(gè)人信息,這也為信息管理系統(tǒng)用戶的信息資料提供了便利。(4) 管理員可以通過(guò)手機(jī)登錄的方式方便地對(duì)學(xué)生的信息進(jìn)行增加、刪除、修改以及刪除等操作。 系統(tǒng)功能圖以及系統(tǒng)流程圖如下圖所示:圖1 系統(tǒng)功能圖系統(tǒng)的流程為:首先是通過(guò)輸入的用戶名和密碼判斷登錄人員是學(xué)生還是管理員。若為學(xué)生可進(jìn)行注冊(cè)、查詢、修改操作。若為管理員可進(jìn)行學(xué)生信息的添加、修改、刪除、查詢等操作。圖2 系統(tǒng)流程圖3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)3.2
11、.1數(shù)據(jù)庫(kù)E-R圖(1)用戶實(shí)體包括姓名、年齡、密碼、班級(jí)、學(xué)號(hào)、編號(hào),如圖3所示。用戶密碼編號(hào)學(xué)號(hào) 姓名 年齡班級(jí)圖3 用戶實(shí)體的E-R圖(2)管理員實(shí)體包括登錄名、性別、密碼,如圖4所示。管理員登錄名密碼圖4 管理員實(shí)體的E-R圖(3)學(xué)生實(shí)體包括姓名、年齡、密碼、班級(jí)、學(xué)號(hào)、編號(hào),如圖5所示。學(xué)生密碼編號(hào)學(xué)號(hào) 姓名 年齡班級(jí)圖5 學(xué)生實(shí)體的E-R圖3.2.2基表設(shè)計(jì)系統(tǒng)主要有以下表:表2用戶表字段編號(hào)字段名稱數(shù)據(jù)類型主鍵是否為空說(shuō)明1Idvarchar(20)是否學(xué)生注冊(cè)ID2Namevarchar(20)否否學(xué)生姓名3Passvarchar(20)否否登陸密碼4Agevarchar(2
12、0)否否學(xué)生年齡5Classvarchar(20)否否學(xué)生班級(jí)6Numbervarchar(20)否否學(xué)生學(xué)號(hào)表3學(xué)生表字段編號(hào)字段名稱數(shù)據(jù)類型主鍵是否為空說(shuō)明1Idvarchar(20)是否學(xué)生注冊(cè)ID2Namevarchar(20)否否學(xué)生姓名3Passvarchar(20)否否登陸密碼4Agevarchar(20)否否學(xué)生年齡5Classvarchar(20)否否學(xué)生班級(jí)6Numbervarchar(20)否否學(xué)生學(xué)號(hào)表4管理員表字段編號(hào)字段名稱數(shù)據(jù)類型主鍵是否為空說(shuō)明1Adnamevarchar(20)是否管理員登陸名2Adpwdvarchar(20)否否管理員密碼3.3 功能詳細(xì)設(shè)計(jì)
13、與實(shí)現(xiàn)3.3.1 注冊(cè)模塊設(shè)計(jì)與實(shí)現(xiàn)該模塊主要設(shè)計(jì)是得到用戶的輸入的信息,然后將其保存到數(shù)據(jù)庫(kù)。其中具體實(shí)現(xiàn)時(shí)要進(jìn)行相應(yīng)的驗(yàn)證,這塊主要是驗(yàn)證用戶名不能相同,每項(xiàng)數(shù)據(jù)不能為空。若用戶名相同時(shí)提示用戶重新更換用戶名,如有數(shù)據(jù)輸入為空時(shí)也會(huì)提示用戶填寫(xiě)完信息。主要用到的方法是Insert命令,其參數(shù)如下:Long insert(String table,String nullColumnHack,ContentValues values)其中,第一個(gè)參數(shù)是想要插入數(shù)據(jù)的表名;第二個(gè)參數(shù)nullColumnHack的含義是由于SQL不允許空行插入,當(dāng)初始化為空值時(shí),這一列將會(huì)顯式地賦一個(gè)null值;
14、第三個(gè)參數(shù)values是要插入的值。有關(guān)插入數(shù)據(jù)的代碼如下,先構(gòu)造一個(gè)ContentValues對(duì)象cv,然后調(diào)用ContentValues對(duì)象cv的input()方法,將每個(gè)屬性的值寫(xiě)入到ContValues對(duì)象中,隨后使用SQLiteDatabase對(duì)象db的insert()函數(shù),將ContValues對(duì)象的cv中的數(shù)據(jù)寫(xiě)入到指定的數(shù)據(jù)庫(kù)表中。具體代碼如下:bt_reg.setOnClickListener(new Button.OnClickListener() public void onClick(View v) final String nameStr = mname.getTex
15、t().toString();final String passStr = mpass.getText().toString(); final String emailStr = memail.getText().toString();final String classnameStr = mclassname.getText().toString();/用戶名不為空if(null = nameStr.trim() | .equals(nameStr.trim()AlertDialog dialog = new AlertDialog.Builder(AddUserActivity.this)
16、.setTitle(R.string.notice).setMessage(學(xué)號(hào)不能為空!).setPositiveButton(確定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ).create();dialog.show();mname.requestFocus();return ;/密碼不為空if(null = passStr.trim() | .equals(passStr.trim()AlertDialog dialog = new Alert
17、Dialog.Builder(AddUserActivity.this).setTitle(R.string.notice).setMessage(密碼不能為空!).setPositiveButton(確定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int whi).create(); dialog.show(); mpass.requestFocus(); return ;/emailif(null = emailStr.trim() | .equals(emailStr
18、.trim()AlertDialog dialog = new AlertDialog.Builder(AddUserActivity.this).setTitle(R.string.notice).setMessage(email不能為空!).setPositiveButton(確定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ).create();dialog.show();memail.requestFocus();return ;/班級(jí)不能為空i
19、f(null = classnameStr.trim() | .equals(classnameStr.trim()AlertDialog dialog = new AlertDialog.Builder(AddUserActivity.this).setTitle(R.string.notice).setMessage(班級(jí)不能為空!).setPositiveButton(確定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ).create(); dia
20、log.show(); mclassname.requestFocus(); return ;Integer result = dao.checkZhuce(nameStr);if(result0)Toast.makeText(AddUserActivity.this, 用戶名已用,請(qǐng)重新輸入!, Toast.LENGTH_LONG).show();return ;else/插入數(shù)據(jù)mrecords = new Records();mrecords.setName(mname.getText().toString();mrecords.setPass(mpass.getText().toStr
21、ing();mrecords.setEmail(memail.getText().toString(); mrecords.setClassname(mclassname.getText().toString();mrecords.setDatetime(getDateString();dao.InsertRecord(mrecords);/插入方法Toast.makeText(AddUserActivity.this, R.string.addsuccess, Toast.LENGTH_LONG).show();finish();System.gc(););圖6 注冊(cè)模塊實(shí)際效果圖3.3.2
22、 用戶登錄模塊設(shè)計(jì)與實(shí)現(xiàn)該模塊主要設(shè)計(jì)是得到用戶的輸入的信息,并將其保存到配置文件中,然后在數(shù)據(jù)庫(kù)中進(jìn)行驗(yàn)證,若有此人則登陸成功,調(diào)到此人信息界面,否則登錄失敗。其中具體實(shí)現(xiàn)時(shí)要進(jìn)行相應(yīng)的驗(yàn)證,這塊主要是驗(yàn)證用戶名和密碼不能為空,為空時(shí)進(jìn)行友好提示。具體代碼如下: public void initUI()/登錄 btn1 = (Button) this.findViewById(R.id.bt_login); btn1.setOnClickListener(new Button.OnClickListener() public void onClick(View v) /獲取文本對(duì)象 Stri
23、ng name=field_name.getText().toString(); String pass=filed_pass.getText().toString();/判斷輸入是否為空 if(name.equals()|null=name) Toast.makeText(LoginActivity.this, 用戶名不為空, Toast.LENGTH_SHORT).show(); field_name.requestFocus(); return; if(pass.equals()|null=pass) Toast.makeText(LoginActivity.this, 密碼不為空, T
24、oast.LENGTH_SHORT).show(); filed_pass.requestFocus(); return ; /獲取返回的數(shù)量 Integer result=dao.checkLogin(name,pass); if(result0)Toast.makeText(LoginActivity.this, 登錄成功, Toast.LENGTH_SHORT).show(); SharedPreferences sp = getSharedPreferences(PREFS_NAME, 0); /寫(xiě)入配置文件 Editor spEd = sp.edit(); spEd.putStrin
25、g(userName, name); spEd.putString(userPassword, pass); spEmit(); Intent intent = new Intent(); intent.setClass(LoginActivity.this, UserInfo.class); startActivity(intent); /轉(zhuǎn)向添加頁(yè)面 else Toast.makeText(LoginActivity.this, 登錄失敗,Toast.LENGTH_SHORT).show(); ); 圖7 登陸設(shè)計(jì)效果圖3.3.3 用戶修改模塊設(shè)計(jì)與實(shí)現(xiàn)該模塊主要設(shè)計(jì)是得到用戶的輸入的信息
26、,然后將其保存到數(shù)據(jù)庫(kù)。其中具體實(shí)現(xiàn)時(shí)要進(jìn)行相應(yīng)的驗(yàn)證,這塊主要是驗(yàn)證用戶名不能相同,每項(xiàng)數(shù)據(jù)不能為空。若用戶名相同時(shí)提示用戶重新更換用戶名,如有數(shù)據(jù)輸入為空時(shí)也會(huì)提示用戶填寫(xiě)完信息。主要應(yīng)用的方法是:int update(String table,ContentValues values,String whereClause,String whereArgs)上述語(yǔ)句主要用于修改表中的數(shù)據(jù),update語(yǔ)句有四個(gè)參數(shù):table是想要修改數(shù)據(jù)的表名;value是要更新的值;whereClause是可選的子句。如果其值為null,將會(huì)修改所有的行;whereArgs是當(dāng)whereClaus中包
27、含“?”時(shí),而且whereArgs的值不為null,則這個(gè)數(shù)組中的值依次替換whereClause中出現(xiàn)的“?”。有關(guān)修改的數(shù)據(jù)的代碼如下: btn1 = (Button) this.findViewById(R.id.bt_update); btn1.setOnClickListener(new Button.OnClickListener() public void onClick(View v) updateContact(); ); /更新變更的信息 private void updateContact() if (mCursor != null) mrecords = new Rec
28、ords(); mrecords.setName(et_id.getText().toString();mrecords.setName(et_name.getText().toString();mrecords.setPass(et_pass.getText().toString();mrecords.setEmail(et_email.getText().toString(); mrecords.setAge(Integer.valueOf(et_age.getText().toString();mrecords.setClassname(et_classname.getText().to
29、String(); dao.UpdateRecord(mrecords,Integer.valueOf(et_id.getText().toString() );/修改Toast.makeText(EditUser.this,R.string.updatesuccess,Toast.LENGTH_LONG).show();this.finish();Intent intent = new Intent();intent.setClass(EditUser.this, UserInfo.class);startActivity(intent) ; 圖8 修改模塊編輯效果圖3.3.4 用戶查詢模塊
30、設(shè)計(jì)與實(shí)現(xiàn)該模塊主要設(shè)計(jì)是查詢用戶信息,用戶可以看到自己的基本信息。具體代碼如下: Bundle bundle=this.getIntent().getExtras(); final String uid=bundle.getString(UID); mCursor=dao.select_info(uid); mCursor.moveToFirst(); if (!(.equals(uid) /查詢用戶信息 if(mCursor!=null) et_id.setText(mCursor.getString(0);et_name.setText(mCursor.getString(1);et_p
31、ass.setText(mCursor.getString(2);et_age.setText(mCursor.getString(3);et_email.setText(mCursor.getString(6);et_classname.setText(mCursor.getString(4); elseToast.makeText(this, 查無(wú)此人!, Toast.LENGTH_SHORT).show(); mCursor.close(); 圖9查詢模塊設(shè)計(jì)效果圖3.3.5 管理員修改記錄模塊設(shè)計(jì)與實(shí)現(xiàn)該模塊主要設(shè)計(jì)是得到管理員輸入的信息,然后將其保存到數(shù)據(jù)庫(kù)。其中具體實(shí)現(xiàn)時(shí)要進(jìn)行相應(yīng)
32、的驗(yàn)證,這塊主要是驗(yàn)證用戶名不能相同,每項(xiàng)數(shù)據(jù)不能為空。若用戶名相同時(shí)提示用戶重新更換用戶名,如有數(shù)據(jù)輸入為空時(shí)也會(huì)提示用戶填寫(xiě)完信息。具體代碼如下: btn1 = (Button) this.findViewById(R.id.bt_update); btn1.setOnClickListener(new Button.OnClickListener() public void onClick(View v) updateContact(); ); /更新變更的信息 private void updateContact() if (mCursor != null) mrecords = ne
33、w Records(); mrecords.setName(et_id.getText().toString();mrecords.setName(et_name.getText().toString();mrecords.setPass(et_pass.getText().toString();mrecords.setEmail(et_email.getText().toString();mrecords.setAge(Integer.valueOf(et_age.getText().toString();mrecords.setClassname(et_classname.getText(
34、).toString() dao.UpdateRecord(mrecords,Integer.valueOf(et_id.getText().toString();/修改Toast.makeText(EditUser.this, R.string.updatesuccess, Toast.LENGTH_LONG).show();this.finish();Intent intent = new Intent();intent.setClass(EditUser.this, UserInfo.class);startActivity(intent); 3.3.6 管理員查詢記錄模塊設(shè)計(jì)與實(shí)現(xiàn)該模
35、塊主要設(shè)計(jì)是根據(jù)姓名查詢學(xué)生的基本信息。其中具體實(shí)現(xiàn)時(shí)要進(jìn)行相應(yīng)的驗(yàn)證,這塊主要是驗(yàn)證用戶名要存在,用戶名不能為空。若用戶名不存在提示管理員輸入正確的用戶名,如有數(shù)據(jù)輸入為空時(shí)也會(huì)提示管理員填寫(xiě)完信息。Select語(yǔ)句內(nèi)容作為query()方法的參數(shù),除了表名,其他參數(shù)可以是null。該query方法及其相應(yīng)的參數(shù)含義如下:Cursor query(String table, String columns, String selection, String selectionArgs, String groupBy,Srting having, String orderBy, string l
36、imit):query()中的參數(shù)意義依次為:table為表名且不可為null。columns為要返回的列名數(shù)組,取值為null表示返回所有列。selection為where子句,此處將要填的參數(shù)寫(xiě)為“?”供下方的selectionArgs填充,如果其值為null,將會(huì)返回所有的行。selectionArgs為where子句所需值,該數(shù)組依次填充selection中的每一個(gè)問(wèn)號(hào)。groupBy為分組子句,如果其值為null,將不會(huì)對(duì)結(jié)果集進(jìn)行分組。having為和groupBy配套使用的條件子句,如果having值為null,將會(huì)包含所有的分組。orderBy為排序子句,如果orderBy值為
37、null,將會(huì)使用默認(rèn)的排序規(guī)則。limit是可選的子句,如果其值為null,將不會(huì)包含limit子句。具體代碼如下: if(mCursor!=null) et_id.setText(mCursor.getString(0);et_name.setText(mCursor.getString(1);et_pass.setText(mCursor.getString(2);et_age.setText(mCursor.getString(3);et_email.setText(mCursor.getString(6);et_classname.setText(mCursor.getString(
38、4); mCursor.close(); 圖10 管理員查詢模塊設(shè)計(jì)效果圖圖11 管理員查詢模塊設(shè)計(jì)效果圖3.3.7 管理員刪除記錄模塊設(shè)計(jì)與實(shí)現(xiàn)該模塊主要設(shè)計(jì)是刪除學(xué)生的記錄信息,在刪除時(shí)為了防止誤刪進(jìn)行了兩次友好提示,詢問(wèn)管理員是否確定刪除該記錄。刪除數(shù)據(jù)的方法:Int deldete(String table,String whereClause,String whereArgs)上述語(yǔ)句用于從表刪除一行數(shù)據(jù),其中table是想要?jiǎng)h除數(shù)據(jù)的表明,whereClause可選的where子句(如果其值為null,將會(huì)刪除所有的行);當(dāng)在whereClause中包含“?”時(shí),如果whereAr
39、gs的值不為null,則這個(gè)數(shù)組中的值將依次替換whereClause中出現(xiàn)的“?”。具體代碼如下: btn2 = (Button) this.findViewById(R.id.bt_exit); btn2.setOnClickListener(new Button.OnClickListener() public void onClick(View v) SharedPreferences sp = getSharedPreferences(PREFS_NAME, 0); /寫(xiě)入配置文件 Editor spEd = sp.edit(); spEd.putString(userName, )
40、; spEd.putString(userPassword, ); spEmit(); Intent intent = new Intent(); intent.setClass(UserInfo.this, LoginActivity.class); startActivity(intent); / 轉(zhuǎn)向添加頁(yè)面 );3.3.8 菜單模塊設(shè)計(jì)與實(shí)現(xiàn)該模塊主要設(shè)計(jì)是為了防止有人不會(huì)操作此操作,通過(guò)菜單的幫助選項(xiàng)可以得到管理員的QQ和郵箱,便可進(jìn)行咨詢。/加載菜單 public boolean onCreateOptionsMenu(Menu menu) super.onCreateOption
41、sMenu(menu); menu.add(0, HELP_ID, 0, R.string.helps) /返回列表 .setShortcut(4, d) .setIcon(R.drawable.helps); menu.add(0, EXITUser_ID, 0, R.string.exit) .setShortcut(4, d) .setIcon(R.drawable.exit); return true; /處理菜單操作 public boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId() case HE
42、LP_ID: /幫助中心this.finish();Intent intent = new Intent(); intent.setClass(LoginActivity.this, Help.class); startActivity(intent); return true; case EXITUser_ID: System.exit(0); /退出程序 return true; return super.onOptionsItemSelected(item); 圖12 菜單模塊實(shí)際效果圖4系統(tǒng)測(cè)試4.1測(cè)試環(huán)境測(cè)試環(huán)境即測(cè)試的實(shí)施環(huán)境,包括:1.軟件測(cè)試設(shè)計(jì)環(huán)境:編制測(cè)試計(jì)劃說(shuō)明等有關(guān)文
43、件所基于的設(shè)備和支持。2.軟件測(cè)試實(shí)施環(huán)境:對(duì)軟件系統(tǒng)進(jìn)行各級(jí)測(cè)試所基于的軟、硬件設(shè)備和支持。3.軟件測(cè)試管理環(huán)境:管理測(cè)試資源所基于的軟、硬件設(shè)備和支持本系統(tǒng)主要使用的是Eclipse(一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái))以及Android手機(jī)。4.2模塊測(cè)試4.2.1 注冊(cè)模塊測(cè)試注冊(cè)時(shí)需要輸入姓名、密碼、學(xué)號(hào)以及班級(jí)。如果該用戶名已被用過(guò),則會(huì)提示用戶重新輸入,測(cè)試結(jié)果如下圖所示:圖13 注冊(cè)失敗結(jié)果圖圖14 注冊(cè)成功測(cè)試圖4.2.2 用戶登錄模塊測(cè)試用戶登錄模塊需要輸入用戶名以及密碼,否則不能登錄并有用戶名不能為空的提示。若登錄時(shí)用戶名和密碼錯(cuò)誤,則會(huì)提示登錄失敗,否則
44、提示成功。圖15 登錄失敗圖圖16 登錄失敗圖圖17 登錄成功圖 4.2.3 用戶查詢模塊測(cè)試當(dāng)用戶登錄成功以后便可查看自己的基本信息。如下圖所示:圖18 用戶查詢信息模塊圖4.2.4 用戶修改模塊測(cè)試點(diǎn)擊修改資料,可對(duì)用戶的相關(guān)資料進(jìn)行修改,修改成功可查看到修改后的用戶資料。圖19 密碼、年齡修改前圖圖20 密碼、年齡修改時(shí)圖圖21 密碼、年齡修改后圖4.2.5 管理員管理模塊測(cè)試該模塊只能管理員操作,管理員可進(jìn)行查看用戶的信息、增加新用戶,按姓名查詢用戶、刪除用戶信息等操作。界面如下圖所示:圖22 管理員管理模塊圖4.2.6 管理員插入記錄模塊測(cè)試當(dāng)管理員點(diǎn)擊增加按鈕后即可增加新用戶,如下
45、圖所示:圖23 插入前圖圖24 插入后圖4.2.7 管理員刪除記錄模塊測(cè)試管理員長(zhǎng)時(shí)間按住某一條用戶的記錄即可刪除用戶,刪除的同時(shí)有對(duì)話框提示你是否確定刪除,防止誤刪和錯(cuò)刪,刪除成功后也會(huì)有刪除成功的提示。圖25 刪除前圖圖26 刪除提示對(duì)話框圖圖27 刪除成功后圖4.2.8 菜單模塊測(cè)試該模塊主要是有兩個(gè)功能,一個(gè)是幫助,一個(gè)是注銷。經(jīng)測(cè)試這兩個(gè)功能均可實(shí)現(xiàn)。測(cè)試圖如下:圖28 菜單圖圖29 幫助功能圖總結(jié)與展望本次課程設(shè)計(jì),讓我獲益匪淺,以前在學(xué)Android時(shí),雖然上課也好好聽(tīng)老師講,但是在課后自己沒(méi)有親自動(dòng)手實(shí)踐過(guò),現(xiàn)在有許多知識(shí)都忘記了。所以,在課程設(shè)計(jì)中我經(jīng)常遇到許多問(wèn)題,這次課程
46、設(shè)計(jì)我們是分組做的,每個(gè)組都有四個(gè)成員,我們可以共同完成一個(gè)軟件。在我們小組中,我們遇到問(wèn)題,我們會(huì)一起討論,一起問(wèn)老師或者其他會(huì)的同學(xué)。當(dāng)然,許多時(shí)候我們會(huì)不停地翻Android。通過(guò)這次Android軟件開(kāi)發(fā)的課程設(shè)計(jì),我們更深入的了解Android這門(mén)學(xué)科,更使自己有了繼續(xù)探索的興趣。這次課設(shè)我們組主要學(xué)習(xí)到了:1.復(fù)習(xí)、鞏固Android語(yǔ)言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)Android語(yǔ)言的理解和掌握;搭建一個(gè)完整的安卓開(kāi)發(fā)環(huán)境。 2.課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生的分析解決實(shí)際問(wèn)題的能力,提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能
47、力; 3.培養(yǎng)我們?cè)陧?xiàng)目開(kāi)發(fā)中團(tuán)隊(duì)合作精神,創(chuàng)新意識(shí)及能力。在今后的學(xué)習(xí)中,我們定將“認(rèn)真嚴(yán)謹(jǐn)”時(shí)刻作為自的謹(jǐn)言。與此同時(shí),我們小組成員的互幫互助,讓我們體會(huì)到了團(tuán)結(jié)的力量,而更讓人難以忘懷的是在熱烈討論問(wèn)題時(shí),那激情橫溢的場(chǎng)面??傊?,此次課程設(shè)計(jì)在我們學(xué)習(xí)Android的過(guò)程中起到了至關(guān)重要的作用,也為我們將來(lái)從事Android這個(gè)行業(yè)打下了良好的基礎(chǔ)。 項(xiàng)目名學(xué)生信息管理系統(tǒng)組長(zhǎng)張 珍成員學(xué)號(hào)姓名分工任務(wù)分?jǐn)?shù)201396094090代碼編寫(xiě)、系統(tǒng)框架設(shè)計(jì)、界面跳轉(zhuǎn)、答辯201396094088數(shù)據(jù)庫(kù)的操作、系統(tǒng)測(cè)試、代碼整合、PPT制作201396094089修改密碼等界面布局、文檔編寫(xiě)與
48、編排201396094091資料查詢及需求分析、文檔編排教師評(píng)語(yǔ)該組同學(xué)完成了課程設(shè)計(jì)的任務(wù)與目標(biāo),所設(shè)計(jì)的系統(tǒng)滿足課設(shè)方案的要求。小組的課程設(shè)計(jì)題目是學(xué)生信息管理系統(tǒng),小組全體成員在組長(zhǎng)的組織下,經(jīng)過(guò)認(rèn)真討論和分析,確定了系統(tǒng)要完成的基本任務(wù),并進(jìn)行了合理的分工,在課程設(shè)計(jì)期間,能夠每天按時(shí)出勤,課堂紀(jì)律良好,分工合理,工作量比較飽滿。通過(guò)答辯驗(yàn)收,順利完成了課設(shè)所要求的Android客戶端界面的設(shè)計(jì),用戶登陸注冊(cè)模塊、信息錄入模塊和信息查詢修改模塊的的功能設(shè)計(jì),管理員登陸,查詢、修改、插入、刪除信息等模塊等功能模塊的功能設(shè)計(jì),該小組基本完成了課程設(shè)計(jì)的任務(wù)和要求。由于時(shí)間有限,系統(tǒng)存在諸如學(xué)生信息錄入時(shí)頭像的動(dòng)態(tài)加入功能不足等問(wèn)題,希望以后進(jìn)一步修改完善。 教師簽名: 年 月 日 物聯(lián)網(wǎng)移動(dòng)應(yīng)用開(kāi)發(fā)課程設(shè)計(jì)成績(jī)表物聯(lián)網(wǎng)移動(dòng)應(yīng)用開(kāi)發(fā)課程設(shè)計(jì)學(xué)習(xí)體會(huì)姓名學(xué)號(hào)201396094090任務(wù)代碼編寫(xiě)系統(tǒng)框架設(shè)計(jì)答辯學(xué)習(xí)體會(huì)Android課程設(shè)計(jì)和現(xiàn)代計(jì)算機(jī)技術(shù)的實(shí)際應(yīng)用相結(jié)合,是我們?cè)诒倦A段學(xué)完理論課程之后對(duì)自己該方面的能力的一次很好的檢驗(yàn),從開(kāi)始的算法思路到運(yùn)行調(diào)試后的美觀的圖形界面以及另人興奮的可用程序,都是一個(gè)很好的學(xué)習(xí)和鍛煉的過(guò)程。使我們鞏固了原有的理論知識(shí),培養(yǎng)了我們靈活運(yùn)用和組合集
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食堂炊事員應(yīng)急管理與服務(wù)合同范本3篇
- 2025年蟹塘養(yǎng)殖基地承包與品牌授權(quán)協(xié)議3篇
- 二零二五版美容院美容設(shè)備研發(fā)與技術(shù)支持采購(gòu)合同4篇
- 2025年高速公路停車場(chǎng)租賃及旅游導(dǎo)覽服務(wù)合同3篇
- 2025年星巴克綠色環(huán)保包裝材料采購(gòu)合同2篇
- 二零二五年度面包磚生產(chǎn)設(shè)備租賃合同4篇
- 2025年度采礦權(quán)出讓合同范本:礦業(yè)權(quán)收益分配機(jī)制3篇
- 2025年度特色菜品研發(fā)廚師合作合同4篇
- 2025版吸糞車租賃合同范本(含保險(xiǎn)條款)3篇
- 2025版售樓部裝修工程防水防潮合同3篇
- 湖北省黃石市陽(yáng)新縣2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末考試題 含答案
- 硝化棉是天然纖維素硝化棉制造行業(yè)分析報(bào)告
- 央視網(wǎng)2025亞冬會(huì)營(yíng)銷方案
- 《無(wú)砟軌道施工與組織》 課件 第十講雙塊式無(wú)砟軌道施工工藝
- 江蘇省南京市、鹽城市2023-2024學(xué)年高三上學(xué)期期末調(diào)研測(cè)試+英語(yǔ)+ 含答案
- 2024新版《藥品管理法》培訓(xùn)課件
- 《阻燃材料與技術(shù)》課件 第7講 阻燃橡膠材料
- 爆炸物運(yùn)輸安全保障方案
- 江蘇省南京市2025屆高三學(xué)業(yè)水平調(diào)研考試數(shù)學(xué)試卷(解析版)
- 鉗工考試題及參考答案
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)五 引發(fā)用戶共鳴外部條件的把控
評(píng)論
0/150
提交評(píng)論