最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

菜譜APP源碼和設(shè)計(jì)報(bào)告

2022-12-03 19:57 作者:考研保研直通車  | 我要投稿

《移動(dòng)互聯(lián)開發(fā)》

課程作業(yè)

學(xué) 院:

班 級:

學(xué) 號:

姓 名:

日 期:

設(shè)計(jì)要求(提交文檔時(shí)需刪除):

1.本課程設(shè)計(jì)作為《Android?程序設(shè)計(jì)》的期末考查內(nèi)容。

2.任務(wù)安排:

(1)確定內(nèi)容:11月3日前將確定內(nèi)容,雷同內(nèi)容進(jìn)行微調(diào)(功能,實(shí)習(xí),界面)。

(2)任務(wù)完成:12月2日,將計(jì)劃完成的內(nèi)容提交。

(3)程序演示:程序演示,錄制演示視頻。介紹程序的整體結(jié)構(gòu),實(shí)現(xiàn)方法,涉及到的技術(shù),虛擬器演示。時(shí)長5-10分鐘。

3.知識點(diǎn)要求包括但不限于以下內(nèi)容:

(1)界面設(shè)計(jì);

(2)事件處理;

(3)頁面跳轉(zhuǎn);

(4)數(shù)據(jù)存儲

4.課程設(shè)計(jì)的主體包括

(1)封面

(2)目錄

(3)正文

1)應(yīng)用平臺介紹,開發(fā)版本,型號

2)需求分析

3)系統(tǒng)功能設(shè)計(jì):

4)系統(tǒng)實(shí)現(xiàn):原型設(shè)計(jì),界面設(shè)計(jì),系統(tǒng)結(jié)構(gòu),涉及到的關(guān)鍵技術(shù),功能實(shí)現(xiàn)及關(guān)鍵代碼

5)運(yùn)行效果。

(4)結(jié)論

(5)參考文獻(xiàn)

注意:

  1. 程序設(shè)計(jì)鼓勵(lì)自主完成;設(shè)計(jì)功能完備,程序運(yùn)行流暢無誤。

  2. 代碼部分需要進(jìn)行必要的注釋。

  3. 文檔撰寫應(yīng)注意排版美觀大方,語言通順,無錯(cuò)別字。若有同學(xué)的設(shè)計(jì)基本雷同的都定位不及格。

重要事項(xiàng):

  1. 提交內(nèi)容:

    1. 文檔的電子版

    2. 完整代碼的電子版;

    3. 演示視頻(本人需入鏡)

  1. 電子版提交:學(xué)生個(gè)人將所有提交內(nèi)容放在“學(xué)號+姓名”的文件夾中;
    例如對于學(xué)號為20110309,姓名為“王琦”的同學(xué),壓縮文件名為“20110309王琦”

  2. 提交時(shí)間與地點(diǎn):
    電子版:壓縮后,提交至課程中心文檔。
    程序演示:后續(xù)通知

目錄


    1. 引言1
      1.1 項(xiàng)目介紹1
      1.2 開發(fā)環(huán)境1

    2. 系統(tǒng)需求分析1
      2.1?用戶需求1
      2.2 功能需求1
      2.3 性能需求1

    3. 系統(tǒng)總體設(shè)計(jì)1
      3.1 功能設(shè)計(jì)1
      3.1.1 功能劃分(系統(tǒng)總體框架)2
      3.1.2 功能說明3
      3.2 系統(tǒng)數(shù)據(jù)流程4
      3.2.1 系統(tǒng)數(shù)據(jù)流程圖4
      3.2.2 數(shù)據(jù)流程說明5
      3.3 界面設(shè)計(jì)5
      3.3.1 界面布局設(shè)計(jì)5
      3.3.2 界面切換描述6

    4. 系統(tǒng)詳細(xì)設(shè)計(jì)6
      4.1 結(jié)構(gòu)設(shè)計(jì)(含文件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu))6
      4.2 函數(shù)設(shè)計(jì)6

    5. 系統(tǒng)實(shí)現(xiàn)7
      5.1 運(yùn)行結(jié)果7
      5.2 關(guān)鍵代碼8

    6. 結(jié)論16

    7. 參考文獻(xiàn)16

1概述(一級標(biāo)題,黑體,小三號字,段前、段后間距為1行)

最近的疫情雖然已經(jīng)出現(xiàn)了好轉(zhuǎn),但是外賣平臺上提供服務(wù)的商家還是屈指可數(shù),再加上點(diǎn)外賣仍舊存在一定病毒傳播的風(fēng)險(xiǎn),因此越來越多從未做飯的人都開始嘗試在家做飯。這直接導(dǎo)致了許多食譜類APP的流量猛增,開始在互聯(lián)網(wǎng)上掀起一股全民做飯的熱潮。下面我們來分析一下食譜類APP的發(fā)展前景。

現(xiàn)如今是智能手機(jī)快速發(fā)展的新時(shí)代。幾乎在社會中的每個(gè)人多多少少都會使用智能手機(jī)和電腦,因?yàn)樗鼈兛梢允刮覀兊纳钍孢m、快捷和更加方便。對比國內(nèi)外的許多人類的日常生產(chǎn)生活中,人們都幾乎都已經(jīng)離不開智能手機(jī)了。隨著個(gè)人的消費(fèi)水平不斷提高和享受生活,幾乎很少人能掌握日常生活到底消費(fèi)在哪些方面,食譜類APP已經(jīng)無法滿足人們?nèi)找嬖鲩L的需求,生活中許許多多的收支和消費(fèi)情況,造成人們無法清晰的了解日常生活中的各種消費(fèi)。如果用戶在智能手機(jī)中下載一個(gè)適合自己的食譜類APP,可以讓用戶日常的做飯都得到歸類和管理,能夠使得用戶方便的記錄下自己的食譜類APP的同時(shí),也能體會不一樣的快樂。

1.1選題背景(二級標(biāo)題,黑體,四號字,段前、段后間距為1行)

疫情期間,許多臨時(shí)抱佛腳查食譜開始學(xué)做飯的人不在少數(shù)。下面我們來看看各個(gè)平臺的數(shù)據(jù)統(tǒng)計(jì),比如燃財(cái)經(jīng)查詢七麥數(shù)據(jù)2020年1月移動(dòng)應(yīng)用增長榜發(fā)現(xiàn),美食佳飲子分類前20名中,食譜類APP占4席。食譜分享平臺“網(wǎng)上廚房”后臺的數(shù)據(jù)顯示,春節(jié)期間,三四線城市的新增用戶有明顯增長。網(wǎng)上廚房CEO楊洋稱,受疫情影響,與大量一線市的務(wù)工人員滯留三四線城市有直接關(guān)系。

年輕一代不做飯的原因,除了工作忙,時(shí)間有限,更多的是從小在家都是爸爸媽媽做飯,自己不會做,這次疫情期間空余時(shí)間變多,很多人發(fā)現(xiàn)跟著食譜學(xué)做飯不是太難的事情,并逐漸在做飯中發(fā)現(xiàn)了許多趣味,而不僅僅只是想填飽肚子。現(xiàn)在曬廚藝還滿足了一部分年輕人的社交展示需求,朋友圈已經(jīng)成為不少人廚藝大比拼的地方。因?yàn)槊刻焖r(shí)間最長的還是疫情相關(guān)的新聞,需要轉(zhuǎn)移注意力來調(diào)節(jié)心情,下廚既是一個(gè)真治愈的過程,還能滿足自己填飽肚子的需求。

1.2選題意義

總的來講,食譜類APP的發(fā)展前景還是不錯(cuò)的。雖然疫情即將過去。但是這次食譜類APP得到了一次免費(fèi)的引流拉新機(jī)會,還提高了相關(guān)APP的知名度。因此這次疫情更像是一場大考,只有真正為用戶提供了有價(jià)值內(nèi)容的產(chǎn)品,才能一直得到用戶的青睞。

1.3開發(fā)工具及技術(shù)

1.3.1 Android stduio4.1;JDK1.8;

  1. 系統(tǒng)需求分析
    2.1用戶需求
    該系統(tǒng)使用Android studio開發(fā)平臺進(jìn)行軟件系統(tǒng)的開發(fā),Android studio的界面簡單和具有強(qiáng)大的兼容性的各方面的優(yōu)點(diǎn)。開發(fā)者可以更好的進(jìn)行軟件的開發(fā)和日后的相關(guān)維護(hù)。
    該系統(tǒng)同時(shí)具有操作簡單、操作方便、互換性好、較為直觀等特點(diǎn),這就是為什么我們可以選擇Android studio來開發(fā)一個(gè)系統(tǒng)。
    2.2功能需求
    為了使用戶體驗(yàn)感更好,開發(fā)人員會事先指定一些約束規(guī)則來進(jìn)行行為的約束。開發(fā)者一般做出要求如下:用戶管理家菜譜類APP軟件,當(dāng)用戶輸入已經(jīng)注冊過的用戶名和密碼,用戶就會進(jìn)入到SQlite數(shù)據(jù)庫當(dāng)中。但是如果用戶輸入的數(shù)據(jù)沒有與數(shù)據(jù)庫中的數(shù)據(jù)比對發(fā)現(xiàn)并沒有找到,用戶不得進(jìn)行相關(guān)信息的注冊和登錄。這樣它的安全顯然非??煽亢桶踩?。
    2.3性能需求
    軟件系統(tǒng)分析主要包括技術(shù)、經(jīng)濟(jì)、運(yùn)營和開發(fā)方面的研究,從而以確保信息資源和投入資金的合理利用,避免方案設(shè)計(jì)中存在的各種各樣問題,幫助我們更好地完成軟件實(shí)施方案。換句話說,技術(shù)支持和資金支持分析決定了項(xiàng)目完成的可能性,可行性分析是實(shí)現(xiàn)項(xiàng)目階段——從開始到中間到結(jié)束——的必須所要面臨途徑。我主要根據(jù)實(shí)際需要情況進(jìn)行了較為全面的軟件系統(tǒng)分析,具體如下。
    本文從一個(gè)易于理解的分析方案開始,它將幫助用戶處理自己日常生活中所遇到的問題,查看硬件和軟件是否能滿足開發(fā)者的任務(wù)需求。
    作為一名計(jì)算機(jī)專業(yè)的學(xué)生,我在學(xué)校學(xué)到了很多編程知識,比如Android studio和Java等相關(guān)技術(shù)。經(jīng)過反復(fù)驗(yàn)證方案和規(guī)劃方案,從系統(tǒng)結(jié)構(gòu)到編程語言的選擇,再到最終選定的技術(shù),都在尋找最優(yōu)可以實(shí)現(xiàn)這門技術(shù)的可行性的研究。

  2. 系統(tǒng)總體設(shè)計(jì)

3.1功能設(shè)計(jì)

3.1.1功能規(guī)劃(系統(tǒng)總體框架)

本系統(tǒng)按用戶訪問菜譜APP軟件。

當(dāng)用戶進(jìn)入軟件系統(tǒng)的時(shí)候,系統(tǒng)只為系統(tǒng)存在用戶提供登錄操作,如果是第一次進(jìn)入需要注冊賬號信息。當(dāng)用戶注冊完畢后,就可以訪問菜譜APP軟件。

當(dāng)用戶進(jìn)入用戶界面訪問時(shí),用戶可以根據(jù)模糊查詢,進(jìn)行對自己喜歡的菜譜進(jìn)行查詢,查詢過后點(diǎn)擊進(jìn)入,就可以看到具體的做法了。然后根據(jù)菜譜的做法,進(jìn)行美味食品的制作。

3.1.2功能說明

用戶進(jìn)入菜譜APP軟件系統(tǒng)的時(shí)候,系統(tǒng)只為系統(tǒng)存在用戶提供登錄和注冊的相關(guān)操作,初始的用戶需要進(jìn)行賬號的注冊,否則登錄不了。注冊完畢后,用戶就可以打開菜譜APP,菜譜APP可以進(jìn)行相關(guān)菜品的查詢,并且也有該軟件開發(fā)的一些基本信息。

當(dāng)用戶進(jìn)入用戶界面訪問時(shí),用戶可以根據(jù)模糊查詢,進(jìn)行對自己喜歡的菜譜進(jìn)行查詢,查詢過后點(diǎn)擊進(jìn)入,就可以看到具體的做法了。然后根據(jù)菜譜的做法,進(jìn)行美味食品的制作。

3.3界面設(shè)計(jì)

3.3.1界面布局設(shè)計(jì)

菜譜APP源碼和設(shè)計(jì)報(bào)告

登錄界面 注冊界面

菜譜APP源碼和設(shè)計(jì)報(bào)告

主界面

菜譜APP源碼和設(shè)計(jì)報(bào)告
菜譜APP源碼和設(shè)計(jì)報(bào)告


搜索界面 軟件詳情 菜品詳情

3.3.2界面切換描述

菜譜APP源碼和設(shè)計(jì)報(bào)告

1.登錄到注冊頁面的切換

Intent intent5 = new Intent(MainActivity.this, Register.class);
startActivity(intent5);
finish();

  1. 判斷是否數(shù)據(jù)之前有沒有注冊過
    boolean userdata = false;
    for (int i = 0; i < data.size(); i++) {
    User user= data.get(i);?//可存儲賬號數(shù)量
    if (name.equals(user.getName()) && password.equals(user.getPassword())) {
    userdata = true;
    break;
    } else {
    userdata = false;
    }
    }
    把注冊的數(shù)據(jù)都放到userdata當(dāng)中,ArrayList<User> data = mSQlite.getAllDATA();
    判斷date的長度,用.size()進(jìn)行長度的判斷。
    3.

菜譜APP源碼和設(shè)計(jì)報(bào)告
菜譜APP源碼和設(shè)計(jì)報(bào)告

首先點(diǎn)擊我們需要的菜譜,進(jìn)行到菜品的詳情頁面,我們要先制作一個(gè)模板,通過在集合的數(shù)據(jù),依次循環(huán),將數(shù)據(jù)放入進(jìn)去,同時(shí)還需要一個(gè)簡單的適配器,listView展示給用戶看的時(shí)候,需要設(shè)置適配器BaseAdapter。
// 決定了ListView列表展示的行數(shù)
@Override
public int getCount() {
return mDatas.size();
}
//返回指定位置對應(yīng)的數(shù)據(jù)
@Override
public Object getItem(int position) {
return mDatas.get(position);
}
// 返回指定位置所對應(yīng)的id
@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_list,null);?//將布局轉(zhuǎn)換成view對象的方法
holder=new ViewHolder(convertView);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}

  1. 系統(tǒng)詳細(xì)設(shè)計(jì)

4.1結(jié)構(gòu)設(shè)計(jì)(文件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu))

軟件系統(tǒng)操作流程的設(shè)計(jì)目的是簡化設(shè)計(jì)流程,更加方便日后開發(fā)程序人員進(jìn)行更好的設(shè)計(jì)相關(guān)的軟件開發(fā)。當(dāng)然這樣的設(shè)計(jì)為以后程序開發(fā)人員的開發(fā)設(shè)計(jì)和用戶的使用感都有很大的關(guān)系。因此,系統(tǒng)操作圖、注冊流程圖、登錄流程圖顯得尤為重要。如圖所示。

菜譜APP源碼和設(shè)計(jì)報(bào)告

系統(tǒng)的安全性非常重要,所以您需要登錄才能登錄,不進(jìn)行注冊您就不能使用主賬戶頁面,如圖所示。

菜譜APP源碼和設(shè)計(jì)報(bào)告

4.2函數(shù)設(shè)計(jì)

菜譜APP源碼和設(shè)計(jì)報(bào)告

private SQLiteDatabase db;
public SQlite(Context context) {
super(context, “db_test”, null, 1);
db = getReadableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(“CREATE TABLE IF NOT EXISTS user(” +
“_id INTEGER PRIMARY KEY AUTOINCREMENT,” +
“name TEXT,” +
“password TEXT)”);
}

這邊是數(shù)據(jù)庫的登錄和注冊的設(shè)計(jì),后面的信息采用的是

  1. 系統(tǒng)實(shí)現(xiàn)

5.1運(yùn)行結(jié)果

菜譜APP源碼和設(shè)計(jì)報(bào)告
菜譜APP源碼和設(shè)計(jì)報(bào)告
菜譜APP源碼和設(shè)計(jì)報(bào)告
《移動(dòng)互聯(lián)開發(fā)》 課程作業(yè) 學(xué) 院: 班 級: 學(xué) 號: 姓 名: 日 期: 設(shè)計(jì)要求(提交文檔時(shí)需刪除): 1.本課程設(shè)計(jì)作為《Android 程序設(shè)計(jì)》的期末考查內(nèi)容。 2.任務(wù)安排: (1)確定內(nèi)容:11月3日前將確定內(nèi)容,雷同內(nèi)容進(jìn)行微調(diào)(功能,實(shí)習(xí),界面)。 (2)任務(wù)完成:12月2日,將計(jì)劃完成的內(nèi)容提交。 (3)程序演示:程序演示,錄制演示視頻。介紹程序的整體結(jié)構(gòu),實(shí)現(xiàn)方法,涉及到的技術(shù),虛擬器演示。時(shí)長5-10分鐘。 3.知識點(diǎn)要求包括但不限于以下內(nèi)容: (1)界面設(shè)計(jì); (2)事件處理; (3)頁面跳轉(zhuǎn); (4)數(shù)據(jù)存儲 4.課程設(shè)計(jì)的主體包括 (1)封面 (2)目錄 (3)正文 1)應(yīng)用平臺介紹,開發(fā)版本,型號 2)需求分析 3)系統(tǒng)功能設(shè)計(jì): 4)系統(tǒng)實(shí)現(xiàn):原型設(shè)計(jì),界面設(shè)計(jì),系統(tǒng)結(jié)構(gòu),涉及到的關(guān)鍵技術(shù),功能實(shí)現(xiàn)及關(guān)鍵代碼 5)運(yùn)行效果。 (4)結(jié)論 (5)參考文獻(xiàn) 注意: 程序設(shè)計(jì)鼓勵(lì)自主完成;設(shè)計(jì)功能完備,程序運(yùn)行流暢無誤。 代碼部分需要進(jìn)行必要的注釋。 文檔撰寫應(yīng)注意排版美觀大方,語言通順,無錯(cuò)別字。若有同學(xué)的設(shè)計(jì)基本雷同的都定位不及格。 重要事項(xiàng): 提交內(nèi)容: 文檔的電子版 完整代碼的電子版; 演示視頻(本人需入鏡) 電子版提交:學(xué)生個(gè)人將所有提交內(nèi)容放在“學(xué)號+姓名”的文件夾中; 例如對于學(xué)號為20110309,姓名為“王琦”的同學(xué),壓縮文件名為“20110309王琦” 提交時(shí)間與地點(diǎn): 電子版:壓縮后,提交至課程中心文檔。 程序演示:后續(xù)通知 目錄 引言1 1.1 項(xiàng)目介紹1 1.2 開發(fā)環(huán)境1 系統(tǒng)需求分析1 2.1 用戶需求1 2.2 功能需求1 2.3 性能需求1 系統(tǒng)總體設(shè)計(jì)1 3.1 功能設(shè)計(jì)1 3.1.1 功能劃分(系統(tǒng)總體框架)2 3.1.2 功能說明3 3.2 系統(tǒng)數(shù)據(jù)流程4 3.2.1 系統(tǒng)數(shù)據(jù)流程圖4 3.2.2 數(shù)據(jù)流程說明5 3.3 界面設(shè)計(jì)5 3.3.1 界面布局設(shè)計(jì)5 3.3.2 界面切換描述6 系統(tǒng)詳細(xì)設(shè)計(jì)6 4.1 結(jié)構(gòu)設(shè)計(jì)(含文件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu))6 4.2 函數(shù)設(shè)計(jì)6 系統(tǒng)實(shí)現(xiàn)7 5.1 運(yùn)行結(jié)果7 5.2 關(guān)鍵代碼8 結(jié)論16 參考文獻(xiàn)16 1概述(一級標(biāo)題,黑體,小三號字,段前、段后間距為1行) 最近的疫情雖然已經(jīng)出現(xiàn)了好轉(zhuǎn),但是外賣平臺上提供服務(wù)的商家還是屈指可數(shù),再加上點(diǎn)外賣仍舊存在一定病毒傳播的風(fēng)險(xiǎn),因此越來越多從未做飯的人都開始嘗試在家做飯。這直接導(dǎo)致了許多食譜類APP的流量猛增,開始在互聯(lián)網(wǎng)上掀起一股全民做飯的熱潮。下面我們來分析一下食譜類APP的發(fā)展前景。 現(xiàn)如今是智能手機(jī)快速發(fā)展的新時(shí)代。幾乎在社會中的每個(gè)人多多少少都會使用智能手機(jī)和電腦,因?yàn)樗鼈兛梢允刮覀兊纳钍孢m、快捷和更加方便。對比國內(nèi)外的許多人類的日常生產(chǎn)生活中,人們都幾乎都已經(jīng)離不開智能手機(jī)了。隨著個(gè)人的消費(fèi)水平不斷提高和享受生活,幾乎很少人能掌握日常生活到底消費(fèi)在哪些方面,食譜類APP已經(jīng)無法滿足人們?nèi)找嬖鲩L的需求,生活中許許多多的收支和消費(fèi)情況,造成人們無法清晰的了解日常生活中的各種消費(fèi)。如果用戶在智能手機(jī)中下載一個(gè)適合自己的食譜類APP,可以讓用戶日常的做飯都得到歸類和管理,能夠使得用戶方便的記錄下自己的食譜類APP的同時(shí),也能體會不一樣的快樂。 1.1選題背景(二級標(biāo)題,黑體,四號字,段前、段后間距為1行) 疫情期間,許多臨時(shí)抱佛腳查食譜開始學(xué)做飯的人不在少數(shù)。下面我們來看看各個(gè)平臺的數(shù)據(jù)統(tǒng)計(jì),比如燃財(cái)經(jīng)查詢七麥數(shù)據(jù)2020年1月移動(dòng)應(yīng)用增長榜發(fā)現(xiàn),美食佳飲子分類前20名中,食譜類APP占4席。食譜分享平臺“網(wǎng)上廚房”后臺的數(shù)據(jù)顯示,春節(jié)期間,三四線城市的新增用戶有明顯增長。網(wǎng)上廚房CEO楊洋稱,受疫情影響,與大量一線市的務(wù)工人員滯留三四線城市有直接關(guān)系。 年輕一代不做飯的原因,除了工作忙,時(shí)間有限,更多的是從小在家都是爸爸媽媽做飯,自己不會做,這次疫情期間空余時(shí)間變多,很多人發(fā)現(xiàn)跟著食譜學(xué)做飯不是太難的事情,并逐漸在做飯中發(fā)現(xiàn)了許多趣味,而不僅僅只是想填飽肚子?,F(xiàn)在曬廚藝還滿足了一部分年輕人的社交展示需求,朋友圈已經(jīng)成為不少人廚藝大比拼的地方。因?yàn)槊刻焖r(shí)間最長的還是疫情相關(guān)的新聞,需要轉(zhuǎn)移注意力來調(diào)節(jié)心情,下廚既是一個(gè)真治愈的過程,還能滿足自己填飽肚子的需求。 1.2選題意義 總的來講,食譜類APP的發(fā)展前景還是不錯(cuò)的。雖然疫情即將過去。但是這次食譜類APP得到了一次免費(fèi)的引流拉新機(jī)會,還提高了相關(guān)APP的知名度。因此這次疫情更像是一場大考,只有真正為用戶提供了有價(jià)值內(nèi)容的產(chǎn)品,才能一直得到用戶的青睞。 1.3開發(fā)工具及技術(shù) 1.3.1 Android stduio4.1;JDK1.8; 系統(tǒng)需求分析 2.1用戶需求 該系統(tǒng)使用Android studio開發(fā)平臺進(jìn)行軟件系統(tǒng)的開發(fā),Android studio的界面簡單和具有強(qiáng)大的兼容性的各方面的優(yōu)點(diǎn)。開發(fā)者可以更好的進(jìn)行軟件的開發(fā)和日后的相關(guān)維護(hù)。 該系統(tǒng)同時(shí)具有操作簡單、操作方便、互換性好、較為直觀等特點(diǎn),這就是為什么我們可以選擇Android studio來開發(fā)一個(gè)系統(tǒng)。 2.2功能需求 為了使用戶體驗(yàn)感更好,開發(fā)人員會事先指定一些約束規(guī)則來進(jìn)行行為的約束。開發(fā)者一般做出要求如下:用戶管理家菜譜類APP軟件,當(dāng)用戶輸入已經(jīng)注冊過的用戶名和密碼,用戶就會進(jìn)入到SQlite數(shù)據(jù)庫當(dāng)中。但是如果用戶輸入的數(shù)據(jù)沒有與數(shù)據(jù)庫中的數(shù)據(jù)比對發(fā)現(xiàn)并沒有找到,用戶不得進(jìn)行相關(guān)信息的注冊和登錄。這樣它的安全顯然非??煽亢桶踩?。 2.3性能需求 軟件系統(tǒng)分析主要包括技術(shù)、經(jīng)濟(jì)、運(yùn)營和開發(fā)方面的研究,從而以確保信息資源和投入資金的合理利用,避免方案設(shè)計(jì)中存在的各種各樣問題,幫助我們更好地完成軟件實(shí)施方案。換句話說,技術(shù)支持和資金支持分析決定了項(xiàng)目完成的可能性,可行性分析是實(shí)現(xiàn)項(xiàng)目階段——從開始到中間到結(jié)束——的必須所要面臨途徑。我主要根據(jù)實(shí)際需要情況進(jìn)行了較為全面的軟件系統(tǒng)分析,具體如下。 本文從一個(gè)易于理解的分析方案開始,它將幫助用戶處理自己日常生活中所遇到的問題,查看硬件和軟件是否能滿足開發(fā)者的任務(wù)需求。 作為一名計(jì)算機(jī)專業(yè)的學(xué)生,我在學(xué)校學(xué)到了很多編程知識,比如Android studio和Java等相關(guān)技術(shù)。經(jīng)過反復(fù)驗(yàn)證方案和規(guī)劃方案,從系統(tǒng)結(jié)構(gòu)到編程語言的選擇,再到最終選定的技術(shù),都在尋找最優(yōu)可以實(shí)現(xiàn)這門技術(shù)的可行性的研究。 系統(tǒng)總體設(shè)計(jì) 3.1功能設(shè)計(jì) 3.1.1功能規(guī)劃(系統(tǒng)總體框架) 本系統(tǒng)按用戶訪問菜譜APP軟件。 當(dāng)用戶進(jìn)入軟件系統(tǒng)的時(shí)候,系統(tǒng)只為系統(tǒng)存在用戶提供登錄操作,如果是第一次進(jìn)入需要注冊賬號信息。當(dāng)用戶注冊完畢后,就可以訪問菜譜APP軟件。 當(dāng)用戶進(jìn)入用戶界面訪問時(shí),用戶可以根據(jù)模糊查詢,進(jìn)行對自己喜歡的菜譜進(jìn)行查詢,查詢過后點(diǎn)擊進(jìn)入,就可以看到具體的做法了。然后根據(jù)菜譜的做法,進(jìn)行美味食品的制作。 3.1.2功能說明 用戶進(jìn)入菜譜APP軟件系統(tǒng)的時(shí)候,系統(tǒng)只為系統(tǒng)存在用戶提供登錄和注冊的相關(guān)操作,初始的用戶需要進(jìn)行賬號的注冊,否則登錄不了。注冊完畢后,用戶就可以打開菜譜APP,菜譜APP可以進(jìn)行相關(guān)菜品的查詢,并且也有該軟件開發(fā)的一些基本信息。 當(dāng)用戶進(jìn)入用戶界面訪問時(shí),用戶可以根據(jù)模糊查詢,進(jìn)行對自己喜歡的菜譜進(jìn)行查詢,查詢過后點(diǎn)擊進(jìn)入,就可以看到具體的做法了。然后根據(jù)菜譜的做法,進(jìn)行美味食品的制作。 3.3界面設(shè)計(jì) 3.3.1界面布局設(shè)計(jì) 登錄界面 注冊界面 主界面 搜索界面 軟件詳情 菜品詳情 3.3.2界面切換描述 1.登錄到注冊頁面的切換 Intent intent5 = new Intent(MainActivity.this, Register.class); startActivity(intent5); finish(); 判斷是否數(shù)據(jù)之前有沒有注冊過 boolean userdata = false; for (int i = 0; i < data.size(); i++) { User user= data.get(i); //可存儲賬號數(shù)量 if (name.equals(user.getName()) && password.equals(user.getPassword())) { userdata = true; break; } else { userdata = false; } } 把注冊的數(shù)據(jù)都放到userdata當(dāng)中,ArrayList?data = mSQlite.getAllDATA(); 判斷date的長度,用.size()進(jìn)行長度的判斷。 3. 首先點(diǎn)擊我們需要的菜譜,進(jìn)行到菜品的詳情頁面,我們要先制作一個(gè)模板,通過在集合的數(shù)據(jù),依次循環(huán),將數(shù)據(jù)放入進(jìn)去,同時(shí)還需要一個(gè)簡單的適配器,listView展示給用戶看的時(shí)候,需要設(shè)置適配器BaseAdapter。 // 決定了ListView列表展示的行數(shù) @Override public int getCount() { return mDatas.size(); } //返回指定位置對應(yīng)的數(shù)據(jù) @Override public Object getItem(int position) { return mDatas.get(position); } // 返回指定位置所對應(yīng)的id @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.item_list,null); //將布局轉(zhuǎn)換成view對象的方法 holder=new ViewHolder(convertView); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } 系統(tǒng)詳細(xì)設(shè)計(jì) 4.1結(jié)構(gòu)設(shè)計(jì)(文件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)) 軟件系統(tǒng)操作流程的設(shè)計(jì)目的是簡化設(shè)計(jì)流程,更加方便日后開發(fā)程序人員進(jìn)行更好的設(shè)計(jì)相關(guān)的軟件開發(fā)。當(dāng)然這樣的設(shè)計(jì)為以后程序開發(fā)人員的開發(fā)設(shè)計(jì)和用戶的使用感都有很大的關(guān)系。因此,系統(tǒng)操作圖、注冊流程圖、登錄流程圖顯得尤為重要。如圖所示。 系統(tǒng)的安全性非常重要,所以您需要登錄才能登錄,不進(jìn)行注冊您就不能使用主賬戶頁面,如圖所示。 4.2函數(shù)設(shè)計(jì) private SQLiteDatabase db; public SQlite(Context context) { super(context, “db_test”, null, 1); db = getReadableDatabase(); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(“CREATE TABLE IF NOT EXISTS user(” + “_id INTEGER PRIMARY KEY AUTOINCREMENT,” + “name TEXT,” + “password TEXT)”); } 這邊是數(shù)據(jù)庫的登錄和注冊的設(shè)計(jì),后面的信息采用的是 系統(tǒng)實(shí)現(xiàn) 5.1運(yùn)行結(jié)果 5.2關(guān)鍵代碼 數(shù)據(jù)庫 private SQLiteDatabase db; public SQlite(Context context) { super(context, “db_test”, null, 1); db = getReadableDatabase(); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(“CREATE TABLE IF NOT EXISTS user(” + “_id INTEGER PRIMARY KEY AUTOINCREMENT,” + “name TEXT,” + “password TEXT)”); } 適配器 // 決定了ListView列表展示的行數(shù) @Override public int getCount() { return mDatas.size(); } //返回指定位置對應(yīng)的數(shù)據(jù) @Override public Object getItem(int position) { return mDatas.get(position); } // 返回指定位置所對應(yīng)的id @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.item_list,null); //將布局轉(zhuǎn)換成view對象的方法 holder=new ViewHolder(convertView); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } // 加載控件顯示的內(nèi)容 // 獲取集合指定位置的數(shù)據(jù) FoodBean foodBean = mDatas.get(position); holder.titleTv.setText(foodBean.getTitle()); holder.notTv.setText(“材料:”+foodBean.getDesc()); holder.iv.setImageResource(foodBean.getPicId()); return convertView; } class ViewHolder{ ImageView iv; TextView titleTv,notTv; public ViewHolder(View view){ iv = view.findViewById(R.id.item_info_iv); titleTv = view.findViewById(R.id.item_info_title); notTv = view.findViewById(R.id.item_info_tv_notitle); } } } 登錄、注冊 public void onClick(View v) { String name = username.getText().toString().trim(); String password = userpassword.getText().toString().trim(); if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password)) { ArrayList?data = mSQlite.getAllDATA(); boolean userdata = false; for (int i = 0; i < data.size(); i++) { User user= data.get(i); //可存儲賬號數(shù)量 if (name.equals(user.getName()) && password.equals(user.getPassword())) { userdata = true; break; } else { userdata = false; } } if (userdata) { Toast.makeText(MainActivity.this, "登錄成功", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(MainActivity.this, Home.class); intent.putExtra("username",name); intent.putExtra("password",password); //展示賬號密碼功能 startActivity(intent); finish(); } else { Toast.makeText(MainActivity.this, "用戶名或密碼不正確", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(MainActivity.this, "用戶名或密碼不能為空", Toast.LENGTH_SHORT).show(); } } }); mSQlite = new SQlite(MainActivity.this); } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); reday = findViewById(R.id.reday); back = findViewById(R.id.back); username = findViewById(R.id.userName); userpassword =findViewById( R.id.userpassword); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Register.this,MainActivity.class); startActivity(intent); finish(); } }); reday.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name = username.getText().toString().trim(); String password = userpassword.getText().toString().trim(); if(!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(password)){ mSQlite.add(name,password); Intent intent1 = new Intent(Register.this,MainActivity.class); startActivity(intent1); finish(); Toast.makeText(Register.this,"注冊成功",Toast.LENGTH_SHORT).show(); }else {Toast.makeText(Register.this,"信息不完備,注冊失敗",Toast.LENGTH_SHORT).show();} } }); mSQlite = new SQlite(Register.this); } } 結(jié)論 在這個(gè)過程中,我學(xué)到了很多,我知道我還有很多經(jīng)驗(yàn)要學(xué),我的專業(yè)技能還不夠。當(dāng)涉及到基本的計(jì)算機(jī)知識時(shí),許多事情可以改進(jìn),以進(jìn)一步優(yōu)化設(shè)計(jì)。作為一名合格的項(xiàng)目協(xié)調(diào)員,我將繼續(xù)解決這些缺點(diǎn)。尤其是計(jì)算機(jī)系統(tǒng)的底層得到了優(yōu)化;簡單的關(guān)系數(shù)據(jù)庫可能不滿足以下要求。 參考文獻(xiàn) [1] 劉奇付,李紫艷.基于Android平臺的大學(xué)生生活費(fèi)手機(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2015,14(9):141-143. [2]周李達(dá),鄧璐凡,王中霖,等.基于Android的大學(xué)生出行系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦:理論版,2015(19):99-101. [3]王亞維,徐霞.基于Android的大學(xué)生兼職系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間信息,2013,11(2):98-100. [4] 韋俊星,曾祥寶,黃美素,等.基于安卓系統(tǒng)的大學(xué)生黨課培訓(xùn)系統(tǒng)客戶端的設(shè)計(jì)與實(shí)現(xiàn)[J].中國新通信,2015,17(11):116-117. [5] 盧昕,楊晞.基于VFP6.0收款記賬管理系統(tǒng)的實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2014(6):48-49. [6] 趙世祥,楊昆,朱彥輝,等.基于Android平臺的大學(xué)生課程計(jì)劃管理系統(tǒng)[J].通訊世界,2016(1):113-114. [7] 馮璐.一個(gè)"網(wǎng)絡(luò)記賬本"的設(shè)計(jì)與實(shí)現(xiàn)——基于PHP+MySQL的收支管理系統(tǒng)[J].電腦知識與技術(shù):學(xué)術(shù)交流,2007,4(19):20-22. [8] O'Hanlon J,Peasnell K. Wall Street's contribution to management accounting: the Stern StewartEVA financial management system[J]. Management Accounting Research, 1998,9(4):421-444. [9] 許榮豐.財(cái)務(wù)綜合管理系統(tǒng)運(yùn)行中存在的問題[J].吉林金融研究,2008(3):74-74. [10]李斌.會計(jì)信息化管理——記賬憑證的幾點(diǎn)新認(rèn)識[J]. 中國鄉(xiāng)鎮(zhèn)企業(yè)會計(jì), 2009(2):122-124. [11]盧照,王琦,王華.基于Android平臺的大學(xué)生實(shí)用軟件設(shè)計(jì)開發(fā)[J].微型機(jī)與應(yīng)用,2015(24):19-20. [12]陳夢娜,藍(lán)建平.基于Android的大學(xué)生文明寢室測評系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(3):64-65. [13]黃天上,姚世強(qiáng),裴冬梅,等.基于Android平臺的大學(xué)生校園服務(wù)信息實(shí)時(shí)發(fā)布系統(tǒng)的研究[J].教育,2015(10):218-218. [14]吳冬芹,陳子健.基于GTD的大學(xué)生時(shí)間管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2015(16):44-45. [15]王秋麗.我國財(cái)務(wù)軟件的現(xiàn)狀及發(fā)展趨勢[J].山西經(jīng)濟(jì)管理干部學(xué)院學(xué)報(bào),2012,10(1): 43-45.[/caption]
菜譜APP源碼和設(shè)計(jì)報(bào)告
菜譜APP源碼和設(shè)計(jì)報(bào)告

5.2關(guān)鍵代碼

  1. 數(shù)據(jù)庫
    private SQLiteDatabase db;


    public SQlite(Context context) {
    super(context, “db_test”, null, 1);
    db = getReadableDatabase();
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    db.execSQL(“CREATE TABLE IF NOT EXISTS user(” +
    “_id INTEGER PRIMARY KEY AUTOINCREMENT,” +
    “name TEXT,” +
    “password TEXT)”);
    }

  2. 適配器
    // 決定了ListView列表展示的行數(shù)
    @Override
    public int getCount() {
    return mDatas.size();
    }
    //返回指定位置對應(yīng)的數(shù)據(jù)
    @Override
    public Object getItem(int position) {
    return mDatas.get(position);
    }
    // 返回指定位置所對應(yīng)的id
    @Override
    public long getItemId(int position) {
    return position;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    if (convertView == null) {
    convertView = LayoutInflater.from(context).inflate(R.layout.item_list,null);?//將布局轉(zhuǎn)換成view對象的方法
    holder=new ViewHolder(convertView);
    convertView.setTag(holder);
    }else {
    holder = (ViewHolder) convertView.getTag();
    }
    // 加載控件顯示的內(nèi)容
    // 獲取集合指定位置的數(shù)據(jù)
    FoodBean foodBean = mDatas.get(position);
    holder.titleTv.setText(foodBean.getTitle());
    holder.notTv.setText(“材料:”+foodBean.getDesc());
    holder.iv.setImageResource(foodBean.getPicId());
    return convertView;
    }

    class ViewHolder{
    ImageView iv;
    TextView titleTv,notTv;
    public ViewHolder(View view){
    iv = view.findViewById(R.id.item_info_iv);
    titleTv = view.findViewById(R.id.item_info_title);
    notTv = view.findViewById(R.id.item_info_tv_notitle);
    }
    }
    }

菜譜APP源碼和設(shè)計(jì)報(bào)告
  1. 登錄、注冊

public void onClick(View v) {
String name = username.getText().toString().trim();
String password = userpassword.getText().toString().trim();
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password)) {
ArrayList<User> data = mSQlite.getAllDATA();
boolean userdata = false;
for (int i = 0; i < data.size(); i++) {
User user= data.get(i);?//可存儲賬號數(shù)量
if (name.equals(user.getName()) && password.equals(user.getPassword())) {
userdata = true;
break;
} else {
userdata = false;
}
}
if (userdata) {
Toast.makeText(MainActivity.this, “登錄成功”, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, Home.class);
intent.putExtra(“username”,name);
intent.putExtra(“password”,password);?//展示賬號密碼功能
startActivity(intent);
finish();
} else {
Toast.makeText(MainActivity.this, “用戶名或密碼不正確”, Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(MainActivity.this, “用戶名或密碼不能為空”, Toast.LENGTH_SHORT).show();
}

}
});
mSQlite = new SQlite(MainActivity.this);
}

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
reday = findViewById(R.id.reday);
back = findViewById(R.id.back);
username = findViewById(R.id.userName);
userpassword =findViewById( R.id.userpassword);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Register.this,MainActivity.class);
startActivity(intent);
finish();
}
});
reday.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = username.getText().toString().trim();
String password = userpassword.getText().toString().trim();
if(!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(password)){
mSQlite.add(name,password);
Intent intent1 = new Intent(Register.this,MainActivity.class);
startActivity(intent1);
finish();
Toast.makeText(Register.this,”注冊成功”,Toast.LENGTH_SHORT).show();
}else {Toast.makeText(Register.this,”信息不完備,注冊失敗”,Toast.LENGTH_SHORT).show();}
}
});
mSQlite = new SQlite(Register.this);
}
}

  1. 結(jié)論
    在這個(gè)過程中,我學(xué)到了很多,我知道我還有很多經(jīng)驗(yàn)要學(xué),我的專業(yè)技能還不夠。當(dāng)涉及到基本的計(jì)算機(jī)知識時(shí),許多事情可以改進(jìn),以進(jìn)一步優(yōu)化設(shè)計(jì)。作為一名合格的項(xiàng)目協(xié)調(diào)員,我將繼續(xù)解決這些缺點(diǎn)。尤其是計(jì)算機(jī)系統(tǒng)的底層得到了優(yōu)化;簡單的關(guān)系數(shù)據(jù)庫可能不滿足以下要求。

  2. 參考文獻(xiàn)

[1] 劉奇付,李紫艷.基于Android平臺的大學(xué)生生活費(fèi)手機(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2015,14(9):141-143.

[2]周李達(dá),鄧璐凡,王中霖,等.基于Android的大學(xué)生出行系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦:理論版,2015(19):99-101.

[3]王亞維,徐霞.基于Android的大學(xué)生兼職系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間信息,2013,11(2):98-100.

[4] 韋俊星,曾祥寶,黃美素,等.基于安卓系統(tǒng)的大學(xué)生黨課培訓(xùn)系統(tǒng)客戶端的設(shè)計(jì)與實(shí)現(xiàn)[J].中國新通信,2015,17(11):116-117.

[5] 盧昕,楊晞.基于VFP6.0收款記賬管理系統(tǒng)的實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2014(6):48-49.

[6] 趙世祥,楊昆,朱彥輝,等.基于Android平臺的大學(xué)生課程計(jì)劃管理系統(tǒng)[J].通訊世界,2016(1):113-114.

[7] 馮璐.一個(gè)”網(wǎng)絡(luò)記賬本”的設(shè)計(jì)與實(shí)現(xiàn)——基于PHP+MySQL的收支管理系統(tǒng)[J].電腦知識與技術(shù):學(xué)術(shù)交流,2007,4(19):20-22.

[8] O’Hanlon J,Peasnell K. Wall Street’s contribution to management accounting: the Stern StewartEVA financial management system[J]. Management Accounting Research, 1998,9(4):421-444.

[9] 許榮豐.財(cái)務(wù)綜合管理系統(tǒng)運(yùn)行中存在的問題[J].吉林金融研究,2008(3):74-74.

[10]李斌.會計(jì)信息化管理——記賬憑證的幾點(diǎn)新認(rèn)識[J]. 中國鄉(xiāng)鎮(zhèn)企業(yè)會計(jì), 2009(2):122-124.

[11]盧照,王琦,王華.基于Android平臺的大學(xué)生實(shí)用軟件設(shè)計(jì)開發(fā)[J].微型機(jī)與應(yīng)用,2015(24):19-20.

[12]陳夢娜,藍(lán)建平.基于Android的大學(xué)生文明寢室測評系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(3):64-65.

[13]黃天上,姚世強(qiáng),裴冬梅,等.基于Android平臺的大學(xué)生校園服務(wù)信息實(shí)時(shí)發(fā)布系統(tǒng)的研究[J].教育,2015(10):218-218.

[14]吳冬芹,陳子健.基于GTD的大學(xué)生時(shí)間管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2015(16):44-45.

[15]王秋麗.我國財(cái)務(wù)軟件的現(xiàn)狀及發(fā)展趨勢[J].山西經(jīng)濟(jì)管理干部學(xué)院學(xué)報(bào),2012,10(1): 43-45.


菜譜APP源碼和設(shè)計(jì)報(bào)告的評論 (共 條)

分享到微博請遵守國家法律
关岭| 黑河市| 兴国县| 宁都县| 社旗县| 浑源县| 瑞金市| 余江县| 台中市| 安溪县| 苏尼特左旗| 巫山县| 沂水县| 观塘区| 竹溪县| 正蓝旗| 正安县| 阜南县| 涿州市| 西昌市| 肥西县| 五家渠市| 炎陵县| 东光县| 富顺县| 昌乐县| 河东区| 英山县| 张家港市| 宜川县| 三明市| 昂仁县| 陈巴尔虎旗| 会理县| 顺平县| 扬州市| 江门市| 遵义市| 石河子市| 芜湖市| 康平县|