Beruflich Dokumente
Kultur Dokumente
ASSIGNMENT
TECHNOLOGY PARK MALAYSIA
CT018-3-1 ITCP
INTRODUCTION TO C PROGRAMMING
UC1F1305IT
Name
TP. No
TP028092
LECTURER
2 November 2013
HAND IN DATE
ICP Assignment
24 February 2014
Page 1
ICP Assignment
Contents
CT018-3-1 ITCP..................................................................................................... 1
INTRODUCTION TO C PROGRAMMING..................................................................1
Introduction................................................................................................................ 4
Assumptions............................................................................................................... 4
Program Design (Pseudocode And Flowchart)............................................................5
i.
Void main()........................................................................................................ 5
ii.
Void dataentry()................................................................................................ 7
Void del()......................................................................................................... 10
vi.
Void update()............................................................................................... 11
vii.
Exit............................................................................................................... 11
C Programming Concepts......................................................................................... 12
Sample Output ..................................................................................................... 14
Flowcharts................................................................................................................ 19
Void Main()............................................................................................................ 19
Void dataentry().................................................................................................... 21
Void newloan()....................................................................................................... 22
Void view()............................................................................................................. 23
Void del()............................................................................................................... 24
Void update()......................................................................................................... 25
Source Code............................................................................................................. 26
Conclusion................................................................................................................ 30
References................................................................................................................ 31
Hanly, J. R., Koffman, E. B. and Friedman, F. L...............................................................31
ICP Assignment
Page 2
ICP Assignment
Introduction
This system was designed for the administrative staffs at a local book lending shop,
which had difficulties with their current system. It was difficult to manage and add new
bookings, especially when the staff wants to track a specific book of choice. The organization
wants to improve its services by implementing an automatic book loan service, which is easy and
convenient for staff to access and use. It is able to improve business operations as an overall
result and perhaps gain more customers for the book lending shop, given that the program is
functional well.
Assumptions
Based on the program built, it is safe to assume that the user has to key in the correct data
input, as there is no data validation of any type built into the program. The second assumption is
that users will have to key in a unique ID as there is also no data validation to whether the ID
was registered or not. This is because each data input has to be unique for the delete/edit/view
function to work; otherwise the data will be overlapped. Next, we can also assume that the books
in the library are inserted into the database by the staff is correct as there is no method to
add/delete books using this program currently. Finally, it is also safe to say that this system is not
perfect and has many errors that may occur.
ICP Assignment
Page 3
ICP Assignment
Void main()
Begin
Declare newloan, view, del, update, exit
Print Welcome to Our Automated Library Loan System
Print Main Menu
Print 1. New Loan
Print 2. View Existing Loan
Print 3. Delete Existing Loan
Print 4. Update Existing Loan
Print 5. Exit Program
REPEAT
Accept ch
Read ch
IF(ch=1)
call newloan()
ELSE(ch=2)
call view()
ELSE(ch=3)
call del()
ICP Assignment
Page 4
ICP Assignment
ELSE(ch=4)
call update()
ELSE(ch=5)
call exit()
ELSE
Print Invalid Choice!
END_IF
END_IF
END_IF
END_IF
END_IF
UNTIL (ch not=5)
END
ICP Assignment
Page 5
ICP Assignment
ii.
Void dataentry()
Begin
Print Insert Book Title
Accept Book Title
Print Insert Book ID
Accept Book ID
Print Insert Name
Accept Name
Print Insert ID Number
Accept ID Number
Print Insert Date of Loan
Accept Date of Loan
END
ICP Assignment
Page 6
ICP Assignment
iii.
Void newloan()
Begin
Current node=start node
IF(start node=NULL)
Start node = current node = memory allocation
dataentry
Current node as next node = NULL
Print Record Successfully Added!
END_IF
DOWHILE (current node as next)
Current node = current node as next node
Current node as next node = memory allocation
Current node = current node as next node
dataentry
Current node as next node = NULL
Print Error in adding Record!
ENDDO
END
ICP Assignment
Page 7
ICP Assignment
iv.
Void view()
BEGIN
IF(start node = NULL)
print No Records Added Yet!
current node = start node
END_IF
DOWHILE (current node)
print Book Title: current node as title
print Book ID: current node as code
print Name current node as name
print ID Number current node as ID
print Date current node as date
current node = current node as next node
ENDDO
END
ICP Assignment
Page 8
ICP Assignment
v.
Void del()
Begin
Declare name
Print Select Record to be Deleted:
accept name
current node = start node
DOWHILE (current node)
IF(STRINGCOMPARE (start node as name, name)=0)
Start node = start node as next node
free (current node)
print Record deleted!
DOWHILE (current node as next node)
IF(STRINGCOMPARE (current node as next node as name, name)=0
Current node as next node = current node as next node
Print Delete Successful!
Current node as next node as next node
Print Sorry, Record not Found! Try Again!!
END
ICP Assignment
Page 9
ICP Assignment
Void update()
vi.
Begin
Declare name
Current node = start node
Print Enter name to be updated:
Accept name
DOWHILE (current node)
IF(STRINGCOMPARE (current node as name, name)= 0)
Dataentry
Print Loan Successfully Updated!
Current node = current node as next node
Print Invalid Record!
END
vii.
Exit
Begin
Exit
END
ICP Assignment
Page 10
ICP Assignment
C Programming Concepts
There are multiple types of C concepts implemented in this program. The basic C concepts such
as displaying and reading of text, declaring variables, assignment of values are used throughout
this program. Below are the listed examples of the basic C concepts being implemented in the
program.
ICP Assignment
Page 11
ICP Assignment
As shown, users are able to read the text displayed on the screen, declare new variables using the
void main() and also the comment line which describes which part of the code is the Main Menu.
Besides the basic C concept, intermediate C concepts were also used to build the program. The
pictures below shows the intermediate C concepts used in the program.
ICP Assignment
Page 12
ICP Assignment
Sample Output
ICP Assignment
Page 13
ICP Assignment
If the user wishes to key in a new loan, he/she may press 1, and the interface then
changes and prompts the user to input the following details in order.
ICP Assignment
Page 14
ICP Assignment
If the user wishes to delete an existing loan, they may press 3, and the interface will
change again and prompt the user to select the record to be deleted (in this case
the name of the user has to be entered, otherwise there would be a error response
from the program).
ICP Assignment
Page 15
ICP Assignment
If the user wishes to edit an existing record, he/she can choose option 4, where the interface
changes again, prompting the users name as recorded onto the database. If the name on the
database matches the input, the delete will be successful. Otherwise, there will be an error
ICP Assignment
Page 16
ICP Assignment
message.
ICP Assignment
Page 17
ICP Assignment
Finally, the user can also press option 5 if he/she wishes to exit the program.
ICP Assignment
Page 18
ICP Assignment
ICP Assignment
Page 19
ICP Assignment
Flowcharts
Void Main()
ICP Assignment
Page 20
ICP Assignment
ICP Assignment
Page 21
ICP Assignment
ICP Assignment
Page 22
ICP Assignment
Void dataentry()
ICP Assignment
Page 23
ICP Assignment
Void newloan()
ICP Assignment
Page 24
ICP Assignment
ICP Assignment
Page 25
ICP Assignment
Void view()
ICP Assignment
Page 26
ICP Assignment
ICP Assignment
Page 27
ICP Assignment
ICP Assignment
Page 28
ICP Assignment
Void del()
ICP Assignment
Page 29
ICP Assignment
ICP Assignment
Page 30
ICP Assignment
ICP Assignment
Page 31
ICP Assignment
Void update()
ICP Assignment
Page 32
ICP Assignment
Source Code
#include
#include
#include
#include
void dataentry();
struct menu
{
char title[20];
char name[20];
char ID[10] ;
char code[10];
char date[15];
struct menu *next;
}*start,*curr;
void main()
{
void newloan(),view(),del(),update(),exit();
int ch;
start=curr=NULL;
do
{
// Main Menu
system("cls");
printf("\n\n\n\t\t ************************************************");
printf("\n\n\t\t Welcome to our Automated Library Loan System!! ");
printf("\n\n\t\t ************************************************");
printf("\n\n\t\t **
Main Menu
**");
printf("\n\n\t\t **
1. New Loan
**");
printf("\n\n\t\t **
2. View Existing Loan
**");
printf("\n\n\t\t **
3. Delete Existing Loan
**");
printf("\n\n\t\t **
4. Update Exisiting Loan
**");
printf("\n\n\t\t **
5. Exit Program
**");
printf("\n\n\n\t\t ************************************************");
printf("\n\n\n\n\t\t Your Choice:");
scanf("%d",&ch);fflush(stdin);
switch(ch)
{
case 1:
newloan();
break;
case 2:
view();
break;
case 3:
del();
break;
case 4:
update();
break;
case 5:
ICP Assignment
Page 33
ICP Assignment
exit();
break;
default:
printf("\n\n\t Invalid choice! Please try again!");
}
getch();
}while(ch!=6);
}
void dataentry() // data entry list for Menu
{
printf("\n\t Insert Book Title:");
gets(curr->title);fflush(stdin);
printf("\n\t Insert Book ID:");
gets(curr->code);fflush(stdin);
printf("\n\t Insert Name:");
gets(curr->name);fflush(stdin);
printf("\n\t Insert ID Number:");
gets(curr->ID);fflush(stdin);
printf("\n\t Insert Date Of Loan:");
gets(curr->date);fflush(stdin);
}
void newloan() // Option 1, To enter a new loan
{
curr=start;
if(start==NULL)
{
//Empty list
start=curr=(struct menu *)malloc(sizeof(struct menu));
system("cls");
dataentry();
curr->next=NULL;
printf("\n\t Record Successfully Added!");
return;
}
//Reaching end of list
while(curr->next)
curr=curr->next;
curr->next=(struct menu *)malloc(sizeof(struct menu));
curr=curr->next;
system("cls");
dataentry();
curr->next=NULL;
printf("\n\t Error in adding Record!");
}
void view() // Option 2, View Existing Loan
{
system("cls");
if(start==NULL)
printf("\n\t No Records Added Yet!");
curr=start;
while(curr)
{
printf("\n\n\t Book Title: %-20s",curr->title);
printf("\n\n\t Book ID: %-10s",curr->code);
printf("\n\n\t Name: %-20s",curr->name);
printf("\n\n\t ID Number: %-15s",curr->ID);
printf("\n\n\t Date: %-20s",curr->date);
ICP Assignment
Page 34
ICP Assignment
printf("\n\n\t ======================================");
curr=curr->next;
}
getch();
}
void del() // Option 3, Delete Existing Loan
{
char name[20]; //Declaring a character (name)
system("cls");
printf("\n\t Select Record To Be Deleted:");
gets(name);
curr=start;
while(curr)
{
if(strcmp(start->name,name)==0)
{
start=start->next;
free(curr);
printf("\n\t Record deleted!");
return;
}
while(curr->next)
{
if(strcmp(curr->next->name,name)==0)
{
curr->next=curr->next->next;
printf("\n\n\t Delete successful!");
return;
}
curr=curr->next;
}
break;
}
printf("\n\n\t Sorry, Record not Found! Try Again!!");
}
void update() // Option 4 : Update Existing Loan
{
char name[20];
curr=start;
system("cls");
printf("\n\t Enter name to be updated:");
gets(name);
while(curr)
{
if(strcmp(curr->name,name)==0)
{
dataentry();
printf("\n\n\t Loan Successfully Updated!");
return;
}
curr=curr->next;
}
printf("\n\n\t Invalid Record!");
ICP Assignment
Page 35
ICP Assignment
}
void exit()
{
exit(0);
return;
}
ICP Assignment
Page 36
ICP Assignment
Conclusion
In conclusion, there were many faults in this program and it can be further improved to
better suit the working environment and necessities of the book loaning store. There are much
better ways to code this program, as the functions implemented in it are basic and not advanced.
I believe that given time, this program can have many useful functions implemented that can
help boost clientele and work efficiency of the book loaning store.
ICP Assignment
Page 37
ICP Assignment
References
Hanly, J. R., Koffman, E. B. and Friedman, F. L.
Problem solving and program design in C
In-text: (Hanly and Koffman et al., 1993)
Bibliography: Hanly, J. R., Koffman, E. B. and Friedman, F. L. 1993. Problem solving and
program design in C. Reading, Mass.: Addison-Wesley Pub. Co.
Cprogramming.com. 2013. C programming.com - Learn C and C++ Programming Cprogramming.com. [online] Available at: http://www.cprogramming.com/ [Accessed: 23 Feb
2014].
ICP Assignment
Page 38