博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;
🍅文章末尾获取源码下载方式🍅
主要功能:学生通过系统实现网上选座功能,预约晚自习期间计算机教室座位进行自主学习
具体功能
一、预约功能:
1.学生通过网页进入自主选座系统预约自习室,不可通过网站直接预订具体座位,确定选座后后台会收到预约并减少教室内的可预约座位数量,教室预约人数满该教室则不可再次进行预约(一个教室内的可预约数量为40,共20个教室)
2.预约系统的开放预约时间为早7点到下午6点,预约期限仅限当日的晚自习时间(18.30-20.30)
二、签到功能:
1.学生到达教室后要通过网页进行签到,并记录自己的机器号(为了出现机器故障等问题找到对应学生进行处理),后台存储记录学生的预约过往记录,学生个人主页也可看到
2.如果预约教室后的学生未到达教室进行自习,则对该学生进行违规处罚,一周内不可预约自习室
3。如果学生在自习期间破坏了计算机设备由管理员备注记录,则该学生不可再次预约计算机教室
三、网站开放人员
1.学生(登录帐号为学号,密码最低限制6位),教室管理员
四、主页内容
(1)、学生
1.预约自习室
2.进行签到界面(签到时间,签到机器)
3.修改个人信息(专业 、入学时间、姓名、学号、班级、辅导员)
4.查看历史预约记录
(2)、管理人员
1.修改个人信息(密码)
2.查看学生信息
3.查看学生历史预约记录
4.修改学生违规栏信息并选择处罚措施(未签到、破坏教学设施)
1:客户端使用Android stuido进行开发;
2:服务端后台使用Myeclipse2014进行开发;
3:mysql数据库进行数据存储;
4:需要jdk1.7以上
5:使用雷电模拟器或者Androidstuio自带的模拟器进行运行
总体设计逻辑和思路:
1:先设计数据库表文件
2:写服务端jsp页面以及写api接口给客户端提供数据
3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示
4:进行客户端页面的开发;
5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示移动端:
1:使用android原生控件以及xml布局文件来完成界面的显示
2:使用java代码完成功能的数据和逻辑交互
3:使用http网络请求完成数据的请求;
4:使用json数据解析完成客户端数据的回调和显示服务端后台:
1:使用mysql完成数据的存储
2:使用jdbc完成数据库和代码的逻辑交互
3:使用jsp完成网页数据的显示
4:使用java代码完成api接口的编写以及以及数据的回调
四:部分代码
1:查看教室信息
public class RoomMessageActivity extends BaseActivity {
RoomModel intersetModel;
// title
private TextView mTvTitle;
// 返回
private ImageView mIvBack;private TextView mtv1, mtv2, mtv3, mtv4, mtvMessagetitle;
private Button mbtnPay;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_roommessage);
initWidget();
initData();
}@Override
public void initWidget() {mtv1 = (TextView) findViewById(R.id.mtv1);
mtv2 = (TextView) findViewById(R.id.mtv2);
mtv3 = (TextView) findViewById(R.id.mtv3);
mtv4 = (TextView) findViewById(R.id.mtv4);
mtvMessagetitle = (TextView) findViewById(R.id.mtvMessagetitle);mbtnPay = (Button) findViewById(R.id.mbtnPay);
mbtnPay.setOnClickListener(this);mIvBack = (ImageView) findViewById(R.id.mIvBack);
mTvTitle = (TextView) findViewById(R.id.mTvTitle);
mTvTitle.setText("教室详情");
mIvBack.setVisibility(View.VISIBLE);
mIvBack.setOnClickListener(this);
}@Override
public void onClick(View v) {switch (v.getId()) {
case R.id.mIvBack:
RoomMessageActivity.this.finish();
break;case R.id.mbtnPay:
Intent intent = new Intent(this, PayMessageActivity.class);
intent.putExtra("msg",intersetModel);
startActivity(intent);
break;}
}@SuppressLint("SetTextI18n")
@Override
public void initData() {intersetModel = (RoomModel) this.getIntent().getSerializableExtra("msg");
mtvMessagetitle.setText(intersetModel.getRoomName());
mtv1.setText(intersetModel.getRoomAddress());
mtv2.setText(intersetModel.getRoomNumber() + "人");
mtv3.setText(intersetModel.getRoomMessage());
mtv4.setText(intersetModel.getRoomTime());
}
}
2:预约信息
public class ApplyMessageActivity extends BaseActivity {
ApplyModel intersetModel;
// title
private TextView mTvTitle;
// 返回
private ImageView mIvBack;private TextView mtv1, mtv2, mtv3, mtv4,mtvMessagetitle,mtv5;
private Button mbtnPay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_applyessage);
initWidget();
initData();
}@Override
public void initWidget() {mtv1 = (TextView) findViewById(R.id.mtv1);
mtv2 = (TextView) findViewById(R.id.mtv2);
mtv3 = (TextView) findViewById(R.id.mtv3);
mtv4 = (TextView) findViewById(R.id.mtv4);
mtvMessagetitle = (TextView) findViewById(R.id.mtvMessagetitle);
mtv5 = (TextView) findViewById(R.id.mtv5);mIvBack = (ImageView) findViewById(R.id.mIvBack);
mTvTitle = (TextView) findViewById(R.id.mTvTitle);
mTvTitle.setText("预约信息");
mIvBack.setVisibility(View.VISIBLE);
mIvBack.setOnClickListener(this);mbtnPay = (Button) findViewById(R.id.mbtnPay);
mbtnPay.setOnClickListener(this);
}@Override
public void onClick(View v) {switch (v.getId()) {
case R.id.mIvBack:
ApplyMessageActivity.this.finish();
break;
case R.id.mbtnPay:
deleteApply(false);
break;
}
}@SuppressLint("SetTextI18n")
@Override
public void initData() {intersetModel = (ApplyModel) this.getIntent().getSerializableExtra("msg");
mtvMessagetitle.setText(intersetModel.getApplyMessageName());
mtv1.setText(intersetModel.getApplyStartMsg()+"至"+intersetModel.getApplyEndMsg());
mtv2.setText(intersetModel.getApplyTheme() + "人");
mtv3.setText(intersetModel.getApplyPerson());
mtv5.setText(intersetModel.getApplyUserName());
if(intersetModel.getApplyState().equals("1")){
mtv4.setText("预约状态:待审核");
}else if(intersetModel.getApplyState().equals("2")){
mtv4.setText("预约状态:已批准");
}else if(intersetModel.getApplyState().equals("3")){
mtv4.setText("预约状态:已拒绝");
}}
private void deleteApply(boolean isShow) {
AjaxParams params = new AjaxParams();
params.put("action_flag", "deleteApply");
params.put("applyId", intersetModel.getApplyId()+"");
httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultFlag, isShow, "正在更新...");
}@Override
protected void callBackSuccess(ResponseEntry entry, int actionId) {
super.callBackSuccess(entry, actionId);
CustomToast.showToast(ApplyMessageActivity.this, entry.getRepMsg());
ApplyObservable.getInstance().notifyStepChange("ok");
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
ApplyMessageActivity.this.finish();
}
}, 1000);
}@Override
protected void callBackAllFailure(String strMsg, int actionId) {
super.callBackAllFailure(strMsg, actionId);
ToastUtil.show(ApplyMessageActivity.this, strMsg);}
}
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻
1:V信搜索“毕业设计小码哥”,也可以关注下方公众号,然后点击菜单栏“源码说明-源码下载”
2:点击小程序下面截图
3:选择Android就可以看到下载源码