项目
目 录
1 选题 1
2 系统需求分析 2
2.1 系统可行性分析 2
2.2 系统需求分析 2
2.3 项目进度安排 4
3 系统设计 5
3.1 系统设计 5
3.2 文件 6
4 系统实现 7
4.1 算术运算测试实现 8
4.2 猜数游戏实现 10
5 系统测试 13
6 结论和心得 14
1 选题
选题一 |
算术运算测试 |
题目要求 |
|
功能要求: 实现系统随机生成十道100 以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。并保存最后分数 能力要求: 1.沟通表达能力;2.资料搜集能力;3.自主学*能力;4.时间规划能力;5.独立完成项目能力;6.文档撰写能力;7.面向对象编程思维和软件工程思想。 |
|
使用Java知识 |
|
Java基本输入输入出、运算符、循环、选择分支 |
|
选题二 |
猜数游戏 |
题目要求 |
|
功能要求: 计算机产生随机数,用户猜数,猜中即胜,猜不中,提示是大了还是小了,每玩完一局后,给出评语,并询问是否继续玩,继续就继续游戏,不继续就退出游戏。 能力要求: 1.沟通表达能力;2.资料搜集能力;3.自主学*能力;4.时间规划能力;5.独立完成项目能力;6.文档撰写能力;7.面向对象编程思维和软件工程思想。
|
|
使用Java知识 |
|
循环、分支、变量、常用类等
|
2 系统需求分析
2.1 系统可行性分析
1.技术可行性
本程序运用的是Eclipse软件,采用Java基础知识和Java面向对象以及Java高级特性等方面的知识,硬件上,需要一台电脑,已具备,因此具备技术可行性。
2经济可行性
本程序使用的Eclipse软件是免费的,有关Java知识的课程也是免费的,不需要额外的费用,因此具备经济可行性。
3.操作可行性
本程序操作简单便捷,内容通俗易懂,符合大部用户的使用*惯。因此具备操作可行性。
- 法律可行性
在法律许可范围内。
2.2 系统需求分析
2.2.1算数测试的项目功能分析
根据与老师进行反复沟通,进行需求分析:
1.实现系统随机生成十道100 以内加减法数学题。
2.能根据题目计算出答案,与输入答案对比,判断做题是否正确
3.最后计算分数。并保存最后分数
功能模块图如图2-1所示
图2-1 算法运算测试功能模块图
2.2.2猜数游戏的项目功能分析
根据与老师进行反复沟通,进行需求分析:
1.计算机产生随机数
2.用户猜数,猜中即胜,猜不中,提示是大了还是小了
3.每玩完一局后,给出评语
4.并询问是否继续玩,继续就继续游戏,不继续就退出游戏
图2-2 猜数游戏功能模块图
2.3 进度安排
阶段一进度安排如表2-3所示。
表2-3 进度安排表
阶段 |
持续时间 |
阶段描述 |
输出 |
构思阶段 |
2h |
需求分析 |
需求说明,功能模块图 |
设计阶段 |
2h |
系统设计 |
设计说明-可以画流程图;数据库设计 |
实现阶段 |
5h |
编写代码 |
项目工程源代码 |
2h |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
运行阶段 |
5h |
部署、运行 |
系统使用说明、运维报告、录制视频 |
3 系统设计
3.1 系统设计
根据系统的实际功能需求分析,对系统功能部分进行了设计。
一、算数运算测试
1.随机生成题目模块:
先随机产生两个1-100之间的数,再随机生成0或1的数,0代表加法,1代表减法,随机生成十道加减法题目。并判断两数之和是否小于100,之差是否大于0 。
2.程序测试模块:
用户输入得数,判断是不是1-100之间的数字并判断是否正确,正确继续下一道题,错误,告诉正确答案继续下一道题,直到答完10道题。
3.计分模块:
总分10分,答对一道题加1分,答错不得分
4.保存分数模块:
把分数保存到fenshu.txt文件中。
二、猜数游戏
1.随机数生成模块:
系统随机生成一个一百以内的数。
2.猜数模块
用户输入数字后,给出提示,如果猜对了,给出评语,如果猜错了,系统会提示猜大了还是猜小了,用户继续猜,直到猜对。
- 次数记录模块:猜一次记录一次。
- 给予评语模块
给予评语标准:猜数次数为1次,给予评语:“您简直神算子”;
猜数次数为2-5次,给予评语:“还不错哦,我看好你”;
猜数次数为5-10次,给予评语:“再接再厉”;
猜数次数为10次以上,给予评语:“别灰心,再玩几次吧”;
- 循环游戏模块:
输入1继续游戏,输入2则退出游戏
3.2 文件
保存文件有两个方案,客户没有具体要求,因为本程序比较简易,采用数据库比较繁琐,所以本程序采用了文件保存方法。
将文件保存到fenshu.txt文件中。如图3-1所示
图3-1 fenshu.txt文档展示
4 系统实现
4.1 算术运算测试实现
代码如下:
/*算术运算测试:
实现系统随机生成十道100 以内加减法数学题,能根据题目计算出答案,
与输入答案对比,判断做题是否正确,
最后计算分数。并保存最后分数
*/
import java.io.*;
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Random rd=new Random();
int scores=0;
int g=0;//存放正确答案
boolean f;
System.out.println("**********一起来做算数题吧!**********");
for(int i=0;i<10;i++) {
f=false;
//控制算数范围,加法和小于100,减法差大于0
while(f==false) {
//a,b为百内随机数,c随机为0(代表+)和1(代表-)
//flag是对运算结果验证的布尔值,scores是正确时加一分
int a=rd.nextInt(100);
int b=rd.nextInt(100);
int c=rd.nextInt(2);//c随机生成0或1
//加法
if(c==0) {
if(a+b<100) {
f=true;
g=a+b;
System.out.println(a+"+"+b+"=?");
}else {f=false;}
//减法
}else if(c==1) {
if(a-b>0) {
f=true;
g=a-b;
System.out.println(a+"-"+b+"=?");
}else {f=false;}
}
}
Scanner input=new Scanner(System.in);
int guess=input.nextInt();
if(guess==g) {
System.out.println("答对啦!");
scores=scores+1;
}else {
System.out.println("算错啦!,正确答案是"+g);
}
}
System.out.println("您的分数为:"+scores+"分");
//用字符流保存成绩
FileWriter fw=null;
BufferedWriter bw=null;
try{
fw=new FileWriter("fenshu.txt",true);//有true是追加,没true是覆盖
bw=new BufferedWriter(fw);
bw.write("您的测试分数为:"+scores+"分\n");
System.out.println("分数保存成功!");
}catch(IOException e) {
e.printStackTrace();
}finally {
try {
bw.flush();//刷新缓冲区
bw.close();
fw.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
}
图4-1 算术运算测试运行界面展示
4.2 猜数游戏实现
import java.util.*;
/*猜数游戏:
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,
每玩完一局后,给出评语
并询问是否继续玩,继续就继续游戏,不继续就退出游戏。
*/
public class Guess {
public static void main(String[] args) {
System.out.println("**********欢迎来到猜数字游戏!**********");
boolean flag;
int count=1;
Random rd =new Random();
Scanner input=new Scanner(System.in);
int num=rd.nextInt(100)+1;
while(true) {
System.out.println("请您输入一个1-100之间的数字:");
int guess=input.nextInt();
if(guess<0||guess>100) {
System.out.println("您猜的数字有误!");
break;
}else {
if(guess>num) {
System.out.println("您猜的数"+guess+"大了!");
count++;
}else if(guess<num){
System.out.println("您猜的数"+guess+"小了!");
count++;
}else {
System.out.println("您猜对啦!");
if(count==1) {
System.out.println("您简直是神算子!");
}else if(count>1&&count<=5) {
System.out.println("还不错哦,我看好你!");
}else if(count>5&&count<=10) {
System.out.println("再接再厉!");
}else {
System.out.println("别灰心,再玩几次吧!");
}
System.out.println("您玩得尽兴嘛?是否继续游戏?(1是/2否)");
int result=input.nextInt();
if(result==1) {
num=rd.nextInt(100)+1;
count=1;
}else {
System.out.println("**********您已退出游戏**********");
break;
}
}
}
}
}
}
图4-2 猜数字游戏运行界面展示
5 系统测试
1、算法运算测试中主要对生成题目、计算分数、查看分数的功能模块进行测试,测试结果如表5-1所示。
表5-1 算法运算测试表
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
1 |
随机生成题目功能 |
|
可以生成题目 |
正常,与预期结果一致 |
2 |
计分功能 |
1.输入您的计算结果 2系统判断对错 3.答对加一分,答错不得分 |
可以计分 |
正常,与预期结果一致 |
3 |
查看分数 |
1.将分数保存到文件 2.打开文件可查看到分数 |
可以看到分数 |
正常,与预期结果一致 |
算法运算测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
2、猜数游戏中主要对生成随机数、给予评语、循环游戏的功能模块进行测试,测试结果如表5-2所示。
表5-2 猜数游戏测试表
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
1 |
随机生成一个1-100之间的数 |
1.运行程序 2.自动生成一个百内随机数 |
可以生成随机数 |
正常,与预期结果一致 |
2 |
给与评语功能 |
根据您的猜数次数,给出相应评语 |
可以给予评语 |
正常,与预期结果一致 |
3 |
循环游戏功能 |
用户输入1或2来决定是否继续游戏,1是继续,2是退出 |
可以循环游戏 |
正常,与预期结果一致 |
猜数游戏主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
6 结论和心得
心得:
Java学*已经*4个月了,虽然很累,但是觉得学*Java非常充实。通过此次课程设计,我更加深刻的理解了Java程序设计语言的魅力,并且对学*Java有了一些深刻的体会。
Java虽说是一门语言但不同的是它是一门计算机语言,但也同样是人类发明的语言,就像我们学*母语一样,我们要认真地对待它,使用它,熟透它,我相信我们一定能够很好的运用它。相信自己,就是胜利。
还要感谢老师对自己的教导,每次遇到问题,老师都会耐心地为我解答。
1 选题
选题一 |
算术运算测试 |
题目要求 |
|
功能要求: 实现系统随机生成十道100 以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。并保存最后分数 能力要求: 1.沟通表达能力;2.资料搜集能力;3.自主学*能力;4.时间规划能力;5.独立完成项目能力;6.文档撰写能力;7.面向对象编程思维和软件工程思想。 |
|
使用Java知识 |
|
Java基本输入输入出、运算符、循环、选择分支 |
|
选题二 |
猜数游戏 |
题目要求 |
|
功能要求: 计算机产生随机数,用户猜数,猜中即胜,猜不中,提示是大了还是小了,每玩完一局后,给出评语,并询问是否继续玩,继续就继续游戏,不继续就退出游戏。 能力要求: 1.沟通表达能力;2.资料搜集能力;3.自主学*能力;4.时间规划能力;5.独立完成项目能力;6.文档撰写能力;7.面向对象编程思维和软件工程思想。
|
|
使用Java知识 |
|
循环、分支、变量、常用类等
|
2 系统需求分析
2.1 系统可行性分析
1.技术可行性
本程序运用的是Eclipse软件,采用Java基础知识和Java面向对象以及Java高级特性等方面的知识,硬件上,需要一台电脑,已具备,因此具备技术可行性。
2经济可行性
本程序使用的Eclipse软件是免费的,有关Java知识的课程也是免费的,不需要额外的费用,因此具备经济可行性。
3.操作可行性
本程序操作简单便捷,内容通俗易懂,符合大部用户的使用*惯。因此具备操作可行性。
4. 法律可行性
在法律许可范围内。
2.2 系统需求分析
2.2.1算数测试的项目功能分析
根据与老师进行反复沟通,进行需求分析:
1.实现系统随机生成十道100 以内加减法数学题。
2.能根据题目计算出答案,与输入答案对比,判断做题是否正确
3.最后计算分数。并保存最后分数
功能模块图如图2-1所示
图2-1 算法运算测试功能模块图
2.2.2猜数游戏的项目功能分析
根据与老师进行反复沟通,进行需求分析:
1.计算机产生随机数
2.用户猜数,猜中即胜,猜不中,提示是大了还是小了
3.每玩完一局后,给出评语
4.并询问是否继续玩,继续就继续游戏,不继续就退出游戏
图2-2 猜数游戏功能模块图
2.3 进度安排
阶段一进度安排如表2-3所示。
表2-3 进度安排表
阶段 |
持续时间 |
阶段描述 |
输出 |
构思阶段 |
2h |
需求分析 |
需求说明,功能模块图 |
设计阶段 |
2h |
系统设计 |
设计说明-可以画流程图;数据库设计 |
实现阶段 |
5h |
编写代码 |
项目工程源代码 |
2h |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
运行阶段 |
5h |
部署、运行 |
系统使用说明、运维报告、录制视频 |
3 系统设计
3.1 系统设计
一、算数运算测试
1.随机生成题目模块:
先随机产生两个1-100之间的数,再随机生成0或1的数,0代表加法,1代表减法,随机生成十道加减法题目。并判断两数之和是否小于100,之差是否大于0 。
2.程序测试模块:
用户输入得数,判断是不是1-100之间的数字并判断是否正确,正确继续下一道题,错误,告诉正确答案继续下一道题,直到答完10道题。
3.计分模块:
总分10分,答对一道题加1分,答错不得分
4.保存分数模块:
把分数保存到fenshu.txt文件中。
二、猜数游戏
1.随机数生成模块:
系统随机生成一个一百以内的数。
2.猜数模块
用户输入数字后,给出提示,如果猜对了,给出评语,如果猜错了,系统会提示猜大了还是猜小了,用户继续猜,直到猜对。
3. 次数记录模块:猜一次记录一次。
4. 给予评语模块
给予评语标准:猜数次数为1次,给予评语:“您简直神算子”;
猜数次数为2-5次,给予评语:“还不错哦,我看好你”;
猜数次数为5-10次,给予评语:“再接再厉”;
猜数次数为10次以上,给予评语:“别灰心,再玩几次吧”;
5. 循环游戏模块:
输入1继续游戏,输入2则退出游戏
3.2 文件
保存文件有两个方案,客户没有具体要求,因为本程序比较简易,采用数据库比较繁琐,所以本程序采用了文件保存方法。
将文件保存到fenshu.txt文件中。如图3-1所示
图3-1 fenshu.txt文档展示
4 系统实现
4.1 算术运算测试实现
代码如下:
/*算术运算测试:
实现系统随机生成十道100 以内加减法数学题,能根据题目计算出答案,
与输入答案对比,判断做题是否正确,
最后计算分数。并保存最后分数
*/
import java.io.*;
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Random rd=new Random();
int scores=0;
int g=0;//存放正确答案
boolean f;
System.out.println("**********一起来做算数题吧!**********");
for(int i=0;i<10;i++) {
f=false;
//控制算数范围,加法和小于100,减法差大于0
while(f==false) {
//a,b为百内随机数,c随机为0(代表+)和1(代表-)
//flag是对运算结果验证的布尔值,scores是正确时加一分
int a=rd.nextInt(100);
int b=rd.nextInt(100);
int c=rd.nextInt(2);//c随机生成0或1
//加法
if(c==0) {
if(a+b<100) {
f=true;
g=a+b;
System.out.println(a+"+"+b+"=?");
}else {f=false;}
//减法
}else if(c==1) {
if(a-b>0) {
f=true;
g=a-b;
System.out.println(a+"-"+b+"=?");
}else {f=false;}
}
}
Scanner input=new Scanner(System.in);
int guess=input.nextInt();
if(guess==g) {
System.out.println("答对啦!");
scores=scores+1;
}else {
System.out.println("算错啦!,正确答案是"+g);
}
}
System.out.println("您的分数为:"+scores+"分");
//用字符流保存成绩
FileWriter fw=null;
BufferedWriter bw=null;
try{
fw=new FileWriter("fenshu.txt",true);//有true是追加,没true是覆盖
bw=new BufferedWriter(fw);
bw.write("您的测试分数为:"+scores+"分\n");
System.out.println("分数保存成功!");
}catch(IOException e) {
e.printStackTrace();
}finally {
try {
bw.flush();//刷新缓冲区
bw.close();
fw.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
}
图4-1 算术运算测试运行界面展示
4.2 猜数游戏实现
import java.util.*;
/*猜数游戏:
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,
每玩完一局后,给出评语
并询问是否继续玩,继续就继续游戏,不继续就退出游戏。
*/
public class Guess {
public static void main(String[] args) {
System.out.println("**********欢迎来到猜数字游戏!**********");
boolean flag;
int count=1;
Random rd =new Random();
Scanner input=new Scanner(System.in);
int num=rd.nextInt(100)+1;
while(true) {
System.out.println("请您输入一个1-100之间的数字:");
int guess=input.nextInt();
if(guess<0||guess>100) {
System.out.println("您猜的数字有误!");
break;
}else {
if(guess>num) {
System.out.println("您猜的数"+guess+"大了!");
count++;
}else if(guess<num){
System.out.println("您猜的数"+guess+"小了!");
count++;
}else {
System.out.println("您猜对啦!");
if(count==1) {
System.out.println("您简直是神算子!");
}else if(count>1&&count<=5) {
System.out.println("还不错哦,我看好你!");
}else if(count>5&&count<=10) {
System.out.println("再接再厉!");
}else {
System.out.println("别灰心,再玩几次吧!");
}
System.out.println("您玩得尽兴嘛?是否继续游戏?(1是/2否)");
int result=input.nextInt();
if(result==1) {
num=rd.nextInt(100)+1;
count=1;
}else {
System.out.println("**********您已退出游戏**********");
break;
}
}
}
}
}
}
图4-2 猜数字游戏运行界面展示
5 系统测试
1、算法运算测试中主要对生成题目、计算分数、查看分数的功能模块进行测试,测试结果如表5-1所示。
表5-1 算法运算测试表
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
1 |
随机生成题目功能 |
1. 运行程序 2. 自动生成三个随机数,组成题目 |
可以生成题目 |
正常,与预期结果一致 |
2 |
计分功能 |
1.输入您的计算结果 2系统判断对错 3.答对加一分,答错不得分 |
可以计分 |
正常,与预期结果一致 |
3 |
查看分数 |
1.将分数保存到文件 2.打开文件可查看到分数 |
可以看到分数 |
正常,与预期结果一致 |
算法运算测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
2、猜数游戏中主要对生成随机数、给予评语、循环游戏的功能模块进行测试,测试结果如表5-2所示。
表5-2 猜数游戏测试表
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
1 |
随机生成一个1-100之间的数 |
1.运行程序 2.自动生成一个百内随机数 |
可以生成随机数 |
正常,与预期结果一致 |
2 |
给与评语功能 |
根据您的猜数次数,给出相应评语 |
可以给予评语 |
正常,与预期结果一致 |
3 |
循环游戏功能 |
用户输入1或2来决定是否继续游戏,1是继续,2是退出 |
可以循环游戏 |
正常,与预期结果一致 |
猜数游戏主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
6 结论和心得
心得:
Java学*已经*4个月了,虽然很累,但是觉得学*Java非常充实。通过此次课程设计,我更加深刻的理解了Java程序设计语言的魅力,并且对学*Java有了一些深刻的体会。
Java虽说是一门语言但不同的是它是一门计算机语言,但也同样是人类发明的语言,就像我们学*母语一样,我们要认真地对待它,使用它,熟透它,我相信我们一定能够很好的运用它。相信自己,就是胜利。
还要感谢老师对自己的教导,每次遇到问题,老师都会耐心地为我解答。