One of the missions of Qatar University is to conduct research to advance knowledge. Many research projects are funded by Qatar National Research Found (QNRF) which is part of Qatar Foundation. Currently, there are different types of research programs that are sponsored by QNRF. Among these types, a program called “Undergraduate Research Experience Program (UREP)”, and a program called “National Priorities Research Program (NPRP)”.

UREP: is a program that aims to train undergraduate students do research under supervision of one or more of university faculty. UREP projects has the following rules:
- Each UREP project has a primary faculty member (PFM) who is the leader of the project, he should be a faculty member.
- UREP project’ duration is one year by default.
- The student to faculty member ratio in a project should not exceed 3:1.
- Each student gets paid QR14600 during the whole project.
- Each supervisor (faculty) gets supported amount of (N x 7300)/M where N is number of students in the project and M is number of supervisors.

NPRP: is a program that supports research to address national priorities for economic development. There are some rules of NPRP projects.
- Each project has a research leader called lead principle investigator (Lead PI).
- The duration of NPRP project could be 1 to 3 years.
- Besides the project leader, different people can be part of this project: faculty members, post-doc, and research assistants (RA).
- Faculty member gets paid two month salaries per year for only one project, i.e. if he is a member of many project, he only gets money from one of them.
- Post-docs are paid based on a monthly salary.
- RA’s are paid based on number of hours they work as following :
o Master students gets QR80 per hour.
o PhD students gets QR100 per hour.

You are required to develop a Java-based application to track these research projects at the department of computer science and engineering. Your application should provide functionalities of adding new projects, researchers, query this data. Also, it calculates personnel cost of a project, and payments of each researcher.

System Implementation
* Your system should adopt the provided class diagram.
* Through GUI, your system should provide the following functionalities:
1 - Add a new project.
2 - Add a new researcher.
3 - Search by researcher
4 - Display personnel cost of a project( for all years)
5 - Display personnel cost of all projects (for all years) with the total of all projects.
6 - Calculate payment for a researcher (for all years)
* Your project should use files to save all data permanently.
* You should implement your system through two phases:
Phase 1: Model implementation: in this phase you implement all classes in the classes diagram, with the required methods. Then test the functionalities of your implementation.
Phase 2: GUI implementation: in this phase you build the interface to interact with the model. Consider the following :
- Think of introducing the GUI layer to your application without changing your classes
- In your data entry GUIs, consider using ‘Enter’, ‘Clear’ and ‘Exit’ buttons and/or any other buttons/features to make your application user friendly.
- You will have to use classes from the javax.swing package; such classes include: JFrame, JButton, JTextField, JLabel, JList, JMenu, JTextArea…etc.
- Consider using the JTextArea, JTable and/or JScrollPane classes to display the output.

Solution PreviewSolution Preview

These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice. Unethical use is strictly forbidden.

public class AddR2P extends JPanel implements ActionListener{
    private ArrayList<Project> projects;
    private ArrayList<Researcher> researchers;
    private JComboBox project;
    private JComboBox researcher;
    private int p_index;
    private int r_index;

    private JButton addButton;
    * constructor
    * @param projects
    * @param researchers
    public AddR2P(ArrayList<Project> projects, ArrayList<Researcher> researchers) {
       this.projects = projects;
       this.researchers = researchers;
       // prepare for jcombobox
       String [] p = new String[projects.size()];
       for (int i = 0; i < projects.size(); i++) {
            p[i] = projects.get(i).getTitle() + " : " + projects.get(i).getId();
       String [] r = new String[researchers.size()];
       for (int i = 0; i < researchers.size(); i++) {
            r[i] = researchers.get(i).getName() + " : " + researchers.get(i).getId();            
       // add to jcombobox
       project = new JComboBox(p);
       project.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent ie) {
                p_index = project.getSelectedIndex();

By purchasing this solution you'll be able to access the following files:

for this solution

or FREE if you
register a new account!

PayPal, G Pay, ApplePay, Amazon Pay, and all major credit cards accepted.

Find A Tutor

View available Java Programming Tutors

Get College Homework Help.

Are you sure you don't want to upload any files?

Fast tutor response requires as much info as possible.

Upload a file
Continue without uploading

We couldn't find that subject.
Please select the best match from the list below.

We'll send you an email right away. If it's not in your inbox, check your spam folder.

  • 1
  • 2
  • 3
Live Chats