c.addItem(decription[count++]);
}
});
c.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
t.setText("index:
"+c.getSelectedItem()+""+((JComboBox)e.getSource()).getSelectedItem());
}
});
setLayout(newFlowLayout());
add(t);
add(c);
add(b);
setSize(200,175);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[]agrs){
//SwingConsoles=newSwingConsole();
//s.run(newComboBoxs(),200,175);
newComboBoxs();
}
}
2.设计父类是A,子类是B、C,体现继承,有main方法,体现多态
3.(10分)容器的使用(实验四,二选一),信息维护系统,需求更具体(类的名字eg:
Student类,方法名(删除))
设计一个程序:
利用List进行学生信息列表的存储和操作,能按学号搜索、增加、
删除一个学生。
定义一个异常类,当删除不存在的学生时,将抛出错误
Stu.java:
packagestu;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Scanner;
publicclassStu{
publicstaticvoidmain(String[]args)throwsMYException{
Listlist=newArrayList();
Chaozuoc=newChaozuo();
for(inti=0;i<2;i++)
{
list.add(newStudent());
}
while(true)
{
System.out.println("1.打印学生信息。
2.搜索学生信息。
3.增加学生信息。
4.删除学生信息。
0.退出。
");
System.out.print("请选择:
");
Scannerscan=newScanner(System.in);
intchoice=scan.nextInt();
switch(choice)
{
case1:
c.print(list);break;
case2:
c.search(list);break;
case3:
c.adding(list);break;
case4:
c.delete(list);break;
default:
break;
}
if(choice==0)
break;
}
}
}
Student.java:
packagestu;
importjava.util.Scanner;
publicclassStudent{
privateStringstu_name=newString();
privateStringstu_no=newString();
privateStringstu_age=newString();
//初始化构造器
Student()
{
System.out.println("请输入本学生的信息:
");
Scanners=newScanner(System.in);
System.out.print("姓名:
");
stu_name=s.next();
System.out.print("学号:
");
stu_no=s.next();
System.out.print("性别:
");
stu_age=s.next();
}
Stringstu_no()
{
returnstu_no;
}
publicStringtoString()
{
return"姓名:
"+stu_name+"\t学号:
"+stu_no+"\t\t性别:
"+stu_age;
}
}
Chaozuo.java:
packagestu;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.ListIterator;
importjava.util.Scanner;
//定义一个自己的异常类MYException
classMYExceptionextendsException
{
publicMYException(){
System.out.println("删除出错,没有找到该学生的信息。
");
}
}
publicclassChaozuo{
Scannerno=newScanner(System.in);
Listlist=newArrayList();
//search函数实现搜索的功能
voidsearch(Lists)
{
System.out.print("请输入要搜索的学生的学号:
");
Stringnumber=no.next();
for(inti=0;i{
if(s.get(i).stu_no().equals(number))
{
System.out.println("搜索到的学生的基本信息如下:
");
System.out.println(s.get(i));
break;
}
if(i==s.size()-1)
System.out.println("没有找到该学生的信息。
");
}
}
//delete函数实现删除的功能
voiddelete(Lists)throwsMYException
{
inti;
System.out.print("请输入要删除的学生的学号:
");
Stringnumber=no.next();
for(i=0;i{
if(s.get(i).stu_no().equals(number))
{
//s.remove(i);
break;
}
//if(i==s.size()-1)
//System.out.println("没有找到该学生的信息。
");
}
try{
s.indexOf(s.get(i));
s.remove(i);
}catch(Exceptione){
thrownewMYException();
//这里用到自定义的异常类MYException来抛出错误
}
}
//adding函数实现增加一条学生信息的操作
voidadding(Lists)
{
System.out.println("请增加一条学生信息:
");
s.add(newStudent());
}
//print函数实现学生信息的打印
voidprint(Lists)
{
System.out.println("学生信息如下:
");
for(ListIteratorit=s.listIterator();it.hasNext();)
{
System.out.println(it.next());
}
}
}
4)设计一个关键字统计程序:
利用HashMap存储关键字统计信息,对用户输入的关
键字序列进行统计
packagemaps;
importjava.util.*;
publicclassMapuse{
publicstaticvoidmain(String[]args){
//统计用户输入列表中单词的出现频率
Scanners=newScanner(System.in);
Mapm=newTreeMap();
String[]str=newString[10];
System.out.println("Pleaseinputstring(input10):
");
for(inti=0;i{
str[i]=s.next();
}
for(Stringa:
str)
{
Integerfreg=m.get(a);
m.put(a,(freg==null)?
1:
freg+1);
}
System.out.println(m.size()+"distinctword:
");
System.out.println(m);
}
}
4.(10分)文件操作(实验五,三选一),注意要点,程序完整性,import
(1)、数字存取:
通过随机数函数产生50个正整数,逐个将这些数写入文件file.dat中;然后读出这些数,在内存中对它们进行排序,再将排序后的数据逐个写入file.out文件中。
packagenumbercun;
importjava.io.*;
importjava.util.*;
publicclassIo_one{
publicstaticvoidmain(String[]args)throwsIOException{
Filea=newFile("d:
/dat.txt");
Fileb=newFile("d:
/out.txt");
a.createNewFile();
b.createNewFile();
BufferedReaderin=null;
BufferedWriterout1=null,out2=null;
Randomrand=newRandom(47);
int[]array=newint[50];
try{
out1=newBufferedWriter(newFileWriter(a));
out2=newBufferedWriter(newFileWriter(b));
for(inti=0;i{
out1.write(String.valueOf(rand.nextInt(20)));
out1.write("");
if(i%10==9)
out1.newLine();
}
out1.close();
Scannersc=newScanner(a);
for(inti=0;sc.hasNextInt();i++)
{
array[i]=sc.nextInt();
}
Arrays.sort(array);
for(inti=0;i{
out2.write(String.valueOf(array[i]));
out2.write("");
if(i%10==9)
out2.newLine();
}
}finally{
if(in!
=null){
in.close();
}
if(out2!
=null){
out2.close();
}
}
}
}
实验结果
1.排序前
2.排序后、
(2)、文件内容加行号:
给定一个文件,通过文件读写,给文件内容加行号
packagejiahanhao;
importjava.io.*;
importjava.util.*;
publicclassIo_tow{
publicstaticvoidmain(String[]args)throwsIOException{
Listlist=newArrayList();
try{
Filef=newFile("d:
/dat.txt");
Scannersc=newScanner(f);
intk=0;
while(sc.hasNextLine()){
list.add(++k+""+sc.nextLine());
}
BufferedWriterout=newBufferedWriter(newFileWriter(f));
for(inti=0;iout.write(list.get(i)+"\r\n");
//out.flush();
out.close();
System.out.println("操作已经成功完成!
");
}finally{}
}
}
实验结果
给dat.txt文件内容加行号
(3)、学生对象操作:
设计学生类,把学生对象存储进文件,并能再从文件中读取。
packagexuesheng;
importjava.io.*;
publicclassIo_three{
publicstaticvoidmain(String[]args)throwsIOException,ClassNotFoundException{
Stu[]st={newStu("张三",70,"男"),
newStu("李四",71,"女"),
newStu("王五",72,"男")};
Filefile=newFile("d:
/students.txt");
//if(!
file.exists())
file.createNewFile();
ObjectOutputStreamout=null;
try{
out=newObjectOutputStream(newFileOutputStream(file));
for(inti=0;iout.writeObject(st[i]);
}
}finally{
out.close();
}
ObjectInputStreamin=null;
try{
in=newObjectInputStream(newFileInputStream(file));
Stu[]st2={null,null,null};
for(inti=0;ist2[i]=(Stu)in.readObject();
System.out.println(st2[i]);
}
}finally{
in.close();
}
}
}
Stu.java文件代码如下:
packagexuesheng;
importjava.io.Serializable;
publicclassStuimplementsSerializable{
Stringstu_name;
intstu_no;
Stringstu_age;
publicStu(Stringstu_name,intstu_no,Stringstu_age)
{
this.stu_name=stu_name;
this.stu_no=stu_no;
this.stu_age=stu_age;
}
publicStringtoString()
{
return"姓名:
"+stu_name+"\t学号:
"+stu_no+"\t\t性别:
"+stu_age;
}
}
最后综合题参考三班整理的材料,需要的话向我拿,因为没有电子档。