“Bus Reservation System” project is written in c++. It is very simple project just to show the implement of class and object of C++. You can understand the code easily and learn how to create class and use object in c++ for your C++ project.The tasks that user can perform in this project are listed below:
1.Install the bus record
2.Reservation
3.Show the bus details
4.Show all buses available
This project is console application without GUI. You can add many features in this project.Here data of bus information is not store in file so every run of program previous data is lost so you can implement the file handling to store all the bus details.
Bank Management System project is design and programmed by Ravi Agrawal, Sagar Sharma and Sawal Maskey student of IOE as a first year mini project in c. This program may not be used as a Banking software but programmer tries to implement all the features of Bank. Program is completely password protected and has a two mode Admin and Staff mode. Bank administrator can login as admin user name is “admin” and password is “ioe” for admin mode. For staff mode three user name is available which is written in USER.DAT which you can see download this project. The list of user name and passwor for staff mode is given below:
This project is similar to the project Contact Management in C. In this project, I am reusing all the code from it. I created this Personal Diary Management project just by renaming printed messages, adding a few functions, and modifying existing functions slightly.
Please go through the Contact Management project if you haven't. In this project, I have explained the techniques of file handling in C.
So, in this project, I will explain the changes that I have made.
Let's start with describing data structure.
// Define Constant Variables
#define ESC 27
#define REF_SZ 10
#define DATE_SZ 64
#define MIN_TEXT_SZ 50
#define MAX_TEST_SZ 500
#define READ_ARRAY_SZ 15
#define DATA_FILE "dataFile.dat"
#define TEMP_FILE "tempFile.dat"
//Define data structure
struct data{
char refNum[REF_SZ]; //Unique reference number and auto-incremented
char noteDate[DATE_SZ]; //Auto populated using system date and time
char eventDate[DATE_SZ]; //Event date
char location[MIN_TEXT_SZ]; //Location of event happened
char eventDesc[MIN_TEXT_SZ]; //Event short description
char notes[MAX_TEST_SZ]; //Notes of the Event
};
I am using 6 variables in a structure. The variable "refNum" will be unique and it is auto-increment. The variable "noteDate" is to store note added date and it is also auto-populated using system date and time.
Other variables are:
eventDate: Event date. It can be any format chosen by the user
location: Location of event happened.
eventDesc: Event short description.
notes: Notes of the event. Maximum character is 500.
Although the variable refNum is auto-incremented, I haven't defined it as an integer. Rather than storing number value only, I decided to add '#R' as an initial character so that the unique reference value will look like "#R10001" instead of "1000".
To achieve this we have to create two separate small functions which I will describe below.
Function: getNextRef()
//Get next reference number
int getNextRef(){
struct data a;
int num=0;
fp = fopen(DATA_FILE,"rb");
if(fp!= NULL){
fseek(fp,0,SEEK_END);
fseek(fp,ftell(fp)-sizeof(a),0);
fread(&a,sizeof(a),1,fp);
// converting string to number
for (int i = 0; a.refNum[i + 2] != '\0'; i++) {
num = num * 10 + (a.refNum[i + 2] - 48);
}
fclose(fp);
return num;
} else {
return 10000;
}
}
This function will read the last item from the file and read the reference number which is the previous reference number and also the highest value. It will remove the first two characters, convert the remaining numbers into an integer data type, and return it. This function will be executed at the start of the application so if it does not find a file then it will return 1000.
Function: calRefNum(char *buff, int num)
//Calculate next reference number
static void calRefNum(char *buff, int num){
char tmpRef[REF_SZ];
char refNum[REF_SZ] = {'#','R'};
sprintf(tmpRef,"%d",num);
strcat(refNum, tmpRef);
strcpy(buff,refNum);
}
This function converts the reference number into char data type, concatenates with the "#R" initial character, and assigns it to a character pointer which is used while adding notes.
Apart from these changes I have made a few changes in readData(), add(), and view() functions. Once you compile and run it you will understand the changes.
This Mini project is compile in gcc compiler with code::blocks IDE. This project can be a good reference for those student who are doing there school project in c.Architecture of this project is very simple and easy to understand the code. Just file handling is used to store the data and corresponding function are made to manipulate the data.
The tasks provide in this program are:-
1. A : for adding new records.
2. L : for list of records.
3. M : for modifying records.
4. P : for payment.
5. S : for searching records.
6. D : for deleting records.
User are provide the above tasks.They can add records,modify and view records. Searching and deleting facilities is also provided. Download Project from GitHub