6-1 Book类的设计 (10分)

本文介绍了如何根据给定的测试程序设计一个Book类。该类包含书籍名称、价格、作者和出版年份等属性,并提供了相应的getter和setter方法。同时,通过一个含有四个参数的构造方法来初始化对象。在裁判测试程序中,读取用户输入创建Book对象列表,并展示了样例输入和输出。

阅读测试程序,设计一个Book类。
函数接口定义:

class Book{}

该类有 四个私有属性 分别是 书籍名称、 价格、 作者、 出版年份,以及相应的set 与get方法;该类有一个含有四个参数的构造方法,这四个参数依次是书籍名称、 价格、 作者、 出版年份 。
裁判测试程序样例:

import java.util.*;
public class Main {
public static void main(String[] args) {
List books=new ArrayList();
Scanner in=new Scanner(System.in);
for(int i=0;i<5;i++)
{ String str=in.nextLine();
String []data=str.split(",");
Book book=new Book(data[0],Integer.parseInt(data[1]),data[2],Integer.parseInt(data[3]));
books.add(book);
}

	System.out.println(totalprice(books));	
}

/*计算所有book的总价*/
public static int totalprice(List <Book>books) 
{  int result=0;
	for(int i=0;i<books.size();i++){result+=books.get(i).getPrice();}
	return result;
}

}

/* 请在这里填写答案 */

输入样例:

三体,100,无名氏,1998
上下五千年,50,编辑部,2015
海底世界,50,无名氏2,2000
三体1,100,无名氏3,2017
三体3,100,无名氏4,1998

输出样例:

400

class Book{
	private String 书籍名称,作者;
	private int Price,出版年份;
	public Book(String 书籍名称,int 价格,String 作者,int 出版年份) {
		this.书籍名称=书籍名称;
		this.Price=价格;
		this.作者=作者;
		this.出版年份=出版年份;
	}

	public String get书籍名称() {
		return 书籍名称;
	}

	public void set书籍名称(String 书籍名称) {
		this.书籍名称 = 书籍名称;
	}

	public int getPrice() {
		return Price;
	}

	public void setPrice(int  价格) {
		this.Price = 价格;
	}

	public String get作者() {
		return 作者;
	}

	public void set作者(String 作者) {
		this.作者 = 作者;
	}

	public int get出版年份() {
		return 出版年份;
	}

	public void set出版年份(int 出版年份) {
		this.出版年份 = 出版年份;
	}
	
}

<think>我们正在讨论VB6.0中的F1Book(属于Formula One控件,用于电子表格操作) 根据引用[1]和[2]:F1Book控件可以用于报表,支持时间型数据,提供了多种读取单元格数据的方法(如TextRC和FormattedTextRC) 引用[3]是关于VB操作Excel的,与F1Book无关,可以忽略。 用户需求:了解VB6.0中F1Book的使用方法和功能 我将介绍以下内容: 1. F1Book控件的基本介绍 2. 如何将F1Book控件添加到VB6.0项目中 3. 常用属性和方法 4. 数据读写示例(包括解决时间型读取问题) 5. 常见问题及解决方案(参考引用[1][2]中的问题) 注意:由于我们是在VB6.0环境下,所以语法和.NET不同。 结构如下: ### 一、F1Book控件简介 ### 二、添加F1Book控件到VB6.0项目 ### 三、常用属性和方法 ### 四、数据读写操作示例 ### 五、常见问题及解决方案 ### 六、最佳实践建议 最后生成相关问题。 注意:引用标识要自然添加。 </think>### VB6.0 中 F1Book 控件的使用详解 F1Book 是 Formula One 控件(`F1Book.ocx`)的核心组件,专为 VB6.0 设计的电子表格控件,常用于报表生成、数据析等场景。以下是关键使用方法: --- ### 一、基础配置步骤 #### 1. **添加控件到项目** ```vb ' 步骤: ' 1. 菜单栏 → 工程 → 部件 ' 2. 勾选 "Formula One 6.0" (似名称) ' 3. 工具箱中将出现 F1Book 图标,拖放到窗体 ``` > 若未找到控件,需手动注册 OCX: > `regsvr32 "C:\Path\to\F1Book.ocx"` #### 2. **初始化设置** ```vb Private Sub Form_Load() ' 设置行列数 F1Book1.MaxRow = 100 F1Book1.MaxCol = 10 ' 启用网格线 F1Book1.GridLines = True End Sub ``` --- ### 二、核心功能与方法 #### 1. **数据读写操作** | **方法** | **用途** | **示例** | |------------------------|--------------------------|---------------------------------------------| | `TextRC(row, col)` | 读写文本数据 | `F1Book1.TextRC(1, 1) = "产品A"` | | `NumberRC(row, col)` | 读写数值数据 | `F1Book1.NumberRC(2, 2) = 99.5` | | **`FormattedTextRC`** | **读取格式化数据** | `timeStr = F1Book1.FormattedTextRC(3, 1)` | | `FormulaRC(row, col)` | 设置公式 | `F1Book1.FormulaRC(4, 3) = "=SUM(B1:B10)"` | > ⚠️ 关键点:读取时间型数据时,必须用 **`FormattedTextRC`** 而非 `TextRC`(后者会返回浮点值如 `0.8059`)[^1] #### 2. **数据导入导出** ```vb ' 导入 CSV F1Book1.Read "C:\data.csv", ffCSV ' 导出为 Excel F1Book1.Write "C:\report.xls", ffExcel ``` 支持格式:`ffText`/`ffCSV`/`ffExcel`/`ffXML` 等 #### 3. **复制数据区域** ```vb ' 复制 F1Book2 的 A1:D10 到 F1Book1 的 E5 起始位置 F1Book1.CopyRange 1,1,10,4, F1Book2.Object, 5,5 ``` > 注意:复制会包含格式但不复制对象(如按钮)[^2] --- ### 三、关键问题解决方案 #### 1. **时间型读取异常** ```vb ' 错误方法(返回浮点数): Dim wrongValue As Double wrongValue = F1Book1.TextRC(1,1) ' → 0.8059 ' 正确方法(返回"HH:MM"格式): Dim correctTime As String correctTime = F1Book1.FormattedTextRC(1,1) ' → "0:20" ``` 原理:`FormattedTextRC` 按单元格显示格式返回字符串[^1] #### 2. **赋值时数据错乱** ```vb ' 错误:重复使用同一 WideString 变量 Dim ws As WideString For i=1 To 100 ws = "Data" & i F1Book1.TextRC(i,1) = ws ' 可能导致错乱 Next ' 正确:每次新建变量 For i=1 To 100 Dim newWs As WideString ' 新建变量 newWs = "Data" & i F1Book1.TextRC(i,1) = newWs Next ``` 原因:VB6 的字符串指针复用可能导致数据覆盖[^2] --- ### 四、高级功能示例 #### 1. **动态格式化单元格** ```vb ' 设置时间格式 F1Book1.Row = 3 F1Book1.Col = 1 F1Book1.NumberFormat = "HH:MM" ' 设置文本格式(防止数值转科学计数法) F1Book1.NumberFormat = "@" ' 引用[3]方法 F1Book1.TextRC(5,1) = "000123" ``` #### 2. **公式计算与刷新** ```vb ' 设置公式 F1Book1.FormulaRC(10, 2) = "=AVERAGE(B1:B9)" ' 手动刷新计算 F1Book1.Recalc ``` --- ### 五、最佳实践建议 1. **替代方案** 新项目优先考虑 Excel Object Library(`Excel.Application`)或 .NET 的 `DataGridView`。 2. **部署要求** 发时需包含: - `F1Book.ocx`(必须注册) - `F1RWD.dll`(运行时依赖) 3. **性能优化** ```vb F1Book1.Locked = True ' 禁用刷新 ' 批量操作代码... F1Book1.Locked = False ' 操作完成后刷新 ``` > 重要提示:F1Book64 位系统需编译为 32 位应用,注册时使用 `SysWOW64\regsvr32`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值