程序设计系思想:
将以前的程连接到数据库,同时数据库里要建好相应的表,一个为存储算式的,一个为存储答对和打错的题的编号的.
源代码:(部分功能未实现)
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);} } } } }
输出结果
个人项目体会:
这次链接数据库很难,真的施肥了九牛二虎之力,但是还是没有完全完成,完成了一部分,很难受.