北 京 林 业 大 学
实 验 任 务 书
学长的话:
记住一定看了要理解,不要只抄
北 京 林 业 大 学
学年— 学年第 学期 数据结构实验任务书
专业名称: 实验学时: 4
课程名称:数据结构A 任课教师:
实验题目:基于线性表的图书信息管理
实验环境:
实验目的:
1、掌握线性表的定义;
2、掌握线性表的基本操作,如建立、查、插入和删除等。
实验内容:
分别定义一个包含图书信息(书号,书名,定价)的顺序表和链表,使其具有如下功能:
(1) 从给定的文件逐个读入图书信息;////ok
(2) 逐个显示图书表中所有图书的相关信息;//////ok
(3) 统计表中图书个数;///////ok
(4) 输出图书价格最低的图书信息(考虑可能有多个);////////ok
(5) 计算所有图书的平均价格;//////////////////ok
(6) 根据书名进行查,返回相应书名的图书的书号和定价(考虑重名情况);
(7) 根据指定的位置,返回相应位置的图书的全部信息;
(8) 给定一本图书相关信息,插入到表中指定的位置,将插入后的结果重新写入文件;
(9) 删除指定位置的图书记录,将删除后的结果重新写入文件;
(10) 将图书表信息读入后逆序存储,然后将逆序的图书信息写入文件中。
(11) 按照图书价格升序进行排序,将排序的图书信息写入文件中。
(12) 将价格小于30元的图书价格提高20%,价格大于等于30元的图书价格提高30%,将修改后的图书信息写入文件中。
选做内容(利用链表实现):
实现两个一元多项式的加法、减法、乘法运算。
我只给代码,这个我写了将近一个月才写完的。。。。。。。。。。。
链表:import java.io.*;
import java.util.*;
public class 数据结构试验一 {
public static void main(String args[])
{
File readFile=new File("");
//Book book=new Book();
Scanner read=new Scanner(System.in);//String的输入
Scanner readOne=new Scanner(System.in);//int的输入
Scanner readTwo=new Scanner(System.in);//double输入
Mylist list=new Mylist();
Mylist list2=new Mylist();//逆序
Mylist list3=new Mylist();//排序
Mylist list4=new Mylist();//价格变动
try
{
FileReader inOne=new FileReader(readFile);
BufferedReader inTwo=new BufferedReader(inOne);
String s=null;
int j=0,x=0;
while((adLine())!=null)
{
// System.out.println(s);
if(x==0)
{
x=1;
System.out.println(s);
}
else
{
Book book1=new Book();
String ss[]=s.split("\\t");
for(j=0;j<3;j++)
{
book1.no=ss[0];
book1.name=ss[1];
book1.price=Integer.parseInt(ss[2]);
} //这种字符串的解析不会用
list.addTail(book1);
list2.Inverser(book1);
list3.Sort(book1);
代码大全书籍 }
}
inTwo.close();
inOne.close();
list.Output();//输出
System.out.println("------------逆序链表的输出-----------");
list2.Output();
System.out.println("-------------排序的链表的输出-----------");
list3.Output();
System.out.println("-------------价格变化的输出-----------");
list.New();
list.Output();
//list4.Output();
FileWriter toOne=new FileWriter(readFile);
BufferedWriter toTwo=new BufferedWriter(toOne);
FileWriter toOne1=new FileWriter(readFile);
BufferedWriter toTwo1=new BufferedWriter(toOne1);
System.out.println("--------------输出图书的本数-----------");
System.out.println("本数是:"+(list.length-1));
System.out.println("--------------输出最低价格的图书-----------");
list.Minprice();
System.out.println("--------------输出平均价格-----------");
double ave=list.head.next.date.price;
System.out.println("书的平均价格是:"+list.Aveprice(ave,list.head.next,list.length-1));
//list.Output();
System.out.println("--------------按书名查-----------");
System.out.println("请输入你要查的书名:");
String Line();
list.SearchName(name);
System.out.println("--------------按位置查-----------");
System.out.println("请输入你要查的位置");
int Int();
list.SearchID(i);
System.out.println("--------------插入-----------");
Point temp=new Point();
System.out.println("请输入要插入的位置");
int Int();
System.out.println("请输入书的信息");
Book tbook=new Book();
tbook.no=Line();
tbook.name=Line();
tbook.price=Double();
list.Insert(t, tbook);
toTwo.write("ISBN 书名 定价");
wLine();
for(temp=list.head.next;temp!=null;temp=temp.next)
{
toTwo.write(temp.date.no+" "+temp.date.name+" "+temp.date.price);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论