建立student类,并建立一个student对象数组
- 格式:doc
- 大小:57.50 KB
- 文档页数:4
Java语言程序设计第六章课后习题答案1.将本章例6-1至6-18中出现的文件的构造方法均改为使用File类对象作为参数实现。
个人理解:File类只能对整文件性质进行处理,而没法通过自己直接使用file.Read()或者是file.write()类似方法对文件内容进行写或者读取。
注意:是直接;下面只提供一个例2变化,其他的你自己做,10几道啊,出这题的人真他妈有病。
import java.io.*;public class test6_2{public static void main(String[] args) throws IOException { String fileName = "D:\\Hello.txt";File writer=new File(fileName);writer.createNewFile();BufferedWriter input = new BufferedWriter(newFileWriter(writer));input.write("Hello !\n");input.write("this is my first text file,\n");input.write("你还好吗?\n");input.close();}}运行结果:(电脑系统问题,没法换行,所以一般使用BuffereWriter中newLine()实现换行)2.模仿文本文件复制的例题,编写对二进制文件进行复制的程序.// CopyMaker类import java.io.*;class CopyMaker {String sourceName, destName;BufferedInputStream source;BufferedOutputStream dest;int line;//打开源文件和目标文件,无异常返回trueprivate boolean openFiles() {try {source = new BufferedInputStream(newFileInputStream( sourceName ));}catch ( IOException iox ) {System.out.println("Problem opening " + sourceName );return false;}try {dest = new BufferedOutputStream(newFileOutputStream( destName ));}catch ( IOException iox ){System.out.println("Problem opening " + destName );return false;}return true;}//复制文件private boolean copyFiles() {try {line = source.read();while ( line != -1 ) {dest.write(line);line = source.read();}}catch ( IOException iox ) {System.out.println("Problem reading or writing" );return false;}return true;}//关闭源文件和目标文件private boolean closeFiles() {boolean retVal=true;try { source.close(); }catch ( IOException iox ) {System.out.println("Problem closing " + sourceName );retVal = false;}try { dest.close(); }catch ( IOException iox ) {System.out.println("Problem closing " + destName );retVal = false;}return retVal;}//执行复制public boolean copy(String src, String dst ) {sourceName = src ;destName = dst ;return openFiles() && copyFiles() && closeFiles();}}//test6_2public class test6_2{public static void main ( String[] args ) {String s1="lin.txt",s2="newlin.txt";if(new CopyMaker().copy(s1, s2))S ystem.out.print("复制成功");elseS ystem.out.print("复制失败");}}运行前的两个文本:lin.txt和newlin.txt(为空)运行后:3.创建一存储若干随机整数的文本文件,文件名、整数的个数及范围均由键盘输入。
类和对象01. 分析以下程序执行的结果#include<iostream.h>#include<stdlib.h>class Sample{public:int x,y;Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1(2,3);s1.disp();}解:本题说明了重载构造函数的定义方法。
首先定义了一个类Sample,在main()中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员。
所以输出为:x=2,y=3。
注意:构造函数是唯一不能被显式调用的成员函数,它在定义类的对象时自动调用,也称为隐式调用。
02. 分析以下程序的执行结果#include<iostream.h>class Sample{int x,y;public:Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}~Sample(){if(x==y)cout<<"x=y"<<endl;elsecout<<"x!=y"<<endl;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1(2,3);s1.disp();}解:本题说明了析构函数的定义方法。
首先定义了一个类Sample,在main()中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员,最后在退出程序时自动调用析构函数。
目录目录 (1)二(1)求球的体积。
(3)二(2)求矩形周长和面积。
(3)三(1)从键盘输入一整数,根据是奇数还是偶数分别输出odd和even。
(4)三(2)输入3个整数,从小到大输出。
(5)第五章 (6)1.编写一个代表三角形的类,其中,3条边为三角形的属性,并封装有求三角形的面积和周长的方法。
分别针对3条边为3,4,5和7,8,9的两个三角形进行测试。
(6)5_2 编写一个学生类Student,包含的属性有学号、姓名、年龄,将所有学生 (7)五、(3)编写一个Person类,其中包括人的姓名、性别、年龄、子女等属性,并封装有获得姓名、获得年龄、增加1岁、获得子女、设置子女等方法,其中,子女为一个Person数组。
(10)5-4.编写一个代表日期的类,其中有代表年月日的三个属性,创建日期对象时要判断参数提供的年月日是否合法,不合法要进行纠正,年默认值为2000;月的值在1到12之间,默认值为1;日由一个对应12个月的整型数组给出合法值,特别的,对于二月,通常为28天,但闰年的二月最多29天,该年的值为400的倍数,或者为4的倍数但不为4的倍数但不为100的倍数的年份为闰年。
将创建的日期对象输出时,年月日之间用“/”分隔。
(12)5-5 编写一个矩阵类,其中封装有一个代表矩阵的二维数组,并提供一个实现两个相同行、列的矩阵的相加方法。
利用随机函数产生两个3行4列的矩阵,验证类设计。
(14)五、(6)创建简单的银行账户类。
(16)5-7(7)n只猴子要选大王,选举方法如下’:所有猴子按1,2,...,n编号并按照顺序围 .. 18 六(1)给point类添加以下几个求两点间距的多态方法,并进行调用测试。
(20)六(2)定义person类,子类student类。
(25)六(3)circle类,求圆面积。
(27)六(4)复数类,测试两复数的加、乘、求模方法。
(30)8(1)定义一个接口,包含一个Display()方法用于显示信息:通知类,汽车类,广告类...... .. (33)8(2)定义Shape,其中包括一个方法size(),设计矩形、圆、圆柱体等,实现Shape接口。
第3章面向对象程序设计基础【1】什么是Java程序使用的类?什么是类库?[解答]:Java程序的基本单位是类。
对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念——类。
类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来建立许多你需要的对象。
Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。
【2】如何定义方法?在面向对象程序设计中方法有什么作用?[解答]:方法的定义由两部分组成:方法声明和方法体。
方法声明的基本格式如下:返回类型方法名(形式参数){… //方法体内容}方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。
在面向对象程序设计中,方法所起的作用是完成对类和对象属性操作。
【3】简述构造方法的功能和特点。
下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。
void Student(int no,String name){studentNo=no;studentName=name;return no;}[解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。
构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。
以上的代码段出错于:①构造方法Student()前不能加void ②不能用return语句【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。
编写Java程序创建student类的对象及测试其方法的功能。
江西财经大学10-11第一学期期末考试上机考试100题一、第一类题目(20道,每题7分,在word中保留代码并将输出结果窗口保留)1.定义盒子Box类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
2.有两个长方柱,其长、宽、高分别为:(1)30,20,10;(2)12,10,20。
分别求他们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
3.有两个长方柱,其长、宽、高分别为:(1)12,20,25;(2)10,30,20。
分别求他们的体积。
编一个基于对象的程序,且定义两个构造函数,其中一个有参数,一个无参数。
4.声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。
5.建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。
初值自拟。
6.建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
初值自拟。
7.用new建立一个动态一维数组,并初始化int[10]={1,2,3,4,5,6,7,8,9,10},用指针输出,最后销毁数组所占空间。
8.定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。
将运算符函数重载为非成员、非友元的普通函数。
编写程序,求两个复数之和。
初值自拟。
9.定义一个复数类Complex,重载运算符“+”,“—”,使之能用于复数的加,减运算,运算符重载函数作为Complex类的成员函数。
编程序,分别求出两个复数之和,差。
初值自拟。
10.定义一个复数类Complex,重载运算符“*”,“/”,使之能用于复数的乘,除。
运算符重载函数作为Complex类的成员函数。
编程序,分别求出两个复数之积和商。
初值自拟。
提示:两复数相乘的计算公式为:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i。
实验一,补充题:1.设计一个Student (学生)类,并使Student类具有以下要求:(bsy1_1.cpp)( 1 )该类具有学生姓名、学号、程序设计、信息处理、数据结构三门课程的成绩;( 2)学生全部信息由键盘键入;( 3)通过成员函数统计学生平均成绩,当课程数量增加时,成员函数无须修改仍可求取平均成绩;( 4)输出学生的各科成绩与平均成绩;( 5)学生对象的定义采用对象数组实现;( 6)统计不及格学生人数;( 7)能以最方便的方式实现对课程数量和学生人数的修改。
#include <iostream>#include <string>using namespacestd;constint N=3;constint M=2;class Student{public:Student();~Student();void display();double get_avg();bool no_pass();protected:char name[20];char id[10];double course[N];double avg_score;};Student::Student(){cout<<" 请输入学生姓名及学号:"<<endl;cin>>name>>id;for(int i=0;i<N;i++){cin>>course[i];}}Student::~Student(){cout<<" 执行析构函数"<<endl;}void Student::display()cout<<name<<"cout<<id<<" ";for(int i=0;i<N;i++){cout<<course[i]<<"}cout<<get_avg(); cout<<endl;}double Student::get_avg(){avg_score=0;for(int i=0;i<N;i++){avg_score+=course[i];}avg_score=avg_score/N; return avg_score;}bool Student::no_pass(){for(int i=0;i<N;i++){ if(course[i]<60) return true;} return false;}void main(){int i,no_pass=0;cout<<" 输入学生信息,不同数据之间以空格分隔:"<<endl;cout<<" 姓名学号程序设计信号处理数据结构"<<endl;Student s[M];cout<<endl;cout<<endl<<" 以下是输出信息与统计信息:"<<endl;cout<<" 姓名学号程序设计信号处理数据结构平均成绩"<<endl;for(i=0;i<M;i++){s[i].display(); if(s[i].no_pass()==true) no_pass++;cout<<" 不及格人数为: "<<no_pass<<" 人。
(理工类)课程名称: C#程序设计专业班级:学生学号:学生姓名:所属院部:信息技术学院指导教师:20 12 ——20 13 学年第 1 学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。
若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。
纸张一律采用A4的纸张。
实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。
教师可根据学科特点和实验具体要求增加项目。
填写注意事项(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。
实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。
实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称: C#编程基础实验学时: 6学时同组学生姓名:无实验地点:实验日期:实验成绩:批改教师:批改时间:实验1 C#编程基础一、实验目的(1)熟悉Visual 集成开发环境(IDE),熟悉C#源程序语言的编辑、编译和运行过程;(2)学会创建简单的控制台应用程序和windows窗体应用程序;(3)能够使用C#选择、循环等流程控制语句编写并调试程序;(4)掌握使用数组来求解一些现实问题的步骤和方法。
二、实验要求(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。
三、实验设备、环境安装有 2005以上版本软件。
四、实验步骤1. 采用VS2010编写一个简单的控制台应用程序(1)打开VS2010开发工具。
students student=new students()
这句代码是使用Java(或类似的面向对象编程语言)创建了一个新的students对象,并将其引用赋值给student变量。
详细解释如下:
1.students:这是类的名称。
假设已经有一个定义好的
students类。
2.student:这是一个变量名,用于引用students类的对
象。
3.=:赋值操作符。
用于将右侧的对象引用赋值给左侧的
变量。
4.new:这是Java中的关键字,用于创建对象的实例。
5.students():这是students类的构造函数,用于初始化
新创建的对象。
所以,整句代码的意思是:创建一个新的students对象,并使用students类的默认构造函数进行初始化,然后将这个新创建的对象的引用赋值给student变量。
注意:通常,Java的类名应该以大写字母开头,以区分变量和类。
所以,更标准的写法可能是Students student = new Students();。