四则运算*3

程序设计系思想:

将以前的程连接到数据库,同时数据库里要建好相应的表,一个为存储算式的,一个为存储答对和打错的题的编号的.

源代码:(部分功能未实现)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

import javax.swing.plaf.synth.SynthSpinnerUI;

import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;







public class Lianxi {
static int aaa=0;
static int bbb;
int ccc;
int ddd;
static Connection ConnectiondbConn;
        static void sql()//连接数据库

        {
        
             String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";

              String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=Text";

              String userName="sa";

              String userPwd="20153121";

              try

              {

               Class.forName(driverName);

               ConnectiondbConn = DriverManager.getConnection(dbURL,userName,userPwd);
             
                

              }

              catch(Exception e)

              {

               e.printStackTrace();

              

              }    
            
            
            
            
        }
    
        static void insert(String ge ,String suan) throws SQLException//想数据库插入数据
        {if(suan!=null){
            sql();
            Statement statement=ConnectiondbConn.createStatement();
             String sql="insert into Grade( 题 ) values('"+suan+"')";
            
             statement.executeLargeUpdate(sql);
        }
        }
        
        
        static void inser(String ge ,int i,String suan) throws SQLException//想数据库插入数据
        {
            
            sql();
            if(suan!=null){
            Statement statement=ConnectiondbConn.createStatement();
            // String sql="insert into Grade("+ge+") values("+i+")";
            // String sql="update Grade set "+ge+"= "+i+" where 题='"+suan+"'";
                String sql="select count *from Grade";
                
             statement.executeLargeUpdate(sql);
        }
            }
        
        
        
        
        
        static void suan(int fanwei,int fanwei1,int  zhichi) throws SQLException{//整数 
        int i,j,k,l,z = 0;
        String haha = null;
        int sum = 0;
        int sum1 = 0;
        Scanner in=new Scanner(System.in);
        
        i=(int)(Math.random()*fanwei1);
        
        j=(int)(Math.random()*fanwei1);
        
        if(i<fanwei){suan(fanwei,fanwei1,zhichi);}
        if(j<fanwei){suan(fanwei,fanwei1,zhichi);}
        if(zhichi==2)k=(int)(Math.random()*2);
        
        else k=(int)(Math.random()*4);
        if(k==0){sum=i+j;
        
        haha=(i+"+"+j+"=");
        
        
        System.out.print(i+"+"+j+"=");}//加法
        
        if(k==1){
            int a;
            if(i<=j){a=i;i=j;j=a;}
            sum=i-j;
            haha=(i+"-"+j+"=");
            
        System.out.print(i+"-"+j+"=");}//减法
        
        
        
        
        if(k==2){sum=i*j;
        haha=(i+"*"+j+"=");
        
        System.out.print(i+"*"+j+"=");}//乘法
        
        if(k==3){if(j!=0){sum1=i%j;//余数
        sum=i/j;
        haha=(i+"/"+j+"=");
    
        
        System.out.print(i+"/"+j+"=");}//除法
        
        else suan(fanwei,fanwei1,zhichi);}
        
        l=in.nextInt();//
        if(k==3&&sum1!=0){System.out.print("余数:");
        z=in.nextInt();//余数
        if(z!=sum1){sum=19999;}
        }
        aaa++;
        insert("", haha);
        inser("题目",aaa,haha);
        //inser("答案", sum,haha);
        
        
        if(l==sum){System.out.println("答案正确");
        
        }
        else System.out.println("答案错误");
        
    }
     
     static void fensuan(int fanwei,int fanwei1,int zhichi) throws SQLException{//分数
            int i,j,k,m,n;
            String sum = null,l;
            i=(int)(Math.random()*fanwei1);
            j=(int)(Math.random()*fanwei1);
            n=(int)(Math.random()*fanwei1);
            m=(int)(Math.random()*fanwei1);
            k=(int)(Math.random()*4);
            if(i<fanwei){suan(fanwei,fanwei1,zhichi);}
            if(j<fanwei){suan(fanwei,fanwei1,zhichi);}
            if(n<fanwei){suan(fanwei,fanwei1,zhichi);}
            if(m<fanwei){suan(fanwei,fanwei1,zhichi);}
            if(m==0||n==0){fensuan(fanwei,fanwei1,zhichi);}
            else{
            if(k==0){sum=i*m+j*n+"/"+n*m;//加法
            System.out.print(i+"/"+n + "    +    " +j+"/"+m+"=");}
            
            
            if(k==1){//减法
                if(i*m<j*n){fensuan(fanwei,fanwei1,zhichi);}
                else{
                sum=i*m+j*n+"/"+n*m;
            System.out.print(i+"/"+n +   "   -    " +j+"/"+m+"=");}}
            
            
            if(k==2){//乘法
                sum=i*j+"/"+n*m;
            System.out.print(i+"/"+n +   "   *    " +j+"/"+m+"=");}
            
            
            
            if(k==3){//除法
                if(i!=0){sum=i*m+"/"+n*j;
            System.out.print(i+"/"+n +   "   /       " +j+"/"+m+"=");}
            else suan(fanwei,fanwei1,zhichi);}
            Scanner in=new Scanner(System.in);
            l=in.next();
            if(l.equals(sum)){System.out.println("答案正确");}
            else System.out.println("答案错误");
            
        }
            }
         
    
     static void kuohao(int fanwei,int fanwei1,int zhichi){//括号
        int i;int j,k,l;
        
         i=(int)(Math.random()*fanwei1);
            j=(int)(Math.random()*fanwei1);
            if(i<fanwei){kuohao(fanwei,fanwei1,zhichi);}
            if(j<fanwei){kuohao(fanwei,fanwei1,zhichi);}
            l=(int)(Math.random()*2);
            if(aaa!=1){//代表有一个左括号
            if(l==1){System.out.print("("+i);aaa=1;bbb=i+bbb;}}
             kuohao(fanwei,fanwei1,zhichi);
             if(zhichi==2)k=(int)(Math.random()*2);
                else k=(int)(Math.random()*4);
             if(k==0){bbb=bbb+j;
                System.out.print("+"+j);}//加法
                
                if(k==1){
                    int a;
                    if(i<=j){a=i;i=j;j=a;}
                    bbb=bbb-j;
                System.out.print("-"+j);}//减法
             if(l!=1){
             System.out.print(")");aaa=2;}
             
             if(aaa==2)
         System.out.println("=");
     }
     
     
     
    public static void main(String[] args) throws SQLException {
        
        // TODO Auto-generated method stub
        int i,j=0,k=0,l,fanwei,fanwei1,zhichi;
        System.out.println("是否支持分数计算?");
        System.out.println("1         支持");
        System.out.println("2       不支持");
        Scanner in=new Scanner(System.in);
        
        k=in.nextInt();
        System.out.println("是否支持乘除法");
        System.out.println("1         支持");
        System.out.println("2       不支持");
        zhichi=in.nextInt();
        System.out.println("请确定取值范围的起点");
        fanwei=in.nextInt();
        System.out.println("请确定取值范围的终点");
        fanwei1=in.nextInt();
        System.out.println("请输入 题目个数");
        j=in.nextInt();
        if(k==2){
        for(i=0;i<j;i++){
            suan(fanwei,fanwei1,zhichi) ;
        }}
        if(k==1){
            for(i=0;i<j;i++){
            l=(int)(Math.random()*2);
            if(l==0){suan(fanwei,fanwei1,zhichi);}
            else{fensuan(fanwei,fanwei1,zhichi);}        
            }
            }
        if(k==3){for(i=0;i<j;i++){
            l=(int)(Math.random()*2);
            if(l==0){kuohao(fanwei,fanwei1,zhichi);}
            else{kuohao(fanwei,fanwei1,zhichi);}        
            }
        }
        }
}

输出结果

个人项目体会:

这次链接数据库很难,真的施肥了九牛二虎之力,但是还是没有完全完成,完成了一部分,很难受.

 

转载于:https://www.cnblogs.com/anjiu/p/6566789.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值