首页 jfreechart-1.0.6-install

jfreechart-1.0.6-install

举报
开通vip

jfreechart-1.0.6-install The JFreeChart Class Library Version 1.0.6 Installation Guide Written by David Gilbert June 15, 2007 c© 2000-2007, Object Refinery Limited. All rights reserved. Everyone is permitted to copy and distribute verbatim copies of this document, but changing ...

jfreechart-1.0.6-install
The JFreeChart Class Library Version 1.0.6 Installation Guide Written by David Gilbert June 15, 2007 c© 2000-2007, Object Refinery Limited. All rights reserved. Everyone is permitted to copy and distribute verbatim copies of this document, but changing it is not allowed. IMPORTANT NOTICE: We work hard to make this document as accurate and informative as we can, but cannot guarantee that it is error-free. Contents 1 Introduction 2 1.1 What is JFreeChart? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.3 Home Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Comments and Suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Sample Charts 5 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Pie Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Bar Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Line Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 XY Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.6 Time Series Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.7 Histograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.8 Area Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.9 Difference Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.10 Step Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.11 Gantt Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.12 Multiple Axis Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.13 Combined and Overlaid Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.14 Future Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3 Downloading and Installing JFreeChart 20 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 Unpacking the Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3.1 Unpacking on Linux/Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.2 Unpacking on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.3 The Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.4 Running the Demonstration Applications . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5 Compiling the Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.6 Generating the Javadoc Documentation . . . . . . . . . . . . . . . . . . . . . . . . . 22 1 CONTENTS 2 4 The JFreeChart Developer Guide 23 4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 The Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Demo Application Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 A The GNU Lesser General Public Licence 25 A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 A.2 The Licence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 A.3 Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 A.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 A.3.2 Questions and Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Chapter 1 Introduction 1.1 What is JFreeChart? 1.1.1 Overview JFreeChart is a free chart library for the Java(tm) platform. It is designed for use in applications, applets, servlets and JSP. JFreeChart is distributed with complete source code subject to the terms of the GNU Lesser General Public Licence, which permits JFreeChart to be used in proprietary or free software applications (see Appendix A for details). Dual Axis Chart S1 S2 S3 S4 Category 1 Category 2 Category 3 Category 4 Category 5 Category 6 Category 7 Category 8 Category 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 Va lu e 0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 0 4 5 5 0 5 5 6 0 6 5 7 0 7 5 8 0 Secondary Figure 1.1: A sample chart Figure 1.1 shows a typical chart created using JFreeChart. Many more examples are shown in later sections of this document. 3 CHAPTER 1. INTRODUCTION 4 1.1.2 Features JFreeChart can generate pie charts, bar charts (regular and stacked, with an optional 3D-effect), line charts, scatter plots, time series charts (including moving averages, high-low-open-close charts and candlestick plots), Gantt charts, meter charts (dial, compass and thermometer), symbol charts, wind plots, combination charts and more. Additional features include: • data is accessible from any implementation of the defined interfaces; • export to PNG and JPEG image file formats (or you can use Java’s ImageIO library to export to any format supported by ImageIO); • export to any format with a Graphics2D implementation including: – PDF via iText (http://www.lowagie.com/iText/); – SVG via Batik (http://xml.apache.org/batik/); • tool tips; • interactive zooming; • chart mouse events (these can be used for drill-down charts or information pop-ups); • annotations; • HTML image map generation; • works in applications, servlets, JSP (thanks to the Cewolf project1) and applets; • distributed with complete source code subject to the terms of the GNU Lesser General Public License (LGPL); JFreeChart is written entirely in Java, and should run on any implementation of the Java 2 platform (JDK 1.3.1 or later). It will also work quite well with free runtimes based on GNU Classpath 0.92 or later.2 1.1.3 Home Page The JFreeChart home page can be found at: http://www.jfree.org/jfreechart/ Here you will find all the latest information about JFreeChart, including sample charts, download links, Javadocs, a discussion forum and more. 1See http://cewolf.sourceforge.net for details. 2See http://www.gnu.org/software/classpath/ for details. CHAPTER 1. INTRODUCTION 5 1.2 This Document 1.2.1 Versions Two versions of this document are available: • a free version, the “JFreeChart Installation Guide”, is available from the JFreeChart home page, and contains chapters up to and including the instructions for installing JFreeChart and running the demo; • a premium version, the “JFreeChart Developer Guide”, is available only to those that have paid for it, and includes additional tutorial chapters and reference documentation for the JFreeChart classes. 1.2.2 Disclaimer Please note that I have put in considerable effort to ensure that the information in this document is up-to-date and accurate, but I cannot guarantee that it does not contain errors. You must use this document at your own risk or not use it at all. 1.3 Acknowledgements JFreeChart contains code and ideas from many people. At the risk of missing someone out, I would like to thank the following people for contributing to the project: Richard Atkinson, David Berry, Anthony Boulestreau, Jeremy Bowman, Daniel Briden- becker, Nicolas Brodu, David Browning, Søren Caspersen, Chuanhao Chiu, Pascal Col- let, Martin Cordova, Paolo Cova, Michael Duffy, Jonathan Gabbai, Serge V. Grachov, Hans-Jurgen Greiner, Joao Guilherme Del Valle, Aiman Han, Jon Iles, Wolfgang Ir- ler, Xun Kang, Bill Kelemen, Norbert Kiesel, Gideon Krause, Arnaud Lelievre, David Li, Tin Luu, Craig MacFarlane, Achilleus Mantzios, Thomas Meier, Aaron Metzger, Jim Moore, Jonathan Nash, Barak Naveh, David M. O’Donnell, Krzysztof Paz, Tomer Peretz, Andrzej Porebski, Luke Quinane, Viktor Rajewski, Eduardo Ramalho, Michael Rauch, Cameron Riley, Dan Rivett, Michel Santos, Thierry Saura, Andreas Schneider, Jean-Luc Schwab, Bryan Scott, Roger Studner, Irv Thomae, Eric Thomas, Rich Unger, Daniel van Enckevort, Laurence Vanhelsuwe´, Sylvain Vieujot, Jelai Wang, MarkWatson, Alex Weber, Matthew Wright, Christian W. Zuckschwerdt, Hari and Sam (oldman). 1.4 Comments and Suggestions If you have any comments or suggestions regarding this document, please send e-mail to: david.gilbert@object-refinery.com Chapter 2 Sample Charts 2.1 Introduction This section shows some sample charts created using JFreeChart. It is intended to give a reasonable overview of the types of charts that JFreeChart can generate. For other examples, please run the demo application included in the JFreeChart distribution: java -jar jfreechart-1.0.6-demo.jar The complete source code for the demo application is available to purchasers of the JFreeChart Developer Guide.1 2.2 Pie Charts JFreeChart can create pie charts using any data that conforms to the PieDataset interface. Figure 2.1 shows a simple pie chart. Pie Chart Demo 1 One Two Three Four Five Six Six Five Four Three One Two Figure 2.1: A simple pie chart (see PieChartDemo1.java) 1See http://www.object-refinery.com/jfreechart/guide.html for details. 6 CHAPTER 2. SAMPLE CHARTS 7 Individual pie sections can be “exploded”, as shown in figure 2.2. Pie Chart Demo 2 One Two Three Four Five Six Six (15% percent) Five (9% percent) Four (14% percent) Three (21% percent) One (34% percent) Two (8% percent) Figure 2.2: A pie chart with an “exploded” section (see PieChartDemo2.java) You can also display pie charts with a 3D effect, as shown in figure 2.3. Pie Chart 3D Demo 1 Java Visual Basic C / C + + PHP Perl Visual Basic Java C / C + + PHP Perl Visual Basic Java C / C + + PHP Perl Visual Basic Java C / C + + PHP Perl Visual Basic Java C / C + + PHP Perl Figure 2.3: A pie chart drawn with a 3D effect (see PieChart3DDemo1.java) At the current time it is not possible to explode sections of the 3D pie chart. CHAPTER 2. SAMPLE CHARTS 8 2.3 Bar Charts A range of bar charts can be created with JFreeChart, using any data that conforms to the CategoryDataset interface. Figure 2.4 shows a bar chart with a vertical orientation. Bar Chart Demo 1 First Second Third Cat ego ry 1 Cat ego ry 2 Cat ego ry 3 Cat ego ry 4 Cat ego ry 5 Category 0 1 2 3 4 5 6 7 8 Va lu e Figure 2.4: A vertical bar chart (see BarChartDemo1.java) Bar charts can be displayed with a 3D effect as shown in figure 2.5. 3D Bar Chart Demo Series 1 Series 2 Series 3 Series 4 Series 5 Series 6 Series 7 Series 8 Series 9 Cate gory 1 Cate gory 2 Cate gory 3 Cate gory 4 Category -12 .5 -10 .0 - 7 . 5 - 5 . 0 - 2 . 5 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 Va lu e Figure 2.5: A bar chart with 3D effect (see BarChart3DDemo1.java) CHAPTER 2. SAMPLE CHARTS 9 Another variation, the waterfall chart, is shown in figure 2.6. Product Cost Breakdown Labour Administration Marketing Distribution Total Expense Expense Category 0 5 1 0 1 5 2 0 2 5 3 0 Co st P er U ni t $15.76 $8.66 $4.71 $3.51 $32.64 Figure 2.6: A waterfall chart (see WaterfallChartDemo1.java) Bar charts can also be generated from time series data—for example, see figure 2.7: State Executions - USA Executions Source: http://www.amnestyusa.org/abolish/listbyyear.do 1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 Year 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 100 N um be r o f P eo pl e Figure 2.7: An XY bar chart (see XYBarChartDemo1.java) CHAPTER 2. SAMPLE CHARTS 10 2.4 Line Chart The line chart can be generated using the same CategoryDataset that is used for the bar charts— figure 2.8 shows an example. Java Standard Class Library Number of Classes By Release Source: Java In A Nutshell (4th Edition) by David Flanagan (O'Reilly) JDK 1.0 JDK 1.1 SDK 1.2 SDK 1.3 SDK 1.4 Release 0 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 C la ss C ou nt Figure 2.8: A line chart (see LineChartDemo1.java) CHAPTER 2. SAMPLE CHARTS 11 2.5 XY Plots A third type of dataset, the XYDataset, is used to generate a range of chart types. The standard XY plot has numerical x and y axes. By default, lines are drawn between each data point—see figure 2.9. Line Chart Demo 4 y = cosine(x) y = 2*sine(x) - 1 0 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 - 1 0 1 2 3 4 5 6 7 8 9 X -2 .00 -1 .75 -1 .50 -1 .25 -1 .00 -0 .75 -0 .50 -0 .25 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 Y Figure 2.9: A line chart (see LineChartDemo4.java) Scatter plots can be drawn by drawing a shape at each data point, rather than connecting the points with lines—an example is shown in figure 2.10. Scatter Plot Demo 1 Sample 0 Sample 1 Sample 2 Sample 3 - 1 0 0 - 7 5 - 5 0 - 2 5 0 2 5 5 0 7 5 100 X - 8 0 0 - 7 0 0 - 6 0 0 - 5 0 0 - 4 0 0 - 3 0 0 - 2 0 0 - 1 0 0 0 100 200 300 400 500 600 700 800 900 Y Figure 2.10: A scatter plot (see ScatterPlotDemo1.java) CHAPTER 2. SAMPLE CHARTS 12 2.6 Time Series Charts JFreeChart supports time series charts, as shown in figure 2.11. Legal & General Unit Trust Prices L&G European Index Trust L&G UK Index Trust Mar-2001 May-2001 Jul-2001 Sep-2001 Nov-2001 Jan-2002 Mar-2002 May-2002 Jul-2002 Date 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 Pr ic e Pe r U ni t Figure 2.11: A time series chart (see TimeSeriesDemo1.java) It is straightforward to add a moving average line to a time series chart—see figure 2.12 for an example. Time Series Demo 8 EUR/GBP 30 day moving average Jan-2001 Mar-2001 May-2001 Jul-2001 Sep-2001 Nov-2001 Date 1.56 1.57 1.58 1.59 1.60 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 Va lu e Figure 2.12: A time series chart with a moving average (see TimeSeriesDemo8.java) CHAPTER 2. SAMPLE CHARTS 13 Using an OHLCDataset (an extension of XYDataset) you can display high-low-open-close data, see figure 2.13 for an example. OHLC Demo 2 Series 1 Series 1-MAVG 7-Jan 14-Jan 21-Jan 28-Jan 4-Feb 11-Feb 18-Feb Time 0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 0 4 5 5 0 5 5 6 0 6 5 Va lu e Figure 2.13: A high-low-open-close chart (see HighLowChartDemo2.java) 2.7 Histograms Histograms can be generated using an IntervalXYDataset (another extension of XYDataset), see figure 2.14 for an example. Histogram Demo H1 H2 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 32.5 Figure 2.14: A histogram (see HistogramDemo1.java) CHAPTER 2. SAMPLE CHARTS 14 2.8 Area Charts You can generate an area chart for data in a CategoryDataset or an XYDataset. Figure 2.15 shows an example. XY Area Chart Demo Random 1 Random 2 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 Domain (X) - 8 0 0 - 7 0 0 - 6 0 0 - 5 0 0 - 4 0 0 - 3 0 0 - 2 0 0 - 1 0 0 0 100 200 300 400 500 600 700 800 R an ge (Y ) Test Figure 2.15: An area chart (see XYAreaChartDemo1.java) JFreeChart also supports the creation of stacked area charts as shown in figure 2.16. Stacked XY Area Chart Demo 1 Series 1 Series 2 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 X Value 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 32.5 Y Va lu e Figure 2.16: A stacked area chart (see StackedXYAreaChartDemo1.java) CHAPTER 2. SAMPLE CHARTS 15 2.9 Difference Chart A difference chart highlights the difference between two series (see figure 2.17). Difference Chart Demo 1 Random 1 Random 2 Aug-2006 Sep-2006 Oct-2006 Nov-2006 Dec-2006 Jan-2007 Feb-2007 Time - 2 . 5 - 2 . 0 - 1 . 5 - 1 . 0 - 0 . 5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 Va lu e Figure 2.17: A difference chart (see DifferenceChartDemo1.java) A second example, shown in figure 2.18 shows how a date axis can be used for the range values. Daylight Hours - London, UK Sunrise Sunset Data source: http://www.sunrisesunset.com/ Feb-2004 Apr-2004 Jun-2004 Aug-2004 Oct-2004 Dec-2004 Time 04:00 06:00 08:00 10:00 12:00 14:00 16:00 18:00 20:00 22:00 Ti m e British Summer Time Figure 2.18: A difference chart with times on the range axis (see DifferenceChartDemo2.java) CHAPTER 2. SAMPLE CHARTS 16 2.10 Step Chart A step chart displays numerical data as a sequence of “steps”—an example is shown in figure 2.19. XYStepRenderer Demo 1 Series 1 Series 2 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 X 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 Y Figure 2.19: A step chart (see XYStepRendererDemo1.java) Step charts are generated from data in an XYDataset. CHAPTER 2. SAMPLE CHARTS 17 2.11 Gantt Chart Gantt charts can be generated using data from an IntervalCategoryDataset, as shown in figure 2.20. Gantt Chart Demo Scheduled Actual May-2001 Jul-2001 Sep-2001 Nov-2001 Date Write Proposal Obtain Approval Requirements Analysis Design Phase Design Signoff Alpha Implementation Design Review Revised Design Signoff Beta Implementation Testing Final Implementation Signoff Ta sk Figure 2.20: A Gantt chart (see GanttChartDemo1.java) Another example, showing subtasks and progress indicators, is shown in figure 2.21. Gantt Chart Demo Scheduled May-2001 Jul-2001 Sep-2001 Nov-2001 Date Write Proposal Obtain Approval Requirements Analysis Design Phase Design Signoff Alpha Implementation Design Review Revised Design Signoff Beta Implementation Testing Final Implementation Signoff Ta sk Figure 2.21: A Gantt chart with progress indicators (see GanttChartDemo2.java) CHAPTER 2. SAMPLE CHARTS 18 2.12 Multiple Axis Charts JFreeChart has support for charts with multiple axes. Figure 2.22 shows a price-volume chart that demonstrates this feature. Eurodollar Futures Contract (MAR03) Price Volume Jan-2002 Mar-2002 May-2002 Jul-2002 Sep-2002 Nov-2002 Date 94.25 94.50 94.75 95.00 95.25 95.50 95.75 96.00 96.25 96.50 96.75 97.00 97.25 97.50 97.75 98.00 98.25 98.50 Pr ic e 0 50,000 100,000 150,000 200,000 250,000 300,000 350,000 400,000 450,000 500,000 550,000 600,000 650,000 700,000 750,000 V olum e Figure 2.22: A price-volume chart (see PriceVolumeDemo1.java) This feature is supported by the CategoryPlot and XYPlot classes. Figure 2.23 shows an example with four range axes. Multiple Axis Demo 1 Series 1 Series 2 Series 3 Series 4 Four datasets and four range axes. 11:00 11:30 12:00 12:30 13:00 13:30 14:00 Time of Day 6 0 6 5 7 0 7 5 8 0 8 5 9 0 9 5 100 105 110 Pr im ar y R an ge A xi s 800 850 900 950 1,000 1,050 1,100 1,150 1,200 1,250 1,300 R an ge A xi s 2 0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 10,000 11,000 12,000 13,000 R ange Axis 3 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 R ange Axis 4 Figure 2.23: A chart with multiple axes (see MultipleAxisDemo1.java) CHAPTER 2. SAMPLE CHARTS 19 2.13 Combined and Overlaid Charts JFreeChart supports combined and overlaid charts. Figure 2.24 shows a line chart overlaid on top of a bar
本文档为【jfreechart-1.0.6-install】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_838088
暂无简介~
格式:pdf
大小:463KB
软件:PDF阅读器
页数:34
分类:互联网
上传时间:2011-12-09
浏览量:33