├── .DS_Store ├── .gitignore ├── README.md ├── build.xml ├── build ├── built-jar.properties └── classes │ └── com │ ├── data_structure │ ├── AbstractContainer$1.class │ ├── AbstractContainer.class │ ├── AbstractVisitor.class │ ├── Association.class │ ├── Container.class │ ├── ContainerFullException.class │ ├── DBConnect.class │ ├── DBConnect1.class │ ├── Iterator.class │ ├── MethodNotImplemented.class │ ├── MyContainer$1.class │ ├── MyContainer.class │ ├── MySearchableContainer.class │ ├── MyTable.class │ ├── PrintingVisitor.class │ ├── ResultSetTableModel.class │ ├── SearchableContainer.class │ ├── Visitor.class │ └── Visitor1.class │ ├── genetic_algorithm_resource │ ├── Class.class │ ├── Course.class │ ├── Department.class │ ├── Instructor.class │ ├── MeetingTime.class │ └── Room.class │ ├── gui │ ├── AddCourse$1.class │ ├── AddCourse$2.class │ ├── AddCourse.class │ ├── AddLecturer$1.class │ ├── AddLecturer$2.class │ ├── AddLecturer.class │ ├── AddVenue$1.class │ ├── AddVenue$2.class │ ├── AddVenue.class │ ├── EditCourse$1.class │ ├── EditCourse$2.class │ ├── EditCourse$3.class │ ├── EditCourse.class │ ├── EditLecturer$1.class │ ├── EditLecturer$2.class │ ├── EditLecturer$3.class │ ├── EditLecturer.class │ ├── EditVenue$1.class │ ├── EditVenue$2.class │ ├── EditVenue$3.class │ ├── EditVenue.class │ ├── GenerateTimeTable$1.class │ ├── GenerateTimeTable$2.class │ ├── GenerateTimeTable.class │ ├── MainMenu$1.class │ ├── MainMenu$10.class │ ├── MainMenu$11.class │ ├── MainMenu$12.class │ ├── MainMenu$13.class │ ├── MainMenu$14.class │ ├── MainMenu$15.class │ ├── MainMenu$16.class │ ├── MainMenu$17.class │ ├── MainMenu$18.class │ ├── MainMenu$19.class │ ├── MainMenu$2.class │ ├── MainMenu$20.class │ ├── MainMenu$21.class │ ├── MainMenu$22.class │ ├── MainMenu$23.class │ ├── MainMenu$24.class │ ├── MainMenu$25.class │ ├── MainMenu$26.class │ ├── MainMenu$27.class │ ├── MainMenu$28.class │ ├── MainMenu$29.class │ ├── MainMenu$3.class │ ├── MainMenu$30.class │ ├── MainMenu$31.class │ ├── MainMenu$32.class │ ├── MainMenu$33.class │ ├── MainMenu$34.class │ ├── MainMenu$35.class │ ├── MainMenu$36.class │ ├── MainMenu$37.class │ ├── MainMenu$38.class │ ├── MainMenu$39.class │ ├── MainMenu$4.class │ ├── MainMenu$40.class │ ├── MainMenu$41.class │ ├── MainMenu$42.class │ ├── MainMenu$43.class │ ├── MainMenu$44.class │ ├── MainMenu$45.class │ ├── MainMenu$46.class │ ├── MainMenu$47.class │ ├── MainMenu$5.class │ ├── MainMenu$6.class │ ├── MainMenu$7.class │ ├── MainMenu$8.class │ ├── MainMenu$9.class │ ├── MainMenu.class │ ├── ProfileClassCourses$1.class │ ├── ProfileClassCourses$2.class │ ├── ProfileClassCourses$3.class │ ├── ProfileClassCourses$4.class │ ├── ProfileClassCourses.class │ ├── ProfileCourseInstructor$1.class │ ├── ProfileCourseInstructor$2.class │ ├── ProfileCourseInstructor$3.class │ ├── ProfileCourseInstructor$4.class │ ├── ProfileCourseInstructor.class │ ├── ViewClass$1.class │ ├── ViewClass.class │ ├── ViewCourse$1.class │ ├── ViewCourse$2.class │ ├── ViewCourse$3.class │ ├── ViewCourse$4.class │ ├── ViewCourse.class │ ├── ViewLecturer$1.class │ ├── ViewLecturer$2.class │ ├── ViewLecturer$3.class │ ├── ViewLecturer$4.class │ ├── ViewLecturer.class │ ├── ViewMeetingTime$1.class │ ├── ViewMeetingTime.class │ ├── ViewVenue$1.class │ ├── ViewVenue$2.class │ ├── ViewVenue$3.class │ ├── ViewVenue$4.class │ └── ViewVenue.class │ ├── image │ └── ico │ │ ├── Add16.gif │ │ ├── AdminLTELogo.png │ │ ├── Edit16.gif │ │ ├── Exit16.gif │ │ ├── Import16.gif │ │ ├── List16.gif │ │ ├── Untitled.jpg │ │ ├── boxdownload32.jpg │ │ ├── boxupload32.jpg │ │ └── leftturnarrow32.jpg │ └── timetable │ ├── Data.class │ ├── Driver.class │ ├── GeneticAlgorithm.class │ ├── Population.class │ └── Schedule.class ├── db └── time_table_scheduling.sql ├── dist ├── README.TXT ├── Time Table Scheduling System.jar └── lib │ ├── AbsoluteLayout.jar │ ├── jcalendar-1.4.jar │ └── mysql-connector.jar ├── library ├── jcalendar-1.4.jar └── mysql-connector.jar ├── manifest.mf ├── nbproject ├── build-impl.xml ├── genfiles.properties ├── private │ ├── config.properties │ ├── private.properties │ └── private.xml ├── project.properties └── project.xml └── src └── com ├── data_structure ├── AbstractContainer.java ├── AbstractVisitor.java ├── Association.java ├── Container.java ├── ContainerFullException.java ├── DBConnect.java ├── DBConnect1.java ├── Iterator.java ├── MethodNotImplemented.java ├── MyContainer.java ├── MySearchableContainer.java ├── MyTable.java ├── PrintingVisitor.java ├── ResultSetTableModel.java ├── SearchableContainer.java ├── Visitor.java └── Visitor1.java ├── genetic_algorithm_resource ├── Class.java ├── Course.java ├── Department.java ├── Instructor.java ├── MeetingTime.java └── Room.java ├── gui ├── AddCourse.form ├── AddCourse.java ├── AddLecturer.form ├── AddLecturer.java ├── AddVenue.form ├── AddVenue.java ├── EditCourse.form ├── EditCourse.java ├── EditLecturer.form ├── EditLecturer.java ├── EditVenue.form ├── EditVenue.java ├── GenerateTimeTable.form ├── GenerateTimeTable.java ├── MainMenu.form ├── MainMenu.java ├── ProfileClassCourses.form ├── ProfileClassCourses.java ├── ProfileCourseInstructor.form ├── ProfileCourseInstructor.java ├── ViewClass.form ├── ViewClass.java ├── ViewCourse.form ├── ViewCourse.java ├── ViewLecturer.form ├── ViewLecturer.java ├── ViewMeetingTime.form ├── ViewMeetingTime.java ├── ViewVenue.form └── ViewVenue.java ├── image └── ico │ ├── Add16.gif │ ├── AdminLTELogo.png │ ├── Edit16.gif │ ├── Exit16.gif │ ├── Import16.gif │ ├── List16.gif │ ├── Untitled.jpg │ ├── boxdownload32.jpg │ ├── boxupload32.jpg │ └── leftturnarrow32.jpg └── timetable ├── Data.java ├── Driver.java ├── GeneticAlgorithm.java ├── Population.java └── Schedule.java /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /shots 2 | /Test 3 | /nbproject -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GUI based Time table scheduling system using Genetic Algorithm (Java) 2 | 3 | ## Installation Process 4 | 5 | i. Create a database with the name "time_table_scheduling" then import file time_table_scheduling.sql in the /db folder to the newly created database 6 | 7 | ii. To run the executable jar file in the /dist folder, you need to install a JDK 1.8 or later 8 | 9 | ## Go ahead and try out the features of the application by double clicking on the jar file named Time Table Scheduling in the /dist folder 10 | 11 | ## Credits to Pranav Khurana for some genetic algorithms that became very useful in development of this project 12 | 13 | ## Thank you 14 | If you find this code interesting or useful, kindly click on the like button and follow me for more. 15 | -------------------------------------------------------------------------------- /build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Builds, tests, and runs the project Time Table Scheduling. 12 | 13 | 73 | 74 | -------------------------------------------------------------------------------- /build/built-jar.properties: -------------------------------------------------------------------------------- 1 | #Fri, 24 Aug 2018 04:20:19 +0100 2 | 3 | 4 | C\:\\Users\\USER\\Documents\\Programming\\NetBeansProjects\\Time\ Table\ Scheduling= 5 | -------------------------------------------------------------------------------- /build/classes/com/data_structure/AbstractContainer$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/AbstractContainer$1.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/AbstractContainer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/AbstractContainer.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/AbstractVisitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/AbstractVisitor.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/Association.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/Association.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/Container.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/Container.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/ContainerFullException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/ContainerFullException.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/DBConnect.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/DBConnect.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/DBConnect1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/DBConnect1.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/Iterator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/Iterator.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/MethodNotImplemented.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/MethodNotImplemented.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/MyContainer$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/MyContainer$1.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/MyContainer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/MyContainer.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/MySearchableContainer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/MySearchableContainer.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/MyTable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/MyTable.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/PrintingVisitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/PrintingVisitor.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/ResultSetTableModel.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/ResultSetTableModel.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/SearchableContainer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/SearchableContainer.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/Visitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/Visitor.class -------------------------------------------------------------------------------- /build/classes/com/data_structure/Visitor1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/data_structure/Visitor1.class -------------------------------------------------------------------------------- /build/classes/com/genetic_algorithm_resource/Class.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/genetic_algorithm_resource/Class.class -------------------------------------------------------------------------------- /build/classes/com/genetic_algorithm_resource/Course.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/genetic_algorithm_resource/Course.class -------------------------------------------------------------------------------- /build/classes/com/genetic_algorithm_resource/Department.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/genetic_algorithm_resource/Department.class -------------------------------------------------------------------------------- /build/classes/com/genetic_algorithm_resource/Instructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/genetic_algorithm_resource/Instructor.class -------------------------------------------------------------------------------- /build/classes/com/genetic_algorithm_resource/MeetingTime.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/genetic_algorithm_resource/MeetingTime.class -------------------------------------------------------------------------------- /build/classes/com/genetic_algorithm_resource/Room.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/genetic_algorithm_resource/Room.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddCourse$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddCourse$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddCourse$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddCourse$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddCourse.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddCourse.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddLecturer$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddLecturer$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddLecturer$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddLecturer$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddLecturer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddLecturer.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddVenue$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddVenue$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddVenue$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddVenue$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/AddVenue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/AddVenue.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditCourse$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditCourse$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditCourse$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditCourse$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditCourse$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditCourse$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditCourse.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditCourse.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditLecturer$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditLecturer$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditLecturer$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditLecturer$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditLecturer$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditLecturer$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditLecturer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditLecturer.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditVenue$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditVenue$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditVenue$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditVenue$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditVenue$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditVenue$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/EditVenue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/EditVenue.class -------------------------------------------------------------------------------- /build/classes/com/gui/GenerateTimeTable$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/GenerateTimeTable$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/GenerateTimeTable$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/GenerateTimeTable$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/GenerateTimeTable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/GenerateTimeTable.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$10.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$10.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$11.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$11.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$12.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$12.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$13.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$13.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$14.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$14.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$15.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$15.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$16.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$16.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$17.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$17.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$18.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$18.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$19.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$19.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$20.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$20.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$21.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$21.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$22.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$22.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$23.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$23.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$24.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$24.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$25.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$25.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$26.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$26.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$27.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$27.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$28.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$28.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$29.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$29.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$30.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$30.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$31.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$31.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$32.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$32.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$33.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$33.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$34.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$34.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$35.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$35.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$36.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$36.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$37.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$37.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$38.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$38.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$39.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$39.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$4.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$40.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$40.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$41.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$41.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$42.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$42.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$43.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$43.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$44.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$44.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$45.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$45.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$46.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$46.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$47.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$47.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$5.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$6.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$7.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$7.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$8.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu$9.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu$9.class -------------------------------------------------------------------------------- /build/classes/com/gui/MainMenu.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/MainMenu.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileClassCourses$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileClassCourses$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileClassCourses$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileClassCourses$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileClassCourses$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileClassCourses$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileClassCourses$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileClassCourses$4.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileClassCourses.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileClassCourses.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileCourseInstructor$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileCourseInstructor$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileCourseInstructor$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileCourseInstructor$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileCourseInstructor$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileCourseInstructor$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileCourseInstructor$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileCourseInstructor$4.class -------------------------------------------------------------------------------- /build/classes/com/gui/ProfileCourseInstructor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ProfileCourseInstructor.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewClass$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewClass$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewClass.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewClass.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewCourse$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewCourse$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewCourse$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewCourse$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewCourse$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewCourse$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewCourse$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewCourse$4.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewCourse.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewCourse.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewLecturer$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewLecturer$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewLecturer$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewLecturer$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewLecturer$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewLecturer$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewLecturer$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewLecturer$4.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewLecturer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewLecturer.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewMeetingTime$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewMeetingTime$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewMeetingTime.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewMeetingTime.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewVenue$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewVenue$1.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewVenue$2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewVenue$2.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewVenue$3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewVenue$3.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewVenue$4.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewVenue$4.class -------------------------------------------------------------------------------- /build/classes/com/gui/ViewVenue.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/gui/ViewVenue.class -------------------------------------------------------------------------------- /build/classes/com/image/ico/Add16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/Add16.gif -------------------------------------------------------------------------------- /build/classes/com/image/ico/AdminLTELogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/AdminLTELogo.png -------------------------------------------------------------------------------- /build/classes/com/image/ico/Edit16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/Edit16.gif -------------------------------------------------------------------------------- /build/classes/com/image/ico/Exit16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/Exit16.gif -------------------------------------------------------------------------------- /build/classes/com/image/ico/Import16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/Import16.gif -------------------------------------------------------------------------------- /build/classes/com/image/ico/List16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/List16.gif -------------------------------------------------------------------------------- /build/classes/com/image/ico/Untitled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/Untitled.jpg -------------------------------------------------------------------------------- /build/classes/com/image/ico/boxdownload32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/boxdownload32.jpg -------------------------------------------------------------------------------- /build/classes/com/image/ico/boxupload32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/boxupload32.jpg -------------------------------------------------------------------------------- /build/classes/com/image/ico/leftturnarrow32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/image/ico/leftturnarrow32.jpg -------------------------------------------------------------------------------- /build/classes/com/timetable/Data.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/timetable/Data.class -------------------------------------------------------------------------------- /build/classes/com/timetable/Driver.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/timetable/Driver.class -------------------------------------------------------------------------------- /build/classes/com/timetable/GeneticAlgorithm.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/timetable/GeneticAlgorithm.class -------------------------------------------------------------------------------- /build/classes/com/timetable/Population.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/timetable/Population.class -------------------------------------------------------------------------------- /build/classes/com/timetable/Schedule.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/build/classes/com/timetable/Schedule.class -------------------------------------------------------------------------------- /db/time_table_scheduling.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 4.6.5.2 3 | -- https://www.phpmyadmin.net/ 4 | -- 5 | -- Host: 127.0.0.1 6 | -- Generation Time: Aug 24, 2018 at 05:18 AM 7 | -- Server version: 10.1.21-MariaDB 8 | -- PHP Version: 7.1.1 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | SET time_zone = "+00:00"; 12 | 13 | 14 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 15 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 16 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 17 | /*!40101 SET NAMES utf8mb4 */; 18 | 19 | -- 20 | -- Database: `time_table_scheduling` 21 | -- 22 | 23 | -- -------------------------------------------------------- 24 | 25 | -- 26 | -- Table structure for table `app_user` 27 | -- 28 | 29 | CREATE TABLE `app_user` ( 30 | `user_id` int(11) NOT NULL, 31 | `username` varchar(100) NOT NULL, 32 | `firstname` varchar(100) NOT NULL, 33 | `lastname` varchar(100) NOT NULL, 34 | `password` varchar(100) NOT NULL 35 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 36 | 37 | -- 38 | -- Dumping data for table `app_user` 39 | -- 40 | 41 | INSERT INTO `app_user` (`user_id`, `username`, `firstname`, `lastname`, `password`) VALUES 42 | (1, 'muhammad', 'Muhammad', '', 'muhammad'); 43 | 44 | -- -------------------------------------------------------- 45 | 46 | -- 47 | -- Table structure for table `class` 48 | -- 49 | 50 | CREATE TABLE `class` ( 51 | `class_id` int(11) NOT NULL, 52 | `class_name` varchar(100) NOT NULL 53 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 54 | 55 | -- 56 | -- Dumping data for table `class` 57 | -- 58 | 59 | INSERT INTO `class` (`class_id`, `class_name`) VALUES 60 | (1, '100 Level'), 61 | (2, '200 Level'), 62 | (3, '300 Level'), 63 | (4, '400 Level'); 64 | 65 | -- -------------------------------------------------------- 66 | 67 | -- 68 | -- Table structure for table `class_courses` 69 | -- 70 | 71 | CREATE TABLE `class_courses` ( 72 | `id` int(11) NOT NULL, 73 | `course_id` int(11) NOT NULL, 74 | `class_id` int(11) NOT NULL 75 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 76 | 77 | -- -------------------------------------------------------- 78 | 79 | -- 80 | -- Table structure for table `class_room` 81 | -- 82 | 83 | CREATE TABLE `class_room` ( 84 | `class_room_id` int(11) NOT NULL, 85 | `class_room_name` varchar(100) NOT NULL, 86 | `space_capacity` int(11) NOT NULL 87 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 88 | 89 | -- -------------------------------------------------------- 90 | 91 | -- 92 | -- Table structure for table `course` 93 | -- 94 | 95 | CREATE TABLE `course` ( 96 | `course_id` int(11) NOT NULL, 97 | `course_name` varchar(100) NOT NULL, 98 | `maximum_number_of_student` int(11) NOT NULL 99 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 100 | 101 | -- -------------------------------------------------------- 102 | 103 | -- 104 | -- Table structure for table `course_instructor` 105 | -- 106 | 107 | CREATE TABLE `course_instructor` ( 108 | `id` int(11) NOT NULL, 109 | `course_id` int(11) NOT NULL, 110 | `instructor_id` int(11) NOT NULL 111 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 112 | 113 | -- -------------------------------------------------------- 114 | 115 | -- 116 | -- Table structure for table `instructor` 117 | -- 118 | 119 | CREATE TABLE `instructor` ( 120 | `instructor_id` int(11) NOT NULL, 121 | `instructor_name` varchar(100) NOT NULL, 122 | `phone` varchar(50) NOT NULL, 123 | `gender` varchar(10) NOT NULL 124 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 125 | 126 | -- -------------------------------------------------------- 127 | 128 | -- 129 | -- Table structure for table `meeting_time` 130 | -- 131 | 132 | CREATE TABLE `meeting_time` ( 133 | `time_id` int(11) NOT NULL, 134 | `time_title` varchar(100) NOT NULL 135 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 136 | 137 | -- 138 | -- Dumping data for table `meeting_time` 139 | -- 140 | 141 | INSERT INTO `meeting_time` (`time_id`, `time_title`) VALUES 142 | (1, 'MON: 08 AM -- 09 AM'), 143 | (2, 'MON: 09 AM -- 10 AM'), 144 | (3, 'MON: 10 AM -- 11 AM'), 145 | (4, 'MON: 11 AM -- 12 PM'), 146 | (5, 'MON: 12 AM -- 01 PM'), 147 | (7, 'MON: 02 PM -- 03 PM'), 148 | (8, 'MON: 03 PM -- 04 PM'), 149 | (9, 'MON: 04 PM -- 05 PM'), 150 | (10, 'MON: 05 PM -- 06 PM'), 151 | (11, 'TUE: 08 AM -- 09 AM'), 152 | (12, 'TUE: 09 AM -- 10 AM'), 153 | (13, 'TUE: 10 AM -- 11 AM'), 154 | (14, 'TUE: 11 AM -- 12 PM'), 155 | (15, 'TUE: 12 AM -- 01 PM'), 156 | (16, 'TUE: 02 PM -- 03 PM'), 157 | (17, 'TUE: 03 PM -- 04 PM'), 158 | (18, 'TUE: 04 PM -- 05 PM'), 159 | (19, 'TUE: 05 PM -- 06 PM'), 160 | (20, 'WED: 08 AM -- 09 AM'), 161 | (21, 'WED: 09 AM -- 10 AM'), 162 | (22, 'WED: 10 AM -- 11 AM'), 163 | (23, 'WED: 11 AM -- 12 PM'), 164 | (24, 'WED: 12 AM -- 01 PM'), 165 | (25, 'WED: 02 PM -- 03 PM'), 166 | (26, 'WED: 03 PM -- 04 PM'), 167 | (27, 'WED: 04 PM -- 05 PM'), 168 | (28, 'WED: 05 PM -- 06 PM'), 169 | (29, 'THU: 08 AM -- 09 AM'), 170 | (30, 'THU: 09 AM -- 10 AM'), 171 | (31, 'THU: 10 AM -- 11 AM'), 172 | (32, 'THU: 11 AM -- 12 PM'), 173 | (33, 'THU: 12 AM -- 01 PM'), 174 | (34, 'THU: 02 PM -- 03 PM'), 175 | (35, 'THU: 03 PM -- 04 PM'), 176 | (36, 'THU: 04 PM -- 05 PM'), 177 | (37, 'THU: 05 PM -- 06 PM'), 178 | (38, 'FRI: 08 AM -- 09 AM'), 179 | (39, 'FRI: 09 AM -- 10 AM'), 180 | (40, 'FRI: 10 AM -- 11 AM'), 181 | (41, 'FRI: 11 AM -- 12 PM'), 182 | (42, 'FRI: 12 AM -- 01 PM'), 183 | (43, 'FRI: 02 PM -- 03 PM'), 184 | (44, 'FRI: 03 PM -- 04 PM'), 185 | (45, 'FRI: 04 PM -- 05 PM'), 186 | (46, 'FRI: 05 PM -- 06 PM'); 187 | 188 | -- 189 | -- Indexes for dumped tables 190 | -- 191 | 192 | -- 193 | -- Indexes for table `app_user` 194 | -- 195 | ALTER TABLE `app_user` 196 | ADD PRIMARY KEY (`user_id`); 197 | 198 | -- 199 | -- Indexes for table `class` 200 | -- 201 | ALTER TABLE `class` 202 | ADD PRIMARY KEY (`class_id`); 203 | 204 | -- 205 | -- Indexes for table `class_courses` 206 | -- 207 | ALTER TABLE `class_courses` 208 | ADD PRIMARY KEY (`id`), 209 | ADD KEY `class_courses_ibfk_1` (`course_id`), 210 | ADD KEY `class_courses_ibfk_2` (`class_id`); 211 | 212 | -- 213 | -- Indexes for table `class_room` 214 | -- 215 | ALTER TABLE `class_room` 216 | ADD PRIMARY KEY (`class_room_id`); 217 | 218 | -- 219 | -- Indexes for table `course` 220 | -- 221 | ALTER TABLE `course` 222 | ADD PRIMARY KEY (`course_id`); 223 | 224 | -- 225 | -- Indexes for table `course_instructor` 226 | -- 227 | ALTER TABLE `course_instructor` 228 | ADD PRIMARY KEY (`id`), 229 | ADD KEY `course_instructor_ibfk_1` (`course_id`), 230 | ADD KEY `course_instructor_ibfk_2` (`instructor_id`); 231 | 232 | -- 233 | -- Indexes for table `instructor` 234 | -- 235 | ALTER TABLE `instructor` 236 | ADD PRIMARY KEY (`instructor_id`); 237 | 238 | -- 239 | -- Indexes for table `meeting_time` 240 | -- 241 | ALTER TABLE `meeting_time` 242 | ADD PRIMARY KEY (`time_id`); 243 | 244 | -- 245 | -- AUTO_INCREMENT for dumped tables 246 | -- 247 | 248 | -- 249 | -- AUTO_INCREMENT for table `app_user` 250 | -- 251 | ALTER TABLE `app_user` 252 | MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; 253 | -- 254 | -- AUTO_INCREMENT for table `class` 255 | -- 256 | ALTER TABLE `class` 257 | MODIFY `class_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; 258 | -- 259 | -- AUTO_INCREMENT for table `class_courses` 260 | -- 261 | ALTER TABLE `class_courses` 262 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; 263 | -- 264 | -- AUTO_INCREMENT for table `class_room` 265 | -- 266 | ALTER TABLE `class_room` 267 | MODIFY `class_room_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; 268 | -- 269 | -- AUTO_INCREMENT for table `course` 270 | -- 271 | ALTER TABLE `course` 272 | MODIFY `course_id` int(11) NOT NULL AUTO_INCREMENT; 273 | -- 274 | -- AUTO_INCREMENT for table `course_instructor` 275 | -- 276 | ALTER TABLE `course_instructor` 277 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; 278 | -- 279 | -- AUTO_INCREMENT for table `instructor` 280 | -- 281 | ALTER TABLE `instructor` 282 | MODIFY `instructor_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14; 283 | -- 284 | -- AUTO_INCREMENT for table `meeting_time` 285 | -- 286 | ALTER TABLE `meeting_time` 287 | MODIFY `time_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=47; 288 | -- 289 | -- Constraints for dumped tables 290 | -- 291 | 292 | -- 293 | -- Constraints for table `class_courses` 294 | -- 295 | ALTER TABLE `class_courses` 296 | ADD CONSTRAINT `class_courses_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `course` (`course_id`) ON DELETE CASCADE ON UPDATE CASCADE, 297 | ADD CONSTRAINT `class_courses_ibfk_2` FOREIGN KEY (`class_id`) REFERENCES `class` (`class_id`) ON DELETE CASCADE ON UPDATE CASCADE; 298 | 299 | -- 300 | -- Constraints for table `course_instructor` 301 | -- 302 | ALTER TABLE `course_instructor` 303 | ADD CONSTRAINT `course_instructor_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `course` (`course_id`) ON DELETE CASCADE ON UPDATE CASCADE, 304 | ADD CONSTRAINT `course_instructor_ibfk_2` FOREIGN KEY (`instructor_id`) REFERENCES `instructor` (`instructor_id`) ON DELETE CASCADE ON UPDATE CASCADE; 305 | 306 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 307 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 308 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 309 | -------------------------------------------------------------------------------- /dist/README.TXT: -------------------------------------------------------------------------------- 1 | ======================== 2 | BUILD OUTPUT DESCRIPTION 3 | ======================== 4 | 5 | When you build an Java application project that has a main class, the IDE 6 | automatically copies all of the JAR 7 | files on the projects classpath to your projects dist/lib folder. The IDE 8 | also adds each of the JAR files to the Class-Path element in the application 9 | JAR files manifest file (MANIFEST.MF). 10 | 11 | To run the project from the command line, go to the dist folder and 12 | type the following: 13 | 14 | java -jar "Time_Table_Scheduling.jar" 15 | 16 | To distribute this project, zip up the dist folder (including the lib folder) 17 | and distribute the ZIP file. 18 | 19 | Notes: 20 | 21 | * If two JAR files on the project classpath have the same name, only the first 22 | JAR file is copied to the lib folder. 23 | * Only JAR files are copied to the lib folder. 24 | If the classpath contains other types of files or folders, these files (folders) 25 | are not copied. 26 | * If a library on the projects classpath also has a Class-Path element 27 | specified in the manifest,the content of the Class-Path element has to be on 28 | the projects runtime path. 29 | * To set a main class in a standard Java project, right-click the project node 30 | in the Projects window and choose Properties. Then click Run and enter the 31 | class name in the Main Class field. Alternatively, you can manually type the 32 | class name in the manifest Main-Class element. 33 | -------------------------------------------------------------------------------- /dist/Time Table Scheduling System.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/dist/Time Table Scheduling System.jar -------------------------------------------------------------------------------- /dist/lib/AbsoluteLayout.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/dist/lib/AbsoluteLayout.jar -------------------------------------------------------------------------------- /dist/lib/jcalendar-1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/dist/lib/jcalendar-1.4.jar -------------------------------------------------------------------------------- /dist/lib/mysql-connector.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/dist/lib/mysql-connector.jar -------------------------------------------------------------------------------- /library/jcalendar-1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/library/jcalendar-1.4.jar -------------------------------------------------------------------------------- /library/mysql-connector.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/library/mysql-connector.jar -------------------------------------------------------------------------------- /manifest.mf: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | X-COMMENT: Main-Class will be added automatically by build 3 | 4 | -------------------------------------------------------------------------------- /nbproject/genfiles.properties: -------------------------------------------------------------------------------- 1 | build.xml.data.CRC32=d4df6ca6 2 | build.xml.script.CRC32=46b7696e 3 | build.xml.stylesheet.CRC32=8064a381@1.80.1.48 4 | # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. 5 | # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. 6 | nbproject/build-impl.xml.data.CRC32=d4df6ca6 7 | nbproject/build-impl.xml.script.CRC32=d72208b9 8 | nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 9 | -------------------------------------------------------------------------------- /nbproject/private/config.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/nbproject/private/config.properties -------------------------------------------------------------------------------- /nbproject/private/private.properties: -------------------------------------------------------------------------------- 1 | compile.on.save=true 2 | do.depend=false 3 | do.jar=true 4 | javac.debug=true 5 | javadoc.preview=true 6 | user.properties.file=C:\\Users\\USER\\AppData\\Roaming\\NetBeans\\8.2\\build.properties 7 | -------------------------------------------------------------------------------- /nbproject/private/private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /nbproject/project.properties: -------------------------------------------------------------------------------- 1 | annotation.processing.enabled=true 2 | annotation.processing.enabled.in.editor=false 3 | annotation.processing.processors.list= 4 | annotation.processing.run.all.processors=true 5 | annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output 6 | application.title=Time Table Scheduling 7 | application.vendor=USER 8 | build.classes.dir=${build.dir}/classes 9 | build.classes.excludes=**/*.java,**/*.form 10 | # This directory is removed when the project is cleaned: 11 | build.dir=build 12 | build.generated.dir=${build.dir}/generated 13 | build.generated.sources.dir=${build.dir}/generated-sources 14 | # Only compile against the classpath explicitly listed here: 15 | build.sysclasspath=ignore 16 | build.test.classes.dir=${build.dir}/test/classes 17 | build.test.results.dir=${build.dir}/test/results 18 | # Uncomment to specify the preferred debugger connection transport: 19 | #debug.transport=dt_socket 20 | debug.classpath=\ 21 | ${run.classpath} 22 | debug.test.classpath=\ 23 | ${run.test.classpath} 24 | # Files in build.classes.dir which should be excluded from distribution jar 25 | dist.archive.excludes= 26 | # This directory is removed when the project is cleaned: 27 | dist.dir=dist 28 | dist.jar=${dist.dir}/Time_Table_Scheduling.jar 29 | dist.javadoc.dir=${dist.dir}/javadoc 30 | endorsed.classpath= 31 | excludes= 32 | file.reference.jcalendar-1.4.jar=C:\\Users\\USER\\Documents\\Soft\\Java Soft\\library\\jcalendar-1.4.jar 33 | file.reference.mysql-connector.jar=C:\\Users\\USER\\Documents\\Soft\\Java Soft\\library\\mysql-connector.jar 34 | includes=** 35 | jar.compress=false 36 | javac.classpath=\ 37 | ${libs.absolutelayout.classpath}:\ 38 | ${file.reference.jcalendar-1.4.jar}:\ 39 | ${file.reference.mysql-connector.jar} 40 | # Space-separated list of extra javac options 41 | javac.compilerargs= 42 | javac.deprecation=false 43 | javac.external.vm=true 44 | javac.processorpath=\ 45 | ${javac.classpath} 46 | javac.source=1.8 47 | javac.target=1.8 48 | javac.test.classpath=\ 49 | ${javac.classpath}:\ 50 | ${build.classes.dir} 51 | javac.test.processorpath=\ 52 | ${javac.test.classpath} 53 | javadoc.additionalparam= 54 | javadoc.author=false 55 | javadoc.encoding=${source.encoding} 56 | javadoc.noindex=false 57 | javadoc.nonavbar=false 58 | javadoc.notree=false 59 | javadoc.private=false 60 | javadoc.splitindex=true 61 | javadoc.use=true 62 | javadoc.version=false 63 | javadoc.windowtitle= 64 | main.class=com.gui.MainMenu 65 | manifest.file=manifest.mf 66 | meta.inf.dir=${src.dir}/META-INF 67 | mkdist.disabled=false 68 | platform.active=default_platform 69 | run.classpath=\ 70 | ${javac.classpath}:\ 71 | ${build.classes.dir} 72 | # Space-separated list of JVM arguments used when running the project. 73 | # You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. 74 | # To set system properties for unit tests define test-sys-prop.name=value: 75 | run.jvmargs= 76 | run.test.classpath=\ 77 | ${javac.test.classpath}:\ 78 | ${build.test.classes.dir} 79 | source.encoding=UTF-8 80 | src.dir=src 81 | test.src.dir=test 82 | -------------------------------------------------------------------------------- /nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.java.j2seproject 4 | 5 | 6 | Time Table Scheduling 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/com/data_structure/AbstractContainer.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | public abstract class AbstractContainer implements Container, Comparable { 4 | protected int count;//Keep records of the items in the container 5 | 6 | public int getCount () { 7 | return count; 8 | } 9 | 10 | public boolean isEmpty () { 11 | return (getCount () == 0); 12 | } 13 | 14 | public boolean isFull () { 15 | return false; 16 | } 17 | 18 | public void accept(Visitor visitor) { 19 | Iterator iterator = iterator(); 20 | 21 | while ( iterator.hasNext() && !visitor.isDone()) 22 | visitor.visit(iterator.next()); 23 | } 24 | 25 | public String toString() { 26 | final StringBuffer buffer = new StringBuffer(); 27 | 28 | AbstractVisitor visitor = new AbstractVisitor() { 29 | private boolean comma; 30 | 31 | public void visit(Object obj) { 32 | if(comma) 33 | buffer.append(" "); 34 | buffer.append(obj); 35 | comma = true; 36 | } 37 | }; 38 | 39 | accept(visitor); 40 | return "" + buffer; 41 | } 42 | 43 | public int compareTo(Object object){ 44 | throw new MethodNotImplemented(); 45 | } 46 | 47 | public abstract void purge(); 48 | public abstract Iterator iterator(); 49 | } 50 | -------------------------------------------------------------------------------- /src/com/data_structure/AbstractVisitor.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | public abstract class AbstractVisitor implements Visitor { 4 | 5 | public abstract void visit (Object object); 6 | 7 | public boolean isDone () { 8 | return false; 9 | } 10 | } -------------------------------------------------------------------------------- /src/com/data_structure/Association.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | public class Association implements Comparable{ 4 | protected Comparable key; 5 | protected Object value; 6 | 7 | public Association(Comparable comparable, Object obj){ 8 | key = comparable; 9 | value = obj; 10 | } 11 | 12 | public Association(Comparable comparable){ 13 | this(comparable, null); 14 | } 15 | 16 | public Comparable getKey(){ 17 | return key; 18 | } 19 | 20 | public Object getValue(){ 21 | return value; 22 | } 23 | 24 | public void setKey(Comparable key){ 25 | this.key = key; 26 | } 27 | 28 | public void setValue(Object value){ 29 | this.value = value; 30 | } 31 | 32 | public int compareTo(Object obj){ 33 | Association association = (Association)obj; 34 | return key.compareTo(association.getKey()); 35 | } 36 | 37 | public boolean equals(Object obj){ 38 | return compareTo(obj) == 0; 39 | } 40 | 41 | public String toString(){ 42 | String s = "{ " + key; 43 | if(value != null) 44 | s = s + " , " + value; 45 | return s + " }"; 46 | } 47 | } -------------------------------------------------------------------------------- /src/com/data_structure/Container.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | public interface Container { 4 | int getCount (); 5 | boolean isEmpty (); 6 | boolean isFull (); 7 | void purge (); 8 | void accept (Visitor visitor); 9 | Iterator iterator (); 10 | } -------------------------------------------------------------------------------- /src/com/data_structure/ContainerFullException.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | public class ContainerFullException extends RuntimeException 4 | { 5 | 6 | public ContainerFullException() 7 | { 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /src/com/data_structure/DBConnect.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | import javax.swing.JOptionPane; 3 | import java.sql.*; 4 | public class DBConnect { 5 | public static Connection con; 6 | public static ResultSet rs; 7 | public static Statement st; 8 | public static void connect(){ 9 | try { 10 | DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 11 | con=DriverManager.getConnection("jdbc:mysql://localhost:3306/time_table_scheduling", "root", ""); 12 | st=con.createStatement(); 13 | }catch (SQLException e){ 14 | JOptionPane.showMessageDialog(null, "Cannot connect to the database","Issue!", JOptionPane.OK_OPTION); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/data_structure/DBConnect1.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | import javax.swing.JOptionPane; 3 | import java.sql.*; 4 | public class DBConnect1 { 5 | public static Connection con; 6 | public static ResultSet rs; 7 | public static Statement st; 8 | public static void connect(){ 9 | try { 10 | DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 11 | con=DriverManager.getConnection("jdbc:mysql://localhost:3306/time_table_scheduling", "root", ""); 12 | st=con.createStatement(); 13 | }catch (SQLException e){ 14 | JOptionPane.showMessageDialog(null, "Cannot connect to the database","Issue!", JOptionPane.OK_OPTION); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/data_structure/Iterator.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | import java.util.NoSuchElementException; 4 | 5 | public interface Iterator { 6 | boolean hasNext (); 7 | Object next () throws NoSuchElementException; 8 | } -------------------------------------------------------------------------------- /src/com/data_structure/MethodNotImplemented.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | public class MethodNotImplemented extends RuntimeException { 4 | 5 | public MethodNotImplemented() { 6 | super(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/com/data_structure/MyContainer.java: -------------------------------------------------------------------------------- 1 | package com.data_structure; 2 | 3 | public class MyContainer extends AbstractContainer { 4 | private final int SIZE = 100; 5 | protected Comparable[] array = new Comparable[SIZE]; 6 | 7 | public boolean isFull() { 8 | return count == SIZE; 9 | } 10 | 11 | public void purge() { 12 | for (int i=0; i instructors; 11 | 12 | 13 | public Course(String number, String name, ArrayList instructors, int maxNumberOfStudents) 14 | { 15 | this.number = number; 16 | this.name = name; 17 | this.instructors = instructors; 18 | this.maxNumberOfStudents = maxNumberOfStudents; 19 | } 20 | 21 | public String getNumber() 22 | { 23 | return number; 24 | } 25 | 26 | public String getName() 27 | { 28 | return name; 29 | } 30 | 31 | public ArrayList getInstructors() 32 | { 33 | return instructors; 34 | } 35 | 36 | public int getMaxNumberOfStudents() 37 | { 38 | return maxNumberOfStudents; 39 | } 40 | 41 | public String toString() 42 | { 43 | return name; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/com/genetic_algorithm_resource/Department.java: -------------------------------------------------------------------------------- 1 | package com.genetic_algorithm_resource; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class Department { 6 | 7 | private String name; 8 | private ArrayList courses; 9 | 10 | public Department(String name, ArrayList courses) 11 | { 12 | this.name = name; 13 | this.courses = courses; 14 | } 15 | 16 | public String getName() 17 | { 18 | return name; 19 | } 20 | 21 | public ArrayList getCourses() 22 | { 23 | return courses; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/com/genetic_algorithm_resource/Instructor.java: -------------------------------------------------------------------------------- 1 | package com.genetic_algorithm_resource; 2 | 3 | public class Instructor { 4 | 5 | private String id; 6 | private String name; 7 | 8 | public Instructor(String id, String name) 9 | { 10 | this.id = id; 11 | this.name = name; 12 | } 13 | 14 | public String getId() 15 | { 16 | return id; 17 | } 18 | 19 | public String getName() 20 | { 21 | return name; 22 | } 23 | 24 | public String toString() 25 | { 26 | return name; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/com/genetic_algorithm_resource/MeetingTime.java: -------------------------------------------------------------------------------- 1 | package com.genetic_algorithm_resource; 2 | 3 | public class MeetingTime { 4 | 5 | private String id; 6 | private String time; 7 | 8 | public MeetingTime(String id, String time) 9 | { 10 | this.id = id; 11 | this.time = time; 12 | } 13 | 14 | public String getId() 15 | { 16 | return id; 17 | } 18 | 19 | public String getTime() 20 | { 21 | return time; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/com/genetic_algorithm_resource/Room.java: -------------------------------------------------------------------------------- 1 | package com.genetic_algorithm_resource; 2 | 3 | public class Room { 4 | 5 | private String number; 6 | private int seatingCapacity; 7 | 8 | public Room(String number, int seatingCapacity) 9 | { 10 | this.number = number; 11 | this.seatingCapacity = seatingCapacity; 12 | } 13 | 14 | public String getNumber() 15 | { 16 | return number; 17 | } 18 | 19 | public int getSeatingCapacity() 20 | { 21 | return seatingCapacity; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/com/gui/AddCourse.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import java.sql.PreparedStatement; 5 | import javax.swing.JOptionPane; 6 | 7 | public class AddCourse extends javax.swing.JInternalFrame { 8 | 9 | public AddCourse() { 10 | DBConnect.connect(); 11 | initComponents(); 12 | } 13 | 14 | @SuppressWarnings("unchecked") 15 | // //GEN-BEGIN:initComponents 16 | private void initComponents() { 17 | 18 | jPanel1 = new javax.swing.JPanel(); 19 | jPanel2 = new javax.swing.JPanel(); 20 | jLabel1 = new javax.swing.JLabel(); 21 | jLabel5 = new javax.swing.JLabel(); 22 | course_title = new javax.swing.JTextField(); 23 | insert = new javax.swing.JButton(); 24 | close = new javax.swing.JButton(); 25 | jLabel15 = new javax.swing.JLabel(); 26 | no_of_student = new com.toedter.components.JSpinField(); 27 | 28 | setBackground(new java.awt.Color(255, 255, 255)); 29 | setClosable(true); 30 | setVisible(true); 31 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 32 | 33 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 34 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 35 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 36 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 37 | 38 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 39 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 40 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 41 | 42 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 43 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 44 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 45 | jLabel1.setText("ADD COURSE INFORMATION PAGE"); 46 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 40)); 47 | 48 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 580, 40)); 49 | 50 | jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 51 | jLabel5.setForeground(new java.awt.Color(0, 102, 0)); 52 | jLabel5.setText("Course Title"); 53 | jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 60, -1, 20)); 54 | 55 | course_title.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 56 | jPanel1.add(course_title, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 60, 220, -1)); 57 | 58 | insert.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 59 | insert.setText("Insert the Information"); 60 | insert.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 61 | insert.addActionListener(new java.awt.event.ActionListener() { 62 | public void actionPerformed(java.awt.event.ActionEvent evt) { 63 | insertActionPerformed(evt); 64 | } 65 | }); 66 | jPanel1.add(insert, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 140, 260, 35)); 67 | 68 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 69 | close.setText("Close"); 70 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 71 | close.addActionListener(new java.awt.event.ActionListener() { 72 | public void actionPerformed(java.awt.event.ActionEvent evt) { 73 | closeActionPerformed(evt); 74 | } 75 | }); 76 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 140, 80, 35)); 77 | 78 | jLabel15.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 79 | jLabel15.setForeground(new java.awt.Color(0, 102, 0)); 80 | jLabel15.setText("Maximum Number of Student"); 81 | jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 100, -1, 30)); 82 | 83 | no_of_student.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 204))); 84 | no_of_student.setMaximum(300); 85 | no_of_student.setMinimum(0); 86 | jPanel1.add(no_of_student, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 100, 40, 30)); 87 | 88 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 190)); 89 | 90 | pack(); 91 | }// //GEN-END:initComponents 92 | 93 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 94 | this.dispose(); 95 | this.hide(); 96 | }//GEN-LAST:event_closeActionPerformed 97 | 98 | private void insertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed 99 | if(course_title.getText().trim().equals("")){ 100 | JOptionPane.showMessageDialog(this,"Empty Field(s), Please correct and try again", "Empty Field(s)", JOptionPane.OK_OPTION); 101 | }else if(no_of_student.getValue() == 0){ 102 | JOptionPane.showMessageDialog(this,"No of student cannot be 0 or non-numeric", "Issue", JOptionPane.OK_OPTION); 103 | }else{ 104 | try{ 105 | PreparedStatement st; 106 | String sql = "select * from course where course_name = ?"; 107 | st = DBConnect.con.prepareStatement(sql); 108 | 109 | st.setString(1, course_title.getText().trim()); 110 | 111 | DBConnect.rs = st.executeQuery(); 112 | 113 | if(DBConnect.rs.next()){ 114 | JOptionPane.showMessageDialog(this, "Course with thesame name already exist","Issue",JOptionPane.OK_OPTION); 115 | }else{ 116 | String sql1="insert into course (course_name, maximum_number_of_student) values (?, ?)"; 117 | st = DBConnect.con.prepareStatement(sql1); 118 | st.setString(1, course_title.getText().trim()); 119 | st.setInt(2, no_of_student.getValue()); 120 | 121 | st.executeUpdate(); 122 | 123 | JOptionPane.showMessageDialog(this, "Course information has been saved","Success",JOptionPane.INFORMATION_MESSAGE); 124 | AddCourse reg = new AddCourse(); 125 | MainMenu.desktop1.removeAll(); 126 | MainMenu.desktop1.add(reg, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0) ); 127 | MainMenu.desktop1.setVisible(false); 128 | MainMenu.desktop1.setVisible(true); 129 | MainMenu.desktop1.setSelectedFrame(reg); 130 | } 131 | }catch(Exception ex){ 132 | System.out.println(ex.getMessage()); 133 | } 134 | } 135 | }//GEN-LAST:event_insertActionPerformed 136 | 137 | 138 | // Variables declaration - do not modify//GEN-BEGIN:variables 139 | private javax.swing.JButton close; 140 | private javax.swing.JTextField course_title; 141 | private javax.swing.JButton insert; 142 | private javax.swing.JLabel jLabel1; 143 | private javax.swing.JLabel jLabel15; 144 | private javax.swing.JLabel jLabel5; 145 | private javax.swing.JPanel jPanel1; 146 | private javax.swing.JPanel jPanel2; 147 | private com.toedter.components.JSpinField no_of_student; 148 | // End of variables declaration//GEN-END:variables 149 | } 150 | -------------------------------------------------------------------------------- /src/com/gui/AddLecturer.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import java.sql.PreparedStatement; 5 | import javax.swing.JOptionPane; 6 | 7 | public class AddLecturer extends javax.swing.JInternalFrame { 8 | 9 | public AddLecturer() { 10 | DBConnect.connect(); 11 | initComponents(); 12 | } 13 | 14 | @SuppressWarnings("unchecked") 15 | // //GEN-BEGIN:initComponents 16 | private void initComponents() { 17 | 18 | jPanel1 = new javax.swing.JPanel(); 19 | jPanel2 = new javax.swing.JPanel(); 20 | jLabel1 = new javax.swing.JLabel(); 21 | jLabel5 = new javax.swing.JLabel(); 22 | name = new javax.swing.JTextField(); 23 | insert = new javax.swing.JButton(); 24 | close = new javax.swing.JButton(); 25 | jLabel15 = new javax.swing.JLabel(); 26 | phone = new javax.swing.JTextField(); 27 | jLabel17 = new javax.swing.JLabel(); 28 | gender = new javax.swing.JComboBox(); 29 | 30 | setBackground(new java.awt.Color(255, 255, 255)); 31 | setClosable(true); 32 | setVisible(true); 33 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 34 | 35 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 36 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 37 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 38 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 39 | 40 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 41 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 42 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 43 | 44 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 45 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 46 | jLabel1.setText("ADD LECTURER INFORMATION PAGE"); 47 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 480, 40)); 48 | 49 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 580, 40)); 50 | 51 | jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 52 | jLabel5.setForeground(new java.awt.Color(0, 102, 0)); 53 | jLabel5.setText("Lecturer Name"); 54 | jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 60, -1, -1)); 55 | 56 | name.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 57 | jPanel1.add(name, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 60, 220, -1)); 58 | 59 | insert.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 60 | insert.setText("Insert the Information"); 61 | insert.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 62 | insert.addActionListener(new java.awt.event.ActionListener() { 63 | public void actionPerformed(java.awt.event.ActionEvent evt) { 64 | insertActionPerformed(evt); 65 | } 66 | }); 67 | jPanel1.add(insert, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 180, 260, 35)); 68 | 69 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 70 | close.setText("Close"); 71 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 72 | close.addActionListener(new java.awt.event.ActionListener() { 73 | public void actionPerformed(java.awt.event.ActionEvent evt) { 74 | closeActionPerformed(evt); 75 | } 76 | }); 77 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 180, 80, 35)); 78 | 79 | jLabel15.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 80 | jLabel15.setForeground(new java.awt.Color(0, 102, 0)); 81 | jLabel15.setText("GSM Number"); 82 | jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 100, -1, -1)); 83 | 84 | phone.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 85 | jPanel1.add(phone, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 100, 220, 26)); 86 | 87 | jLabel17.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 88 | jLabel17.setForeground(new java.awt.Color(0, 102, 0)); 89 | jLabel17.setText("Gender"); 90 | jPanel1.add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 140, -1, -1)); 91 | 92 | gender.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 93 | gender.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Select Gender", "Male", "Female" })); 94 | jPanel1.add(gender, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 140, 220, -1)); 95 | 96 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 230)); 97 | 98 | pack(); 99 | }// //GEN-END:initComponents 100 | 101 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 102 | this.dispose(); 103 | this.hide(); 104 | }//GEN-LAST:event_closeActionPerformed 105 | 106 | private void insertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed 107 | if(name.getText().trim().equals("") || 108 | phone.getText().trim().equals("") || 109 | gender.getSelectedIndex() == 0){ 110 | JOptionPane.showMessageDialog(this,"Empty Field(s), Please correct and try again", "Empty Field(s)", JOptionPane.OK_OPTION); 111 | }else{ 112 | try{ 113 | PreparedStatement st; 114 | String sql1="insert into instructor (instructor_name, phone, gender) values (?, ?, ?)"; 115 | st = DBConnect.con.prepareStatement(sql1); 116 | st.setString(1, name.getText().trim()); 117 | st.setString(2, phone.getText().trim()); 118 | st.setString(3, ""+gender.getSelectedItem()); 119 | 120 | st.executeUpdate(); 121 | 122 | JOptionPane.showMessageDialog(this, "Lecturer information has been saved","Success",JOptionPane.INFORMATION_MESSAGE); 123 | AddLecturer reg = new AddLecturer(); 124 | MainMenu.desktop1.removeAll(); 125 | MainMenu.desktop1.add(reg, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0) ); 126 | MainMenu.desktop1.setVisible(false); 127 | MainMenu.desktop1.setVisible(true); 128 | MainMenu.desktop1.setSelectedFrame(reg); 129 | }catch(Exception ex){ 130 | System.out.println(ex.getMessage()); 131 | } 132 | } 133 | }//GEN-LAST:event_insertActionPerformed 134 | 135 | 136 | // Variables declaration - do not modify//GEN-BEGIN:variables 137 | private javax.swing.JButton close; 138 | private javax.swing.JComboBox gender; 139 | private javax.swing.JButton insert; 140 | private javax.swing.JLabel jLabel1; 141 | private javax.swing.JLabel jLabel15; 142 | private javax.swing.JLabel jLabel17; 143 | private javax.swing.JLabel jLabel5; 144 | private javax.swing.JPanel jPanel1; 145 | private javax.swing.JPanel jPanel2; 146 | private javax.swing.JTextField name; 147 | private javax.swing.JTextField phone; 148 | // End of variables declaration//GEN-END:variables 149 | } 150 | -------------------------------------------------------------------------------- /src/com/gui/AddVenue.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import java.sql.PreparedStatement; 5 | import javax.swing.JOptionPane; 6 | 7 | public class AddVenue extends javax.swing.JInternalFrame { 8 | 9 | public AddVenue() { 10 | DBConnect.connect(); 11 | initComponents(); 12 | } 13 | 14 | @SuppressWarnings("unchecked") 15 | // //GEN-BEGIN:initComponents 16 | private void initComponents() { 17 | 18 | jPanel1 = new javax.swing.JPanel(); 19 | jPanel2 = new javax.swing.JPanel(); 20 | jLabel1 = new javax.swing.JLabel(); 21 | jLabel5 = new javax.swing.JLabel(); 22 | name = new javax.swing.JTextField(); 23 | insert = new javax.swing.JButton(); 24 | close = new javax.swing.JButton(); 25 | jLabel15 = new javax.swing.JLabel(); 26 | capacity = new com.toedter.components.JSpinField(); 27 | 28 | setBackground(new java.awt.Color(255, 255, 255)); 29 | setClosable(true); 30 | setVisible(true); 31 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 32 | 33 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 34 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 35 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 36 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 37 | 38 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 39 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 40 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 41 | 42 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 43 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 44 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 45 | jLabel1.setText("ADD VENUE INFORMATION PAGE"); 46 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 430, 40)); 47 | 48 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 580, 40)); 49 | 50 | jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 51 | jLabel5.setForeground(new java.awt.Color(0, 102, 0)); 52 | jLabel5.setText("Venue Name"); 53 | jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 60, -1, 20)); 54 | 55 | name.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 56 | jPanel1.add(name, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 60, 220, -1)); 57 | 58 | insert.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 59 | insert.setText("Insert the Information"); 60 | insert.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 61 | insert.addActionListener(new java.awt.event.ActionListener() { 62 | public void actionPerformed(java.awt.event.ActionEvent evt) { 63 | insertActionPerformed(evt); 64 | } 65 | }); 66 | jPanel1.add(insert, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 140, 260, 35)); 67 | 68 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 69 | close.setText("Close"); 70 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 71 | close.addActionListener(new java.awt.event.ActionListener() { 72 | public void actionPerformed(java.awt.event.ActionEvent evt) { 73 | closeActionPerformed(evt); 74 | } 75 | }); 76 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 140, 80, 35)); 77 | 78 | jLabel15.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 79 | jLabel15.setForeground(new java.awt.Color(0, 102, 0)); 80 | jLabel15.setText("Space Capacity"); 81 | jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 100, -1, 20)); 82 | 83 | capacity.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 204))); 84 | capacity.setMaximum(300); 85 | capacity.setMinimum(0); 86 | jPanel1.add(capacity, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 100, 40, 30)); 87 | 88 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 430, 190)); 89 | 90 | pack(); 91 | }// //GEN-END:initComponents 92 | 93 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 94 | this.dispose(); 95 | this.hide(); 96 | }//GEN-LAST:event_closeActionPerformed 97 | 98 | private void insertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed 99 | if(name.getText().trim().equals("")){ 100 | JOptionPane.showMessageDialog(this,"Empty Field(s), Please correct and try again", "Empty Field(s)", JOptionPane.OK_OPTION); 101 | }else if(capacity.getValue() == 0){ 102 | JOptionPane.showMessageDialog(this,"Venue capacity cannot be 0 or non-numeric", "Issue", JOptionPane.OK_OPTION); 103 | }else{ 104 | try{ 105 | PreparedStatement st; 106 | String sql = "select * from class_room where class_room_name = ?"; 107 | st = DBConnect.con.prepareStatement(sql); 108 | 109 | st.setString(1, name.getText().trim()); 110 | 111 | DBConnect.rs = st.executeQuery(); 112 | 113 | if(DBConnect.rs.next()){ 114 | JOptionPane.showMessageDialog(this, "Venue with thesame name already exist","Issue",JOptionPane.OK_OPTION); 115 | }else{ 116 | String sql1="insert into class_room (class_room_name, space_capacity) values (?, ?)"; 117 | st = DBConnect.con.prepareStatement(sql1); 118 | st.setString(1, name.getText().trim()); 119 | st.setInt(2, capacity.getValue()); 120 | 121 | st.executeUpdate(); 122 | 123 | JOptionPane.showMessageDialog(this, "Venue information has been saved","Success",JOptionPane.INFORMATION_MESSAGE); 124 | AddVenue reg = new AddVenue(); 125 | MainMenu.desktop1.removeAll(); 126 | MainMenu.desktop1.add(reg, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0) ); 127 | MainMenu.desktop1.setVisible(false); 128 | MainMenu.desktop1.setVisible(true); 129 | MainMenu.desktop1.setSelectedFrame(reg); 130 | } 131 | }catch(Exception ex){ 132 | System.out.println(ex.getMessage()); 133 | } 134 | } 135 | }//GEN-LAST:event_insertActionPerformed 136 | 137 | 138 | // Variables declaration - do not modify//GEN-BEGIN:variables 139 | private com.toedter.components.JSpinField capacity; 140 | private javax.swing.JButton close; 141 | private javax.swing.JButton insert; 142 | private javax.swing.JLabel jLabel1; 143 | private javax.swing.JLabel jLabel15; 144 | private javax.swing.JLabel jLabel5; 145 | private javax.swing.JPanel jPanel1; 146 | private javax.swing.JPanel jPanel2; 147 | private javax.swing.JTextField name; 148 | // End of variables declaration//GEN-END:variables 149 | } 150 | -------------------------------------------------------------------------------- /src/com/gui/EditCourse.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import static com.gui.MainMenu.desktop1; 5 | import java.sql.PreparedStatement; 6 | import javax.swing.JOptionPane; 7 | 8 | public class EditCourse extends javax.swing.JInternalFrame { 9 | private int course_id; 10 | public EditCourse(int course_id) { 11 | this.course_id = course_id; 12 | DBConnect.connect(); 13 | initComponents(); 14 | 15 | try{ 16 | PreparedStatement st; 17 | String sql = "select * from course where course_id = ?"; 18 | st = DBConnect.con.prepareStatement(sql); 19 | 20 | st.setInt(1, course_id); 21 | 22 | DBConnect.rs = st.executeQuery(); 23 | DBConnect.rs.next(); 24 | 25 | course_title.setText(DBConnect.rs.getString("course_name")); 26 | no_of_student.setValue(DBConnect.rs.getInt("maximum_number_of_student")); 27 | }catch (Exception e) { 28 | System.err.println(e.getMessage()); 29 | e.printStackTrace(); 30 | } 31 | } 32 | 33 | @SuppressWarnings("unchecked") 34 | // //GEN-BEGIN:initComponents 35 | private void initComponents() { 36 | 37 | jPanel1 = new javax.swing.JPanel(); 38 | jPanel2 = new javax.swing.JPanel(); 39 | jLabel1 = new javax.swing.JLabel(); 40 | jLabel5 = new javax.swing.JLabel(); 41 | course_title = new javax.swing.JTextField(); 42 | insert = new javax.swing.JButton(); 43 | close = new javax.swing.JButton(); 44 | jLabel15 = new javax.swing.JLabel(); 45 | no_of_student = new com.toedter.components.JSpinField(); 46 | 47 | setBackground(new java.awt.Color(255, 255, 255)); 48 | setClosable(true); 49 | setVisible(true); 50 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 51 | 52 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 53 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 54 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 55 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 56 | 57 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 58 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 59 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 60 | 61 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 62 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 63 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 64 | jLabel1.setText("EDIT COURSE INFORMATION PAGE"); 65 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 40)); 66 | 67 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 580, 40)); 68 | 69 | jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 70 | jLabel5.setForeground(new java.awt.Color(0, 102, 0)); 71 | jLabel5.setText("Course Title"); 72 | jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 60, -1, 20)); 73 | 74 | course_title.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 75 | jPanel1.add(course_title, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 60, 220, -1)); 76 | 77 | insert.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 78 | insert.setText("Update the Information"); 79 | insert.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 80 | insert.addActionListener(new java.awt.event.ActionListener() { 81 | public void actionPerformed(java.awt.event.ActionEvent evt) { 82 | insertActionPerformed(evt); 83 | } 84 | }); 85 | jPanel1.add(insert, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 140, 260, 35)); 86 | 87 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 88 | close.setText("Close"); 89 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 90 | close.addActionListener(new java.awt.event.ActionListener() { 91 | public void actionPerformed(java.awt.event.ActionEvent evt) { 92 | closeActionPerformed(evt); 93 | } 94 | }); 95 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 140, 80, 35)); 96 | 97 | jLabel15.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 98 | jLabel15.setForeground(new java.awt.Color(0, 102, 0)); 99 | jLabel15.setText("Maximum Number of Student"); 100 | jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 100, -1, 30)); 101 | 102 | no_of_student.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 204))); 103 | no_of_student.setMaximum(300); 104 | no_of_student.setMinimum(0); 105 | jPanel1.add(no_of_student, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 100, 40, 30)); 106 | 107 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 190)); 108 | 109 | pack(); 110 | }// //GEN-END:initComponents 111 | 112 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 113 | this.dispose(); 114 | this.hide(); 115 | 116 | Thread runner = new Thread() { 117 | 118 | public void run() { 119 | ViewCourse regJ = new ViewCourse(); 120 | desktop1.add(regJ, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0)); 121 | try { 122 | regJ.setSelected(true); 123 | } catch (java.beans.PropertyVetoException e) { 124 | } 125 | } 126 | }; 127 | runner.start(); 128 | }//GEN-LAST:event_closeActionPerformed 129 | 130 | private void insertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed 131 | if(course_title.getText().trim().equals("")){ 132 | JOptionPane.showMessageDialog(this,"Empty Field(s), Please correct and try again", "Empty Field(s)", JOptionPane.OK_OPTION); 133 | }else if(no_of_student.getValue() == 0){ 134 | JOptionPane.showMessageDialog(this,"No of student cannot be 0 or non-numeric", "Issue", JOptionPane.OK_OPTION); 135 | }else{ 136 | try{ 137 | PreparedStatement st; 138 | String sql = "select * from course where course_name = ? AND course_id != ?"; 139 | st = DBConnect.con.prepareStatement(sql); 140 | 141 | st.setString(1, course_title.getText().trim()); 142 | st.setInt(2, course_id); 143 | 144 | DBConnect.rs = st.executeQuery(); 145 | 146 | if(DBConnect.rs.next()){ 147 | JOptionPane.showMessageDialog(this, "Course with thesame name already exist", "Issue", JOptionPane.OK_OPTION); 148 | }else{ 149 | String sql1="update course set course_name = ?, maximum_number_of_student = ? where course_id = ?"; 150 | st = DBConnect.con.prepareStatement(sql1); 151 | st.setString(1, course_title.getText().trim()); 152 | st.setInt(2, no_of_student.getValue()); 153 | st.setInt(3, course_id); 154 | 155 | st.executeUpdate(); 156 | 157 | JOptionPane.showMessageDialog(this, "Course information has been updated", "Success", JOptionPane.INFORMATION_MESSAGE); 158 | ViewCourse view_course = new ViewCourse(); 159 | MainMenu.desktop1.removeAll(); 160 | MainMenu.desktop1.add(view_course, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0) ); 161 | MainMenu.desktop1.setVisible(false); 162 | MainMenu.desktop1.setVisible(true); 163 | MainMenu.desktop1.setSelectedFrame(view_course); 164 | } 165 | }catch(Exception ex){ 166 | System.out.println(ex.getMessage()); 167 | } 168 | } 169 | }//GEN-LAST:event_insertActionPerformed 170 | 171 | 172 | // Variables declaration - do not modify//GEN-BEGIN:variables 173 | private javax.swing.JButton close; 174 | private javax.swing.JTextField course_title; 175 | private javax.swing.JButton insert; 176 | private javax.swing.JLabel jLabel1; 177 | private javax.swing.JLabel jLabel15; 178 | private javax.swing.JLabel jLabel5; 179 | private javax.swing.JPanel jPanel1; 180 | private javax.swing.JPanel jPanel2; 181 | private com.toedter.components.JSpinField no_of_student; 182 | // End of variables declaration//GEN-END:variables 183 | } 184 | -------------------------------------------------------------------------------- /src/com/gui/EditLecturer.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import static com.gui.MainMenu.desktop1; 5 | import java.sql.PreparedStatement; 6 | import javax.swing.JOptionPane; 7 | 8 | public class EditLecturer extends javax.swing.JInternalFrame { 9 | 10 | private int lecturer_id; 11 | public EditLecturer(int lecturer_id) { 12 | this.lecturer_id = lecturer_id; 13 | DBConnect.connect(); 14 | initComponents(); 15 | 16 | try{ 17 | PreparedStatement st; 18 | String sql = "select * from instructor where instructor_id = ?"; 19 | st = DBConnect.con.prepareStatement(sql); 20 | 21 | st.setInt(1, lecturer_id); 22 | 23 | DBConnect.rs = st.executeQuery(); 24 | DBConnect.rs.next(); 25 | 26 | name.setText(DBConnect.rs.getString("instructor_name")); 27 | phone.setText(DBConnect.rs.getString("phone")); 28 | gender.setSelectedItem(DBConnect.rs.getString("gender")); 29 | }catch (Exception e) { 30 | System.err.println(e.getMessage()); 31 | e.printStackTrace(); 32 | } 33 | } 34 | 35 | @SuppressWarnings("unchecked") 36 | // //GEN-BEGIN:initComponents 37 | private void initComponents() { 38 | 39 | jPanel1 = new javax.swing.JPanel(); 40 | jPanel2 = new javax.swing.JPanel(); 41 | jLabel1 = new javax.swing.JLabel(); 42 | jLabel5 = new javax.swing.JLabel(); 43 | name = new javax.swing.JTextField(); 44 | insert = new javax.swing.JButton(); 45 | close = new javax.swing.JButton(); 46 | jLabel15 = new javax.swing.JLabel(); 47 | phone = new javax.swing.JTextField(); 48 | jLabel17 = new javax.swing.JLabel(); 49 | gender = new javax.swing.JComboBox(); 50 | 51 | setBackground(new java.awt.Color(255, 255, 255)); 52 | setClosable(true); 53 | setVisible(true); 54 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 55 | 56 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 57 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 58 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 59 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 60 | 61 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 62 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 63 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 64 | 65 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 66 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 67 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 68 | jLabel1.setText("EDIT LECTURER INFORMATION PAGE"); 69 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 40)); 70 | 71 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 580, 40)); 72 | 73 | jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 74 | jLabel5.setForeground(new java.awt.Color(0, 102, 0)); 75 | jLabel5.setText("Lecturer Name"); 76 | jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 60, -1, -1)); 77 | 78 | name.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 79 | jPanel1.add(name, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 60, 220, -1)); 80 | 81 | insert.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 82 | insert.setText("Update the Information"); 83 | insert.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 84 | insert.addActionListener(new java.awt.event.ActionListener() { 85 | public void actionPerformed(java.awt.event.ActionEvent evt) { 86 | insertActionPerformed(evt); 87 | } 88 | }); 89 | jPanel1.add(insert, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 180, 260, 35)); 90 | 91 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 92 | close.setText("Close"); 93 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 94 | close.addActionListener(new java.awt.event.ActionListener() { 95 | public void actionPerformed(java.awt.event.ActionEvent evt) { 96 | closeActionPerformed(evt); 97 | } 98 | }); 99 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 180, 80, 35)); 100 | 101 | jLabel15.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 102 | jLabel15.setForeground(new java.awt.Color(0, 102, 0)); 103 | jLabel15.setText("GSM Number"); 104 | jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 100, -1, -1)); 105 | 106 | phone.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 107 | jPanel1.add(phone, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 100, 220, 26)); 108 | 109 | jLabel17.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 110 | jLabel17.setForeground(new java.awt.Color(0, 102, 0)); 111 | jLabel17.setText("Gender"); 112 | jPanel1.add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 140, -1, -1)); 113 | 114 | gender.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 115 | gender.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Select Gender", "Male", "Female" })); 116 | jPanel1.add(gender, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 140, 220, -1)); 117 | 118 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 230)); 119 | 120 | pack(); 121 | }// //GEN-END:initComponents 122 | 123 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 124 | this.dispose(); 125 | this.hide(); 126 | 127 | Thread runner = new Thread() { 128 | 129 | public void run() { 130 | ViewLecturer regJ = new ViewLecturer(); 131 | desktop1.add(regJ, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0)); 132 | try { 133 | regJ.setSelected(true); 134 | } catch (java.beans.PropertyVetoException e) { 135 | } 136 | } 137 | }; 138 | runner.start(); 139 | }//GEN-LAST:event_closeActionPerformed 140 | 141 | private void insertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed 142 | if(name.getText().trim().equals("") || 143 | phone.getText().trim().equals("") || 144 | gender.getSelectedIndex() == 0){ 145 | JOptionPane.showMessageDialog(this,"Empty Field(s), Please correct and try again", "Empty Field(s)", JOptionPane.OK_OPTION); 146 | }else{ 147 | try{ 148 | PreparedStatement st; 149 | String sql1="update instructor set instructor_name = ?, phone = ?, gender = ? where instructor_id = ?"; 150 | st = DBConnect.con.prepareStatement(sql1); 151 | st.setString(1, name.getText().trim()); 152 | st.setString(2, phone.getText().trim()); 153 | st.setString(3, ""+gender.getSelectedItem()); 154 | st.setInt(4, lecturer_id); 155 | 156 | st.executeUpdate(); 157 | 158 | JOptionPane.showMessageDialog(this, "Lecturer information has been update","Success",JOptionPane.INFORMATION_MESSAGE); 159 | 160 | ViewLecturer view_lecturer = new ViewLecturer(); 161 | MainMenu.desktop1.removeAll(); 162 | MainMenu.desktop1.add(view_lecturer, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0) ); 163 | MainMenu.desktop1.setVisible(false); 164 | MainMenu.desktop1.setVisible(true); 165 | MainMenu.desktop1.setSelectedFrame(view_lecturer); 166 | }catch(Exception ex){ 167 | System.out.println(ex.getMessage()); 168 | } 169 | } 170 | }//GEN-LAST:event_insertActionPerformed 171 | 172 | 173 | // Variables declaration - do not modify//GEN-BEGIN:variables 174 | private javax.swing.JButton close; 175 | private javax.swing.JComboBox gender; 176 | private javax.swing.JButton insert; 177 | private javax.swing.JLabel jLabel1; 178 | private javax.swing.JLabel jLabel15; 179 | private javax.swing.JLabel jLabel17; 180 | private javax.swing.JLabel jLabel5; 181 | private javax.swing.JPanel jPanel1; 182 | private javax.swing.JPanel jPanel2; 183 | private javax.swing.JTextField name; 184 | private javax.swing.JTextField phone; 185 | // End of variables declaration//GEN-END:variables 186 | } 187 | -------------------------------------------------------------------------------- /src/com/gui/EditVenue.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import static com.gui.MainMenu.desktop1; 5 | import java.sql.PreparedStatement; 6 | import javax.swing.JOptionPane; 7 | 8 | public class EditVenue extends javax.swing.JInternalFrame { 9 | private int class_room_id; 10 | public EditVenue(int class_room_id) { 11 | this.class_room_id = class_room_id; 12 | DBConnect.connect(); 13 | initComponents(); 14 | 15 | try{ 16 | PreparedStatement st; 17 | String sql = "select * from class_room where class_room_id = ?"; 18 | st = DBConnect.con.prepareStatement(sql); 19 | 20 | st.setInt(1, class_room_id); 21 | 22 | DBConnect.rs = st.executeQuery(); 23 | DBConnect.rs.next(); 24 | 25 | name.setText(DBConnect.rs.getString("class_room_name")); 26 | capacity.setValue(DBConnect.rs.getInt("space_capacity")); 27 | }catch (Exception e) { 28 | System.err.println(e.getMessage()); 29 | e.printStackTrace(); 30 | } 31 | } 32 | 33 | @SuppressWarnings("unchecked") 34 | // //GEN-BEGIN:initComponents 35 | private void initComponents() { 36 | 37 | jPanel1 = new javax.swing.JPanel(); 38 | jPanel2 = new javax.swing.JPanel(); 39 | jLabel1 = new javax.swing.JLabel(); 40 | jLabel5 = new javax.swing.JLabel(); 41 | name = new javax.swing.JTextField(); 42 | insert = new javax.swing.JButton(); 43 | close = new javax.swing.JButton(); 44 | jLabel15 = new javax.swing.JLabel(); 45 | capacity = new com.toedter.components.JSpinField(); 46 | 47 | setBackground(new java.awt.Color(255, 255, 255)); 48 | setClosable(true); 49 | setVisible(true); 50 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 51 | 52 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 53 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 54 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 55 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 56 | 57 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 58 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 59 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 60 | 61 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 62 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 63 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 64 | jLabel1.setText("EDIT VENUE INFORMATION PAGE"); 65 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 430, 40)); 66 | 67 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 580, 40)); 68 | 69 | jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 70 | jLabel5.setForeground(new java.awt.Color(0, 102, 0)); 71 | jLabel5.setText("Venue Name"); 72 | jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 60, -1, 20)); 73 | 74 | name.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 75 | jPanel1.add(name, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 60, 220, -1)); 76 | 77 | insert.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 78 | insert.setText("Update the Information"); 79 | insert.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 80 | insert.addActionListener(new java.awt.event.ActionListener() { 81 | public void actionPerformed(java.awt.event.ActionEvent evt) { 82 | insertActionPerformed(evt); 83 | } 84 | }); 85 | jPanel1.add(insert, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 140, 260, 35)); 86 | 87 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 88 | close.setText("Close"); 89 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 90 | close.addActionListener(new java.awt.event.ActionListener() { 91 | public void actionPerformed(java.awt.event.ActionEvent evt) { 92 | closeActionPerformed(evt); 93 | } 94 | }); 95 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 140, 80, 35)); 96 | 97 | jLabel15.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N 98 | jLabel15.setForeground(new java.awt.Color(0, 102, 0)); 99 | jLabel15.setText("Space Capacity"); 100 | jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 100, -1, 20)); 101 | 102 | capacity.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 204))); 103 | capacity.setMaximum(300); 104 | capacity.setMinimum(0); 105 | jPanel1.add(capacity, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 100, 40, 30)); 106 | 107 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 430, 190)); 108 | 109 | pack(); 110 | }// //GEN-END:initComponents 111 | 112 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 113 | this.dispose(); 114 | this.hide(); 115 | 116 | Thread runner = new Thread() { 117 | 118 | public void run() { 119 | ViewVenue view_venue = new ViewVenue(); 120 | desktop1.add(view_venue, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0)); 121 | try { 122 | view_venue.setSelected(true); 123 | } catch (java.beans.PropertyVetoException e) { 124 | } 125 | } 126 | }; 127 | runner.start(); 128 | }//GEN-LAST:event_closeActionPerformed 129 | 130 | private void insertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed 131 | if(name.getText().trim().equals("")){ 132 | JOptionPane.showMessageDialog(this,"Empty Field(s), Please correct and try again", "Empty Field(s)", JOptionPane.OK_OPTION); 133 | }else if(capacity.getValue() == 0){ 134 | JOptionPane.showMessageDialog(this,"Venue capacity cannot be 0 or non-numeric", "Issue", JOptionPane.OK_OPTION); 135 | }else{ 136 | try{ 137 | PreparedStatement st; 138 | String sql = "select * from class_room where class_room_name = ? AND class_room_id != ?"; 139 | st = DBConnect.con.prepareStatement(sql); 140 | 141 | st.setString(1, name.getText().trim()); 142 | st.setInt(2, class_room_id); 143 | 144 | DBConnect.rs = st.executeQuery(); 145 | 146 | if(DBConnect.rs.next()){ 147 | JOptionPane.showMessageDialog(this, "Venue with thesame name already exist","Issue",JOptionPane.OK_OPTION); 148 | }else{ 149 | String sql1="update class_room set class_room_name = ?, space_capacity = ? where class_room_id = ?"; 150 | st = DBConnect.con.prepareStatement(sql1); 151 | st.setString(1, name.getText().trim()); 152 | st.setInt(2, capacity.getValue()); 153 | st.setInt(3, class_room_id); 154 | 155 | st.executeUpdate(); 156 | 157 | JOptionPane.showMessageDialog(this, "Venue information has been updated","Success",JOptionPane.INFORMATION_MESSAGE); 158 | ViewVenue view_venue = new ViewVenue(); 159 | MainMenu.desktop1.removeAll(); 160 | MainMenu.desktop1.add(view_venue, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0) ); 161 | MainMenu.desktop1.setVisible(false); 162 | MainMenu.desktop1.setVisible(true); 163 | MainMenu.desktop1.setSelectedFrame(view_venue); 164 | } 165 | }catch(Exception ex){ 166 | System.out.println(ex.getMessage()); 167 | } 168 | } 169 | }//GEN-LAST:event_insertActionPerformed 170 | 171 | 172 | // Variables declaration - do not modify//GEN-BEGIN:variables 173 | private com.toedter.components.JSpinField capacity; 174 | private javax.swing.JButton close; 175 | private javax.swing.JButton insert; 176 | private javax.swing.JLabel jLabel1; 177 | private javax.swing.JLabel jLabel15; 178 | private javax.swing.JLabel jLabel5; 179 | private javax.swing.JPanel jPanel1; 180 | private javax.swing.JPanel jPanel2; 181 | private javax.swing.JTextField name; 182 | // End of variables declaration//GEN-END:variables 183 | } 184 | -------------------------------------------------------------------------------- /src/com/gui/GenerateTimeTable.form: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | -------------------------------------------------------------------------------- /src/com/gui/ViewClass.form: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /src/com/gui/ViewClass.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import com.data_structure.MyTable; 5 | import java.awt.Dimension; 6 | import javax.swing.JScrollPane; 7 | import javax.swing.JTable; 8 | import javax.swing.table.TableColumn; 9 | 10 | public class ViewClass extends javax.swing.JInternalFrame { 11 | 12 | public ViewClass() { 13 | DBConnect.connect(); 14 | initComponents(); 15 | createTable(); 16 | } 17 | 18 | private void createTable(){ 19 | String sql="select class_name from class"; 20 | 21 | JTable table; 22 | TableColumn column = null; 23 | JScrollPane scrollPane; 24 | String meta[]={"Class Title"}; 25 | table= MyTable.createTable(sql, meta); 26 | table.setPreferredScrollableViewportSize(new Dimension(360, 200)); 27 | scrollPane = new JScrollPane(table); 28 | for (int i = 0; i < 1; i++) { 29 | column = table.getColumnModel().getColumn(i); 30 | if (i == 0) //MemberID 31 | column.setPreferredWidth(100); 32 | } 33 | 34 | contentPanel.removeAll(); 35 | scrollPane.setViewportView(table); 36 | contentPanel.add(scrollPane, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 360, 200)); 37 | contentPanel.setVisible(false); 38 | contentPanel.setVisible(true); 39 | } 40 | 41 | @SuppressWarnings("unchecked") 42 | // //GEN-BEGIN:initComponents 43 | private void initComponents() { 44 | 45 | jPanel1 = new javax.swing.JPanel(); 46 | jPanel2 = new javax.swing.JPanel(); 47 | jLabel1 = new javax.swing.JLabel(); 48 | contentPanel = new javax.swing.JPanel(); 49 | jLabel2 = new javax.swing.JLabel(); 50 | close = new javax.swing.JButton(); 51 | 52 | setBackground(new java.awt.Color(255, 255, 255)); 53 | setClosable(true); 54 | setPreferredSize(new java.awt.Dimension(395, 337)); 55 | setVisible(true); 56 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 57 | 58 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 59 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 60 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 61 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 62 | 63 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 64 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 65 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 66 | 67 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 68 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 69 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 70 | jLabel1.setText("VIEW CLASS INFORMATION"); 71 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 380, 40)); 72 | 73 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 380, 40)); 74 | 75 | contentPanel.setBackground(new java.awt.Color(255, 255, 255)); 76 | contentPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92))); 77 | contentPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 78 | contentPanel.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(720, 220, -1, -1)); 79 | 80 | jPanel1.add(contentPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 360, 200)); 81 | 82 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 83 | close.setText("CLOSE"); 84 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 85 | close.addActionListener(new java.awt.event.ActionListener() { 86 | public void actionPerformed(java.awt.event.ActionEvent evt) { 87 | closeActionPerformed(evt); 88 | } 89 | }); 90 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 260, 80, 35)); 91 | 92 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 380, 310)); 93 | 94 | pack(); 95 | }// //GEN-END:initComponents 96 | 97 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 98 | this.hide(); 99 | this.dispose(); 100 | }//GEN-LAST:event_closeActionPerformed 101 | 102 | 103 | // Variables declaration - do not modify//GEN-BEGIN:variables 104 | private javax.swing.JButton close; 105 | public static javax.swing.JPanel contentPanel; 106 | private javax.swing.JLabel jLabel1; 107 | private javax.swing.JLabel jLabel2; 108 | private javax.swing.JPanel jPanel1; 109 | private javax.swing.JPanel jPanel2; 110 | // End of variables declaration//GEN-END:variables 111 | } 112 | -------------------------------------------------------------------------------- /src/com/gui/ViewCourse.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import com.data_structure.MyTable; 5 | import static com.gui.MainMenu.desktop1; 6 | import java.awt.BorderLayout; 7 | import java.awt.Dimension; 8 | import java.sql.PreparedStatement; 9 | import javax.swing.JOptionPane; 10 | import javax.swing.JScrollPane; 11 | import javax.swing.JTable; 12 | import javax.swing.table.TableColumn; 13 | 14 | public class ViewCourse extends javax.swing.JInternalFrame { 15 | 16 | private String course_name; 17 | 18 | public ViewCourse() { 19 | DBConnect.connect(); 20 | initComponents(); 21 | createTable(); 22 | } 23 | 24 | private void createTable(){ 25 | String sql="select course_name, maximum_number_of_student from course"; 26 | 27 | JTable table; 28 | TableColumn column = null; 29 | JScrollPane scrollPane; 30 | String meta[]={"Course Title", "Maximum Number of Student"}; 31 | table= MyTable.createTable(sql, meta); 32 | table.setPreferredScrollableViewportSize(new Dimension(480, 200)); 33 | table.setToolTipText("Select course record and click edit or delete to edit or delete information"); 34 | scrollPane = new JScrollPane(table); 35 | for (int i = 0; i < 2; i++) { 36 | column = table.getColumnModel().getColumn(i); 37 | if (i == 0) //MemberID 38 | column.setPreferredWidth(100); 39 | if (i == 1) //MemberID 40 | column.setPreferredWidth(100); 41 | } 42 | 43 | table.addMouseListener(new java.awt.event.MouseAdapter() { 44 | public void mouseClicked(java.awt.event.MouseEvent evt) { 45 | try{ 46 | int row= table.getSelectedRow(); 47 | 48 | course_name = table.getModel().getValueAt(row, 0).toString(); 49 | 50 | edit.setEnabled(true); 51 | delete.setEnabled(true); 52 | }catch(Exception ex){ 53 | ex.printStackTrace(); 54 | System.out.println(ex.getMessage()); 55 | } 56 | } 57 | }); 58 | 59 | contentPanel.removeAll(); 60 | scrollPane.setViewportView(table); 61 | contentPanel.add(scrollPane, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 480, 200)); 62 | contentPanel.setVisible(false); 63 | contentPanel.setVisible(true); 64 | } 65 | 66 | @SuppressWarnings("unchecked") 67 | // //GEN-BEGIN:initComponents 68 | private void initComponents() { 69 | 70 | jPanel1 = new javax.swing.JPanel(); 71 | jPanel2 = new javax.swing.JPanel(); 72 | jLabel1 = new javax.swing.JLabel(); 73 | contentPanel = new javax.swing.JPanel(); 74 | jLabel2 = new javax.swing.JLabel(); 75 | edit = new javax.swing.JButton(); 76 | delete = new javax.swing.JButton(); 77 | close = new javax.swing.JButton(); 78 | 79 | setBackground(new java.awt.Color(255, 255, 255)); 80 | setClosable(true); 81 | setPreferredSize(new java.awt.Dimension(515, 350)); 82 | setVisible(true); 83 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 84 | 85 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 86 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 87 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 88 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 89 | 90 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 91 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 92 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 93 | 94 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 95 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 96 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 97 | jLabel1.setText("EDIT/DELETE COURSE INFORMATION"); 98 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 500, 40)); 99 | 100 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 520, 40)); 101 | 102 | contentPanel.setBackground(new java.awt.Color(255, 255, 255)); 103 | contentPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92))); 104 | contentPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 105 | contentPanel.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(720, 220, -1, -1)); 106 | 107 | jPanel1.add(contentPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 480, 200)); 108 | 109 | edit.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 110 | edit.setText("EDIT"); 111 | edit.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 112 | edit.setEnabled(false); 113 | edit.addActionListener(new java.awt.event.ActionListener() { 114 | public void actionPerformed(java.awt.event.ActionEvent evt) { 115 | editActionPerformed(evt); 116 | } 117 | }); 118 | jPanel1.add(edit, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 260, 90, 35)); 119 | 120 | delete.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 121 | delete.setText("DELETE"); 122 | delete.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 123 | delete.setEnabled(false); 124 | delete.addActionListener(new java.awt.event.ActionListener() { 125 | public void actionPerformed(java.awt.event.ActionEvent evt) { 126 | deleteActionPerformed(evt); 127 | } 128 | }); 129 | jPanel1.add(delete, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 260, 90, 35)); 130 | 131 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 132 | close.setText("CLOSE"); 133 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 134 | close.addActionListener(new java.awt.event.ActionListener() { 135 | public void actionPerformed(java.awt.event.ActionEvent evt) { 136 | closeActionPerformed(evt); 137 | } 138 | }); 139 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 260, 80, 35)); 140 | 141 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 500, 310)); 142 | 143 | pack(); 144 | }// //GEN-END:initComponents 145 | 146 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 147 | this.hide(); 148 | this.dispose(); 149 | }//GEN-LAST:event_closeActionPerformed 150 | 151 | private void deleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteActionPerformed 152 | try{ 153 | int confirm = JOptionPane.showConfirmDialog(this, "Delecte course Information? Notice that all information related to the course will also be deleted.", "Confirmation", JOptionPane.YES_NO_OPTION); 154 | PreparedStatement st; 155 | 156 | if(confirm == JOptionPane.YES_OPTION){ 157 | String sql = "delete from course where course_name = ?"; 158 | st = DBConnect.con.prepareStatement(sql); 159 | 160 | st.setString(1, course_name); 161 | 162 | st.executeUpdate(); 163 | 164 | JOptionPane.showMessageDialog(this, "Course information has been deleted","Success",JOptionPane.INFORMATION_MESSAGE); 165 | 166 | createTable(); 167 | this.edit.setEnabled(false); 168 | this.delete.setEnabled(false); 169 | } 170 | }catch (Exception e) { 171 | System.err.println(e.getMessage()); 172 | e.printStackTrace(); 173 | } 174 | }//GEN-LAST:event_deleteActionPerformed 175 | 176 | private void editActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editActionPerformed 177 | try{ 178 | PreparedStatement st; 179 | String sql = "select * from course where course_name = ?"; 180 | st = DBConnect.con.prepareStatement(sql); 181 | 182 | st.setString(1, course_name); 183 | 184 | DBConnect.rs = st.executeQuery(); 185 | DBConnect.rs.next(); 186 | 187 | int course_id = DBConnect.rs.getInt("course_id"); 188 | 189 | this.dispose(); 190 | this.hide(); 191 | 192 | EditCourse edit_course = new EditCourse(course_id); 193 | desktop1.add(edit_course, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0)); 194 | edit_course.setSelected(true); 195 | }catch (Exception e) { 196 | System.err.println(e.getMessage()); 197 | e.printStackTrace(); 198 | } 199 | }//GEN-LAST:event_editActionPerformed 200 | 201 | 202 | // Variables declaration - do not modify//GEN-BEGIN:variables 203 | private javax.swing.JButton close; 204 | public static javax.swing.JPanel contentPanel; 205 | private javax.swing.JButton delete; 206 | private javax.swing.JButton edit; 207 | private javax.swing.JLabel jLabel1; 208 | private javax.swing.JLabel jLabel2; 209 | private javax.swing.JPanel jPanel1; 210 | private javax.swing.JPanel jPanel2; 211 | // End of variables declaration//GEN-END:variables 212 | } 213 | -------------------------------------------------------------------------------- /src/com/gui/ViewMeetingTime.form: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /src/com/gui/ViewMeetingTime.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import com.data_structure.MyTable; 5 | import java.awt.Dimension; 6 | import javax.swing.JScrollPane; 7 | import javax.swing.JTable; 8 | import javax.swing.table.TableColumn; 9 | 10 | public class ViewMeetingTime extends javax.swing.JInternalFrame { 11 | 12 | public ViewMeetingTime() { 13 | DBConnect.connect(); 14 | initComponents(); 15 | createTable(); 16 | } 17 | 18 | private void createTable(){ 19 | String sql="select time_title from meeting_time"; 20 | 21 | JTable table; 22 | TableColumn column = null; 23 | JScrollPane scrollPane; 24 | String meta[]={"Meeting Time"}; 25 | table= MyTable.createTable(sql, meta); 26 | table.setPreferredScrollableViewportSize(new Dimension(360, 200)); 27 | scrollPane = new JScrollPane(table); 28 | for (int i = 0; i < 1; i++) { 29 | column = table.getColumnModel().getColumn(i); 30 | if (i == 0) //MemberID 31 | column.setPreferredWidth(100); 32 | } 33 | 34 | contentPanel.removeAll(); 35 | scrollPane.setViewportView(table); 36 | contentPanel.add(scrollPane, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 360, 200)); 37 | contentPanel.setVisible(false); 38 | contentPanel.setVisible(true); 39 | } 40 | 41 | @SuppressWarnings("unchecked") 42 | // //GEN-BEGIN:initComponents 43 | private void initComponents() { 44 | 45 | jPanel1 = new javax.swing.JPanel(); 46 | jPanel2 = new javax.swing.JPanel(); 47 | jLabel1 = new javax.swing.JLabel(); 48 | contentPanel = new javax.swing.JPanel(); 49 | jLabel2 = new javax.swing.JLabel(); 50 | close = new javax.swing.JButton(); 51 | 52 | setBackground(new java.awt.Color(255, 255, 255)); 53 | setClosable(true); 54 | setPreferredSize(new java.awt.Dimension(395, 337)); 55 | setVisible(true); 56 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 57 | 58 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 59 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 60 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 61 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 62 | 63 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 64 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 65 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 66 | 67 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 18)); // NOI18N 68 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 69 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 70 | jLabel1.setText("VIEW MEETING TIME INFORMATION"); 71 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 380, 40)); 72 | 73 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 380, 40)); 74 | 75 | contentPanel.setBackground(new java.awt.Color(255, 255, 255)); 76 | contentPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92))); 77 | contentPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 78 | contentPanel.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(720, 220, -1, -1)); 79 | 80 | jPanel1.add(contentPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 360, 200)); 81 | 82 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 83 | close.setText("CLOSE"); 84 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 85 | close.addActionListener(new java.awt.event.ActionListener() { 86 | public void actionPerformed(java.awt.event.ActionEvent evt) { 87 | closeActionPerformed(evt); 88 | } 89 | }); 90 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 260, 80, 35)); 91 | 92 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 380, 310)); 93 | 94 | pack(); 95 | }// //GEN-END:initComponents 96 | 97 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 98 | this.hide(); 99 | this.dispose(); 100 | }//GEN-LAST:event_closeActionPerformed 101 | 102 | 103 | // Variables declaration - do not modify//GEN-BEGIN:variables 104 | private javax.swing.JButton close; 105 | public static javax.swing.JPanel contentPanel; 106 | private javax.swing.JLabel jLabel1; 107 | private javax.swing.JLabel jLabel2; 108 | private javax.swing.JPanel jPanel1; 109 | private javax.swing.JPanel jPanel2; 110 | // End of variables declaration//GEN-END:variables 111 | } 112 | -------------------------------------------------------------------------------- /src/com/gui/ViewVenue.java: -------------------------------------------------------------------------------- 1 | package com.gui; 2 | 3 | import com.data_structure.DBConnect; 4 | import com.data_structure.MyTable; 5 | import static com.gui.MainMenu.desktop1; 6 | import java.awt.Dimension; 7 | import java.sql.PreparedStatement; 8 | import javax.swing.JOptionPane; 9 | import javax.swing.JScrollPane; 10 | import javax.swing.JTable; 11 | import javax.swing.table.TableColumn; 12 | 13 | public class ViewVenue extends javax.swing.JInternalFrame { 14 | 15 | private String class_room_name; 16 | 17 | public ViewVenue() { 18 | DBConnect.connect(); 19 | initComponents(); 20 | createTable(); 21 | } 22 | 23 | private void createTable(){ 24 | String sql="select class_room_name, space_capacity from class_room"; 25 | 26 | JTable table; 27 | TableColumn column = null; 28 | JScrollPane scrollPane; 29 | String meta[]={"Venue Name", "Space Capacity"}; 30 | table= MyTable.createTable(sql, meta); 31 | table.setPreferredScrollableViewportSize(new Dimension(480, 200)); 32 | table.setToolTipText("Select venue record and click edit or delete to edit or delete information"); 33 | scrollPane = new JScrollPane(table); 34 | for (int i = 0; i < 2; i++) { 35 | column = table.getColumnModel().getColumn(i); 36 | if (i == 0) //MemberID 37 | column.setPreferredWidth(100); 38 | if (i == 1) //MemberID 39 | column.setPreferredWidth(100); 40 | } 41 | 42 | table.addMouseListener(new java.awt.event.MouseAdapter() { 43 | public void mouseClicked(java.awt.event.MouseEvent evt) { 44 | try{ 45 | int row= table.getSelectedRow(); 46 | 47 | class_room_name = table.getModel().getValueAt(row, 0).toString(); 48 | 49 | edit.setEnabled(true); 50 | delete.setEnabled(true); 51 | }catch(Exception ex){ 52 | ex.printStackTrace(); 53 | System.out.println(ex.getMessage()); 54 | } 55 | } 56 | }); 57 | 58 | contentPanel.removeAll(); 59 | scrollPane.setViewportView(table); 60 | contentPanel.add(scrollPane, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 480, 200)); 61 | contentPanel.setVisible(false); 62 | contentPanel.setVisible(true); 63 | } 64 | 65 | @SuppressWarnings("unchecked") 66 | // //GEN-BEGIN:initComponents 67 | private void initComponents() { 68 | 69 | jPanel1 = new javax.swing.JPanel(); 70 | jPanel2 = new javax.swing.JPanel(); 71 | jLabel1 = new javax.swing.JLabel(); 72 | contentPanel = new javax.swing.JPanel(); 73 | jLabel2 = new javax.swing.JLabel(); 74 | edit = new javax.swing.JButton(); 75 | delete = new javax.swing.JButton(); 76 | close = new javax.swing.JButton(); 77 | 78 | setBackground(new java.awt.Color(255, 255, 255)); 79 | setClosable(true); 80 | setPreferredSize(new java.awt.Dimension(515, 350)); 81 | setVisible(true); 82 | getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 83 | 84 | jPanel1.setBackground(new java.awt.Color(255, 255, 255)); 85 | jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 86 | jPanel1.setPreferredSize(new java.awt.Dimension(700, 480)); 87 | jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 88 | 89 | jPanel2.setBackground(new java.awt.Color(0, 12, 92)); 90 | jPanel2.setPreferredSize(new java.awt.Dimension(596, 488)); 91 | jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 92 | 93 | jLabel1.setFont(new java.awt.Font("Tiger Expert", 1, 24)); // NOI18N 94 | jLabel1.setForeground(new java.awt.Color(255, 255, 255)); 95 | jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 96 | jLabel1.setText("EDIT/DELETE VENUE INFORMATION"); 97 | jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 500, 40)); 98 | 99 | jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 520, 40)); 100 | 101 | contentPanel.setBackground(new java.awt.Color(255, 255, 255)); 102 | contentPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92))); 103 | contentPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 104 | contentPanel.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(720, 220, -1, -1)); 105 | 106 | jPanel1.add(contentPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 480, 200)); 107 | 108 | edit.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 109 | edit.setText("EDIT"); 110 | edit.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 111 | edit.setEnabled(false); 112 | edit.addActionListener(new java.awt.event.ActionListener() { 113 | public void actionPerformed(java.awt.event.ActionEvent evt) { 114 | editActionPerformed(evt); 115 | } 116 | }); 117 | jPanel1.add(edit, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 260, 90, 35)); 118 | 119 | delete.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 120 | delete.setText("DELETE"); 121 | delete.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 122 | delete.setEnabled(false); 123 | delete.addActionListener(new java.awt.event.ActionListener() { 124 | public void actionPerformed(java.awt.event.ActionEvent evt) { 125 | deleteActionPerformed(evt); 126 | } 127 | }); 128 | jPanel1.add(delete, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 260, 90, 35)); 129 | 130 | close.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N 131 | close.setText("CLOSE"); 132 | close.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 12, 92), 2)); 133 | close.addActionListener(new java.awt.event.ActionListener() { 134 | public void actionPerformed(java.awt.event.ActionEvent evt) { 135 | closeActionPerformed(evt); 136 | } 137 | }); 138 | jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 260, 80, 35)); 139 | 140 | getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 500, 310)); 141 | 142 | pack(); 143 | }// //GEN-END:initComponents 144 | 145 | private void closeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeActionPerformed 146 | this.hide(); 147 | this.dispose(); 148 | }//GEN-LAST:event_closeActionPerformed 149 | 150 | private void deleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteActionPerformed 151 | try{ 152 | int confirm = JOptionPane.showConfirmDialog(this, "Delecte Venue Information? Notice that all information related to the venue will also be deleted.", "Confirmation", JOptionPane.YES_NO_OPTION); 153 | PreparedStatement st; 154 | 155 | if(confirm == JOptionPane.YES_OPTION){ 156 | String sql = "delete from class_room where class_room_name = ?"; 157 | st = DBConnect.con.prepareStatement(sql); 158 | 159 | st.setString(1, class_room_name); 160 | 161 | st.executeUpdate(); 162 | 163 | JOptionPane.showMessageDialog(this, "Venue information has been deleted","Success",JOptionPane.INFORMATION_MESSAGE); 164 | 165 | createTable(); 166 | this.edit.setEnabled(false); 167 | this.delete.setEnabled(false); 168 | } 169 | }catch (Exception e) { 170 | System.err.println(e.getMessage()); 171 | e.printStackTrace(); 172 | } 173 | }//GEN-LAST:event_deleteActionPerformed 174 | 175 | private void editActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editActionPerformed 176 | try{ 177 | PreparedStatement st; 178 | String sql = "select * from class_room where class_room_name = ?"; 179 | st = DBConnect.con.prepareStatement(sql); 180 | 181 | st.setString(1, class_room_name); 182 | 183 | DBConnect.rs = st.executeQuery(); 184 | DBConnect.rs.next(); 185 | 186 | int class_room_id = DBConnect.rs.getInt("class_room_id"); 187 | 188 | this.dispose(); 189 | this.hide(); 190 | 191 | EditVenue edit_venue = new EditVenue(class_room_id); 192 | desktop1.add(edit_venue, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0)); 193 | edit_venue.setSelected(true); 194 | }catch (Exception e) { 195 | System.err.println(e.getMessage()); 196 | e.printStackTrace(); 197 | } 198 | }//GEN-LAST:event_editActionPerformed 199 | 200 | 201 | // Variables declaration - do not modify//GEN-BEGIN:variables 202 | private javax.swing.JButton close; 203 | public static javax.swing.JPanel contentPanel; 204 | private javax.swing.JButton delete; 205 | private javax.swing.JButton edit; 206 | private javax.swing.JLabel jLabel1; 207 | private javax.swing.JLabel jLabel2; 208 | private javax.swing.JPanel jPanel1; 209 | private javax.swing.JPanel jPanel2; 210 | // End of variables declaration//GEN-END:variables 211 | } 212 | -------------------------------------------------------------------------------- /src/com/image/ico/Add16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/Add16.gif -------------------------------------------------------------------------------- /src/com/image/ico/AdminLTELogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/AdminLTELogo.png -------------------------------------------------------------------------------- /src/com/image/ico/Edit16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/Edit16.gif -------------------------------------------------------------------------------- /src/com/image/ico/Exit16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/Exit16.gif -------------------------------------------------------------------------------- /src/com/image/ico/Import16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/Import16.gif -------------------------------------------------------------------------------- /src/com/image/ico/List16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/List16.gif -------------------------------------------------------------------------------- /src/com/image/ico/Untitled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/Untitled.jpg -------------------------------------------------------------------------------- /src/com/image/ico/boxdownload32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/boxdownload32.jpg -------------------------------------------------------------------------------- /src/com/image/ico/boxupload32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/boxupload32.jpg -------------------------------------------------------------------------------- /src/com/image/ico/leftturnarrow32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhu-ibrahim/time-table-scheduling/c14a946037647122fdf56a15a326f1be0bbd972b/src/com/image/ico/leftturnarrow32.jpg -------------------------------------------------------------------------------- /src/com/timetable/Data.java: -------------------------------------------------------------------------------- 1 | package com.timetable; 2 | 3 | import com.data_structure.Association; 4 | import com.data_structure.DBConnect; 5 | import com.data_structure.DBConnect1; 6 | import com.data_structure.Iterator; 7 | import com.data_structure.MySearchableContainer; 8 | import com.data_structure.PrintingVisitor; 9 | import java.util.ArrayList; 10 | import java.util.Arrays; 11 | 12 | import com.genetic_algorithm_resource.Course; 13 | import com.genetic_algorithm_resource.Department; 14 | import com.genetic_algorithm_resource.Instructor; 15 | import com.genetic_algorithm_resource.MeetingTime; 16 | import com.genetic_algorithm_resource.Room; 17 | import java.sql.PreparedStatement; 18 | 19 | public class Data { 20 | 21 | private ArrayList rooms; 22 | private ArrayList instructors; 23 | private ArrayList courses; 24 | private ArrayList depts; 25 | private ArrayList meetingTimes; 26 | 27 | private Instructor[] i = new Instructor[1000]; 28 | private Course[] c = new Course[1000]; 29 | 30 | private int numberOfClasses = 0; 31 | 32 | public Data() throws Exception 33 | { 34 | initialize(); 35 | } 36 | 37 | private Data initialize() throws Exception 38 | { 39 | PreparedStatement st; 40 | String sql = "select * from class_room"; 41 | st = DBConnect.con.prepareStatement(sql); 42 | DBConnect.rs = st.executeQuery(); 43 | Room room; 44 | ArrayList r = new ArrayList(); 45 | while(DBConnect.rs.next()){ 46 | room = new Room(DBConnect.rs.getString("class_room_name"), DBConnect.rs.getInt("space_capacity")); 47 | r.add(room); 48 | } 49 | 50 | rooms = new ArrayList(r); 51 | 52 | sql = "select * from meeting_time"; 53 | st = DBConnect.con.prepareStatement(sql); 54 | DBConnect.rs = st.executeQuery(); 55 | MeetingTime meetingTime; 56 | ArrayList time = new ArrayList(); 57 | while(DBConnect.rs.next()){ 58 | meetingTime = new MeetingTime(DBConnect.rs.getString("time_id"), DBConnect.rs.getString("time_title")); 59 | time.add(meetingTime); 60 | } 61 | 62 | meetingTimes = new ArrayList(time); 63 | 64 | sql = "select * from instructor"; 65 | st = DBConnect.con.prepareStatement(sql); 66 | DBConnect.rs = st.executeQuery(); 67 | Instructor instructor; 68 | ArrayList instr = new ArrayList(); 69 | while(DBConnect.rs.next()){ 70 | instructor = new Instructor(DBConnect.rs.getString("instructor_id"), DBConnect.rs.getString("instructor_name")); 71 | i[DBConnect.rs.getInt("instructor_id")] = instructor; 72 | instr.add(instructor); 73 | } 74 | 75 | instructors = new ArrayList(instr); 76 | 77 | sql = "select * from course"; 78 | st = DBConnect.con.prepareStatement(sql); 79 | DBConnect.rs = st.executeQuery(); 80 | Course course; 81 | ArrayList cour = new ArrayList(); 82 | while(DBConnect.rs.next()){ 83 | PreparedStatement st1; 84 | sql = "select * from instructor, course_instructor where course_instructor.course_id = ? AND course_instructor.instructor_id = instructor.instructor_id"; 85 | st1 = DBConnect1.con.prepareStatement(sql); 86 | st1.setInt(1, DBConnect.rs.getInt("course_id")); 87 | DBConnect1.rs = st1.executeQuery(); 88 | instr = new ArrayList(); 89 | 90 | while(DBConnect1.rs.next()){ 91 | instructor = i[DBConnect1.rs.getInt("instructor_id")]; 92 | instr.add(instructor); 93 | } 94 | course = new Course(DBConnect.rs.getString("course_id"), DBConnect.rs.getString("course_name"), instr, DBConnect.rs.getInt("maximum_number_of_student")); 95 | cour.add(course); 96 | c[DBConnect.rs.getInt("course_id")] = course; 97 | } 98 | courses = new ArrayList(cour); 99 | 100 | MySearchableContainer all_courses = new MySearchableContainer(); 101 | Association assoc; 102 | 103 | /*sql = "select * from course, class_courses where course.course_id = class_courses.course_id"; 104 | st = DBConnect.con.prepareStatement(sql); 105 | DBConnect.rs = st.executeQuery(); 106 | while(DBConnect.rs.next()){ 107 | PreparedStatement st1; 108 | sql = "select * from instructor, course_instructor where course_instructor.course_id = ? AND course_instructor.instructor_id = instructor.instructor_id"; 109 | st1 = DBConnect1.con.prepareStatement(sql); 110 | st1.setInt(1, DBConnect.rs.getInt("course_id")); 111 | DBConnect1.rs = st1.executeQuery(); 112 | instr = new ArrayList(); 113 | 114 | while(DBConnect1.rs.next()){ 115 | instructor = new Instructor(DBConnect1.rs.getString("instructor_id"), DBConnect1.rs.getString("instructor_name")); 116 | instr.add(instructor); 117 | } 118 | course = new Course(DBConnect.rs.getString("course_id"), DBConnect.rs.getString("course_name"), instr, DBConnect.rs.getInt("maximum_number_of_student")); 119 | cour.add(course); 120 | 121 | assoc =(Association)all_courses.find(new Association(DBConnect.rs.getString("class_id"))); 122 | if(assoc != null){ 123 | ArrayList class_cour = (ArrayList)assoc.getValue(); 124 | class_cour.add(course); 125 | assoc.setValue(class_cour); 126 | }else{ 127 | ArrayList class_cour = new ArrayList(); 128 | class_cour.add(course); 129 | assoc = new Association(DBConnect.rs.getString("class_id"), class_cour); 130 | all_courses.insert(assoc); 131 | } 132 | }*/ 133 | 134 | sql = "select * from class"; 135 | st = DBConnect.con.prepareStatement(sql); 136 | DBConnect.rs = st.executeQuery(); 137 | Department department; 138 | ArrayList dept = new ArrayList(); 139 | while(DBConnect.rs.next()){ 140 | PreparedStatement st1; 141 | sql = "select * from course, class_courses where class_courses.class_id = ? AND class_courses.course_id = course.course_id"; 142 | st1 = DBConnect1.con.prepareStatement(sql); 143 | st1.setInt(1, DBConnect.rs.getInt("class_id")); 144 | DBConnect1.rs = st1.executeQuery(); 145 | instr = new ArrayList(); 146 | ArrayList class_cour = new ArrayList(); 147 | while(DBConnect1.rs.next()){ 148 | course = c[DBConnect1.rs.getInt("course_id")]; 149 | class_cour.add(course); 150 | } 151 | department = new Department(DBConnect.rs.getString("class_name"), new ArrayList(class_cour)); 152 | dept.add(department); 153 | } 154 | 155 | depts = new ArrayList(dept); 156 | depts.forEach(x -> numberOfClasses += x.getCourses().size()); 157 | 158 | return this; 159 | } 160 | 161 | public ArrayList getRooms() 162 | { 163 | return rooms; 164 | } 165 | 166 | public ArrayList getInstructors() 167 | { 168 | return instructors; 169 | } 170 | 171 | public ArrayList getCourses() 172 | { 173 | return courses; 174 | } 175 | 176 | public ArrayList getDepts() 177 | { 178 | return depts; 179 | } 180 | 181 | public ArrayList getMeetingTimes() 182 | { 183 | return meetingTimes; 184 | } 185 | 186 | public int getNumberOfClasses() 187 | { 188 | return this.numberOfClasses; 189 | } 190 | 191 | } 192 | -------------------------------------------------------------------------------- /src/com/timetable/Driver.java: -------------------------------------------------------------------------------- 1 | package com.timetable; 2 | 3 | import com.data_structure.DBConnect; 4 | import com.data_structure.DBConnect1; 5 | import java.util.ArrayList; 6 | 7 | import com.genetic_algorithm_resource.Class; 8 | 9 | public class Driver { 10 | public static final int POPULATION_SIZE = 9; 11 | public static final double MUTATION_RATE = 0.1; 12 | public static final double CROSSOVER_RATE = 0.9; 13 | public static final int TOURNAMENT_SELECTION_SIZE = 3; 14 | public static final int NUMB_OF_ELITE_SCHEDULES = 1; 15 | private int scheduleNumb = 0; 16 | private int classNumb = 1; 17 | private Data data; 18 | 19 | public static void main(String[] args) { 20 | DBConnect.connect(); 21 | DBConnect1.connect(); 22 | Driver driver = new Driver(); 23 | //driver.data = new Data(); 24 | int generationNumber = 0; 25 | driver.printAvailableData(); 26 | //System.out.println("> Generation # " + generationNumber); 27 | //System.out.print(" Schedule # | "); 28 | //System.out.print("Classes [dept, class, room, instructor, meeting.time]"); 29 | //System.out.println(" |Fitness | Conflicts"); 30 | //System.out.print("........................................................................"); 31 | //System.out.println("............................................................................"); 32 | GeneticAlgorithm geneticAlgorithm = new GeneticAlgorithm(driver.data); 33 | Population population = new Population(Driver.POPULATION_SIZE, driver.data).sortByFitness(); 34 | //population.getSchedules().forEach(schedule -> System.out.println(" " + driver.scheduleNumb++ + " | " + schedule + " | " + String.format("%.5f", schedule.getFitness()) + " | " + schedule.getNumberOfConflicts())); 35 | //driver.printScheduleAsTable(population.getSchedules().get(0), generationNumber); 36 | 37 | driver.classNumb = 1; 38 | while (population.getSchedules().get(0).getFitness() != 1.0) 39 | { 40 | ++generationNumber; 41 | //System.out.println("> Generation # " + ++generationNumber); 42 | //System.out.print(" Schedule # | "); 43 | //System.out.print("Classes [dept,class,room,instructor,meeting.time] "); 44 | //System.out.println(" | Fitness | Conflicts"); 45 | //System.out.print("......................................................................"); 46 | //System.out.print("..........................................................................."); 47 | population = geneticAlgorithm.evolve(population).sortByFitness(); 48 | driver.scheduleNumb = 0; 49 | //population.getSchedules().forEach(schedule -> System.out.println(" " + driver.scheduleNumb++ + " | " + schedule + " | " + String.format("%.5f", schedule.getFitness()) + " | " + schedule.getNumberOfConflicts())); 50 | driver.printScheduleAsTable(population.getSchedules().get(0), generationNumber); 51 | driver.classNumb = 1; 52 | } 53 | } 54 | 55 | public void printScheduleAsTable(Schedule schedule, int generation) 56 | { 57 | ArrayList classes = schedule.getClasses(); 58 | System.out.print("\n "); 59 | System.out.println("\nClass # | Dept | Course (number, max # number of students) | Room (Capacity) | Instructor (Id) | Meeting Time"); 60 | //System.out.print(" "); 61 | System.out.print("........................................."); 62 | System.out.print("........................................................"); 63 | classes.forEach(x -> { 64 | int majorIndex = data.getDepts().indexOf(x.getDept()); 65 | int coursesIndex = data.getCourses().indexOf(x.getCourse()); 66 | int roomsIndex = data.getRooms().indexOf(x.getRoom()); 67 | int instructorsIndex = data.getInstructors().indexOf(x.getInstructor()); 68 | int meetingTimeIndex = data.getMeetingTimes().indexOf(x.getMeetingTime()); 69 | //System.out.print(" "); 70 | System.out.print(String.format("\n %1$02d ", classNumb) + " | "); 71 | System.out.print(String.format("%1$4s", data.getDepts().get(majorIndex).getName()) + " | "); 72 | System.out.print(String.format("%1$21s", data.getCourses().get(coursesIndex).getName() + " (" + data.getCourses().get(coursesIndex).getNumber() + ", " + x.getCourse().getMaxNumberOfStudents()) + ") | "); 73 | System.out.print(String.format("%1$10s", data.getRooms().get(roomsIndex).getNumber() + "(" + x.getRoom().getSeatingCapacity()) + ") | " ); 74 | System.out.print(String.format("%1$15s", data.getInstructors().get(instructorsIndex).getName() + " (" + data.getInstructors().get(instructorsIndex).getId() + ")") + " | "); 75 | System.out.print(data.getMeetingTimes().get(meetingTimeIndex).getTime() + " (" + data.getMeetingTimes().get(meetingTimeIndex).getId() + ")"); 76 | classNumb++; 77 | }); 78 | 79 | if (schedule.getFitness() == 1) System.out.print("\n> Solution Found in " + (generation + 1) + "generations\n"); 80 | System.out.print("..................................................................................."); 81 | System.out.print("......................................................................................."); 82 | 83 | } 84 | int i = 0; 85 | private void printAvailableData() 86 | { 87 | System.out.println("\n------ Available Lecturers ------"); 88 | i = 0; 89 | data.getInstructors().forEach(x -> System.out.println((++i)+": " + x.getName()+"\n")); 90 | 91 | System.out.println("\n------ Available Course ------"); 92 | data.getCourses().forEach(x -> System.out.println("Course Title: " + x.getName() + "\nMax # of Students: " + x.getMaxNumberOfStudents() + " \nInstructor(s): " + x.getInstructors()+"\n")); 93 | 94 | System.out.println("\n------ Available Lecture Venues ------"); 95 | data.getRooms().forEach(x -> System.out.println("Venue Title: " + x.getNumber() + "\nMax Seating Capacity: " + x.getSeatingCapacity()+"\n")); 96 | 97 | System.out.println("\n------ Available Meeting Times ------"); 98 | i = 0; 99 | data.getMeetingTimes().forEach(x -> System.out.println((++i)+" :" + x.getTime())); 100 | 101 | System.out.println("\n\n------ Available Classes ------"); 102 | data.getDepts().forEach(x -> System.out.println("Class Name: " + x.getName() + "\nCourses Offered: " + x.getCourses()+"\n")); 103 | System.out.print("..........................................................................................."); 104 | System.out.println("..........................................................................................."); 105 | } 106 | 107 | } 108 | -------------------------------------------------------------------------------- /src/com/timetable/GeneticAlgorithm.java: -------------------------------------------------------------------------------- 1 | package com.timetable; 2 | 3 | import java.util.ArrayList; 4 | import java.util.stream.IntStream; 5 | 6 | public class GeneticAlgorithm { 7 | 8 | private Data data; 9 | 10 | public GeneticAlgorithm(Data data) 11 | { 12 | this.data = data; 13 | } 14 | 15 | public Population evolve(Population population) 16 | { 17 | return mutatePopulation(crossoverPopulation(population)); 18 | } 19 | 20 | Population crossoverPopulation(Population population) 21 | { 22 | Population crossoverPopulation = new Population(population.getSchedules().size(), data); 23 | IntStream.range(0, Driver.NUMB_OF_ELITE_SCHEDULES).forEach(x -> crossoverPopulation.getSchedules().set(x, population.getSchedules().get(x))); 24 | 25 | IntStream.range(Driver.NUMB_OF_ELITE_SCHEDULES, population.getSchedules().size()).forEach(x -> { 26 | if (Driver.CROSSOVER_RATE > Math.random()) 27 | { 28 | Schedule schedule1 = selectTournamentPopulation(population).sortByFitness().getSchedules().get(0); 29 | Schedule schedule2 = selectTournamentPopulation(population).sortByFitness().getSchedules().get(0); 30 | crossoverPopulation.getSchedules().set(x, crossoverSchedule(schedule1, schedule2)); 31 | }else crossoverPopulation.getSchedules().set(x, population.getSchedules().get(x)); 32 | }); 33 | 34 | return crossoverPopulation; 35 | } 36 | 37 | Schedule crossoverSchedule(Schedule schedule1, Schedule schedule2) 38 | { 39 | Schedule crossoverSchedule = new Schedule(data).initialize(); 40 | 41 | IntStream.range(0, crossoverSchedule.getClasses().size()).forEach(x -> { 42 | if (Math.random() > 0.5) crossoverSchedule.getClasses().set(x, schedule1.getClasses().get(x)); 43 | else crossoverSchedule.getClasses().set(x, schedule2.getClasses().get(x)); 44 | }); 45 | 46 | return crossoverSchedule; 47 | } 48 | 49 | Population mutatePopulation(Population population) 50 | { 51 | Population mutatePopulation = new Population(population.getSchedules().size(), data); 52 | 53 | ArrayList schedules = mutatePopulation.getSchedules(); 54 | 55 | IntStream.range(0, Driver.NUMB_OF_ELITE_SCHEDULES).forEach(x -> schedules.set(x, population.getSchedules().get(x)));; 56 | 57 | IntStream.range(Driver.NUMB_OF_ELITE_SCHEDULES, population.getSchedules().size()).forEach(x -> { 58 | schedules.set(x, mutateSchedule(population.getSchedules().get(x))); 59 | }); 60 | 61 | return mutatePopulation; 62 | } 63 | 64 | Schedule mutateSchedule(Schedule mutateSchedule) 65 | { 66 | Schedule schedule = new Schedule(data).initialize(); 67 | 68 | IntStream.range(0, mutateSchedule.getClasses().size()).forEach(x -> { 69 | if (Driver.MUTATION_RATE > Math.random()) mutateSchedule.getClasses().set(x, schedule.getClasses().get(x)); 70 | }); 71 | 72 | return mutateSchedule; 73 | } 74 | 75 | Population selectTournamentPopulation(Population population) 76 | { 77 | Population tournamentPopulation = new Population(Driver.TOURNAMENT_SELECTION_SIZE, data); 78 | 79 | IntStream.range(0, Driver.TOURNAMENT_SELECTION_SIZE).forEach(x -> { 80 | tournamentPopulation.getSchedules().set(x, population.getSchedules().get((int) (Math.random() * population.getSchedules().size()))); 81 | }); 82 | 83 | return tournamentPopulation; 84 | } 85 | 86 | } 87 | -------------------------------------------------------------------------------- /src/com/timetable/Population.java: -------------------------------------------------------------------------------- 1 | package com.timetable; 2 | 3 | import java.util.ArrayList; 4 | import java.util.stream.IntStream; 5 | 6 | public class Population { 7 | 8 | private ArrayList schedules; 9 | 10 | public Population(int size, Data data) 11 | { 12 | schedules = new ArrayList(size); 13 | IntStream.range(0, size).forEach(x -> schedules.add(new Schedule(data).initialize())); 14 | } 15 | 16 | public ArrayList getSchedules() 17 | { 18 | return this.schedules; 19 | } 20 | 21 | public Population sortByFitness() 22 | { 23 | schedules.sort((schedule1, schedule2) -> { 24 | int returnValue =0; 25 | 26 | if (schedule1.getFitness() > schedule2.getFitness()) returnValue = -1; 27 | else if (schedule1.getFitness() < schedule2.getFitness()) returnValue = 1; 28 | return returnValue; 29 | }); 30 | 31 | return this; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/com/timetable/Schedule.java: -------------------------------------------------------------------------------- 1 | package com.timetable; 2 | 3 | import java.util.ArrayList; 4 | 5 | import com.genetic_algorithm_resource.Department; 6 | import com.genetic_algorithm_resource.Class; 7 | 8 | public class Schedule { 9 | 10 | private ArrayList classes; 11 | private boolean isFitnessChanged = true; 12 | private double fitness = -1; 13 | private int classNumb = 0; 14 | private int numbOfConflicts = 0; 15 | private Data data; 16 | 17 | public Data getData() 18 | { 19 | return data; 20 | } 21 | 22 | public Schedule(Data data) 23 | { 24 | this.data = data; 25 | classes = new ArrayList(data.getNumberOfClasses()); 26 | } 27 | 28 | public Schedule initialize() 29 | { 30 | new ArrayList(data.getDepts()).forEach(dept -> { 31 | dept.getCourses().forEach(course -> { 32 | Class newClass = new Class(classNumb++, dept, course); 33 | newClass.setMeetingTime(data.getMeetingTimes().get((int) (data.getMeetingTimes().size() * Math.random()))); 34 | newClass.setRoom(data.getRooms().get((int) (data.getRooms().size() * Math.random()))); 35 | newClass.setInstructor(course.getInstructors().get((int) (course.getInstructors().size() * Math.random()))); 36 | classes.add(newClass); 37 | }); 38 | }); 39 | 40 | return this; 41 | } 42 | 43 | public int getNumberOfConflicts() 44 | { 45 | return numbOfConflicts; 46 | } 47 | 48 | public ArrayList getClasses() 49 | { 50 | isFitnessChanged = true; 51 | return classes; 52 | } 53 | 54 | public double getFitness() 55 | { 56 | if (isFitnessChanged == true) 57 | { 58 | fitness = calculateFitness(); 59 | isFitnessChanged = false; 60 | } 61 | 62 | return fitness; 63 | } 64 | 65 | private double calculateFitness() 66 | { 67 | numbOfConflicts = 0; 68 | 69 | classes.forEach(x -> { 70 | if (x.getRoom().getSeatingCapacity() < x.getCourse().getMaxNumberOfStudents()) numbOfConflicts++; 71 | classes.stream().filter(y -> classes.indexOf(y) >= classes.indexOf(x)).forEach(y -> { 72 | if (x.getMeetingTime() == y.getMeetingTime() && x.getId() != y.getId()) 73 | { 74 | if (x.getRoom() == y.getRoom()) numbOfConflicts++; 75 | if (x.getInstructor() == y.getInstructor()) numbOfConflicts++; 76 | } 77 | }); 78 | }); 79 | 80 | return 1/(double)(numbOfConflicts + 1); 81 | } 82 | 83 | public String toString() 84 | { 85 | String returnValue = new String(); 86 | for (int x = 0; x < classes.size() - 1; x++) returnValue += classes.get(x) + ","; 87 | returnValue += classes.get(classes.size() - 1); 88 | return returnValue; 89 | } 90 | 91 | } 92 | --------------------------------------------------------------------------------