最新版数据结构课程设计报告3824141Word格式.docx
《最新版数据结构课程设计报告3824141Word格式.docx》由会员分享,可在线阅读,更多相关《最新版数据结构课程设计报告3824141Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
(3)设计与开发,设计系统界面并编辑实现其各个功能的代码。
(4)调试,在设计完成后,调试系统运行的状况,修改完善系统,然后进行测试。
二、方案设计与论证
为了更加清晰地表达系统的业务功能模块,画出用例图,对于不同的角色,所承担的任务各自不同,功能不一样,如图3-2-1客户端游客用例图、图3-2-2客户端用户用例图、图3-2-3管理端用例图:
图3-2-1客户端游客用例图
图3-2-2客户端用户用例图
图3-2-3管理端用例图
3.3解决方案
应用软件的定位是一个“北京美食搜索”,是一个通过网络的搜索引擎。
据以上分析,该系统的架构如图3-3系统构架图:
图3-3系统构架图
三、算法说明
(一)根据需求分析和用例分析,该系统的数据库可以有以下实体构成:
用户信息id、名字、密码、昵称、手机号、权限、创建时间、饭店
餐厅评论信息id、餐厅id、评论内容、发出评论id、评论时间
餐厅信息Id、餐厅名字、餐厅地址、餐厅电话、人均消费、营业时间、停车位、行车路线、能否刷卡、无折扣项、注意事项
餐厅设备信息id、餐厅id、营业面积、无烟区、能否刷卡、大厅座位、小包数、中包数、大包数
服务项目id、餐厅id、自助餐、能否包场、能分餐、团餐要求
菜价信息id、餐厅id、菜名、价格
地铁沿线id、地铁线名、地名、北纬、东经
所有商区id、城区、地名、北纬、东经
菜系id、菜系、菜名
热门菜id、菜名
地标建筑id、城区、地名、地标名字、北纬、东经
热点地区id、地名、北纬、东经
用餐目的id、目的分类
实体-关系模型
系统的实体-关系模型如图4-4-6所示:
图4-4-6实体-关系模型图
(二)主要算法设计及相关算法补充
先创建图存储各个景点或场所,以图的顶点表示景点或场所,以边表示路径,再利用算法求出各个地方的最短路径,然后根据需要进行补充相关算法。
四、全部源程序清单
/*
*@登录方式
*用户填好登录信息后,点击登录发送给服务器登录信息
*
*当服务器接受并确认登录信息后,直接进行登录操作,并返回给手机端这边登录成功否标识
*手机端这边判断登录成功否标识是否为成功标识,若是则将mark.USERNAME改为用户昵称,并提示“登录成功”,若否则提示“登录失败”
*
*@点击不同的查找方式
*------点击按地标时,跳转到
*/
packagecom.food;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.UnsupportedEncodingException;
importjava.util.ArrayList;
importjava.util.HashMap;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.client.ClientProtocolException;
importorg.apache.http.client.HttpClient;
importorg.apache.http.client.entity.UrlEncodedFormEntity;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.http.message.BasicNameValuePair;
importorg.json.JSONException;
importorg.json.JSONObject;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.ListView;
importandroid.widget.SimpleAdapter;
importandroid.widget.TextView;
importandroid.widget.Toast;
publicclassstartextendsActivity{
TextViewusernickname;
TextViewlandmark;
TextViewhotSpace;
TextViewallCityProper;
TextViewdinnerTarget;
TextViewsubway;
TextViewallDish;
TextViewhotDish;
publicstaticButtonlogin;
Buttonregister;
Buttonsearch;
EditTextsearchEdite;
ListViewlist;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
setTitle("
掌握美食"
);
usernickname=(TextView)this.findViewById(R.id.usernickname);
landmark=(TextView)this.findViewById(R.id.landmark);
hotSpace=(TextView)this.findViewById(R.id.hotSpace);
allCityProper=(TextView)this.findViewById(R.id.allCityProper);
dinnerTarget=(TextView)this.findViewById(R.id.dinnerTarget);
subway=(TextView)this.findViewById(R.id.subway);
allDish=(TextView)this.findViewById(R.id.allDish);
hotDish=(TextView)this.findViewById(R.id.hotDish);
login=(Button)this.findViewById(R.id.login);
register=(Button)this.findViewById(R.id.register);
search=(Button)this.findViewById(R.id.search);
searchEdite=(EditText)this.findViewById(R.id.searchEdite);
list=(ListView)this.findViewById(R.id.listView);
usernickname.setText(mark.NICKNAME);
//设置用户默认昵称为“游客”或者已登录用户昵称
//点击当前用户名的时候若为“游客模式”者显示"
当前为游客模式请先登录"
//若为“用户模式”则跳转到用户基本信息界面
usernickname.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
if(mark.NICKNAME=="
游客"
){
Toast.makeText(getApplication(),"
当前为游客模式"
+"
\n"
请先登录"
Toast.LENGTH_SHORT).show();
}else{
Intentit=newIntent(start.this,userInformation.class);
startActivity(it);
}
}
});
/*
*获得服务中饭店查询排行榜
*
*@向服务器发送数据searchNum(searchNum=usernickname)获得饭店查询排行榜并显示出
*@接受服务器的信息由——searchnum获得是否成功标识
*——num获得饭店总数
*restaurantname+i获得饭店名
*(i为0-9,例如restaurantName1、restaurantName2)
*/
if(mark.ifn==1){
StringsearchNum="
searchNum"
;
//发送请求
HttpClienthttpclient=newDefaultHttpClient();
HttpPosthttppost=newHttpPost(mark.SERVERSEARCHNUM);
ArrayList<
BasicNameValuePair>
nvps=newArrayList<
();