|
是我的功课, 放上来作为你们练习的题目吧. 哪位如果有兴趣, 也请不要在网上公布代码(至少在2月12日之前请保密)
[code:1]
CS 2310 Spring 2003
Project #1: Using struct and class data type to write a simple student records report program
This project is an elaboration of Lab 1. However, it requires using of class data type to manage the student records, in addition to the requirement of using struct data type to represent a student record.
Use Visual C++ to write your program.
As records secretary for Cougar High School, you have been asked by the principal to prepare a report on the grades of some of the school's top athletes. Specifically, you must print each of the athlete's average letter grades based on their scores from three academic courses. Input will be taken from the file stufile.txt, which is organized as follows: Each athlete in the file has four lines of information recorded - name (at most 20 characters including the comma and white space), student ID (SS#), class rank (1=Freshman, 2=Sophomore, 3=Junior, 4=Senior), and the three scores. Information for at most 15 athletes is stored in the file, but the first fine of the file contains an integer showing the exact number of athletes.
Use struct data type as data representation of a student record, as described in Lab 1. However, this time, add another field to hold the letter grade. Look at the sample speficifation file proj1_prototype.h for the suggested data type declarations.
Then, define a class to hold an array of student records and encapsulate some member functions which will be used to do the specified reporting as described in the following. Again, Look at the sample speficifation file proj1_prototype.h for the suggested data type declarations.
You can assume that all scores are integers from 0 to 100. Output from this program should be sent to a file named gfile.txt . Athletes’ names ID numbers, class, ranks, and, letter grades are to be printed twice, the first time in order by letter grade, with "A" students first, “B" students second, and so forth. The second time they are to be printed in order by rank, with freshman students first, sophomore students second, and so forth. Note that the column of student ID numbers should be aligned three spaces beyond the maximum name length, the column of class ranks should be aligned three spaces beyond the column of student IDs, and the column of grades should be aligned three spaces beyond the column of class ranks.
A sample implementation file of the class member functions and a main function is written in file proj1_prototype.cpp. In the main function, there is an outline of the suggested steps to do the reporting job.
Turn in a diskette containing the header (.h) file, source code (.cpp file), and the I/O files.
stuflie.txt sample
10
Kevin Zitt
399-86-4533
1
65 78 66
Perry Placrue
455-78-9055
2
78 44 69
Alicia Placrue
678-89-4567
3
85 90 77
Pyretha Noosbaum,
456-78-9045
4
98 90 91
Hypatia Noosbaum,
456- 65-8023
1
99 95 92
Otto Mattick
218-45-8923
2
87 78 90
Alexander Grack
317-56-4555
3
67 87 56
S.T. Royd
435-69-0675
4
45 67 50
Derland Walpole
566-90-4563
1
78 89 65
Jellona Crimp
234-78-6745
2
38 56 89
gfile.txt sample
NAME STUDENT ID RANK GRADE
Hypatia Noosbaum 456-65-8023 Freshman A
Pyretha Noosbaum 456-78-9045 Senior A
Alicia Aardvark 678-89-4567 Junior B
Otto Mattick 218-45-8923 Sophomore B
Alexander Grack 317-56-4555 Junior C
Derland Walpole 566-90-4563 Freshman C
Jellona Crimp 234-78-6745 Sophomore D
Perry Plaque 455-78-9055 Sophomore D
Kevin Zitt 399-86-4533 Freshman D
S.T. Royd 435-89-0675 Senior F
NAME STUDENT ID RANK GRADE
Hypatia Noosbaum 456-65-8023 Freshman A
Derland Walpole 566-90-4563 Freshman C
Kevin Zitt 399-86-4533 Freshman D
Jellona Crimp 234-78-6745 Sophomore D
Otto Mattick 218-45-8923 Sophomore B
Perry Plaque 455-78-9055 Sophomore D
Alicia Aardvark 678-89-4567 Junior B
Alexander Grack 317-56-4555 Junior C
Pyretha Noosba 456-78-9045 Senior A
S.T. Royd 435-89-0675 Senior F
[/code:1] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|