zoukankan      html  css  js  c++  java
  • 20150401 作业2 结对 四则运算ver 1.0

    Web項目下 Tomcat服務器的路徑 /WebContant/ 目錄下

    SE2_2.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html class="no-js">
    <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge; charset=UTF-8">
    <meta name="description" content="">
    <meta name="keywords" content="">
    <meta name="viewport"
        content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="icon" type="image/png"
        href="https://lh6.googleusercontent.com/-xtIe5pwl_0Y/VQk1jMCNZZI/AAAAAAAAADo/Hc_21K6mVr8/s578-no/%E7%90%AA%E9%9C%B2%E8%AF%BA%E5%A4%B4%E5%83%8F.jpg">
    <title>小學四則運算</title>
    <link rel="stylesheet"
        href="http://cdn.amazeui.org/amazeui/2.2.1/css/amazeui.min.css" />
    <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript"
        src="http://cdn.amazeui.org/amazeui/2.2.1/js/amazeui.min.js"></script>
    
    
    
    
    <!-- cookie 用戶名 -->
    <script type="text/javascript">
        function getCookie(c_name) {
            if (document.cookie.length > 0) {
                c_start = document.cookie.indexOf(c_name + "=")
                if (c_start != -1) {
                    c_start = c_start + c_name.length + 1
                    c_end = document.cookie.indexOf(";", c_start)
                    if (c_end == -1)
                        c_end = document.cookie.length
                    return unescape(document.cookie.substring(c_start, c_end))
                }
            }
            return ""
        }
    
        function setCookie(c_name, value, expiredays) {
            var exdate = new Date()
            exdate.setDate(exdate.getDate() + expiredays)
            document.cookie = c_name
                    + "="
                    + escape(value)
                    + ((expiredays == null) ? "" : "; expires="
                            + exdate.toGMTString())
        }
    
        function checkCookie() {
            username = getCookie('username')
            if (username != null && username != "") {
                alert('歡迎你的到來,' + username + '!')
            } else {
                username = prompt('請輸入用戶名:', "")
                if (username != null && username != "") {
                    setCookie('username', username, 3)
                }
            }
        }
    </script>
    </head>
    <body class="am-g" style="text-align: center" onload="checkCookie()">
        <h1 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">小學四則運算系統 ver1.0</h1>
        <!--設置 背景色  功能-->
        <h2 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">設置背景顏色</h2>
        <div class="am-u-lg-6 am-u-md-8 am-u-sm-centered">
            <div id="color" class="am-btn-group doc-js-btn-1" data-am-button>
                <label class="am-btn am-btn-default"> <input type="radio"
                    name="options" value="white" id="option1"> 白色
                </label> <label class="am-btn am-btn-primary"> <input type="radio"
                    name="options" value="#0e90d2" id="option2"> 藍色
                </label> <label class="am-btn am-btn-secondary"> <input type="radio"
                    name="options" value="#3bb4f2" id="option3"> 淡藍色
                </label> <label class="am-btn am-btn-success"> <input type="radio"
                    name="options" value="#5eb95e" id="option4"> 綠色
                </label> <label class="am-btn am-btn-warning"> <input type="radio"
                    name="options" value="#f37b1d" id="option5"> 橙色
                </label> <label class="am-btn am-btn-danger"> <input type="radio"
                    name="options" value="#dd514c" id="option6"> 紅色
                </label>
            </div>
            <hr data-am-widget="divider" style=""
                class="am-divider am-divider-default" />
        </div>
        <script type="text/javascript">
            // 获取选中的值
            $(document).ready(
                    function() {
                        $(function() {
                            var $radios = $('[name="options"]');
                            $radios.on('change', function() {
                                console.log('单选框当前选中的是:', $radios
                                        .filter(':checked').val());
                            });
                        });
    
                        $("#color").click(
                                function() {
                                    $("body").css(
                                            "background-color",
                                            $('input[name="options"]').filter(
                                                    ':checked').val());
                                });
                    });
        </script>
    
    
    
    
    
        <!-- 設置 題目 數量 -->
        <form name="form" class="am-form-inline" role="form" action="SE2_1.jsp"
            method="post">
            <div class="am-form-group">
                <span>請輸入題目數量:</span> <input name="number" type="number" min="1"
                    max="5" class="am-form-field" placeholder="題數">
            </div>
            <button type="submit" class="am-btn am-btn-default">確定</button>
        </form>
    </body>
    </html>
    View Code

    SE2_1.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="com.SE2.*"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html class="no-js">
    <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge; charset=UTF-8">
    <meta name="description" content="">
    <meta name="keywords" content="">
    <meta name="viewport"
        content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="icon" type="image/png"
        href="https://lh6.googleusercontent.com/-xtIe5pwl_0Y/VQk1jMCNZZI/AAAAAAAAADo/Hc_21K6mVr8/s578-no/%E7%90%AA%E9%9C%B2%E8%AF%BA%E5%A4%B4%E5%83%8F.jpg">
    <title>小學四則運算</title>
    <link rel="stylesheet"
        href="http://cdn.amazeui.org/amazeui/2.2.1/css/amazeui.min.css" />
    <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript"
        src="http://cdn.amazeui.org/amazeui/2.2.1/js/amazeui.min.js"></script>
    
    
    
    
    
    <!-- 延時 計時 功能 -->
    <script type="text/javascript">
        var c = 120
        var t
        function timedCount() {
            document.getElementById('txt').value = c
            c = c - 1
            if (c == 0) {
                document.getElementById('txt').value = c
                clearTimeout(t)
                alert('120秒到了!')
            } else
                t = setTimeout("timedCount()", 1000)
        }
        function gettime(){
            document.getElementById('time').value = 120-c;
        }
    </script>
    </head>
    <body class="am-g" style="text-align: center" onload="timedCount()">
        <h1 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">小學四則運算系統 ver1.0</h1>
        <!--設置 背景色  功能-->
        <h2 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">設置背景顏色</h2>
        <div class="am-u-lg-6 am-u-md-8 am-u-sm-centered">
            <div id="color" class="am-btn-group doc-js-btn-1" data-am-button>
                <label class="am-btn am-btn-default"> <input type="radio"
                    name="options" value="white" id="option1"> 白色
                </label> <label class="am-btn am-btn-primary"> <input type="radio"
                    name="options" value="#0e90d2" id="option2"> 藍色
                </label> <label class="am-btn am-btn-secondary"> <input type="radio"
                    name="options" value="#3bb4f2" id="option3"> 淡藍色
                </label> <label class="am-btn am-btn-success"> <input type="radio"
                    name="options" value="#5eb95e" id="option4"> 綠色
                </label> <label class="am-btn am-btn-warning"> <input type="radio"
                    name="options" value="#f37b1d" id="option5"> 橙色
                </label> <label class="am-btn am-btn-danger"> <input type="radio"
                    name="options" value="#dd514c" id="option6"> 紅色
                </label>
            </div>
            <hr data-am-widget="divider" style=""
                class="am-divider am-divider-default" />
        </div>
        <script type="text/javascript">
            // 获取选中的值
            $(document).ready(
                    function() {
                        $(function() {
                            var $radios = $('[name="options"]');
                            $radios.on('change', function() {
                                console.log('单选框当前选中的是:', $radios
                                        .filter(':checked').val());
                            });
                        });
    
                        $("#color").click(
                                function() {
                                    $("body").css(
                                            "background-color",
                                            $('input[name="options"]').filter(
                                                    ':checked').val());
                                });
                    });
        </script>
    
    
    
    
        <!-- javabean -->
        <jsp:useBean id="SE2_1" class="com.SE2.SE2_1" scope="request" />
    
    
    
    
    
        <!-- 延時 功能-->
        <div id="count">
            <span>算題時間倒計時:</span> <input id="txt" type="button"
                class="am-btn am-btn-danger" disabled="disabled" />
        </div>
        <hr data-am-widget="divider" style=""
            class="am-divider am-divider-default" />
        <%
                String number=request.getParameter("number");
                String [] num={"①","②","③","④","⑤"};
                int inumber=Integer.parseInt(number);
                double [][] Answer=new double[inumber][2];
                String [] str=new String[inumber];
                String [] s=new String[inumber];
                String [] an=new String[inumber];
                String [] t=new String[inumber];
                for(int i=0;i<inumber;i++){
                    s[i]="Answer"+String.valueOf(i);
                    an[i]="an"+String.valueOf(i);
                    t[i]="title"+String.valueOf(i);
                }
                //out.print(number+"<br />");
                for(int i=0;i<inumber;i++){
                    SE2_1.GA();
                    Answer[i][0]=SE2_1.getdaan9number();
                    Answer[i][1]=SE2_1.getdaan12();
                    str[i]=SE2_1.getshizi9();
                    //out.print(str[i]);
                    //out.print(Answer[i][0]+"四捨五入答案"+Answer[i][1]+"<br />");
                }
                %>
        <div class="am-u-lg-6 am-u-md-8 am-u-sm-centered">
            <form class="am-form am-form-horizontal" action="SE2_3.jsp" method="post" >
    
                <% for(int i=0;i<inumber;i++){%>
                <div class="am-form-group">
                    <label class="am-u-sm-1 am-form-label"><%=num[i] %></label><label for="doc-ipt-3" class="am-u-sm-8 am-form-label"><%out.print(str[i]); %></label>
                    <div class="am-u-sm-3">
                        <input type="text" name="<%=an[i] %>" id="doc-ipt-3" placeholder="输入答案">
                    </div>
                </div>
                <div class="am-form-group">
                    <div class="am-u-sm-offset-2 am-u-sm-10"></div>
                </div>
                <%} %>
                <div class="am-form-group">
                    <div class="am-u-sm-10 am-u-sm-offset-2">
                        <button type="submit" class="am-btn am-btn-primary" onclick="gettime()">提交</button>
                    </div>
                </div>
                <input type="hidden" name="inumber" value="<%=inumber%>"/>
                <%
                for(int i=0;i<inumber;i++){
                %>
                <input type="hidden" name="<%=t[i] %>" value="<%=str[i] %>" />
                <input type="hidden" name="<%=s[i] %>" value="<%=Answer[i][0] %>"/>
                <%} %>
                <input id="time" type="hidden" name="time" value="" />
            </form>
        </div>
    </body>
    </html>
    View Code

    SE2_3.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="com.SE2.*"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html class="no-js">
    <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge; charset=UTF-8">
    <meta name="description" content="">
    <meta name="keywords" content="">
    <meta name="viewport"
        content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="icon" type="image/png"
        href="https://lh6.googleusercontent.com/-xtIe5pwl_0Y/VQk1jMCNZZI/AAAAAAAAADo/Hc_21K6mVr8/s578-no/%E7%90%AA%E9%9C%B2%E8%AF%BA%E5%A4%B4%E5%83%8F.jpg">
    <title>小學四則運算</title>
    <link rel="stylesheet"
        href="http://cdn.amazeui.org/amazeui/2.2.1/css/amazeui.min.css" />
    <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript"
        src="http://cdn.amazeui.org/amazeui/2.2.1/js/amazeui.min.js"></script>
        <style type="text/css">
         th{ 
            text-align:center
         }
        </style>
    </head>
    <body class="am-g" style="text-align: center">
        <h1 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">小學四則運算系統 ver1.0</h1>
        <!--設置 背景色  功能-->
        <h2 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">設置背景顏色</h2>
        <div class="am-u-lg-6 am-u-md-8 am-u-sm-centered">
            <div id="color" class="am-btn-group doc-js-btn-1" data-am-button>
                <label class="am-btn am-btn-default"> <input type="radio"
                    name="options" value="white" id="option1"> 白色
                </label> <label class="am-btn am-btn-primary"> <input type="radio"
                    name="options" value="#0e90d2" id="option2"> 藍色
                </label> <label class="am-btn am-btn-secondary"> <input type="radio"
                    name="options" value="#3bb4f2" id="option3"> 淡藍色
                </label> <label class="am-btn am-btn-success"> <input type="radio"
                    name="options" value="#5eb95e" id="option4"> 綠色
                </label> <label class="am-btn am-btn-warning"> <input type="radio"
                    name="options" value="#f37b1d" id="option5"> 橙色
                </label> <label class="am-btn am-btn-danger"> <input type="radio"
                    name="options" value="#dd514c" id="option6"> 紅色
                </label>
            </div>
            <hr data-am-widget="divider" style=""
                class="am-divider am-divider-default" />
        </div>
        <script type="text/javascript">
            // 获取选中的值
            $(document).ready(
                    function() {
                        $(function() {
                            var $radios = $('[name="options"]');
                            $radios.on('change', function() {
                                console.log('单选框当前选中的是:', $radios
                                        .filter(':checked').val());
                            });
                        });
    
                        $("#color").click(
                                function() {
                                    $("body").css(
                                            "background-color",
                                            $('input[name="options"]').filter(
                                                    ':checked').val());
                                });
                    });
        </script>
    
    
    
    
        
        <!-- javabean -->
        <jsp:useBean id="SE2_1" class="com.SE2.SE2_1" scope="request" />
        <%
            String inumber=request.getParameter("inumber");
            String time=request.getParameter("time");
            int number=Integer.parseInt(inumber);
            String []Answer=new String[number];
            String []input=new String[number];
            String []title=new String[number];
            for(int i=0;i<Answer.length;i++){
                    title[i]=request.getParameter("title"+i);
                    input[i]=request.getParameter("an"+i);
                    Answer[i]=request.getParameter("Answer"+i);
                    SE2_1.setshuru(input[i]);
                    SE2_1.Input(input[i]);
            }
            int zhengque=SE2_1.panduan(input,Answer);
            int cuowu=number-zhengque;
            double rate=(double)zhengque/number*100;
        %>
        <div class="am-u-lg-6 am-u-md-8 am-u-sm-centered">
            <h1 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">對照答案</h1>
            <table
                class="am-table am-table-bordered am-table-striped am-table-hover">
                <thead>
                    <tr>
                    <th>題目</th>
                    <th>你的輸入</th>
                    <th>參考答案</th>
                    </tr>
                </thead>
                <tbody>
                <%for(int i=0;i<number;i++){ %>
                    <tr>
                        <td><%=title[i] %></td>
                        <td><%=input[i] %></td>
                        <td><%=Answer[i] %><br />四捨五入後:<%=SE2_1.strto12(Answer[i]) %></td>
                    </tr>
                    <%} %>
                </tbody>
            </table>
        </div>
        <div class="am-u-lg-6 am-u-md-8 am-u-sm-centered">
            <h1 class="am-u-lg-6 am-u-md-8 am-u-sm-centered">分數統計</h1>
            <table
                class="am-table am-table-bordered am-table-striped am-table-hover">
                <tbody>
                    <tr>
                        <td>總共</td>
                        <td><%=inumber %>題</td>
                    </tr>
                    <tr>
                        <td>正確情況</td>
                        <td>答對<%=zhengque %>題,答錯<%=cuowu %>題</td>
                    </tr>
                    <tr>
                        <td>正確率</td>
                        <td><%=rate%>%</td>
                    </tr>
                    <tr>
                        <td>用時</td>
                        <td><%=time %>秒</td>
                    </tr>
                </tbody>
            </table>
        </div>
        <button type="button" class="am-btn am-btn-default"><a class="am-btn am-btn-link" href="SE2_2.jsp">繼續答題</a></button>
    </body>
    </html>
    View Code

    Web項目下 /src/com.SE2/

    SE2_1.java

    package com.SE2;
    
    import java.util.ArrayList;
    import java.util.Random;
    
    public class SE2_1 {// Software Engineering 軟件工程 作業2
        static String jia = "+";
        static String jian = "-";
        static String cheng = "*";
        static String chu = "/";
        String shizi9 = null;
        RN daan9;
        double daan12;
        String shuru;
        double shuruZH;
        int zhengque, cuowu;
    
        public double strto12(String daan) {
            return Math.round(Double.parseDouble(daan) * 100) / 100.0;
        }
    
        public int panduan(String[] input, String[] Answer) {
            int count = 0;
            for (int i = 0; i < Answer.length; i++) {
                if (Double.parseDouble(input[i]) == Double.parseDouble(Answer[i])
                        || Double.parseDouble(input[i]) == Math.round(Double
                                .parseDouble(Answer[i]) * 100) / 100.0)
                    count++;
            }
            return count;
        }
    
        public void setcuowu(int cuowu) {
            this.cuowu = cuowu;
        }
    
        public void setzhengque(int zhengque) {
            this.zhengque = zhengque;
        }
    
        public int getcuowu() {
            return cuowu;
        }
    
        public int getzhengque() {
            return zhengque;
        }
    
        public boolean panduandaan() {
            if (daan9.getSign() == 0
                    && (getshuruZH() == getdaan9number() || getshuruZH() == getdaan12()))
                return true;
            else if (daan9.getSign() == 2 && getshuruZH() == getdaan9number())
                return true;
            else
                return false;
        }
    
        public void setshuru(String shuru) {
            this.shuru = shuru;
        }
    
        public String getshuru() {
            return shuru;
        }
    
        public double str_daanTodouble_daan12(String daan) {
            return 1;// !!!
        }
    
        public void setshuruZH() {
            shuruZH = Input(getshuru()).getNumber();
        }
    
        public double getshuruZH() {
            return shuruZH;
        }
    
        public void setshizi9(String shizi) {
            shizi9 = shizi;
        }
    
        public String getshizi9() {
            return shizi9;
        }
    
        public void setdaan12byStr(String daan) {
            daan12 = Math.round(Double.parseDouble(daan) * 100) / 100.0;
        }
    
        public void setdaan12(double daan) {
            daan12 = Math.round(daan * 100) / 100.0;
        }
    
        public double getdaan12() {
            return daan12;
        }
    
        public void setdaan9(RN daan) {
            daan9 = daan;
            setdaan12(daan9.getNumber());
        }
    
        public RN getdaan9() {
            return daan9;
        }
    
        public double getdaan9number() {
            return daan9.getNumber();
        }
    
        public RN Input(String input) {
            RN temp = this.new RN();
            if (input.contains("/")) {
                temp.setMolecular(Integer.parseInt(input.substring(0,
                        input.indexOf("/"))));
                temp.setDenominator(Integer.parseInt(input.substring(input
                        .indexOf("/") + 1)));
                temp.setSign(2);
            } else {
                temp.setDecimal(Double.parseDouble(input));
                temp.setSign(0);
            }
            return temp;
        }
    
        public double jiechengdaan(int n, double all) {
            if (n < 0)
                return 0;
            else if (n == 0)
                return 1;
            else if (n == 1)
                return all;
            else
                return jiechengdaan(n - 1, n * all);
        }
    
        public double jiecheng() {
            int jiecheng = new Random().nextInt(10);
            System.out.print(jiecheng + "!=");
            return jiechengdaan(jiecheng, 1);
        }
    
        public void fangfa(ArrayList<String> A, ArrayList<RN> O, String what) {
            int index = A.indexOf(what);
            // System.out.println(O.get(index).getNumber() + what
            // + O.get(index + 1).getNumber() + "="
            // + (O.get(index).getNumber() * O.get(index + 1).getNumber()));
            if (what.equals(cheng)) {
                O.set(index, new RN(O.get(index).getNumber()
                        * O.get(index + 1).getNumber(), 0));
            } else if (what.equals(chu)) {
                O.set(index, new RN(O.get(index).getNumber()
                        / O.get(index + 1).getNumber(), 0));
            } else if (what.equals(jia)) {
                O.set(index, new RN(O.get(index).getNumber()
                        + O.get(index + 1).getNumber(), 0));
            } else {
                O.set(index, new RN(O.get(index).getNumber()
                        - O.get(index + 1).getNumber(), 0));
            }
            // System.out.println("here set " + O.get(index).getNumber() + " at "
            // + index);
            // System.out.println("here remove " + O.get(index + 1).getNumber()
            // + " from " + (index + 1) + " and remove " + A.get(index)
            // + " from " + index);
            O.remove(index + 1);
            A.remove(index);
        }
    
        public RN getAnswer(RN[] Operand, String[] AS) {
            ArrayList<String> A = new ArrayList<String>();
            ArrayList<RN> O = new ArrayList<RN>();
            System.out.println();
            for (String as : AS) {
                A.add(as);
                // System.out.print(as + "  ");
            }
            System.out.println();
            for (RN op : Operand) {
                O.add(op);
                // System.out.print(op.getNumber() + "  ");
            }
            System.out.println();
            while (A.get(0) != "=") {
                if (A.contains(cheng) || A.contains(chu)) {
                    if (((A.contains(cheng) ^ A.contains(chu)) == true ? (A
                            .contains(cheng) == true ? true : false) : (A
                            .indexOf(cheng) < A.indexOf(chu) ? true : false)))
                        fangfa(A, O, cheng);
                    else
                        fangfa(A, O, chu);
                } else if (A.contains(jia) || A.contains(jian)) {
                    if (((A.contains(jia) ^ A.contains(jian)) == true ? (A
                            .contains(jia) == true ? true : false) : (A
                            .indexOf(jia) < A.indexOf(jian) ? true : false)))
                        fangfa(A, O, jia);
                    else
                        fangfa(A, O, jian);
    
                } else
                    System.out.println("error!!");
                O.trimToSize();
                A.trimToSize();
            }
            return O.get(0);
        }
    
        // public RN GA(int number) {// Generation algorithm 生成算式
        // RN[] Operand = new RN[number];
        // String[] AS = new String[number];
        // AS[number - 1] = "=";
        // for (int i = 0; i < number; i++) {// 生成 number 个操作数
        // Operand[i] = new RN();
        // switch (new Random().nextInt(2) + 1) {// 這裏設置了Int(2)+1略過 小數
        // // ifInt(3)就會出現小數
        // case 0:// 小数[0~1.0) *100
        // do
        // Operand[i]
        // .setDecimal(((int) (new Random().nextDouble() * 19900)) / 100.0 - 99);
        // while (Operand[i].getDecimal() == 0);
        // Operand[i].setSign(0);
        //
        // break;
        // case 1:// 整数[0~n)
        // do
        // Operand[i].setInteger(new Random().nextInt(199) - 99);
        // while (Operand[i].getInteger() == 0);
        // Operand[i].setSign(1);
        // break;
        // case 2:// 分数
        // do
        // Operand[i].setMolecular(new Random().nextInt(199) - 99);
        // while (Operand[i].getMolecular() == 0);
        // Operand[i].setDenominator(new Random().nextInt(99) + 1);
        // Operand[i].setSign(2);
        // break;
        // default:
        // System.exit(0);
        // }
        // if (i > 0)
        // switch (new Random().nextInt(4)) {
        // case 0:
        // AS[i - 1] = jia;
        // break;
        // case 1:
        // AS[i - 1] = jian;
        // break;
        // case 2:
        // AS[i - 1] = cheng;
        // break;
        // case 3:
        // AS[i - 1] = chu;
        // break;
        // default:
        // System.exit(0);
        // }
        // }
        // for (int i = 0; i < number; i++)
        // System.out.print((Operand[i].getNumber() < 0 ? "(" : "")
        // + Operand[i].toString()
        // + (Operand[i].getNumber() < 0 ? ")" : "") + " " + AS[i]
        // + " ");
        // return getAnswer(Operand, AS);
        // }
        public void GA() {// Generation algorithm 生成算式
            int number = new Random().nextInt(4) + 2;
            RN[] Operand = new RN[number];
            String[] AS = new String[number];
            AS[number - 1] = "=";
            String shizi2 = "";
            for (int i = 0; i < number; i++) {// 生成 number 个操作数
                Operand[i] = new RN();
                switch (new Random().nextInt(2) + 1) {// 這裏設置了Int(2)+1略過 小數
                // ifInt(3)就會出現小數
                case 0:// 小数[0~1.0) *100
                    do
                        Operand[i]
                                .setDecimal(((int) (new Random().nextDouble() * 19900)) / 100.0 - 99);
                    while (Operand[i].getDecimal() == 0);
                    Operand[i].setSign(0);
    
                    break;
                case 1:// 整数[0~n)
                    do
                        Operand[i].setInteger(new Random().nextInt(199) - 99);
                    while (Operand[i].getInteger() == 0);
                    Operand[i].setSign(1);
                    break;
                case 2:// 分数
                    do
                        Operand[i].setMolecular(new Random().nextInt(199) - 99);
                    while (Operand[i].getMolecular() == 0);
                    Operand[i].setDenominator(new Random().nextInt(99) + 1);
                    Operand[i].setSign(2);
                    break;
                default:
                    System.exit(0);
                }
                if (i > 0)
                    switch (new Random().nextInt(4)) {
                    case 0:
                        AS[i - 1] = jia;
                        break;
                    case 1:
                        AS[i - 1] = jian;
                        break;
                    case 2:
                        AS[i - 1] = cheng;
                        break;
                    case 3:
                        AS[i - 1] = chu;
                        break;
                    default:
                        System.exit(0);
                    }
            }
            for (int i = 0; i < number; i++) {
                // System.out.print((Operand[i].getNumber() < 0 ? "(" : "")
                // + Operand[i].toString()
                // + (Operand[i].getNumber() < 0 ? ")" : "") + " " + AS[i]
                // + " ");
                shizi2 = shizi2.concat((Operand[i].getNumber() < 0 ? "(" : "")
                        + Operand[i].toString()
                        + (Operand[i].getNumber() < 0 ? ")" : "") + " " + AS[i]
                        + " ");
            }
            setshizi9(shizi2);
            setdaan9(getAnswer(Operand, AS));
            // return shizi2;
        }
    
        // public static void main(String[]args){
        // SE2_1 test=new SE2_1();
        // test.GA();
        // System.out.println("式子为:"+test.getshizi9()+"答案为:"+test.getdaan9number()+"四舍五入之后:"+test.getdaan12());
        // }
        // public static void main(String[] args) {
        // SE2_1 test = new SE2_1();
        // Scanner in = new Scanner(System.in);
        // int count = 0;
        // int Num;
        // do {
        // System.out.println("請輸入出題的個數(不超過5):");
        // Num = in.nextInt();
        // } while ((Num > 5 || Num < 1) ? true : false);
        // for (int i = 0; i < Num; i++) {
        // RN Answer = test.GA(new Random().nextInt(4) + 2);// 确定操作数个数 1~5个RN
        // // System.out.println("Answer is:" + Answer.getNumber());
        // RN Input = Input(in.next(), test.new RN());
        // // System.out.println(Input.getNumber());
        // if (Input.getNumber() == Answer.getNumber()
        // || Input.getNumber() == Math
        // .round(Answer.getNumber() * 100) / 100.0) {
        // System.out.println("答對了!");
        // count++;
        // } else
        // System.out.println("答錯了!答案爲:"
        // + Math.round(Answer.getNumber() * 100) / 100.0);
        // }
        // System.out
        // .println("一共" + Num + "道題,答對了" + count + "道題,答錯了"
        // + (Num - count) + "道題,正確率爲:" + (double) count * 100
        // / Num + "%");
        // }
    
        public class F {// Fraction 分數
            int Molecular;// 分子
            int Denominator = 0;// 分母
    
            void setMolecular(int Molecular) {
                this.Molecular = Molecular;
            }
    
            int getMolecular() {
                return Molecular;
            }
    
            void setDenominator(int Denominator) {
                this.Denominator = Denominator;
            }
    
            int getDenominator() {
                return Denominator;
            }
    
            double getAll() {
                return (double) Molecular / Denominator;
            }
    
            public String toString() {
                return Molecular + "/" + Denominator;
            }
        }
    
        public class RN {// Random Number 隨機數
            double Decimal;// 小數
            int Integer;// 整數
            F Fraction = new F();// 分數
    
            int Sign;// 標誌該對象中存儲的是什麼數
    
            public RN() {
    
            }
    
            public RN(double Decimal, int Sign) {
                this.Decimal = Decimal;
                this.Sign = Sign;
            }
    
            void setDecimal(double Decimal) {
                this.Decimal = Decimal;
            }
    
            double getDecimal() {
                return Decimal;
            }
    
            void setInteger(int Integer) {
                this.Integer = Integer;
            }
    
            int getInteger() {
                return Integer;
            }
    
            void setMolecular(int Molecular) {
                this.Fraction.setMolecular(Molecular);
            }
    
            int getMolecular() {
                return this.Fraction.getMolecular();
            }
    
            void setDenominator(int Denominator) {
                this.Fraction.setDenominator(Denominator);
            }
    
            int getDenominator() {
                return this.Fraction.getDenominator();
            }
    
            void setSign(int Sign) {
                this.Sign = Sign;
            }
    
            int getSign() {
                return Sign;
            }
    
            double getNumber() {
                switch (Sign) {
                case 0:
                    return Decimal;
                case 1:
                    return Integer;
                case 2:
                    return Fraction.getAll();
                default:
                    return -1;
                }
            }
    
            public String toString() {
                return Fraction.getDenominator() == 0 ? (Integer == 0 ? Decimal
                        + "" : Integer + "") : Fraction.toString();
            }
        }
    }
    View Code

    程序執行截圖:

    開始界面(第一次進入有提示輸入用戶名)

    提示輸入題量:

    修改背景顏色:

    若輸入的值超過5或小於1,則會出錯:

    出題界面:

    輸入答案:

    提交答案,顯示統計界面:

    开发环境:Eclipse,js,css,html

    程序完成的方向

    1.可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8。
    2.用户答题结束以后,程序可以显示用户答题所用的时间。
    3.用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数。
    4.用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名 。
    5.程序可以出单个整数阶乘的题目:如:4!=24。
    6.程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
    7程序可以设置皮肤功能,可以改变界面的颜色即可。

    结对同伴:

    姓名 学号 博客地址
    叶子鹏 201306114420 http://www.cnblogs.com/kazehanaai/
    王佳宁 201306114434 http://www.cnblogs.com/paopaotai/

    预计用时7天,实际用时6天。

    分工:我:编写主要核心算法。   我的小伙伴:界面的设计排版,提供思路,测试排除错误。

    總結:

    由於時間比較趕,技術還不過關,勉強做出了一點功能,

    其中

    1.階乘功能已經做出,但是還未嵌入.

    2.用戶輸入有效性還沒測試.

    3.括號式子功能還沒弄出來.

    4.java裏面很多沒用的功能和參數或對象都還沒來得及清理出來..請諒解下哈..第一次做想做的模式,不再是java或者C那些了(笑 

    以上是這次作業的成果.還有很多要改善的地方,請加分.謝謝!!有很多不足的地方,還望指教~!

  • 相关阅读:
    从零开始学习Sencha Touch MVC应用之二
    PHPMailer IIS下的PHP脚本使用GMAIL发送邮件PHP
    php群发邮件
    PHP编辑器
    PHP使用GET传输汉字的编码转换
    转一个手机开发的帖子(来自开发者俱乐部)
    Zend_Mail收发smtp(gmail,163)邮件Zend Framework
    just a simple for a mail() amd get array()
    ecshop二次开发 结构分析和代码研究 呵呵
    如何重置Drupal 7的用户密码
  • 原文地址:https://www.cnblogs.com/kazehanaai/p/4410373.html
Copyright © 2011-2022 走看看