Coursework Lab A. Open the coursework project
|
|
- Garry Gordon
- 5 years ago
- Views:
Transcription
1 Coursework Lab A The aim of this lab session is for you to learn the basics of how the coursework framework works. In this first of two lab sessions you will learn about drawing backgrounds and handling input. In the second you will learn about moving objects drawing them and controlling them, then a couple of other things like drawing strings and drawing tiles on the background. Open the coursework project
2 Add a new class for the main program: Right click on Source Files and choose Add Class. The dialog below will then appear. Choose C++ Class and press the Add button. Choose BaseEngine as the base class and DemoAMain as the Class Name, then press Finish.
3 A new class will have been created and both a header and a cpp file will have been added to your project (see next page): Further information if you want it: Your header files will be organised under the Header files group and your source files under the Source Files group. Within each group I have divided the files into three categories: the uncategorised files (e.g. header.h) the Demo files (open these to see the various demos) and the shared files, which are basically the coursework framework. These shared files include the base classes that you will inherit your new classes from. Please feel free to take some time to investigate these files. You may find the framework documentation useful for this: When you use the wizard to create a new class, it will usually put the.h file under Header Files and the.cpp file under Source Files (which is probably where you want them). Where the files are categorised is irrelevant: these folders have no effect upon the program, they just help you to organise you files within the development tool.
4 Include the standard header files for the framework Before doing anything else, go to the top of the file and add the following lines: #include "header.h" #include "templates.h" As in the picture below: Important Note: You need to include the file header.h at the top of ALL of your sourcecode files. If you do not, they may not compile. SDL changes some things and to make it work the SDL headers have to be added to all of the files. If you look at header.h (in Header Files) you will see that it includes SDL.h and SDL_ttf.h, to ensure that these are added to all source files.
5 Alter the constructor Now you have a basic implementation of the main class, and inherit the behaviour of the base class, but you need to pass the correct values to the base class constructor. You will see this in lectures later, but for the moment just make the following changes: Go to the DemoAMain.cpp file. File the constructor: DemoAMain::DemoAMain(void) Add the line : BaseEngine( 6 ) so that it reads: DemoAMain::DemoAMain(void) : BaseEngine( 6 ) This is how we pass values to a superclass constructor in C++. The BaseEngine(6) says pass 6 to the constructor of the base class called BaseEngine. The : means that this is an initialisation list. We will see both of these concepts in more detail in lectures later and for the moment they are not too important. The only important thing to know here is that the 6 that is passed is the maximum number of moving objects that you will be able to redraw. For these examples 6 will be sufficient. If you later want to have a lot of these you may want to increase this number for your own program. You code should now compile. Go to mainfunction.cpp Near the top, below: #include "Demo3Main.h" Add #include DemoAMain.h to include your new header file, so that it reads: #include "Demo2aMain.h" #include "Demo3Main.h" #include "DemoAMain.h" Next create an object of your new class (which you compiler will be able to identify because you included the header file) in the main function, below the line //Demo3Main omain;, and comment out the line MyProjectMain omain; so that it reads: // Needs just one of the two following lines: //BouncingBallMain omain; //MyProjectMain omain; //Demo2Main omain; //Demo2aMain omain; //Demo3Main omain; DemoAMain omain; Now build (build menu, choose build solution or rebuild solution ) and execute (Debug menu, choose start debugging or start without debugging ) your program.
6 Your program should look like this: The line: iresult = omain.initialise( buf, BASE_SCREEN_WIDTH, BASE_SCREEN_HEIGHT, "Cornerstone Regular.ttf", 24 ); in mainfunction.cpp is important. It specifies the window caption (see the previous sprintf which set up the value of buf, which is why I encouraged you to learn how strings work in C), how large the window is (the two #defines for the screen width and height) and the default font to use for text. Cornerstone Regular.ttf is a font file in the directory where the exe is built. The window is using a default draw function. We will now experiment to change the way in which drawing is performed. You can try out the other demos at this point if you wish, to see what is available. To do so, just change which line is not commented out. e.g. to run the BouncingBall demo uncomment out that line and ensure the others are commented out: // Needs just one of the two following lines: BouncingBallMain omain; //MyProjectMain omain; //Demo2Main omain; //Demo2aMain omain; //Demo3Main omain; //DemoAMain omain;
7 Drawing your own background The framework keeps a background buffer for you. This is something that you can draw to and then copy onto the screen to overwrite anything drawn there already. Switch to the class view (it s an option at the bottom of the solution explorer). This will show classes instead of files. Open up the coursework base project and you will see something like this: Right click on DemoAMain and choose Add Function. You will then get the following dialog shown:
8 Set the return type to void and the function name to SetupBackgroundBuffer, as above, then press finish. This will insert code into your project as follows: In DemoAMain.h: void SetupBackgroundBuffer(void); In DemoAMain.cpp: void DemoAMain::SetupBackgroundBuffer(void) Try running the program now and it will no longer give a yellow window. The yellow window was in the base class implementation of SetupBackgroundBuffer. We have just given our own implementation and made it do nothing. Go to the SetupBackgroundBuffer function in the.cpp file and add the following code: void DemoAMain::SetupBackgroundBuffer(void) FillBackground( 0xff0000 );
9 Build and run the program and it will have a red background. The 0xff0000 is a hexadecimal colour code. The first two digits are the amount of red (00 to ff), the next two the amount of green and the last two the amount of blue. Try some other colours before you continue. Now try the following code instead: void MyProjectMain::SetupBackgroundBuffer() FillBackground( 0x ); for ( int ix = 0 ; ix < GetScreenWidth() ; ix++ ) for ( int iy = 0 ; iy < this->getscreenheight() ; iy++ ) switch( rand()%100 ) case 0: SetBackgroundPixel( ix, iy, 0xFF0000 ); break; case 1: SetBackgroundPixel( ix, iy, 0x00FF00 ); break; case 2: SetBackgroundPixel( ix, iy, 0x0000FF ); break; case 3: SetBackgroundPixel( ix, iy, 0xFFFF00 ); break; case 4: SetBackgroundPixel( ix, iy, 0x00FFFF ); break; case 5: SetBackgroundPixel( ix, iy, 0xFF00FF ); break; Try to work out what this does before running it or continuing. Then run it to see what happens. Try to understand what it is doing before reading the explanation below. Behind the scenes: This method of adding functions and seeing features appear works because the functions such as SetupBackgroundBuffer(), MouseDown(), KeyDown() etc are all implemented in the base class called BaseEngine, of which your class is a subclass. These functions are all virtual functions (see later lecture) and by implementing a version in your class, your version will be called instead of the base class version. Answer: This code has two loops, forcing it to consider every pixel in the background in turn. i.e. it iterates every column of the screen, and for each column it iterates through each pixel in that column. For each pixel it chooses a random number. It then takes the remainder when that number is divided by 100, giving it a random number from 0 to 99, with each value equally likely. If the number is a 0 it will set the pixel to Red (0xff0000). If it is 1 then it will be green. If 2 then it is blue. If 3 then it is yellow (red+green). If 4 then it is cyan (green+blue). If 5 then it is magenta (red+blue). Any other value will leave the pixel unchanged. So the majority will be unchanged, but some will be coloured.
10 Now we will add some interaction: Add a new function called MouseDown as follows, this will handle mouse presses. Note: Return type void, name Mouse Down and add three parameters (set the name then press Add to add each in turn) called ibutton, ix and iy. All are of integer type. When you choose Finish the following function will be created: void DemoAMain::MouseDown(int ibutton, int ix, int iy) Add the following code to draw a circle on the FOREGROUND when the left button is pressed: void DemoAMain::MouseDown(int ibutton, int ix, int iy) printf( "%d %d\n", ix, iy ); if ( ibutton == SDL_BUTTON_LEFT ) DrawRectangle( ix-10, iy-10, ix+10, iy+10, 0xffff00 ); SetSDLUpdateRectImmediately( ix-10, iy-10, 21, 21 );
11 The first line will cause some debug info to go to the output, so you can see what the x and y coordinates were of the click. Then the if statement verifies that the left mouse button was clicked. The DrawRectangle function will draw a rectangle on the foreground, from X-10 to X+10 and Y-10 to Y+10 (i.e. height and width of 21). SDL needs to know when you draw something. The next line tells SDL that you have changed something on the screen, telling it that the rectangle around the change starts at (x-10,y-10) and has width 21 and height 21. Behind the scenes: Functions like DrawRectangle(), DrawOval() and SetSDLUpdateRectImmediately() are implemented in the base class. Your class inherits these functions so you can call them to draw a rectangle or the tell SDL that the screen has changed. The MouseDown() function is another of these virtual functions in the base class. You can look for it in BaseEngine.cpp if you wish. You will see that the base class version does nothing. The BaseEngine code will check for events constantly, and every time it gets a mouse down event it will call the MouseDown() function. In the base class this will do nothing, but as soon as you add your own implementation, it will start to do something. You can now add some code for the right mouse button as well: void DemoAMain::MouseDown(int ibutton, int ix, int iy) printf( "%d %d\n", ix, iy ); if ( ibutton == SDL_BUTTON_LEFT ) DrawRectangle( ix-10, iy-10, ix+10, iy+10, 0xffff00 ); SetSDLUpdateRectImmediately( ix-10, iy-10, 21, 21 ); else if ( ibutton == SDL_BUTTON_RIGHT ) DrawOval( ix-10, iy-10, ix+10, iy+10, 0xff0000 ); SetSDLUpdateRectImmediately( ix-10, iy-10, 21, 21 ); Compile and execute this to try it. Try the following change (comment out a line and add Redraw(true), and see what happens when you right-click the mouse button:
12 void DemoAMain::MouseDown(int ibutton, int ix, int iy) printf( "%d %d\n", ix, iy ); if ( ibutton == SDL_BUTTON_LEFT ) DrawRectangle( ix-10, iy-10, ix+10, iy+10, 0xffff00 ); SetSDLUpdateRectImmediately( ix-10, iy-10, 21, 21 ); else if ( ibutton == SDL_BUTTON_RIGHT ) DrawOval( ix-10, iy-10, ix+10, iy+10, 0xff0000 ); //SetSDLUpdateRectImmediately( ix-10, iy-10, 21, 21 ); Redraw(true); When you right click, everything that you drew to the foreground will vanish. Basically, a redraw will redraw the background (the original thing which we drew in the SetupBackgroundBuffer function), and will overwrite everything that we draw onto the foreground. This can be really useful, but also really confusing until you understand it. Behind the scenes: The framework will sit in a loop, constantly repeating the following steps: (look for MainLoop in BaseEngine.cpp to see the code) 1) Handle any events, e.g. key presses, mouse presses etc, and call the relevant functions. 2) Call GameAction(). This will eventually call the DoUpdate() functions on the moving objects which you will learn about in the next lab. This function is responsible for changing anything, e.g. moving any objects around or handling some user input. 3) Call GameRender(). This function is responsible for re-drawing the screen if necessary. GameRender() uses two variables to determine whether anything has to be redrawn. The first says that something changed ( see m_bneedsredraw in BaseEngine) and the second says that the whole screen needs to be redrawn (m_bwholescreenupdate). The screen will only be redrawn if the first flag is set. If the second flag is set then the whole screen will be redrawn, if not then only the moving objects (see Coursework Lab B) will be redrawn. Redraw(true) says to redraw the whole screen. The way this works is: If nothing changes on the screen, GameRender() will never need to redraw anything. If something moves around the screen, then it is responsible for recording which part of the screen it changed and calling Redraw(false). GameRender() will then effectively look up which parts of the screen to draw and draw them (the details are a little more complicated, since it asks objects to draw themselves, but this is the basic principle). If something changes a lot of the screen, or does not want to record which parts it changed, then it is worth just calling Redraw(true). This will force a redraw of the whole screen.
13 The background and foreground Think of there being two different copies of the screen a background and a foreground. When you draw moving objects (see next lab) you will draw to the foreground. This means that an object can be moved by redrawing the background (removing the old position of the object) then drawing it again in the new position. You can only do this because you have a copy of the background as well, to draw over the objects to remove them. Rules: 1) If you are drawing a static item them draw it to the background, otherwise it will be eliminated when you redraw the screen. 2) If you are drawing a moving object then draw it to the foreground you WANT it to be removed when you redraw the screen, to remove it from the old position on the screen. Since you want the things you draw on a mouse click the stay after a redraw, instead draw them to the background as shown below: void DemoAMain::MouseDown(int ibutton, int ix, int iy) printf( "%d %d\n", ix, iy ); if ( ibutton == SDL_BUTTON_LEFT ) DrawBackgroundRectangle( ix-10, iy-10, ix+10, iy+10, 0xffff00 ); //SetSDLUpdateRectImmediately( ix-10, iy-10, 21, 21 ); Redraw(true); else if ( ibutton == SDL_BUTTON_RIGHT ) DrawBackgroundOval( ix-10, iy-10, ix+10, iy+10, 0xff0000 ); //SetSDLUpdateRectImmediately( ix-10, iy-10, 21, 21 ); Redraw(true); You will now see that the shapes stay when you redraw the screen. This will become more important when you see moving objects, because when the moving objects go over these they will not eliminate them.
14 Handling key presses You can handle key presses as the key is pressed down using the following method. First add the KeyDown function as specified below (note the single integer parameter): This will create you the following function: void DemoAMain::KeyDown(int ikeycode) Then provide the following implementation: void DemoAMain::KeyDown(int ikeycode) switch( ikeycode ) case ' ': SetupBackgroundBuffer(); Redraw(true); break;
15 This will redraw the entire background again, calling the function which we specified earlier, drawing over any existing images/shapes, when SPACE is pressed. You can handle other keys in a similar way. If you need to handle other characters, you can use the SDL keycode, usually named SDLK_ then the name of the key. See for a list, or look in SDL_keysym.h. e.g.: void DemoAMain::KeyDown(int ikeycode) switch( ikeycode ) case SDLK_SPACE: SetupBackgroundBuffer(); Redraw(true); break; If just happens that most are set to the same as the printable ASCII character, so you can just use a for example, rather than SDLK_a. (Well it s deliberate, but very useful.) What now? Next time we will consider how to handle moving items, but this should be enough to get you started with knowing how to draw a background and how to handle both mouse presses and key presses. Please take some time to experiment, and to look at what functions are available in the BaseEngine.h file. You will find that there are quite a few useful drawing functions. Hopefully you have also seen that it is important to draw things that you want to keep onto the background not the foreground.
Load your files from the end of Lab A, since these will be your starting point.
Coursework Lab B It is extremely important that you finish lab A first, otherwise this lab session will probably not make sense to you. Lab B gives you a lot of the background and basics. The aim of the
More informationCoursework summary. Using Microsoft Visual Studio document Game framework. Wraps up SDL (Simple DirectMedia Layer)
Coursework summary Using Microsoft Visual Studio document Game framework Wraps up SDL (Simple DirectMedia Layer) So you don t need to learn SDL functions Hides re-draw issues to run relatively quickly
More informationCISC 1600 Lecture 3.1 Introduction to Processing
CISC 1600 Lecture 3.1 Introduction to Processing Topics: Example sketches Drawing functions in Processing Colors in Processing General Processing syntax Processing is for sketching Designed to allow artists
More informationSmoother Graphics Taking Control of Painting the Screen
It is very likely that by now you ve tried something that made your game run rather slow. Perhaps you tried to use an image with a transparent background, or had a gazillion objects moving on the window
More informationCS Problem Solving and Object-Oriented Programming
CS 101 - Problem Solving and Object-Oriented Programming Lab 5 - Draw a Penguin Due: October 28/29 Pre-lab Preparation Before coming to lab, you are expected to have: Read Bruce chapters 1-3 Introduction
More informationIntroduction to Game Programming Lesson 4 Lecture Notes
Introduction to Game Programming Lesson 4 Lecture Notes Learning Objectives: Following this lecture, the student should be able to: Define frame rate List the factors that affect the amount of time a game
More informationGetting Started with Visual Studio
Getting Started with Visual Studio Visual Studio is a sophisticated but easy to use integrated development environment (IDE) for C++ (and may other languages!) You will see that this environment recognizes
More informationLab 4. Out: Friday, February 25th, 2005
CS034 Intro to Systems Programming Doeppner & Van Hentenryck Lab 4 Out: Friday, February 25th, 2005 What you ll learn. In this lab, you ll learn to use function pointers in a variety of applications. You
More informationAN INTRODUCTION TO SCRATCH (2) PROGRAMMING
AN INTRODUCTION TO SCRATCH (2) PROGRAMMING Document Version 2 (04/10/2014) INTRODUCTION SCRATCH is a visual programming environment and language. It was launched by the MIT Media Lab in 2007 in an effort
More information+ Inheritance. Sometimes we need to create new more specialized types that are similar to types we have already created.
+ Inheritance + Inheritance Classes that we design in Java can be used to model some concept in our program. For example: Pokemon a = new Pokemon(); Pokemon b = new Pokemon() Sometimes we need to create
More information1 Getting started with Processing
cis3.5, spring 2009, lab II.1 / prof sklar. 1 Getting started with Processing Processing is a sketch programming tool designed for use by non-technical people (e.g., artists, designers, musicians). For
More informationIT82: Multimedia Macromedia Director Practical 1
IT82: Multimedia Macromedia Director Practical 1 Over the course of these labs, you will be introduced Macromedia s Director multimedia authoring tool. This is the de facto standard for time-based multimedia
More informationWe will start our journey into Processing with creating static images using commands available in Processing:
Processing Notes Chapter 1: Starting Out We will start our journey into Processing with creating static images using commands available in Processing: rect( ) line ( ) ellipse() triangle() NOTE: to find
More informationCS 2110 Fall Instructions. 1 Installing the code. Homework 4 Paint Program. 0.1 Grading, Partners, Academic Integrity, Help
CS 2110 Fall 2012 Homework 4 Paint Program Due: Wednesday, 12 November, 11:59PM In this assignment, you will write parts of a simple paint program. Some of the functionality you will implement is: 1. Freehand
More informationCpSc 1111 Lab 4 Formatting and Flow Control
CpSc 1111 Lab 4 Formatting and Flow Control Overview By the end of the lab, you will be able to: use fscanf() to accept a character input from the user and print out the ASCII decimal, octal, and hexadecimal
More informationInteractive Tourist Map
Adobe Edge Animate Tutorial Mouse Events Interactive Tourist Map Lesson 1 Set up your project This lesson aims to teach you how to: Import images Set up the stage Place and size images Draw shapes Make
More informationORB Education Quality Teaching Resources
These basic resources aim to keep things simple and avoid HTML and CSS completely, whilst helping familiarise students with what can be a daunting interface. The final websites will not demonstrate best
More informationCS Programming Exercise:
CS Programming Exercise: An Introduction to Java and the ObjectDraw Library Objective: To demonstrate the use of objectdraw graphics primitives and Java programming tools This lab will introduce you to
More informationRecipes4Success. Animate Plant Growth. Share 4 - Animation
Recipes4Success In this Recipe, you will create an animated science diagram of plant growth. You will learn how to add images, draw shapes, use the animation options, preview, and publish your project.
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module
More informationHonors Computer Science Python Mr. Clausen Program 7A, 7B
Honors Computer Science Python Mr. Clausen Program 7A, 7B PROGRAM 7A Turtle Graphics Animation (100 points) Here is the overview of the program. Use functions to draw a minimum of two background scenes.
More informationDrawing Graphics in C Sharp
Drawing Graphics in C Sharp Previous Table of Contents Next Building a Toolbar with C# and Visual Studio Using Bitmaps for Persistent Graphics in C# Purchase and download the full PDF and epub versions
More informationChapter 7 Applets. Answers
Chapter 7 Applets Answers 1. D The drawoval(x, y, width, height) method of graphics draws an empty oval within a bounding box, and accepts 4 int parameters. The x and y coordinates of the left/top point
More informationABOUT THIS COURSE... 3 ABOUT THIS MANUAL... 4 LESSON 1: MANAGING LISTS... 5
Table of Contents ABOUT THIS COURSE... 3 ABOUT THIS MANUAL... 4 LESSON 1: MANAGING LISTS... 5 TOPIC 1A: SORT A LIST... 6 Sort a list in A-Z or Z-A Order... 6 TOPIC 1B: RENUMBER A LIST... 7 Renumber a List
More informationHBS Training - IT Solutions. PlanWeb. Introduction
HBS Training - IT Solutions PlanWeb Introduction CONTENTS Logging on to the system...3 The PlanWeb Window...5 The Tool Bar...6 The Status Bar...6 The Map Window...6 The Information Window...7 Changing
More informationCS12020 for CGVG. Practical 1. Jim Finnis
CS12020 for CGVG Practical 1 Jim Finnis (jcf1@aber.ac.uk) About me 20 years in the games industry (more or less) Windows, PS2, Xbox, Gamecube, Wii development experience DirectX (more than I like to think
More informationAdobe Flash CS3 Reference Flash CS3 Application Window
Adobe Flash CS3 Reference Flash CS3 Application Window When you load up Flash CS3 and choose to create a new Flash document, the application window should look something like the screenshot below. Layers
More informationInstructions for Crossword Assignment CS130
Instructions for Crossword Assignment CS130 Purposes: Implement a keyboard interface. 1. The program you will build is meant to assist a person in preparing a crossword puzzle for publication. You have
More informationCSci 1113, Fall 2015 Lab Exercise 11 (Week 13): Discrete Event Simulation. Warm-up. Stretch
CSci 1113, Fall 2015 Lab Exercise 11 (Week 13): Discrete Event Simulation It's time to put all of your C++ knowledge to use to implement a substantial program. In this lab exercise you will construct a
More informationAdobe Illustrator. Quick Start Guide
Adobe Illustrator Quick Start Guide 1 In this guide we will cover the basics of setting up an Illustrator file for use with the laser cutter in the InnovationStudio. We will also cover the creation of
More informationContents. Foreword. Examples of GeoGebra Applet Construction 1 A Straight Line Graph... 1 A Quadratic Graph... 6 The Scalar Product...
Contents Foreword ii Examples of GeoGebra Applet Construction 1 A Straight Line Graph............................... 1 A Quadratic Graph................................. 6 The Scalar Product.................................
More informationOpen GL Framework For A Computer Graphics Course
Open GL Framework For A Computer Graphics Course Programmer: Daniel Odle Sponsor / Advisor: Dr. Morse University of Evansville 4-26-03 Table of Contents Introduction 3 Statement of Problem 3 Design Approach
More informationCSC 101: Lab Manual#11 Programming Turtle Graphics in Python Lab due date: 5:00pm, day after lab session
CSC 101: Lab Manual#11 Programming Turtle Graphics in Python Lab due date: 5:00pm, day after lab session Purpose: The purpose of this lab is to get a little introduction to the process of computer programming
More informationOpenGL and Qt Creator: a Gentle Introduction
OpenGL and Qt Creator: a Gentle Introduction Comp175: Introduction to Computer Graphics Fall 201 September 9th, 2011 1 Introduction In this lab 1 you will take your first steps into the world of OpenGL
More informationProgramming: You will have 6 files all need to be located in the dir. named PA4:
PROGRAMMING ASSIGNMENT 4: Read Savitch: Chapter 7 and class notes Programming: You will have 6 files all need to be located in the dir. named PA4: PA4.java ShapeP4.java PointP4.java CircleP4.java RectangleP4.java
More informationUsing the API: Introductory Graphics Java Programming 1 Lesson 8
Using the API: Introductory Graphics Java Programming 1 Lesson 8 Using Java Provided Classes In this lesson we'll focus on using the Graphics class and its capabilities. This will serve two purposes: first
More informationQuick Crash Scene Tutorial
Quick Crash Scene Tutorial With Crash Zone or Crime Zone, even new users can create a quick crash scene diagram in less than 10 minutes! In this tutorial we ll show how to use Crash Zone s unique features
More informationCS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM
CS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM Objectives The objectives of this assignment are: to get your first experience with Java to become familiar with Eclipse Java
More informationStyles, Style Sheets, the Box Model and Liquid Layout
Styles, Style Sheets, the Box Model and Liquid Layout This session will guide you through examples of how styles and Cascading Style Sheets (CSS) may be used in your Web pages to simplify maintenance of
More informationCS1950U Setup Spring 2018
CS1950U Topics in 3D Game Engine Development Barbara Meier CS1950U Setup Spring 2018 Introduction Hi there! This guide is designed to help you get setup for taking CS1950U. It will go through the basics
More informationCSE 303: Concepts and Tools for Software Development
CSE 303: Concepts and Tools for Software Development Hal Perkins Autumn 2008 Lecture 24 Introduction to C++ CSE303 Autumn 2008, Lecture 24 1 C++ C++ is an enormous language: All of C Classes and objects
More informationCPM-200 User Guide For Lighthouse for MAX
CPM-200 User Guide For Lighthouse for MAX Contents Page Number Opening the software 2 Altering the page size & Orientation 3-4 Inserting Text 5 Editing Text 6 Inserting Graphics 7-8 Changing the Colour
More informationOur first program is a simple calculator, which will carry out the arithmetic operations of adding, subtracting, multiplying and dividing numbers.
Chapter 2: Calculations 29 2 Calculations Most computer programs need to carry out calculations, for example: with money, quantities of materials, or dates and times. In this chapter, we will examine how
More informationCpSc 101, Fall 2015 Lab7: Image File Creation
CpSc 101, Fall 2015 Lab7: Image File Creation Goals Construct a C language program that will produce images of the flags of Poland, Netherland, and Italy. Image files Images (e.g. digital photos) consist
More informationTSM Report Designer. Even Microsoft Excel s Data Import add-in can be used to extract TSM information into an Excel spread sheet for reporting.
TSM Report Designer The TSM Report Designer is used to create and modify your TSM reports. Each report in TSM prints data found in the databases assigned to that report. TSM opens these databases according
More informationNotes from the Boards Set # 5 Page
1 Yes, this stuff is on the exam. Know it well. Read this before class and bring your questions to class. Starting today, we can no longer write our code as a list of function calls and variable declarations
More informationSoftware Engineering /48
Software Engineering 1 /48 Topics 1. The Compilation Process and You 2. Polymorphism and Composition 3. Small Functions 4. Comments 2 /48 The Compilation Process and You 3 / 48 1. Intro - How do you turn
More informationG52CPP C++ Programming Lecture 9
G52CPP C++ Programming Lecture 9 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last lecture const Constants, including pointers The C pre-processor And macros Compiling and linking And
More informationLet s Make a Front Panel using FrontCAD
Let s Make a Front Panel using FrontCAD By Jim Patchell FrontCad is meant to be a simple, easy to use CAD program for creating front panel designs and artwork. It is a free, open source program, with the
More informationCS488. Visible-Surface Determination. Luc RENAMBOT
CS488 Visible-Surface Determination Luc RENAMBOT 1 Visible-Surface Determination So far in the class we have dealt mostly with simple wireframe drawings of the models The main reason for this is so that
More informationPREMIERE. Introduction to Adobe Premiere
PREMIERE You will; 1. View some of Premiere s Tools. 2. Learn about Editing. 3. Learn about Workflow. 4. Learn about Rough Cutting. 5. Learn about Ripple & Rolling Edits. 6. Learn about the Trim Window.
More informationVisual C# Program: Simple Game 3
C h a p t e r 6C Visual C# Program: Simple Game 3 In this chapter, you will learn how to use the following Visual C# Application functions to World Class standards: Opening Visual C# Editor Beginning a
More informationLesson 6 Adding Graphics
Lesson 6 Adding Graphics Inserting Graphics Images Graphics files (pictures, drawings, and other images) can be inserted into documents, or into frames within documents. They can either be embedded or
More informationIntroduction. Create a New Project. Create the Main Form. Assignment 1 Lights Out! in C# GUI Programming 10 points
Assignment 1 Lights Out! in C# GUI Programming 10 points Introduction In this lab you will create a simple C# application with a menu, some buttons, and an About dialog box. You will learn how to create
More informationMacromedia Director Tutorial 4
Macromedia Director Tutorial 4 Further Lingo Contents Introduction...1 Play and Play done...2 Controlling QuickTime Movies...3 Controlling Playback...3 Introducing the if, then, else script...6 PuppetSprites
More informationCP Lab 5: Functions, pointers, some arrays
Computer Programming (CP) Lab 5, 2017/18 1 CP Lab 5: Functions, pointers, some arrays Instructions The purpose of this Lab is to help you get experience in understanding parameter-passing functions in
More informationCP Lab 5: Functions, pointers, some arrays
Computer Programming (CP) Lab 5, 2017/18 1 CP Lab 5: Functions, pointers, some arrays Instructions The purpose of this Lab is to help you get experience in understanding parameter-passing functions in
More information[ the academy_of_code] Senior Beginners
[ the academy_of_code] Senior Beginners 1 Drawing Circles First step open Processing Open Processing by clicking on the Processing icon (that s the white P on the blue background your teacher will tell
More information2IS45 Programming
Course Website Assignment Goals 2IS45 Programming http://www.win.tue.nl/~wsinswan/programmeren_2is45/ Rectangles Learn to use existing Abstract Data Types based on their contract (class Rectangle in Rectangle.
More informationLecture 14: more class, C++ streams
CIS 330: / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 14:
More informationTwitter Tag Cloud Documentation
Twitter Tag Cloud Documentation Chryssy Joski Capstone Seminar Spring 2016 1. Hook-up and install First, load the following scripts to an accessible website (I put mine on compsci02): apicheck.php, TwitterAPIExchange.php,
More informationQuite Hot 3. Installation... 2 About the demonstration edition... 2 Windows... 2 Macintosh... 3
Quite Hot 3 Contents Installation.................................................................. 2 About the demonstration edition.............................................. 2 Windows................................................................
More information6.001 Notes: Section 17.5
6.001 Notes: Section 17.5 Slide 17.5.1 Now, let's look at one example in which changing the evaluation model allows us to explore a very different kind of computational problem. Our goal is to show how
More informationHBS Training - IT Solutions. PlanWeb. Intermediate
HBS Training - IT Solutions PlanWeb Intermediate CONTENTS Logging on to the system...3 The PlanWeb Window...5 The Tool Bar...6 The Status Bar...6 The Map Window...6 The Information Window...7 Changing
More informationReading on the Accumulation Buffer: Motion Blur, Anti-Aliasing, and Depth of Field
Reading on the Accumulation Buffer: Motion Blur, Anti-Aliasing, and Depth of Field 1 The Accumulation Buffer There are a number of effects that can be achieved if you can draw a scene more than once. You
More informationLab 1 Implementing a Simon Says Game
ECE2049 Embedded Computing in Engineering Design Lab 1 Implementing a Simon Says Game In the late 1970s and early 1980s, one of the first and most popular electronic games was Simon by Milton Bradley.
More informationCS 211 Programming Practicum Spring 2017
Due: Tuesday, 3/28/17 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a JAVA program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More informationExample Program. public class ComputeArea {
COMMENTS While most people think of computer programs as a tool for telling computers what to do, programs are actually much more than that. Computer programs are written in human readable language for
More informationG52CPP C++ Programming Lecture 17
G52CPP C++ Programming Lecture 17 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last Lecture Exceptions How to throw (return) different error values as exceptions And catch the exceptions
More informationPREPARING FOR PRELIM 2
PREPARING FOR PRELIM 2 CS 1110: FALL 2012 This handout explains what you have to know for the second prelim. There will be a review session with detailed examples to help you study. To prepare for the
More informationCISC 1600, Lab 2.1: Processing
CISC 1600, Lab 2.1: Processing Prof Michael Mandel 1 Getting set up For this lab, we will be using Sketchpad, a site for building processing sketches online using processing.js. 1.1. Go to http://cisc1600.sketchpad.cc
More informationCS 211 Programming Practicum Fall 2018
Due: Wednesday, 11/7/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More informationISY00245 Principles of Programming. Module 7
ISY00245 Principles of Programming Module 7 Module 7 Loops and Arrays Introduction This week we have gone through some of the concepts in your lecture, and will be putting them in to practice (as well
More informationText. Text metrics. There are some important metrics that we must consider when working with text. Figure 4-1 shows the basics.
Text Drawing text has some special properties and thus is treated in a separate chapter. We first need to talk about the sizing of text. Then we discuss fonts and how text is actually drawn. There is then
More informationFRONTPAGE STEP BY STEP GUIDE
IGCSE ICT SECTION 15 WEB AUTHORING FRONTPAGE STEP BY STEP GUIDE Mark Nicholls ICT lounge P a g e 1 Contents Introduction to this unit.... Page 4 How to open FrontPage..... Page 4 The FrontPage Menu Bar...Page
More informationGSAK (Geocaching Swiss Army Knife) GEOCACHING SOFTWARE ADVANCED KLASS GSAK by C3GPS & Major134
GSAK (Geocaching Swiss Army Knife) GEOCACHING SOFTWARE ADVANCED KLASS GSAK - 102 by C3GPS & Major134 Table of Contents About this Document... iii Class Materials... iv 1.0 Locations...1 1.1 Adding Locations...
More informationCOSC 2P91. Introduction Part Deux. Week 1b. Brock University. Brock University (Week 1b) Introduction Part Deux 1 / 14
COSC 2P91 Introduction Part Deux Week 1b Brock University Brock University (Week 1b) Introduction Part Deux 1 / 14 Source Files Like most other compiled languages, we ll be dealing with a few different
More information(Updated 29 Oct 2016)
(Updated 29 Oct 2016) 1 Class Maker 2016 Program Description Creating classes for the new school year is a time consuming task that teachers are asked to complete each year. Many schools offer their students
More informationRIS shading Series #2 Meet The Plugins
RIS shading Series #2 Meet The Plugins In this tutorial I will be going over what each type of plugin is, what their uses are, and the basic layout of each. By the end you should understand the three basic
More information1 Getting started with Processing
cisc3665, fall 2011, lab I.1 / prof sklar. 1 Getting started with Processing Processing is a sketch programming tool designed for use by non-technical people (e.g., artists, designers, musicians). For
More informationCISC 110 Week 1. An Introduction to Computer Graphics and Scripting
CISC 110 Week 1 An Introduction to Computer Graphics and Scripting Emese Somogyvari Office: Goodwin 235 E-mail: somogyva@cs.queensu.ca Please use proper email etiquette! Office hours: TBD Course website:
More informationif / if else statements
if / if else statements December 1 2 3 4 5 Go over if notes and samples 8 9 10 11 12 Conditionals Quiz Conditionals TEST 15 16 17 18 19 1 7:30 8:21 2 8:27 9:18 3 9:24 10:14 1 CLASS 7:30 8:18 1 FINAL 8:24
More informationHow do I use BatchProcess
home news tutorial what can bp do purchase contact us TUTORIAL Written by Luke Malpass Sunday, 04 April 2010 20:20 How do I use BatchProcess Begin by downloading the required version (either 32bit or 64bit)
More informationAssignment III: Graphing Calculator
Assignment III: Graphing Calculator Objective The goal of this assignment is to reuse your CalculatorBrain and CalculatorViewController objects to build a Graphing Calculator for iphone and ipad. By doing
More information(Refer Slide Time: 02.06)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking
More informationEuler s Method for Approximating Solution Curves
Euler s Method for Approximating Solution Curves As you may have begun to suspect at this point, time constraints will allow us to learn only a few of the many known methods for solving differential equations.
More informationVariables One More (but not the last) Time with feeling
1 One More (but not the last) Time with feeling All variables have the following in common: a name a type ( int, float, ) a value an owner We can describe variables in terms of: who owns them ( Processing
More information1B1b Inheritance. Inheritance. Agenda. Subclass and Superclass. Superclass. Generalisation & Specialisation. Shapes and Squares. 1B1b Lecture Slides
1B1b Inheritance Agenda Introduction to inheritance. How Java supports inheritance. Inheritance is a key feature of object-oriented oriented programming. 1 2 Inheritance Models the kind-of or specialisation-of
More informationTeach Yourself Microsoft Word Topic 10 - Margins, Indents and Tabs
http://www.gerrykruyer.com Teach Yourself Microsoft Word Topic 10 - Margins, Indents and Tabs In the previous Level 2 MS Word course: Topic 8 you covered columns, text boxes and tables as well as look
More informationChapter 1 Getting Started
Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different
More informationTopic Notes: Java and Objectdraw Basics
Computer Science 120 Introduction to Programming Siena College Spring 2011 Topic Notes: Java and Objectdraw Basics Event-Driven Programming in Java A program expresses an algorithm in a form understandable
More informationG52CPP C++ Programming Lecture 15
G52CPP C++ Programming Lecture 15 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 IMPORTANT No optional demo lecture at 2pm this week Please instead use the time to do your coursework I
More informationTaskbar: Working with Several Windows at Once
Taskbar: Working with Several Windows at Once Your Best Friend at the Bottom of the Screen How to Make the Most of Your Taskbar The taskbar is the wide bar that stretches across the bottom of your screen,
More informationYour First Windows Form
Your First Windows Form From now on, we re going to be creating Windows Forms Applications, rather than Console Applications. Windows Forms Applications make use of something called a Form. The Form is
More informationLecture 05 I/O statements Printf, Scanf Simple statements, Compound statements
Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 05 I/O statements Printf, Scanf Simple
More informationPrototyping a Swing Interface with the Netbeans IDE GUI Editor
Prototyping a Swing Interface with the Netbeans IDE GUI Editor Netbeans provides an environment for creating Java applications including a module for GUI design. Here we assume that we have some existing
More informationCS 211 Programming Practicum Spring 2018
Due: Thursday, 4/5/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More informationPART 1: Getting Started
Programming in C++ / FASTTRACK TUTORIALS Introduction PART 1: Getting Started Welcome to the first article in the C++ FASTTRACK tutorial series! These tutorials are designed to take you from zero to a
More informationCS112 Lecture: Working with Numbers
CS112 Lecture: Working with Numbers Last revised January 30, 2008 Objectives: 1. To introduce arithmetic operators and expressions 2. To expand on accessor methods 3. To expand on variables, declarations
More informationMicrosoft Excel 2007
Learning computers is Show ezy Microsoft Excel 2007 301 Excel screen, toolbars, views, sheets, and uses for Excel 2005-8 Steve Slisar 2005-8 COPYRIGHT: The copyright for this publication is owned by Steve
More information