北 京 林 业 大 学
实 验 任 务 书
学长的话:
记住一定看了要理解,不要只抄
北 京 林 业 大 学
  学年—  学年第   学期 数据结构实验任务书
专业名称:              实验学时:      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小时内删除。