sign to perform the calculation。 The equal sign is a signal to the calculator application to process the data that has been entered and generate a result。 The text box would display the results。 Figure 2…3。 A calculator implemented as a Windows application The second choice is to implement a calculator using a console application; where the numbers are entered as text; as illustrated in Figure 2…4。 The calculator does not expect users to click buttons; rather; they press the appropriate keyboard keys to enter the appropriate number at the appropriate time with the appropriate operation。 Typically; an Enter key will serve as an equal sign button and perform a calculation; which is output to the console。 Once one calcula tion has pleted; the cycle starts again。 If you had to choose between a Windows or console application for the calculator; you would choose the Windows application because it looks better and is easier to use。 In the focused thoughts of Figure 2…2; ease of use was not defined as a feature。 Should the user interface type have been a feature? Normally; yes it should be a feature; but for the scope of this chapter; it is not。 The user interaction between the two types of applications is dramatically different; and implies two different programs; even though they implement the same features。 The focus is not on creating a particular program type; but on the overall programming structure。 …………………………………………………………Page 51…………………………………………………………… CH A PT E R 2 ■ L E A R N I N G A B OU T 。 N E T N U M B E R AN D V A L U E T Y P E S 29 Figure 2…4。 A calculator implemented as a console application Let’s step back and think about this abstractly。 You are a programmer and have been charged with the task of implementing the calculator for both user interfaces。 Again; thinking abstractly; would you implement all the functionality twice; or would you try to think about which parts of the calculator could be reused for both user interfaces? Most likely; your answer will be that you want to reuse parts of the calculator so that you have less work。 But you also want to reuse parts so that you can avoid additional maintenance and program extension problems。 So; for software development; you need to think of the software as pieces that are assem bled into a program。 Some pieces can be reused; and other pieces cannot be reused。 Therefore; think of the calculator application as two pieces: the user interface and the piece that performs calculations based on data delivered by the user interface。 From an organizational perspective; or in developer lingo; from an architectural perspective; the calculator pieces would be arranged as shown in Figure 2…5。 The individual pieces in Figure 2…5 are called ponents。 (Some individuals might even call the pieces modules; but I personally prefer the term ponents; and in a Visual Basic book; calling them modules could lead to confusion)。 The ponents are arranged from the lower…level functionality at the bottom of the picture to the higher…level functionality near the top of the picture。 Each ponent fulfills a particular task; and the higher…level ponents use those tasks implemented at a lower level。 The idea is that each level is responsible for certain functionality; and other levels do not duplicate efforts by reimplementing certain functionality。 The higher level functionality does have a lower…level dependency; but the lower level does not have a higher…level dependency。 …………………………………………………………Page 52…………………………………………………………… 30 CH AP T E R 2 ■ L E A R N IN G AB OU T 。 N E T N U M B E R A N D V A L U E T Y P E S Figure 2…5。 Arrangement of calculator pieces Applications are realized using either top…down or bottom…up architecture。 A top…down methodology means creating the higher…level ponents and then implementing the lower level ponents when needed。 In contrast; a bottom…up methodology means creating the bottom ponents first。 A bottom…up approach is useful when you know clearly which features need to be imple mented。 A top…down approach is better when you have a rough idea of what features need to be implemented; but don’t want to stray too far from the goal of the application。 The focus of this chapter is to develop the Calculator class library; shown at the bottom of Figure 2…5; so we will take the bottom…up approach in this chapter。 Implementing the Class Library The creation of a class library is a form of file organization。 The next step is to create some source code for the class library。 The source code is implemented in two steps: o Define the class and methods。 o Implement the methods。 One of the biggest problems when learning a new language is understanding what the language can and cannot do。 You can’t write source code that the language does not under stand。 So it is extremely important to know the programming language; because it determines how your thoughts will be structured。 …………………………………………………………Page 53…………………………………………………………… CH A PT E R 2 ■ L E A R N I N G A B OU T 。 N E T N U M B E R AN D V A L U E T Y P E S 31 You will write two types of source code: source code that organizes and source code that does something。 Organizational source code is like a filing system with folders。 Source code that does something is like a folder with stuff in it。 When you are