| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1287 人关注过本帖
标题:[原创]一个简单的java 程序
只看楼主 加入收藏
lingxiang
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-6-17
收藏
 问题点数:0 回复次数:18 
[原创]一个简单的java 程序
小弟刚学java 需要一个小的程序,  结果程序只编了一点,下面的就没有思路了望各位指教?

主要的目的是这样:
输入两个字段一个是姓名一个是成绩,写入到一个指定的txt 文件中, 在不输入内容按回车结束.,然后读出,对成绩排序(大小均可) 并把排序后的,重新写入到一个指定的txt 文件并输出在屏幕上(用system.out输出);望指教.
下面是编入的前半段:(不知道对不对只编入了到排序并没有输入到指定的txt文件,到这就不会,各位大哥大姐帮写完谢谢谢谢)
import *;
public class Dong{
public static void main(String args[]){
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new FileWrite("d:\\grade.txt");
String s;
int i=0;
while(true){
System.out.println("请输入姓名");
s=br.readLine();
if(s.length()==0) break;
bw.writer(s);
bw.newLine();
System.out.println("请输入成绩");
s=br.readLine();
if(s.length()==0) break;
bw.writer(s);
bw.newLine();
i++;
}
br.close();
bw.close();
String a[]=new String[i];
int b[]=new int[i];
int c[]=new int[i];
int j=0,k;
BufferedReader bf=new BufferedReader(new FileReader("d:\\grade.txt");
while(true){
String ss=bf.readLine();
if(ss==null)  break;
a[j]=ss;
int greade=Integer.parseInt(ss);
         b[j]=greade;
         j++;   
}
bf.close();
BufferedWriter bw=new BufferedWriter(new FileWrite("d:\\grade1.txt")
for(int m=0;m<b.length-1;m++)
{
k=m;
for(int n=m+1;n<b.length;n++)
if(b[n]>b[k])
k=n;
temp=b[m];
b[m]=b[k];
b[k]=temp;
}
}
}
搜索更多相关主题的帖子: java txt public args 
2005-06-17 16:57
千尺浪
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-5-14
收藏
得分:0 
没用
一大堆错误

2005-06-17 22:04
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
23,24,25行的
String a[]=new String[i];
int b[]=new int[i];
int c[]=new int[i];
这三句有问题,i是变量不能用它来做数组的大小定义,否则被认为是动态定义数组不允许。程序写得实在差强人意,先看到这里吧

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-06-18 07:26
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
32行的int greade=Integer.parseInt(ss);有逻辑上的错误啊,写入的数据除了成绩还有姓名吧。姓名不能转换成int。因为你的姓名和成绩的输入是有规律的,因此要全部读出成绩也很简单一行隔一行跳着读就行了。这样读出的全是数字,parse就不会有问题了。目前就这些主要问题。
PS:看你的程序好累啊,简直是遭罪,呵呵~

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-06-18 07:34
nitsars07
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2005-6-12
收藏
得分:0 

浮萍——要站住脚,就要努力,所以,我努力!!!
2005-06-19 11:33
lingxiang
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-6-17
收藏
得分:0 
是的,  现在错误很多我还没有写到头那三个数, 不是你想的那样.我的想法:
第一个数组a是用来读取姓名的,第二个数组是读取成绩的,第三个是数组是读取排完序后的数组的坐标, 这样好输出.

谢谢版主!!!!
2005-06-20 16:34
lingxiang
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-6-17
收藏
得分:0 
这个是从新编了的 ,但是还是不对能写入,但是数组b 的下标还是不能给C数组帮帮忙谢谢!!! import java.io.*; public class K1{ public static void main(String[] args) throws IOException { int m=0; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw=new BufferedWriter(new FileWriter("d:\\java\\grade.txt")); String s; while(true){ System.out.println("输入姓名"); s=br.readLine(); if(s.length()==0) break; bw.write(s); bw.newLine(); System.out.println("输入成绩"); s=br.readLine(); bw.write(s); bw.newLine(); m=m+1; } br.close(); bw.close(); String a[]=new String[m]; int b[]=new int[m]; int c[]=new int[m]; int j=0; BufferedReader bf=new BufferedReader(new FileReader("d:\\java\\grade.txt")); while(true){ String ss=bf.readLine();//读取grade.txt 中的数据 if(ss==null) break; a[j]=ss; ss=bf.readLine(); int greade=Integer.parseInt(ss); b[j]=greade; j++; } BufferedWriter bw1=new BufferedWriter(new FileWriter("d:\\java\\b.txt")); BufferedWriter br1=new BufferedWriter(new OutputStreamWriter(System.out)); int k,t,f,n; for(int i=0;i<a.length-1;i++){ file://按大小排序,排序后写入b.txt文件中 k=i; for(n=i+1;n<a.length;n++){ if (b[n]<b[k]){ k=n; t=b[i]; b[i]=b[k]; b[k]=t; f=c[i]; c[i]=c[k]; c[k]=f;} } } int i=0; while(true){ String ss=bf.readLine(); if (ss==null) break; br1.write(a[c[i]]); br1.write(","); br1.write(String.valueOf(b[c[i]])); br1.newLine(); i++; } bw1.close(); bf.close(); br1.close(); } catch (FileNotFoundException fe) { System.out.println(fe.toString());} catch (IOException ie) { System.out.println(ie.toString());} } }
2005-06-20 17:11
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
哦,明白了,但是那个数组啊,你还是在动态定义啊,这是不可以的!程序的话我帮你写写看。(因为你比那些只知道出题让别人写的可爱多了,至少自己在努力,继续加油啊,自己写能学到很多)

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-06-21 07:37
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
奇怪了,刚做了试验,竟然可以动态定义数组。难道是1.5的新特性?不可能吧?难道记错了?继续帮你看

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-06-21 09:03
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
你的那个数组C不知道是做什么用的。

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-06-22 15:52
快速回复:[原创]一个简单的java 程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018935 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved