javaME手机电子课程表设计报告.docx
- 文档编号:13016673
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:13
- 大小:88.39KB
javaME手机电子课程表设计报告.docx
《javaME手机电子课程表设计报告.docx》由会员分享,可在线阅读,更多相关《javaME手机电子课程表设计报告.docx(13页珍藏版)》请在冰点文库上搜索。
javaME手机电子课程表设计报告
《JavaME手机电子课程表》
姓名:
xxxx
班级:
计科082
学号:
xxxx
1、问题描述
本系统是由javaMe制作应用于手机上的电子课表程序,其主要包括和需要实现的功能有:
1)欢迎界面
2)功能菜单
3)当天课程
4)浏览课程表(点击后可按日显示课程)
5)添加课程
6)删除课程(删除所有课程、逐个删除)
7)每个界面都能逐级返回上一级界面。
2、实现过程
本程序严格遵照问题中提出的要求进行细致的设计和编码,以下是其具体的设计编码实现过程:
1)必要的程序包
javax.microedition.midlet.*;
javax.microedition.lcdui.*;
javax.microedition.rms.*;
java.io.*;
java.lang.*;
java.util.*;
2)欢迎界面
由于是初学者,本程序制作了简单的欢迎界面,仅是提示用户进入的是手机电子课表。
代码的实现是通过课表类的构造函数建造一个欢迎主页面。
源码:
publicSchedule(){
display=Display.getDisplay(this);
tech=newTicker("感谢您使用移动课表!
");
exit=newCommand("退出",Command.EXIT,1);
submit=newCommand("选择",Command.SCREEN,1);
back=newCommand("返回",Command.BACK,1);
save=newCommand("提交",Command.SCREEN,1);
saveback=newCommand("返回",Command.BACK,1);
}
实现:
(用户可以选择自己想要的操作,查看课表或者设置新的课表)
3)主功能页面
该页面主要是实现对课表中每一天课的查询,选择进入某一天的课程,则能显示是否有课,以及每节课对应的上课时间。
源码:
publicvoidshowschedule()//显示课表
{
display=Display.getDisplay(this);
String[]items1={"查看星期一课程","查看星期二课程","查看星期三课程","查看星期四课程","查看星期五课程"};
cschedule=newList("查看课程",List.IMPLICIT,items1,null);
cschedule.addCommand(back);
cschedule.addCommand(submit);
cschedule.setCommandListener(this);
display.setCurrent(cschedule);
}
实现:
(用户可以选择相应的星期进行课程的查阅)
4)课程显示
从主页面中选择进入某一天的课,如下图所显示的是周一的课,如有课,则显示具体课程的信息,没课则显示没有课。
源码:
(这里仅仅列出周一的课程显示源码,其他类似)
//显示星期一的课程
publicvoidshowMonday(){
booleanopened=false;
booleanexistingOrNot=false;
dbMon=null;
//判断名为"dbMon"的记录存储是否存在
//存在则打开并设置existingOrNot为"true"
try{
dbMon=RecordStore.openRecordStore("dbMon",false);
existingOrNot=true;
}catch(Exceptione){
existingOrNot=false;
}
//如果不存在
if(existingOrNot==false){
try{
//创建记录存储dbSat
dbMon=RecordStore.openRecordStore("dbMon",true);
}catch(Exceptione){
opened=false;
}
}
//判断记录存储是否存在,如果存在则打开它
try{
dbMon=RecordStore.openRecordStore("dbMon",false);
opened=true;
}catch(Exceptione){
opened=false;
}
//如果正常打开dbMon
if(opened){
currentday="星期一";
lstMon=newList("星期一课程:
",List.IMPLICIT);
for(inti=0;i<3;i++){
subject[i]=getRec(dbMon,i+1);
//如果某一记录为空,则将其设置成"没课"
if(subject[i].equals("")){
subject[i]="没课";
recUpdate(dbMon,i+1,subject[i]);
}
subName[i]=subject[i];
lstMon.append("第"+(i+1)+"节课:
"+subject[i],null);
}
lstMon.addCommand(back);
lstMon.setCommandListener(this);
display.setCurrent(lstMon);
//用currentFrm标识当前界面
currentFrm="星期一";
}else{//打开失败
showAlert("错误","打开记录存储或创建记录存储失败!
",2500);
}
}
实现:
(显示周一的课程)
5)课程设置和修改(包括课程的增删改除)
在该子页面中,用户可以设置新的课表或者更新修改原有的课表,为了简化用户操作,页面中根据现行的课程时间段给予用户选择。
源码:
publicvoidshowsetting()//设置页面
{
display=Display.getDisplay(this);
name=newTextField("课程名称","",30,TextField.ANY);
choices=newChoiceGroup("请选择星期:
",Choice.EXCLUSIVE);
choices.append("星期一",null);
choices.append("星期二",null);
choices.append("星期三",null);
choices.append("星期四",null);
choices.append("星期五",null);
choices1=newChoiceGroup("请选择时间段:
",Choice.EXCLUSIVE);
choices1.append("8:
00--10:
00",null);
choices1.append("10:
00--12:
00",null);
choices1.append("14:
30--16:
30",null);
shezhiform=newForm("设置课程表");
shezhiform.addCommand(back);
shezhiform.addCommand(save);
shezhiform.append(choices);
shezhiform.append(choices1);
shezhiform.append(name);
shezhiform.setCommandListener(this);
display.setCurrent(shezhiform);
}
publicvoidsaveok()//设置页面
{
display=Display.getDisplay(this);
saveform=newForm("保存课程表");
save1=newStringItem("","信息已经正确保存");
saveform.addCommand(saveback);
saveform.append(save1);
saveform.setCommandListener(this);
display.setCurrent(saveform);
}
//对记录存储进行读取操作(subinfo除外)
publicStringgetRec(RecordStorers,intrecID){
byte[]data;
Stringresult,buffer;
Othernewclass=null;
try{
newclass=newOther();
data=rs.getRecord(recID);
newclass.changeFromByteArray(data);
result=newclass.getnew1();
}catch(Exceptione){
result="";
}
return(result.trim());
}
//用于对记录存储进行记录的修改或新增(subinfo除外)
publicbooleanrecUpdate(RecordStorers,intclassNum,StringsubjectName){
booleanresult=false;
Stringtitel=newString("");
Stringmessage=newString("");
booleanerror=false;
//将要写入记录存储的内容subjectName"打包"成字节流data
Othernewclass=newOther();
newclass.write(subjectName);
byte[]data=newclass.changeToByteArray();
if(error==false){
try{
//修改记录存储中的内容
rs.setRecord(classNum,data,0,data.length);
result=true;
}catch(Exceptione){
try{
rs.addRecord(data,0,data.length);
newclass.setRecordID(classNum);
result=true;
}catch(Exceptions){
titel="错误";
message="更新数据失败!
原因:
\n"+s.getMessage();
error=true;
}
}
}
if(error){
showAlert(titel,message,0);
}
returnresult;
}
//显示提示框
publicvoidshowAlert(Stringtitel,Stringmessage,intmode){
Alertalert=newAlert(titel,message,null,null);
if(mode==0){
alert.setTimeout(Alert.FOREVER);
}else{
alert.setTimeout(mode);
}
display.setCurrent(alert);
}
实现:
(设置周一的课程,并进行保存以及保存只有的查阅,可以清晰的看到课表中课由“WT”变成了“语文”)
设置课程,图中将周一的课程设置成“语文”
提示用户信息已经成功保存
保存更新后的课表信息显示
3、实验总结
通过本次小型手机电子课表的设计与研发,我对所学的javaMe知识有了进一步的理解和掌握,如界面的开发设计,用户的适用性和软件的合理性有了更详细的认知,对本学期所学的javaMe知识有了良好的总结和运用,受益良多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaME 手机 电子 课程表 设计 报告