联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2020-10-16 10:54

Algorithm Concepts

CSCI-651


Project


I.  Project Organization


This project will study memory management.  


You should do the following pieces to complete your project.  Each piece is explained below:


?Design20 points

?Code60 points

?Output10 points

?Conclusion10 points



Design


   Describe your design.  You can include diagrams that you have created to illustrate your design, but you should also describe it in words.  You must include pseudocode for your tree insert and remove operations.


Code

   Your code should be nicely formatted with plenty of comments.  The code should be easy to read, properly indented, employ good naming standards, good structure, and should correctly implement the design.  You may use Java or C++, other language choices must be approved.


Output


    Output will be graded by running your program.  



Conclusion


   Describe your project experience.  What was difficult about the project?  How did you approach the problem?  What was learned?

II.  Project Description


Parts Catalog


        This project builds a parts catalog using a B-tree for storage.


Introduction:


        Today a parts catalog would be built using a database for storage.  Databases are very versatile in their ability to store and retrieve data.  In this project, you will build a parts catalog system as a single-user system without the use of a database.  Instead, you will create a B+-tree and store the parts data in it.



Overview:


        This project consists of two parts:  a B+-tree for storing parts data and a user interface for accessing the data.  These two parts should be independent, so that changing to another storage system or another user interface is not too difficult.  


         Your project should allow the user to maintain a parts catalog.  A flat-file of part data will be provided.  Your program should begin by loading data from the flat-file into a B+-tree.  Once loaded, the user can query for a particular part number, display the next 10 parts, modify the description of a part, add new parts, and delete parts.  The program should end when the user chooses to exit.  Upon ending, the user should be asked if changes should be saved to the flat-file.

       

Details

A B+-tree will be used for storage.  While B-trees normally make use of the disk drive, for simplicity our tree will be kept in main memory.  The B-tree will allow between 2 and 4 keys per index node.  Each leaf node can store 16 records.  

The provided flat-file will contain part data in the following format:

Columns

1-7       Part ID

16-80     Part Description

Output

At the end, your program should display the total number of splits, parent splits, fusions, and parent fusions.  The tree depth should also be printed.


Submit your project on Canvas.  Include in your submission the following files:


1)A Word document for the written pieces of the project

2)Your source files

3)A “readme” file that describes how to compile your project.

Resources


You are expected to write the B+-tree code yourself without consulting any other code source other than the source code in our textbook.  Using existing code outside our text will be considered cheating and may result in a zero on the project.  You are expected to develop your own pseudocode, though you may refer to any existing pseudocode you may find.  


Any resource regarding B+-trees may be used for learning, as long as you do not use code found in such resources.


All work is expected to be your own.


If cheating is detected, all parties involved will be given a zero for the project and the penalty will be documented on a form that you must sign.  You will be referred to the Dean’s office for further discussion.  Cheating may be detected by software which compares your code with all other students’ source code as well as other code sources, or by a visual inspection of your source code.


版权所有:留学生编程辅导网 2018 All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。