您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页JAVA课程设计

JAVA课程设计

来源:纷纭教育


《JAVA2实用教程》 课程设计报告

课程设计题目:

简单的计算器

姓名:冯时

专业:信息管理与信息系统 班级:083222 学号: 08322205 指导老师:姜俊坡

2011年11月7日

目录

一、概要设计说明 ................................................................................................ 4

1.1系统现状 .................................................................................................. 4 1.2用户需求 .................................................................................................. 4 1.3系统概要设计 .......................................................................................... 4

1.3.1学生功能区 ................................................ 错误!未定义书签。 1.3.2管理员功能区 ............................................ 错误!未定义书签。

二、总体设计分析 ................................................................................................ 4

2.1 登录身份为管理员 ............................................ 错误!未定义书签。 2.2 登录身份为普通用户 ............................................................................. 4 三、各模块实现方法 ............................................................................................ 6

3.1 系统设置模块 ......................................................................................... 6 四、程序设计分析 ............................................................. 错误!未定义书签。

4.1 业务流程图 .......................................................... 错误!未定义书签。 4.2 数据流图 .............................................................. 错误!未定义书签。

4.2.1 顶层数据流图 ......................................... 错误!未定义书签。 4.2.2 0层数据流图 .......................................... 错误!未定义书签。 4.2.3 1层数据流图 .......................................... 错误!未定义书签。 4.3 数据字典 .............................................................. 错误!未定义书签。

4.3.1 数据流条目 ............................................. 错误!未定义书签。 4.3.2 数据项条目 ............................................. 错误!未定义书签。 4.3.3 数据存储条目 ......................................... 错误!未定义书签。 4.3.4 加工条目 ................................................. 错误!未定义书签。 4.4 系统设置子系统数据库设计 .............................. 错误!未定义书签。

4.4.1 用户信息实体集 E-R图 ........................ 错误!未定义书签。 4.4.2 用户信息子系统的数据库模式 ............. 错误!未定义书签。

五、程序源代码 .................................................................................................... 6

5.1 用户增加 ................................................................................................. 7 5.2 修改密码 ................................................................................................. 7 5.3 删除用户 ................................................................................................. 7 5.4 浏览用户 ................................................................................................. 7 5.5 登录 ......................................................................................................... 8 六、程序运行结果及系统使用说明 .................................................................. 15 七、心得体会 ...................................................................................................... 18

3

一、概要设计说明

1.1软件现状

日常生活中,计算器的使用有时候是很必要的,在计算两个比较复杂的数据的时候,人们往往很容易联想到使用计算器,这个计算器的设计虽然简单,但是也有算起来几个比较麻烦的功能,大大方便了用户的计算需求。

本软件使用JAVA为开发基础,使得小数、整数之间的计算变得轻松;本软件不涉及数据库的代码,对硬件配置要求比较低,并且运算速度也比较快。

1.2用户需求

本软件可以实现两个数据之间的各种算法(不支持字母之间的运算)。其操作简单安全,从而有效地提高了工作效率和质量。

(1)两个数据之间的加法(可以运算小数) (2)两个数据之间的减法(可以运算小数) (3)两个数据之间的乘法(可以运算小数) (4)两个数据之间的除法(可以运算小数) (5)倒数运算(1/x) (6)阶乘运算

(7)运算完加减法之后只要不输入“exit”退出就能一直计算下去

总之,通过本系统的开发,用户可以实现得数在“10的-308次方~10的308次方”的两个数之间的运算。

1.3系统概要设计

根据不同的用户,本章所介绍的成绩查询系统可以分为6个功能区。即加、减、乘、除、倒数、阶乘6个功能

二、总体设计分析

2.1软件中所有模块

本软件总体可以分为7个模块,实现7中算法功能,其中除法中已经定义除数不能为0,阶乘中数字不能为小数,倒数中数字不能为0。总体软件设计的模块图如2.1所示:

4

输入一个数字 加法 减法 乘法 除法 阶乘 倒数 M+- 输入第二个数字 输出结果 回车 5

三、各模块实现方法

3.1 加法模块

首先,用户必须输入一个数,可以是整型、浮点型,在选择算法的时候选择加法运算,然后再输入一个数,计算器就会计算这两个数之间的和。

3.2 减法模块

首先,用户必须输入一个数,可以是整型、浮点型,在选择算法的时候选择减法运算,然后再输入一个数,计算器就会计算这两个数之间的差。

3.3 乘法模块

首先,用户必须输入一个数,可以是整型、浮点型,在选择算法的时候选择乘法运算,然后再输入一个数,计算器就会计算这两个数之间的积。

3.4 除法模块

首先,用户必须输入一个数,可以是整型、浮点型,在选择算法的时候选择除法运算,然后再输入一个数,计算器就会计算这两个数之间的商。要是输入的第二个数是0,程序会出现提示。

3.5 阶乘模块

用户输入一个数,在选择算法的时候选择阶乘选项,如果用户输入的是正整数,就会输出该正整数的阶乘。否则软件会提示错误。

3.6 倒数模块

用户输入一个数,在选择算法的时候选择倒数选项,如果用户输入的数不是0,就会输出该数的倒数,否则软件会提示错误。

3.7 M+、M-模块

用户输入一个数,选择算法是选择M+或者M-选项,在得出结果后,按回车键系统会将得出的结果以相同的方法在进行一次计算,直至用户输入exit后结束。

系统设置模块主要实现的是登录的功能,分为管理员登录和学生登录。首先用户会看到一个登录的界面,输入帐号密码以、选择登录的身份后点击登录,验证密码通过以后就可以进入主界面了,密码错误会提示错误信息。

四、程序源代码

系统设置子系统代码:

6

5.1 两数相加

class jiafa implements ysf//加法运算 { public double fun(double x,double y) { returnx+y; } }

5.2 两数相减

class jianfa implements ysf//减法运算 { public double fun(double x,double y) { return x-y; } }

5.3 两数相乘

class chengfa implements ysf//乘法运算 { public double fun(double x,double y) { return x*y; } }

5.4 两数相除

class chufa implements ysf//除法运算 { public double fun(double x,double y) { try { return x/y; } catch(Exception e) { System.out.println(\"除数不能为0\"); return 0;

7

}

}

}

5.5 阶乘

class jiecheng implements ysf//阶乘运算 { public double fun(double x,double y) { y=1; for(int i=1;i<=x;i++) { y=y*i; } return y; } }

5.6 倒数

class daoshu implements ysf//倒数运算 { public double fun(double x,double y) { return 1/x; } }

5.7 M+

class zhijia implements ysf//M+运算 { public double fun(double x,double y) { Scanner sc=new Scanner(System.in); String back=\"\"; do{ back=sc.nextLine(); x=x+y; System.out.println(x); }while(!\"exit\".equals(back)); return x; }

8

}

5.8 M-

class zhijian implements ysf//M-运算 { public double fun(double x,double y) { Scanner sc=new Scanner(System.in); String back=\"\"; do{ back=sc.nextLine(); x=x-y; System.out.println(x); }while(!\"exit\".equals(back)); return x; } }

5.9 整体代码

importjava.util.Scanner;

interface ysf//定义一个运算符接口 { double fun(double x,double y);//两个数之间的运算 }

classfs { public static void main(String arg[]) { double x=0; double y=0; String gl=\"y\"; Scanner sc=new Scanner(System.in); while(\"y\".equals(gl)) { shurusr=new shuru(); x=sr.shu(); System.out.println(\"是否归0?:'y' or 'n'\"); System.out.println(\"除y意外所有按键均视为n\"); gl=sc.nextLine(); } intsuanfa;//定义一个算法的变量

9

System.out.print(\"请选择运算符:1.加法 2.减法 3.乘法 4.除法 5.阶乘 6.倒数 7.M+ 8.M-\"); suanfa=sc.nextInt(); switch(suanfa) { case 1: System.out.print(\"请再输入一个数:\"); try { y=sc.nextDouble(); } catch(Exception e) { System.out.println(\"悟空,你又调皮了。。\"); } jiafajia=new jiafa(); System.out.println(jia.fun(x,y)); break; case 5: if(x==(int)x&&x!=0) { jiechengjc=new jiecheng(); System.out.println(jc.fun(x,y)); } else System.out.println(\"骚瑞,不能输出结果\"); break; case 2: System.out.print(\"请再输入一个数:\"); try { y=sc.nextDouble(); } catch(Exception e) { System.out.println(\"悟空,你又调皮了。。\"); } jianfajian=new jianfa(); System.out.println(jian.fun(x, y)); break; case 3: System.out.print(\"请再输入一个数:\"); try {

10

y=sc.nextDouble(); } catch(Exception e) { System.out.println(\"悟空,你又调皮了。。\"); } chengfacheng=new chengfa(); System.out.println(cheng.fun(x, y)); break; case 4: System.out.print(\"请再输入一个数:\"); try { y=sc.nextDouble(); } catch(Exception e) { System.out.println(\"悟空,你又调皮了。。\"); } chufachu=new chufa(); System.out.println(chu.fun(x, y)); break; case 6: if (x==0) { System.out.println(\"0木有倒数\"); break; } daoshudao=new daoshu(); System.out.println(dao.fun(x, y)); break; case 7: System.out.print(\"请再输入一个数:\"); try { y=sc.nextDouble(); } catch(Exception e) { System.out.println(\"悟空,你又调皮了。。\"); } zhijiaMjia=new zhijia(); System.out.println(Mjia.fun(x,y)); break;

11

case 8: System.out.print(\"请再输入一个数:\"); try { y=sc.nextDouble(); } catch(Exception e) { System.out.println(\"悟空,你又调皮了。。\"); } zhijianMjian=new zhijian(); System.out.println(Mjian.fun(x,y)); break; default: System.out.println(\"系统正在升级,即将退出此算法\"); } } }

class jiafa implements ysf//加法运算 { public double fun(double x,double y) { returnx+y; } }

class jiecheng implements ysf//阶乘运算 { public double fun(double x,double y) { y=1; for(int i=1;i<=x;i++) { y=y*i; } return y; } }

class jianfa implements ysf//减法运算 { public double fun(double x,double y) {

12

return x-y; } }

class chengfa implements ysf//乘法运算 { public double fun(double x,double y) { return x*y; } }

class chufa implements ysf//除法运算 { public double fun(double x,double y) { try { return x/y; } catch(Exception e) { System.out.println(\"除数不能为0\"); return 0; } } }

class daoshu implements ysf//倒数运算 { public double fun(double x,double y) { return 1/x; } }

class zhijia implements ysf//M+运算 { public double fun(double x,double y) { Scanner sc=new Scanner(System.in); String back=\"\"; do{ back=sc.nextLine();

13

x=x+y; System.out.println(x); }while(!\"exit\".equals(back)); return x; } }

class zhijian implements ysf//M-运算 { public double fun(double x,double y) { Scanner sc=new Scanner(System.in); String back=\"\"; do{ back=sc.nextLine(); x=x-y; System.out.println(x); }while(!\"exit\".equals(back)); return x; } }

classshuru { doubleshu() { double x=0; Scanner sc=new Scanner(System.in); System.out.print(\"请输入一个数:\"); try { x=sc.nextDouble(); System.out.println(x); } catch(Exception e) { System.out.println(\"悟空,你又调皮了。。\"); } return x; } }

14

六、程序运行结果及系统使用说明

图6.0输入第一个数

图6.1询问是否归0

15

图6.2选择算法

图6.3输入另一个数

16

图6.4输出结果后退出

图6.5阶乘运算

17

图6.6 倒数运算

七、心得体会

这个软件感觉比较简单,但是已经进了自己最大的努力了,最可惜的地方应该就是这个计算器连个图形界面都没有。通过此次的课程设计我深刻的认识到了JAVA是博大精深的,根本不可能在短短的一个学期之内完整的学习完,对于我们这种从事软件行业的人来说,JAVA的学习是很重要的,这段238行的代码虽然不算什么,但是完完全全都是我一个字一个字敲出来的,我还是感到比较自豪。但是这里面用到的高深的技术实在是太少了,还有很多东西值得我去学习。这次课程设计给我的感觉很充实,基本上把本学期学习的JAVA有重新复习了一遍。

18

东华理工大学长江学院

课程设计评分表

学生姓名:冯时班级:083222 学号:08322205 课程设计题目: 项目内容 能结合所学课程知识、有一定的能力训练。符合选题要求 (5人一题) 工作量适中,难易度合理 能熟练应用所学知识,有一定查阅文献及运用文献资料能力 能 力 水 平 理论依据充分,数据准确,公式推导正确 能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等 能体现创造性思维,或有独特见解 总体设计正确、合理,各项技术指标符合要求。 成 果 质 量 说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰 设计说明书栏目齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合国家标准 有一定篇幅,字符数不少于5000 指导教师评语: 指导教师签名: 年月日

总分 满分 10 10 10 10 10 10 10 10 10 10 100 实评 选 题 19

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务