Criterion B - Solution Overview

Instructions and Advice - Input & Output



General Introduction

Remember that the main reason for doing all of this design in Criterion B is to think, re-think, and think some more about your program before you start to code. You don't want to have to make changes to code; you'd much rather make changes to design tables or diagrams, which is much, much easier. So use all of Criterion B to really mull over and anticipate how your program is going to work.

Input & Output Introduction

The basic model of how computers work is:

input -->> processing -->> output

So with both input and output, already start to think about examples of both correct, and incorrect input, along with examples of exactly the kind of output that should be produced

Think, in some critical detail, about all the information/data that will be entered into your program, either by the user, or by some sort of import or opening of data files. Think about exactly how this data should look, when input, including data type, range and/or expected values. And think about how the processed data should come back to the screen/user/file as output.


The Input and Output parts of Criterion B are often done as tables, though you could choose to do it otherwise. It should be from the standpoint of your client, but it's for you, the programmer, so from this point on you should be using CS terms for data types etc. - terms such as String, Double etc. If using a table, it would likely have three or four columns, including things such as Input, Data Type, and Example. Though you could organize it differently.

But, for example:

Input Data Type Normal Range etc.


Student name String Not left blank; otherwise normal names of two or more characters. Full first and last names expected.* Henry Smith
School grade Integer 9 - 12 11
Courses String array

6 - 8 courses
(Maybe to avoid errors, a combo box could be used, which offers only valid course names. Or maybe an array of radio buttons could be used, of which 6 to 8 could be clicked.)

Math, English, etc.
Grades per course Integer 1 - 7 6

* Note for Strings, you won't have a range necessarily, but there still may be things to think about at this stage of your design, so add important considerations here.


The same idea as input, only what the user will see, or what will be saved to arrays, files etc. after any of the buttons etc. are clicked/triggered.

Output Data Type Normal Range etc.


Student average grade Double 1.0 - 7.0 5.6
Highest student average Double 1.0 - 7.0 6.123
Alphabetical list of students Student array All info per student displayed, in a JTable

Henry Smith | 11 | 5.4
Faye Jones | 12 | 5.6


Key points from past grading


Though this will be mainly tables and point form, there may be places where a sentence or two makes sense - for example, in the first table above, the Courses Normal Range etc. But be careful to limit any such narrative writing, because it will have to count in the word count, and this is not a good place to use up words.

In General

It is within Criterion B that the Record of Tasks is included during the grading process, so a key point here is to keep up with it. In the past, marks have had to be deducted for inadequate number of entries in the Record of Tasks. Adding to the Record of Tasks is difficult to do after the fact; you need to be regularly updating this document.