Java 编程小问题
这个程序的设计是用户名输入用户名和密码错误后,提示还有i次机会,大于等于3次之后就退出整个程序。
问题1:如果用户名和密码都正确,提示“欢迎进入购物系统!”,break退出循环。
问题2:因为是else if,所以是在用户名和密码有一个不正确的情况下,且i不等于1的情况下,提示“用户名和密码不匹配”,然后lefttime其实是没必要的,可以直接写成i-1更为简洁(此时的i还没有-1哦,要等整个循环体结束才会-1)
System.out.println("你还有" + (i - 1) + "次机会,请重新输入:");问题3:如果你在这里加个break的话,循环就结束了,也就是说当你输错一次用户名或密码,程序就结束了,也就不会进行3次循环了。
Eclipse有直接查看java文档和类库源码的功能,不过得手工添加才行,下面对如何在Eclipse中添加java文档和类库源码进行总结。
1. Window->Pereferences...打开参数选择对话框,展开Java节点,单击“InstalledJREs",此时右边窗口会显示已经加载的jre。
2. 选中要设置的jre版本,单击"Edit",弹出JRE编辑窗口
3. 添加javadoc:将JREsystem libraries下的所有包选中,单击右边的“JavadocLocation”按钮,弹出javadoc设置窗口。选择“JavadocURL”单选框,单击“Browse”按钮,选中docs/api目录,然后点击“OK”
4. 添加source:将JREsystem libraries下的所有包选中,单击右边的“SourceAttachment”按钮,弹出sourceattachment configuration窗口。单击“ExternalFile”按钮,选中java安装目录中的src.zip文件,然后点击“OK”
5.后面就一路OK、确定就行了。
在添加好了javadoc与source后,在eclipse中,使用快捷键"Shift+F2",可快速调出选中类的api文档;使用快捷建F3(或在类上点击右键,现在查看声明),可打开类的源文件。
数据库呢?你是怎么查数据的啊,你那老师给你的只是个一个函数名称,连方法提都没写啊,这样吧我介绍一个JDBC连接方法先读数据库数据,再让main去执行读取函数,显示数据库:先用引用SQL类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
然后建立函数:
Connection conn = null;
Statement stmt = null; //初始化连接和数据集合
public static void CalcGrade(String frist,string last){
String strurl="jdbc:odbc:driver={SQL Server};Server=IP地址;uid=...;pwd=...;DataBase=...";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(strurl);
stmt = conn.createStatement(); //连接数据库
}catch(Exception e){
System.out.println(e.getMessage()); //抛出异常
}
}
/* 关闭数据库连接,释放资源 */
publicvoid destroyConnectInstance(){
try{
conn.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
/* 执行SQL,查询分数 */
publicvoid queryLinkMan(){
this.creatConnectInstance();
try{
ResultSet rs = stmt.executeQuery("select * from 表 where fristName='"+frist+"' and lastName='"+last+"'");
while(rs.next()){
System.out.println("和数据库连接成功:");
System.out.println("姓名:" + rs.getString(1));
System.out.println("分数:" + rs.getString(2));
}
}catch(Exception e){
System.out.println(e.getMessage());
}
this.destroyConnectInstance();
}
publicstaticvoid main(String args[]){
new 类名().CalcGrade("张","三");
}
看懂没,数据从哪来你得知道
一看楼主之前肯定是学C的,其实你这个问题很简单,java跟c不同,c是面向过程的,而java是面向对象的,讲究的封装。像mian方法里面一般不会做逻辑处理,只是调用某一个方法,由整个方法来处理逻辑完成一个功能。像这个题,你只需要把你那些算分数的逻辑处理代码放到calcGrade方法里面,然后在mian里面调用这个方法,传给相应的参数。就ok了
我做了个简单的,是在你的基础上修改的,望您采纳
import java.util.Scanner;
public class Lab {
static Scanner a=new Scanner(System.in);
public static void main(String[] args) {
System.out.print("First name:");
String first=a.nextLine();
System.out.print("Last name:");
String last=a.nextLine();
calcGrade(first, last);
}
public static void calcGrade(String first,String last){
int countera=1;
int counterb=1;
int counterc=1;
int total=0;
System.out.print("How many exam grades do you have?");
int exam=a.nextInt();
System.out.print("How many quit grades do you have?");
int quiz=a.nextInt();
System.out.print("How many lab grades do you have?");
int lab=a.nextInt();
for (int i = 0; i < exam; i++) {
System.out.print("Enter exam "+(i+1)+" score:");
int examGrade=a.nextInt();
total+=examGrade;
}
for (int i = 0; i < quiz; i++) {
System.out.print("Enter quiz"+(i+1)+" score:");
int quizGrade=a.nextInt();
total+=quizGrade;
}
for (int i = 0; i < lab; i++) {
System.out.print("Enter lab"+(i+1)+" score:");
int labGrade=a.nextInt();
total+=labGrade;
}
double Total=total/(exam+quiz+lab);
System.out.println("Total Score:"+Total);
if (Total > 90) {
System.out.println(first + " " + last + "your grade is a: A");
} else if (Total > 80) {
System.out.println(first + " " + last + "your grade is a: B");
} else if (Total > 70) {
System.out.println(first + " " + last + "your grade is a: C");
}else if (Total > 60) {
System.out.println(first + " " + last + "your grade is a: D");
}else {
System.out.println(first + " " + last + "your grade is a: fail");
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
caleGrade("James","Bond");
}
public static void caleGrade(String first,String last){
Scanner can=new Scanner(System.in);
System.out.println("First name:"+first);
System.out.println("Last name:"+last);
System.out.print("How many...?");
int eGra=can.nextInt();
System.out.print("How many。。。?");
int qGra=can.nextInt();
System.out.print("How many ...?");
int lGra=can.nextInt();
System.out.print("Enter exam 1 score:");
int eSc=can.nextInt();
System.out.print("Enter quiz 1 score:");
int q1Sc=can.nextInt();
System.out.print("Enter quiz 2 score:");
int q2Sc=can.nextInt();
System.out.print("Enter lab 1 score:");
int l1Sc=can.nextInt();
System.out.print("Enter lab 2 score:");
int l2Sc=can.nextInt();
......................
}
其他的自己解决。
把算法判断放在calcGrade方法里面,把输入的代码放在main里面然后把接收到的参数传入calcGrade
冻凡双黄: 首先 你得了解java中类是怎么使用的 库其实就是由一些现成的类,接口,异常组成.先不去看接口和异常,库中的类的使用方法和自定义的类的使用方法是一样的 比如你举例的String类中的 length()方法 它不是一个静态方法 所以你必须先实...
砚山县17821746258: JAVA中的小问题?
冻凡双黄: 当+号前后和变量(变量只能是float,double,int)连接的时候表示运算符,例:i=5,j=10, i+j的结果就是15(我这里写的简单些,希望理解),当+号前后连接的是" "或者只要有一边连接的是字符类型的,那就是连接符了.例:i=5,j="abc",i+j的结果是5abc,而i+""+j的结果也是5abc
砚山县17821746258: JAVA编程的小问题 - ?
冻凡双黄: 这个很容易啊 首先回答你第一个:public static void main(String args[]) {new Hello(3L);} 这句按照参数匹配,他会找到的构造器是参数为long的那个构造器 于是进入方法public Hello(long x) {this((int)x); System.out.println("a"); -----1 } 进入这个方法他...
砚山县17821746258: Java编程小问题?
冻凡双黄: 这位朋友,根据您的问题解答如下,如有不明之处可以继续补充:JAVA文件名是根据你当前文件内public类的文件命名的,跟你几个父类没关系.不是根据父类的名字命名.
砚山县17821746258: java 编写的小问题: - ?
冻凡双黄: 方法1:如果你已经输入过一次了,且没有关闭当前的命令提示符窗口,那么用上下键,可以选择你之前输入过的.方法2:输入javac后,把后边的文件名输入一部分,按Tab键,可以自动补全(如果输入部分...
砚山县17821746258: 关于java的小问题?
冻凡双黄: 最简单的例子,你将文件程序存放在硬盘上,要是硬盘数据满啦,存不下了,那么此时,程序就会崩溃;异常处理就是防患这些类似的可能实践; 在socke中 t连接时间超过了规定的时间,有可能是网断了,当然没有报错的程序代码,程序还是会奔溃,这就是异常的作用 呵呵 有很多的,还可以自定义异常
砚山县17821746258: 三个超简单的java小问题 - ?
冻凡双黄: 你讲清楚点嘛! BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int a=Integer.parseInt(br); print();至于数的位数和对其就要看你输出什么数调用别的方法来进行...
砚山县17821746258: 三个很简单的java小问题?
冻凡双黄: 1.用Scanner scanner=new Scanner(System.in); int a=scanner.nextInt(); //从控制台读入一个书付给A 2.println后自己会对其 3.java.util.Date类 Date date=new Date(); int year=date.getYear(); //年 int month=date.getMonth();//月 int day=date.getDay()//日
砚山县17821746258: java程序小问题?
冻凡双黄: 这个代码应该是错误的吧? 改为: alfa a1 = new alfa();alfa a2 = new beta(0); beta a3 = new beta(0); x 处总共创建了7个,其中三个被继承覆盖了!一个在构造函数中创建,由于是基本数据类型,所以Java会从传递进来的值 复制一份放到参数n中,而不是引用!(提示,构造函数中不允许有返回值所以应该去掉void) 按这样的话 a1对象保存了 3个int 由于这是基本数据类型,所以不会想引用类型(没有值则不分配内存,或引用其他对象内存)
砚山县17821746258: Java的小问题?
冻凡双黄: 1.封装、继承、多态. 2.private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 在同一命名空间内可以访问. 4.&是位运算符,表示按...