首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
program代做、代写java编程语言
项目预算:
开发周期:
发布时间:
要求地区:
Programming Languages and Techniques
Homework 11 : Student Management System
For HW11, you may work as a group (no more than 2 students). Please mention
your collaborator’s name at the top of your code files.
Like the previous assignment, this homework is also very detailed, so please
start as early as you can on it. It deals with the following topics:
● Object-Oriented Programming Design
● Inheritance
● File I/O
Introduction
In this homework, you will implement a console-based student management
system. The objective of this assignment is to design a system for students to
manage their courses. There will be three main user roles in the application: Admin,
Student, and Professor.
In the student management system, a) A student can log in to their account,
view/add/drop courses, check their course schedule, and view grades. b) A professor
can view course information they have, and view the student lists for these courses.
c) An admin can view course/student/professor lists, and add/delete
courses/students/professors. The course information will be in the courseInfo.txt
file. There will also be three files containing student/professor/admin information.
The student management system will read and parse all of the files. Once all
information has been loaded into the system, you’ll be able to log in as a(n)
student/professor/administrator to test the system.
You are expected to design several classes and to implement methods to build the
application. For example, you may create a class FileInfoReader to load the files.
You can create an abstract class User and a Professor class, Student class, and
Admin class which all extend and implement the User class. You can have a
Course class that represents a single course and a Controller class to control the
main logic of the entire system.
Below are explanations (and samples) of the pieces of information in each of the
four provided data files.
courseInfo.txt - Courses information file that contains: course ID; course name;
lecturer; days; start time; end time; capacity
CIT590; Programming Languages and Techniques; Brandon L
Krakowsky; MW; 16:30; 18:00; 110
Programming Languages and Techniques
studentInfo.txt - Student information file that contains: student ID; student name;
student username; password; course ID: course grade (could be multiple)
001; StudentName1; testStudent01; password590; CIS191: A,
CIS320: A
profInfo.txt - Professor information file that contains: prof name; prof ID; prof
username; password
Clayton Greenberg; 001; Greenberg; password590
adminInfo.txt - Admin information file that contains: admin ID; admin name; admin
username; password
001; admin; admin01; password590
Below are examples of what the system could look like. Feel free to make your
program do exactly this or make it look even fancier.
When entering the system, one can select to log in as a(n) student/professor/admin,
or quit the system.
Student Login
When logging in as a student, one can view course information, add/drop courses,
view grades, or return to the previous menu.
Programming Languages and Techniques
View all courses: All courses are displayed in the console.
After adding course CIT590 to the student’s schedule.
If one tries to add a course which has already been added to their schedule, the
system should prompt a message towards this. In addition, if one tries to add a
course which doesn’t exist in the system, the operation will not succeed.
One cannot add a course which has a time conflict with another added course.
Drop a course: If one tries to drop a course which is not on his/her schedule, the
operation will not succeed.
Programming Languages and Techniques
View grades: Grades for courses taken are displayed in the console.
Professor Login
When logging in as a professor, one can view the information for courses they
teach, view students list, or return to the previous menu.
After student StudentName2 with ID 002 has added CIT590, the lecturer can see
the student’s basic information.
Programming Languages and Techniques
Administrator Login
When choosing to login as an administrator, one can add/delete/edit/view a
course/professor/student information, or return to the previous menu.
If an admin wants to add a course that already exists in the system, the program
should prompt with a message.
Programming Languages and Techniques
If the lecturer of the course we want to add does not exist in the system, we also
need to add the new professor to the system first, otherwise, this operation will not
succeed.
When adding a new course given by a lecturer, the program needs to check if the
course has a time conflict with all of the lecturer’s other courses.
Programming Languages and Techniques
After adding a new course, we can see the newly added course CIT900 in the
system.
An admin can add a new student/professor to the system.
When adding a new student/professor, the program needs to check if the ID and
username already exists in the system.
Programming Languages and Techniques
When deleting courses/professors/students/, the program needs to check if the
courses/professors/students/ in fact exist in the system.
You may assume all input is valid.
Your Tasks:
1. Read and parse the provided files in Java, cleaning them up if/when
needed. You may assume the information in the files is valid.
a. Courses information file – courseInfo.txt. This file contains
information for a number of courses. The information for each course
is on a separate line. The pieces of information for each course are
separated by semicolons (“;”). We want you to read the file in and
load the information.
b. Admin information file – adminInfo.txt. This file contains basic
information for administrators including username, password, name,
and ID. You need to read the file and load the information.
c. Student information file – studentInfo.txt. This file contains basic
information for students.
d. Professor information file – profInfo.txt. This file contains basic
information for professors.
e. You may assume all of the information in the files is valid. For
example, all information for professors in the courseInfo.txt file is
Programming Languages and Techniques
given in the proInfo.txt file. We suggest that you load the list of
professors before loading the list of courses.
2. Design the student management system
We are not going to provide you with a specific design for this homework.
Feel free to design your own student management system. We do, however,
require you to have the following:
a. At the very least, you MUST have a Controller class that launches
and runs the management system. This class displays the menu,
helps with user login, accomplishes the different user operations and
continuously takes in user input. The Controller class must have the
main() method.. Note, the Controller.java file SHOULD NOT be in a
package. (See screenshot on the next page.)
Here are some other suggestions:
a. You need a FileInfoReader class that reads and parses the files.
b. You need a class that defines a Course. The Course class is expected
to have instance variables which store all of the information for the
course. It also needs to provide functionality, for example, checking if
one course has a time conflict with another course, adding/removing
students from the course, and other helper methods you may need.
c. You need classes that define a Student, Professor, and
Administrator. And they are expected to share some common
attributes and to share as much code as possible. We want you to
think hard about how you can accomplish this. This answer lies
within the scope of the object-oriented concepts we have covered in
this course. For example, you might have a User class with a subclass
Student for the functionality of student operations like
adding/dropping/viewing courses, a subclass to represent Professor,
and a subclass Admin to add/delete/view information for courses,
students and professors.
Here is an overview of the suggested class (and package) structure
described above.
Programming Languages and Techniques
Testing
Regardless of your design, we expect you to write unit tests for every public
method. The only public methods that you can leave untested are those that
perform file I/O, and simple getters and setters. You should keep the file I/O
in as few methods as possible.
You can create any number of test files and place them in any package, but
you MUST name the test files in the format “
Test.java”. For
example, if you were to create a test file for your FileInfoReader class, you
MUST name it FileInfoReaderTest.java.
Javadocs
Add Javadocs for all classes, methods, and variables.
What to Submit
Please submit all packages and classes in your entire Java project. Make sure
it includes everything in your “src” folder.
If working in a group, both team members must submit. Include the names of
the members of your team as part of the @author tag in the Javadocs for all
of your classes.
Evaluation
You will be graded out of 40 points:
● Code writing, functionality, and design (20 pts)
o At the very least, did you write a Controller.java that launches
and runs the program?
o Did you make sure Controller.java is not in a package?
o Does the system work as expected?
o Did you make good design decisions about code reuse?
▪ How much code is being shared between Student,
Professor and Admin?
▪ How is this code sharing being achieved in your
design?
o Does the code take too long to run? (10 seconds would be too
long!)
● Loading, parsing, and navigating files (10 pts)
o Did you keep file I/O in as few methods as possible?
Programming Languages and Techniques
o Did you correctly load valid data from every file?
o What data structure(s) did you use?
● Unit testing (5 pts)
o Are your test filenames in the format
Test.java?
For example, a test file for a class named FileInfoReader must
be named FileInfoReaderTest.java.
o Did you write unit tests for every public method (excluding
methods that perform file I/O and simple getters and setters)?
● Style & Javadocs (5 pts)
o Adding Javadocs to all methods and variables, and comments
to all non-trivial code
o Properly naming variables, using proper indentation, etc.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!