logo资料库

java课程设计报告小学数学教辅软件.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
成绩 课程设计报告 题 目 小学数学辅助教学软件 课 程 名 称 Java 面向对象程序设计课程设计 院 部 名 称 软件工程学院 软件工程 专 班 业 级 学 生 姓 名 学 号 1 课程设计地点 课程设计学时 20 指 导 教 师 教务处制
一、课程设计目的 本课程设计是利用 Java 进行程序设计的一个关键实践环节。它是根据教学计划的要求, 在教师的指导下,对学生实施程序设计训练的必要过程,是对前期课堂教学效果的检验。其 目标在于培养学生综合运用面向对象的方法完成小型软件系统的分析与设计,熟练使用 Java 语言及 JavaSE 类库完成桌面应用软件的开发和调试。通过这个课程设计,要求学生能 够遵循软件开发过程的基本规范,按照课程设计的题目要求,独立地完成设计、编写、调试 和测试应用程序及编写文档的任务。 二、课程设计任务 简要叙述选择的课题功能 小学数学辅助教学软件 编写一个小学数学辅助教学软件,主要是测试小学低年级学生的两位数的加 减法的计算能力。要求: (1) 用户可以选择练习或测试方式,可以选择 1 位数的加法或减法,两位 数的加法或减法,或者混合计算。 (2) 运算题目随机生成。 (3) 练习或测验完成后,给出得分。 三、需求分析 所选择的课题进行需求分析,详细描述所要实现的功能 1. 用户需要选择做多少条题目。 2. 用户要选择运算位数,一位数或者两位数。 3. 用户需要选择运算方式,加法减法或者加减法混合运算。 4. 题目要是随机的。 5. 先要自动生成正常答案。 6. 需要将用户的答案与正确答案比较判断用户输入的答案是与否 7. 。打印出用户做对做错的题目。 8. 判断用户是否及格。 四、系统设计 系统模块划分,描述类及类之间的关系 calculation 类的属性为运算位数第一位运算数字 x,第二位运算数字 y,标 记对错的布尔类型 b 做对的条数 right,做错的条数 wrong,题号 i,成员方法包 括对两个数随机赋值,选择运算类型混合运算的随机选择,判断对错,计算得分。 Test 类抛出异常。 yichang 类对用户输入的数据进行一系列的处理判断是否符合输入要求。
jige 类判断用户成绩是否合格。 用户在 Main 类输入要做的条数,先调用 yicahng 类判断是否符合输入要求, 再调用 calculation 类进行一系列的运算及得分统计,最后打印用户做对和做错 的条数及得分。 五、系统实现 程序设计,核心模块实现技术的说明 switch 语句选择运算类型和运算方法。 使用抛出异常对输入数据进行处理 加减法及混合运算使用继承重复利用代码。 使用随机赋值并控制数的长度 函数使用 if 语句并返回布尔类型实现对用户运算结果对错的判断。 六、总结 在本次 Java 课程设计中,我基本掌握了 Java 的编程规则、知识要点 和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认 识和体会。同时,因正确的编出程序而带来的成就感让我对编程更加 感兴趣。对于在这些实验过程中,同学互助、查阅资料等基本的学习 方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。 说起来编程的经验应该是多了很多。但是在上机调试的时候还是遇到 了相当多的问题。很多的错误都很难体会,有的时候是输入的错误, 这种错误还是比较容易找出来的,但是有些问题,比如一些题目需要 导入一些包,这一点就没有办法了。发现 JAVA 虽然看起来比 C 要容 易一点,但是由于它自身带有相当多的方法定义,这些个方法虽然不 用我们自己再去编写了但是需要花相当多的时间去记忆那些方法是 需要导入的,还有方法名……所以对我来说这真的是比 C 里简单几个 文件的导入还要难上很多……还是觉得自己编的方法(函数)自己用 的习惯。不过现在的编程的方向已经是面向对象和面向数据的了,所 以我需要时间去适应这样的编程思想。
附录: 程序代码(主要模块) package calculation; import java.util.Random; import java.util.Scanner; public class calculation{ Scanner sc = new Scanner(System.in); private int x; //第一位运算数字 private int y; //第二位运算数字 boolean b; //标记对错 int right1=0; //做对的条数 int wrong1=0; //做错的条数 private int i=1;//题号 int a[];//保存错误的题号 //计算位数 public calculation() { } public void fuzhi(int weishu) { for(int i=0;i<10;i++){
switch(weishu){ case(1): { Random r1 = new Random(); this.x=r1.nextInt(10); Random r2 = new Random(); this.y=r2.nextInt(10); } break; case(2): { Random r1 = new Random(); this.x=r1.nextInt(91)+10; Random r2 = new Random(); this.y=r2.nextInt(91)+10; } break; default: System.out.println("输入的位数错误"); break; } } }
//运算类型 public void lx1(int n) { switch(n) { case(1): System.out.println(" 第 "+(this.i++)+" 道 题 , 请 在 下方输入答案:"); System.out.println(this.x+"+"+this.y+"="); this.b = add(this.x,this.y); if(this.b == true){ this.right1++; }else{ this.wrong1++; } break; case(2): System.out.println(" 第 "+(this.i++)+" 道 题 , 请 在 下方输入答案:"); System.out.println(this.x+"-"+this.y+"=");
this.b = minus(this.x,this.y); if(b == true){ this.right1++; }else{ this.wrong1++; } break; case(3): System.out.println("第"+(this.i++)+"道题,请 在下方输入答案:"); //生成随机运算符 + - / //生成随机运算符 + - */ Random r3 = new Random(); int z = r3.nextInt(4); char[] chs = {'+','-','+','-'};
String Operator = String.valueOf(chs[z]); //生成加法 if(Operator.equals("+")){ System.out.println(this.x+"+"+this.y+"="); this.b = add(this.x,this.y); if(this.b == true){ this.right1++; }else{ this.wrong1++; } //生成减法 }else if(Operator.equals("-")){ System.out.println(this.x+"-"+this.y+"="); this.b =minus(this.x,this.y); if(this.b == true){ this.right1++; }else{
分享到:
收藏