目录
博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;
🍅🍅
源码下载
功能演示
一、项目介绍
1:课题意义
移动端APP的使用弥补了计算机的不可移动性及系统本身繁琐的登录认证、查询操作使系统使用带来不方便。学生可随时利用无线网络进行在线选课、课表查询、查看校园网信息,为学生提供方便、可移动、准确的服务。同时提高自己的专业能力,为以后的学习和工作奠定一定的经验和基础,并且也为自己和同学在查课、选课等提供更多便利。教务管理工作是高等学校教育工作的一项重要内容,是整个学校管理的核心和基础,而课表管理是教务管理工作中重要而繁重的一部分。良好课表管理系统可以帮助学校管理人员按照一定的教育方针,运用先进的管理手段,组织、协调、指挥与指导各方面人员的活动,以便高效率、高质量地完成各项教学任务,完成国家所制定的教学目标。
2:发展状况
随着智能移动设备的快速发展,对于智能手机的发展前景,人们更希望将大部分生活所需的直接用一部智能手机就可以搞定。而目前使用Android系统的手机已大大超过了iphone,Android已成为全球使用量最大的手机系统。 在校园内,学校校园网站为学生提供学生课程表、学生选课等信息管理,为学生的校园生活提供直接信息,随着移动互联网络的发展,学生大都采用手机进行随时随地上网,登录校园网来了解自己的校园信息,但是智能手机无论从执行效率、内存大小、屏幕大小以及操作方式都与计算机有很大差别,如果单纯用智能手机里浏览器通过网址连接校园网站获取信息,如同计算机里显示样式一样,就会给智能手机带来一定的负担。 因此为了使学生更好的利用手机方便学习与体验校园生活,开发基于Android平台的智能移动终端应用软件,依托移动互联网络和校园网站,让学生可以在需要线上选课时,使用手机客户端随时随地登录进行选课,极大地方便学生。
3:课题功能内容
本毕业设计的主要内容是设计开发一个基于手机选课系统的设计与实现。 软件信息模块,各模块的介绍如下:
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接口的编写以及以及数据的回调
四、数据库设计
/*
Navicat MySQL Data TransferSource Server : mydb
Source Server Version : 50528
Source Host : localhost:3306
Source Database : courseadmindbTarget Server Type : MYSQL
Target Server Version : 50528
File Encoding : 65001Date: 2018-12-25 23:18:31
*/SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for choicetb
-- ----------------------------
DROP TABLE IF EXISTS `choicetb`;
CREATE TABLE `choicetb` (
`choiceId` int(50) NOT NULL AUTO_INCREMENT,
`choiceCourseId` varchar(100) DEFAULT NULL,
`choiceStuId` varchar(100) DEFAULT NULL,
`choiceTime` varchar(100) DEFAULT NULL,
`choiceScore` varchar(255) DEFAULT NULL,
PRIMARY KEY (`choiceId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of choicetb
-- ----------------------------
INSERT INTO `choicetb` VALUES ('1', '20', '1', '2018-12-25 17:29', '60');
INSERT INTO `choicetb` VALUES ('3', '20', '2', '2018-12-25 19:00', '69');
INSERT INTO `choicetb` VALUES ('4', '20', '6', '2018-12-25 23:07', null);
INSERT INTO `choicetb` VALUES ('5', '22', '6', '2018-12-25 23:07', null);
INSERT INTO `choicetb` VALUES ('6', '24', '7', '2018-12-25 23:16', '99');
INSERT INTO `choicetb` VALUES ('7', '22', '7', '2018-12-25 23:16', null);-- ----------------------------
-- Table structure for coursemsg
-- ----------------------------
DROP TABLE IF EXISTS `coursemsg`;
CREATE TABLE `coursemsg` (
`courseId` int(50) NOT NULL AUTO_INCREMENT,
`courseName` varchar(255) DEFAULT NULL,
`courseTime` varchar(100) DEFAULT NULL,
`courseTeacherId` varchar(255) DEFAULT NULL,
`courseTeacherName` varchar(255) DEFAULT NULL,
`courseAddress` varchar(100) DEFAULT NULL,
`courseCreatime` varchar(100) DEFAULT NULL,
PRIMARY KEY (`courseId`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of coursemsg
-- ----------------------------
INSERT INTO `coursemsg` VALUES ('20', '大学英语', '2018-12-25 15:19', '1', '张老师 ', '一号教学楼101室', '2018-12-25 15:19');
INSERT INTO `coursemsg` VALUES ('22', '大学计算机', '2018-12-25 15:28', '1', '张老师 ', '一号教学楼101室', '2018-12-25 15:28');
INSERT INTO `coursemsg` VALUES ('24', '大学java', '2018-12-30 00:00', '5', 'tom老师 ', '一号教学楼101室', '2018-12-25 23:15');-- ----------------------------
-- Table structure for scoretb
-- ----------------------------
DROP TABLE IF EXISTS `scoretb`;
CREATE TABLE `scoretb` (
`scoreId` int(50) NOT NULL AUTO_INCREMENT,
`scoreStuId` varchar(100) DEFAULT NULL,
`scoreCourseId` varchar(100) DEFAULT NULL,
`scoreMsg` varchar(255) DEFAULT NULL,
PRIMARY KEY (`scoreId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of scoretb
-- ------------------------------ ----------------------------
-- Table structure for stutb
-- ----------------------------
DROP TABLE IF EXISTS `stutb`;
CREATE TABLE `stutb` (
`stuId` int(50) NOT NULL AUTO_INCREMENT,
`stuName` varchar(255) DEFAULT NULL,
`stuClass` varchar(255) DEFAULT NULL,
`stuPhone` varchar(255) DEFAULT NULL,
`stuTime` varchar(100) DEFAULT NULL,
`stuPswd` varchar(255) DEFAULT NULL,
PRIMARY KEY (`stuId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of stutb
-- ----------------------------
INSERT INTO `stutb` VALUES ('1', '小华', '计算机系一班', '15249246969', '2018-12-25 15:11', '123456');
INSERT INTO `stutb` VALUES ('2', '小明', '计算机系二班', '15249246968', '2018-12-25 15:11', '123456');
INSERT INTO `stutb` VALUES ('6', 'tom ', '计算机系一班', '15249243636', '2018-12-25 23:07', '123456');
INSERT INTO `stutb` VALUES ('7', 'pony', '计算机系一班10', '15249245678', '2018-12-25 23:14', '123456');-- ----------------------------
-- Table structure for teatb
-- ----------------------------
DROP TABLE IF EXISTS `teatb`;
CREATE TABLE `teatb` (
`teaId` int(50) NOT NULL AUTO_INCREMENT,
`teaName` varchar(255) DEFAULT NULL,
`teaCourse` varchar(255) DEFAULT NULL,
`teaPhone` varchar(255) DEFAULT NULL,
`teaMessage` varchar(1500) DEFAULT NULL,
`teaTime` varchar(255) DEFAULT NULL,
`teaPswd` varchar(255) DEFAULT NULL,
PRIMARY KEY (`teaId`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of teatb
-- ----------------------------
INSERT INTO `teatb` VALUES ('1', '张老师 ', '英语语法基础', '15249248989', '我叫张老师,我毕业于上海师范学院历史学教育专业,获史学学士学位。毕业后一直在浙江省首批办重点高中黄河二中从事历史教学工作,现为中教一级教师', '2018-12-25 15:14', '123456');
INSERT INTO `teatb` VALUES ('2', '王老师', '英语语法基础', '15249246969', '我叫张老师,我毕业于上海师范学院历史学教育专业,获史学学士学位。毕业后一直在浙江省首批办重点高中黄河二中从事历史教学工作,现为中教一级教师', '2018-12-25 15:17', '123456');
INSERT INTO `teatb` VALUES ('5', 'tom老师 ', 'java基础', '15249241234', '我叫张老师,我毕业于上海师范学院历史学教育专业,获史学学士学位。毕业后一直在浙江省首批办重点高中黄河二中从事历史教学工作,现为中教一级教师', '2018-12-25 23:13', '123456');-- ----------------------------
-- Table structure for usermsg
-- ----------------------------
DROP TABLE IF EXISTS `usermsg`;
CREATE TABLE `usermsg` (
`userId` int(50) NOT NULL AUTO_INCREMENT,
`userName` varchar(255) DEFAULT NULL,
`userPhone` varchar(255) DEFAULT NULL,
`userPswd` varchar(255) DEFAULT NULL,
`userTime` varchar(255) DEFAULT NULL,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of usermsg
-- ----------------------------
INSERT INTO `usermsg` VALUES ('14', '15249243002', '多多', '123456', '2018-12-25 15:05');
INSERT INTO `usermsg` VALUES ('15', '123456', '多多', '15249243002', '2018-12-25 15:06');
INSERT INTO `usermsg` VALUES ('16', '多多', '15249243002', '123456', '2018-12-25 15:09');
五、部分代码
1:添加学生信息
public class CreateStuActivity extends BaseActivity {// title
private TextView mTvTitle;
// 返回
private ImageView mIvBack;
// 查询按钮
private Button mbtnUpdate;
private EditText stuName;
private EditText stuClass;
private EditText stuPhone;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_stu);
initWidget();
initData();
}@Override
public void initWidget() {
stuName = (EditText) findViewById(R.id.stuName);
stuClass = (EditText) findViewById(R.id.stuClass);
stuPhone = (EditText) findViewById(R.id.stuPhone);
mbtnUpdate = (Button) findViewById(R.id.mbtnUpdate);
mIvBack = (ImageView) findViewById(R.id.mIvBack);
mTvTitle = (TextView) findViewById(R.id.mTvTitle);
mTvTitle.setText("添加学生信息");
mIvBack.setVisibility(View.VISIBLE);
mIvBack.setOnClickListener(this);
mbtnUpdate.setOnClickListener(this);
stuName.setText("王老师 ");
stuClass.setText("计算机系一班");
stuPhone.setText("15249246969");
}@Override
public void onClick(View v) {switch (v.getId()) {
case R.id.mIvBack:
CreateStuActivity.this.finish();
break;
case R.id.mbtnUpdate:
RegisterAction(true);
break;
}
}@Override
public void initData() {
}
private void RegisterAction(boolean isShow) {
AjaxParams params = new AjaxParams();
params.put("action_flag", "addStudent");
params.put("stuName", stuName.getText().toString());
params.put("stuClass", stuClass.getText().toString());
params.put("stuPhone", stuPhone.getText().toString());
httpPost(Consts.URL + Consts.APP.CourseAction, params, Consts.actionId.resultCode, isShow, "正在更新...");
}
@Override
protected void callBackSuccess(ResponseEntry entry, int actionId) {
super.callBackSuccess(entry, actionId);switch (actionId) {
case Consts.actionId.resultCode:
CourseObservable.getInstance().notifyStepChange("updateCourse");
ToastUtil.show(CreateStuActivity.this, entry.getRepMsg());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
CreateStuActivity.this.finish();
}
}, 1000);
break;}
}@Override
protected void callBackAllFailure(String strMsg, int actionId) {
super.callBackAllFailure(strMsg, actionId);
ToastUtil.show(CreateStuActivity.this, strMsg);}
}
2:添加老师信息
public class CreateTeaActivity extends BaseActivity {// title
private TextView mTvTitle;
// 返回
private ImageView mIvBack;
// 查询按钮
private Button mbtnUpdate;
private EditText teaName;
private EditText teaCourse;
private EditText teaAddress;
private EditText teaMessage;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_tea);
initWidget();
initData();
}@Override
public void initWidget() {
teaName = (EditText) findViewById(R.id.teaName);
teaCourse = (EditText) findViewById(R.id.teaCourse);
teaAddress = (EditText) findViewById(R.id.teaAddress);
teaMessage = (EditText) findViewById(R.id.teaMessage);
mbtnUpdate = (Button) findViewById(R.id.mbtnUpdate);
mIvBack = (ImageView) findViewById(R.id.mIvBack);
mTvTitle = (TextView) findViewById(R.id.mTvTitle);
mTvTitle.setText("添加老师信息");
mIvBack.setVisibility(View.VISIBLE);
mIvBack.setOnClickListener(this);
mbtnUpdate.setOnClickListener(this);
teaName.setText("张老师 ");
teaCourse.setText("英语语法基础");
teaAddress.setText("15249248989");
teaMessage.setText("我叫张老师,我毕业于上海师范学院历史学教育专业,获史学学士学位。毕业后一直在浙江省首批办重点高中黄河二中从事历史教学工作,现为中教一级教师");
}@Override
public void onClick(View v) {switch (v.getId()) {
case R.id.mIvBack:
CreateTeaActivity.this.finish();
break;
case R.id.mbtnUpdate:
RegisterAction(true);
break;
}
}@Override
public void initData() {
}
private void RegisterAction(boolean isShow) {
AjaxParams params = new AjaxParams();
params.put("action_flag", "addTeacher");
params.put("teaName", teaName.getText().toString());
params.put("teaCourse", teaCourse.getText().toString());
params.put("teaPhone", teaAddress.getText().toString());
params.put("teaMessage", teaMessage.getText().toString());
httpPost(Consts.URL + Consts.APP.CourseAction, params, Consts.actionId.resultCode, isShow, "正在更新...");
}
@Override
protected void callBackSuccess(ResponseEntry entry, int actionId) {
super.callBackSuccess(entry, actionId);switch (actionId) {
case Consts.actionId.resultCode:
TeacherObservable.getInstance().notifyStepChange("updateCourse");
ToastUtil.show(CreateTeaActivity.this, entry.getRepMsg());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
CreateTeaActivity.this.finish();
}
}, 1000);
break;}
}@Override
protected void callBackAllFailure(String strMsg, int actionId) {
super.callBackAllFailure(strMsg, actionId);
ToastUtil.show(CreateTeaActivity.this, strMsg);}
}
六、浏览更多Android毕业设计
毕业设计-基于android的租房信息发布平台的APP_信息发布app源码_Android毕业设计源码的博客-CSDN博客
毕业设计-基于android选课系统的设计与实现_android学生选课系统_Android毕业设计源码的博客-CSDN博客
毕业设计之校园一卡通管理系统的设计与实现_一卡通管理系统实现_Android毕业设计源码的博客-CSDN博客
基于Android的校园二手闲置物品交易系统设计与实现_基于android的二手交易平台_Android毕业设计源码的博客-CSDN博客
基于androidstudio校园快递APP系统的设计与实现_android studio论文_Android毕业设计源码的博客-CSDN博客
基于android的商城购物定制APP_安卓开发购物app_Android毕业设计源码的博客-CSDN博客
更多毕业设计可以浏览我的个人主页哦!