ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University...

58
ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering System Software and Database Management Systems Laboratory 055CS38 By Robert Innocent Karamagi List of Experiments 1. Implementation of a Symbol Table 2. Implementation of Pass One of a Two Pass Assembler 3. Implementation of Pass Two of a Two Pass Assembler 4. Relocation Loader 5. Absolute Loader 6. Macroprocessor 7. Implementation of Pass One of Direct Linking 8. Data Definition Language Commands 9. Data Manipulation Language Commands 10. Data Control Language Commands 11. Procedures and Functions in Database Management Systems 12. Triggers in Database Management Systems 13. Cursors in Database Management Systems 14. Implementation of Payroll Processing System 15. Implementation of Banking System 16. Implementation of Library System

Transcript of ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University...

Page 1: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

ST. JOSEPH UNIVERSITY IN TANZANIA

St. Joseph University College of Engineering and Technology

Department of Computer Science and Engineering

System Software and Database Management Systems Laboratory 055CS38

By Robert Innocent Karamagi

List of Experiments

1. Implementation of a Symbol Table

2. Implementation of Pass One of a Two Pass Assembler

3. Implementation of Pass Two of a Two Pass Assembler

4. Relocation Loader

5. Absolute Loader

6. Macroprocessor

7. Implementation of Pass One of Direct Linking

8. Data Definition Language Commands

9. Data Manipulation Language Commands

10. Data Control Language Commands

11. Procedures and Functions in Database Management Systems

12. Triggers in Database Management Systems

13. Cursors in Database Management Systems

14. Implementation of Payroll Processing System

15. Implementation of Banking System

16. Implementation of Library System

Page 2: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 3: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 1

/* Implementation of a Symbol Table*/

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<string.h>

struct table

{

char var[10];int value;

};

struct table tb1[20];

int i,j,n;

void create();

void modify();

int search(char variable[],int n);

void insert();

void display();

void main()

{

int ch,result=0;

char v[10];

clrscr();

do

{

printf("\n\n1.CREATE\n2.INSERT\n3.MODIFY\n4.SEARCH\n5.DISPLAY\n6.EXIT:\t");

scanf("%d",&ch);

switch(ch)

{

case 1:create();break;

case 2:insert();break;

case 3:modify();break;

case 4:

printf("\nEnter the variable to be searched:");

scanf("%s",&v);

result=search(v,n);

if(result==0)

printf("\nThe variable is not present\n");

else

printf("\nThe location of the variable is %d \n The value of %s is

%d.",result,tb1[result].var,tb1[result].value);

break;

case 5:display();break;

case 6:exit(1);

}

}while(ch!=6);

Page 4: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

getch();

}

void create()

{

printf("\nEnter the no. of entries:");

scanf("%d",&n);

printf("\nEnter the variable and the values:-\n");

for(i=1;i<=n;i++)

{

scanf("%s%d",tb1[i].var,&tb1[i].value);

check:

if(tb1[i].var[0]>='0'&&tb1[i].var[0]<='9')

{

printf("\nVariable should start with alphabet\n Enter correct name\n");

scanf("%s%d",tb1[i].var,&tb1[i].value);

goto check;

}

check1:

for(j=1;j<i;j++)

{

if(strcmp(tb1[i].var,tb1[j].var)==0)

{

printf("\nThe variable already present. Enter another:");

scanf("%s%d",&tb1[i].var,&tb1[i].value);

goto check1;

}

}

}

printf("\nThe table after creation is:\n");

display();

}

void insert()

{

if(i>=20)

printf("\nCannot insert. Table is full\n");

else

{

n++;

printf("\nEnter the variable and the value:");

scanf("%s%d",&tb1[n].var,&tb1[n].value);

check:

if(tb1[i].var[0]>='0'&&tb1[i].var[0]<='9')

{

printf("\nVariable should start with alphabet \nEnter correct name\n");

scanf("%s%d",tb1[i].var,&tb1[i].value);

goto check;

}

check1:

for(j=1;j<n;j++)

{

Page 5: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

if(strcmp(tb1[j].var,tb1[i].var)==0)

{

printf("\nThe variable already present. Enter another:");

scanf("%s%d",&tb1[i].var,&tb1[i].value);

goto check1;

}

}

printf("\nThe table after insertion is:");

display();

}

}

void modify()

{

char variable[10];

int result=0;

printf("\nEnter the variable to be modified:");

scanf("%s",&variable);

result=search(variable,n);

if(result==0)

printf("%s not present\n",variable);

else

{

printf("\nThe current value of the variable %s is %d.\nEnter the new variable and its

value:",tb1[result].var,tb1[result].value);

scanf("%s%d",tb1[result].var,&tb1[result].value);

check:

if(tb1[i].var[0]>='0'&&tb1[i].var[0]<='9')

{

printf("\nVariable should start with alphabet \nEnter correct name\n");

scanf("%s%d",tb1[i].var,&tb1[i].value);

goto check;

}

}

printf("\nThe table after modification is:");

display();

}

int search(char variable[],int n)

{

int flag;

for(i=1;i<=n;i++)

if(strcmp(tb1[i].var,variable)==0)

{

flag=1;

break;

}

if(flag==1)

return i;

else

return 0;

Page 6: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

}

void display()

{

printf("\nVariable\tvalue\n");

for(i=1;i<=n;i++)

printf("%s\t\t%d\n",tb1[i].var,tb1[i].value);

}

Page 7: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Output

Page 8: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 9: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 2

/* Implementation of Pass One of a Two Pass Assembler*/

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

void main()

{

char opcode[10],mnemonic[10],operand[10],label[10],code[10];

int locctr,start,length;

FILE *fp1,*fp2,*fp3,*fp4;

clrscr();

fp1=fopen("ex2ina.txt","r");

fp2=fopen("ex2outa.txt","w");

fp3=fopen("ex2outb.txt","w");

fp4=fopen("ex2inb.txt","r");

fscanf(fp1,"%s%s%s",label,opcode,operand);

if(strcmp(opcode,"START")==0)

{

start=atoi(operand);

locctr=start;

fprintf(fp3,"\t%s\t%s\t%s\n",label,opcode,operand);

fscanf(fp1,"%s%s%s",label,opcode,operand);

}

else

locctr=0;

while(strcmp(opcode,"END")!=0)

{

fprintf(fp3,"%d\t",locctr);

if(strcmp(label,"**")!=0)

fprintf(fp2,"%s\t%d\n",label,locctr);

fscanf(fp4,"%s%s",code,mnemonic);

while(strcmp(code,"END")!=0)

{

if(strcmp(opcode,code)==0)

{

locctr+=10;

break;

}

fscanf(fp4,"%s%s",code,mnemonic);

}

if(strcmp(opcode,"WORD")==0)

locctr+=3;

else if(strcmp(opcode,"RESW")==0)

locctr+=(3*(atoi(operand)));

else if(strcmp(opcode,"RESB")==0)

locctr+=(atoi(operand));

else if(strcmp(opcode,"BYTE")==0)

++locctr;

Page 10: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

fprintf(fp3,"%s\t%s\t%s\t\n",label,opcode,operand);

fscanf(fp1,"%s%s%s",label,opcode,operand);

}

fprintf(fp3,"%d\t%s\t%s\t%s\n",locctr,label,opcode,operand);

length=locctr-start;

printf("The length of the program is %d",length);

fclose(fp1);

fclose(fp2);

fclose(fp3);

fclose(fp4);

getch();

}

Input files

ex2ina.txt

** START 1111

** LDA FIVE

** STA ALPHA

** LDCH CHARZ

** STCH C1

ALPHA RESW 1

FIVE WORD 5

CHARZ BYTE C'Z'

C1 RESB 1

** END **

ex2inb.txt

START *

LDA AA

STA 0A

LDCH DE

STCH 5B

END *

Output

Page 11: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

ex2outa.txt

ex2outb.txt

Page 12: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 3

/*Implementation of Pass Two of a Two Pass Assembler*/

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

void main()

{

char

opcode[10],operand[10],symbol[10],label[10],code[10],mnemonic[5],character,add[10],objectcode[10];

int flag,flag1,locctr,location,loc;

FILE *fp1,*fp2,*fp3,*fp4;

clrscr();

fp1=fopen("ex2outb.txt","r"); fp2=fopen("ex3out.txt","w");

fp3=fopen("ex2inb.txt","r"); fp4=fopen("ex2outa.txt","r");

fscanf(fp1,"%s%s%s",label,opcode,operand);

if(strcmp(opcode,"START")==0)

{

fprintf(fp2,"%s\t%s\t%s\n",label,opcode,operand);

fscanf(fp1,"%d%s%s%s",&locctr,label,opcode,operand);

}

while(strcmp(opcode,"END")!=0)

{

flag=0;

fscanf(fp3,"%s%s",code,mnemonic);

while(strcmp(code,"END")!=0)

{

if((strcmp(opcode,code)==0) && (strcmp(mnemonic,"*"))!=0)

{

flag=1;

break;

}

fscanf(fp3,"%s%s",code,mnemonic);

}

if(flag==1)

{

flag1=0; rewind(fp4);

while(!feof(fp4))

{

fscanf(fp4,"%s%d",symbol,&loc);

if(strcmp(symbol,operand)==0)

{

flag1=1; break;

}

}

if(flag1==1)

{

itoa(loc,add,10);

Page 13: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

strcpy(objectcode,strcat(mnemonic,add));

}

}

else if(strcmp(opcode,"BYTE")==0 || strcmp(opcode,"WORD")==0)

{

if((operand[0]=='C') || (operand[0]=='X'))

{

character=operand[2];

itoa(character,add,16);

strcpy(objectcode,add);

}

else

{

itoa(atoi(operand),add,10);

strcpy(objectcode,add);

}

}

else

strcpy(objectcode,"\0");

fprintf(fp2,"%s\t%s\t%s\t%d\t%s\n",label,opcode,operand,locctr,objectcode);

fscanf(fp1,"%d%s%s%s",&locctr,label,opcode,operand);

}

fprintf(fp2,"%s\t%s\t%s\t%d\n",label,opcode,operand,locctr);

fclose(fp1); fclose(fp2);

fclose(fp3); fclose(fp4);

getch();

}

Input files

ex2inb.txt

START *

LDA AA

STA 0A

LDCH DE

STCH 5B

END *

ex2outa.txt

ALPHA 1151

FIVE 1154

CHARZ 1157

C1 1158

Page 14: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

ex2outb.txt

** START 1111

1111 ** LDA FIVE

1121 ** STA ALPHA

1131 ** LDCH CHARZ

1141 ** STCH C1

1151 ALPHA RESW 1

1154 FIVE WORD 5

1157 CHARZ BYTE C'Z'

1158 C1 RESB 1

1159 ** END **

Output

Page 15: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 4

/* Relocation Loader*/

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

void convert(char h[12]);

char bitmask[12];

char bit[12]={0};

void main()

{

char add[6],length[10],input[10],binary[12],relocbit,ch,pn[5];

int start,inp,len,i,address,opcode,addr,actualadd,tlen;

FILE *fp1,*fp2;

clrscr();

printf("\n\n Enter the actual starting address : ");

scanf("%x",&start);

fp1=fopen("ex4in.txt","r");

fp2=fopen("ex4out.txt","w");

fscanf(fp1,"%s",input);

fprintf(fp2," ----------------------------\n");

fprintf(fp2," ADDRESS\tCONTENT\n");

fprintf(fp2," ----------------------------\n");

while(strcmp(input,"E")!=0)

{

if(strcmp(input,"H")==0)

{

fscanf(fp1,"%s",pn);

fscanf(fp1,"%x",add);

fscanf(fp1,"%x",length);

fscanf(fp1,"%s",input);

}

if(strcmp(input,"T")==0)

{

fscanf(fp1,"%x",&address);

fscanf(fp1,"%x",&tlen);

fscanf(fp1,"%s",bitmask);

address+=start;

convert(bitmask);

len=strlen(bit);

if(len>=11)

len=10;

for(i=0;i<len;i++)

{

fscanf(fp1,"%x",&opcode);

fscanf(fp1,"%x",&addr);

relocbit=bit[i];

if(relocbit=='0')

actualadd=addr;

Page 16: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

else

actualadd=addr+start;

fprintf(fp2,"\n %x\t\t%x%x\n",address,opcode,actualadd);

address+=3;

}

fscanf(fp1,"%s",input);

}

}

fprintf(fp2," ----------------------------\n");

fcloseall();

ch=fgetc(fp2);

while(ch!=EOF)

{

printf("%c",ch);

ch=fgetc(fp2);

}

fclose(fp2);

getch();

}

void convert(char h[12])

{

int i,l;

strcpy(bit,"");

l=strlen(h);

for(i=0;i<l;i++)

{

switch(h[i])

{

case '0':

strcat(bit,"0");

break;

case '1':

strcat(bit,"1");

break;

case '2':

strcat(bit,"10");

break;

case '3':

strcat(bit,"11");

break;

case '4':

strcat(bit,"100");

break;

case '5':

strcat(bit,"101");

break;

Page 17: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

case '6':

strcat(bit,"110");

break;

case '7':

strcat(bit,"111");

break;

case '8':

strcat(bit,"1000");

break;

case '9':

strcat(bit,"1001");

break;

case 'A':

strcat(bit,"1010");

break;

case 'B':

strcat(bit,"1011");

break;

case 'C':

strcat(bit,"1100");

break;

case 'D':

strcat(bit,"1101");

break;

case 'E':

strcat(bit,"1110");

break;

case 'F':

strcat(bit,"1111");

break;

}

}

}

Input file

H COPY 000000 00107A

T 000000 1E FFC 14 0033 48 1039 10 0036 28 0030 30 0015 48 1061 3C 0003 20 002A 1C 0039 30 002D

T 002500 15 E00 1D 0036 48 1061 18 0033 4C 1000 80 1000 60 1003

E 000000

Page 18: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Output

ex4out.txt

Page 19: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 5

/* Absolute Loader*/

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

struct object_code

{

int locctr;

char byte[5];

};

struct object_code code[200];

void main()

{

FILE *fp1, *fp2;

char input[15];

int i,len,n=0,count=0,inc=0,textloc,tlen,tloc=0,num=0,loc;

clrscr();

fp1=fopen("ex5in.txt","r");

fp2=fopen("ex5out.txt","w");

rewind(fp1);

rewind(fp2);

fscanf(fp1,"%s",input);

if(strcmp(input,"H")==0)

{

for(i=0;i<4;i++)

{

if(i==1)

fscanf(fp1,"%x",&loc);

else

fscanf(fp1,"%s",input);

}

}

tloc=loc;

while(strcmp(input,"E")!=0)

{

if(strcmp(input,"T")==0)

{

fscanf(fp1,"%x",&textloc);

for(i=0;i<(textloc-(tloc+tlen));i++)

{

strcpy(code[inc].byte,"xx");

code[inc++].locctr=loc++;

}

fscanf(fp1,"%x",&tlen);

tloc=textloc;

}

else

Page 20: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

{

len=strlen(input);

for(i=0;i<len;i++)

{

code[inc].byte[num++]=input[i];

if(num>1)

{

code[inc].locctr=loc;

loc++;

inc++;

num=0;

}

}

}

fscanf(fp1,"%s",input);

}

n=0;

i=0;

count=0;

fprintf(fp2,"%x\t",code[i].locctr);

for(i=0;i<inc;i++)

{

fprintf(fp2,"%s",code[i].byte);

n++;

if(n>3)

{

fprintf(fp2,"\t");

n=0;

count++;

}

if(count>3)

{

fprintf(fp2,"\n%x\t",code[i+1].locctr);

count=0;

}

}

getch();

}

Input file

H COPY 0060ac 00107a

T 002000 1e 142033 483039 102036 282030 302015

483061 3c2003 00202a 0c2039 00202d

T 00201e 2C2036 483062 182033 4C0000 454f46

200003 100000

T 002039 1e 242030 302030 e0305d 30303f d8305d

282030 303057 53a039 2c305e 38303f

T 002057 a 102036 4c0000 F1 201000

T 002071 19 342030 e03079 303064 4fa039 dc3079

2c2036 383064 4c0000 15

E 002000

Page 21: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Output file

Page 22: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 6

/*Macroprocessor*/

#include<stdio.h>

#include<conio.h>

#include<string.h>

struct mdt

{

char lab[10];

char opc[10];

char oper[10];

}d[10];

void main()

{

char label[10],opcode[10],operand[10],newlabel[10],newoperand[10];

char macroname[10];

int i,lines;

FILE *f1,*f2,*f3;

clrscr();

f1 = fopen("ex6in.txt","r");

f2 = fopen("ex6out.txt","w");

f3 = fopen("mdt.txt","w");

fscanf(f1,"%s %s %s",label,opcode,operand);

while(strcmp(opcode,"END")!=0)

{

if(strcmp(opcode,"MACRO")==0)

{

strcpy(macroname,label);

fscanf(f1,"%s%s%s",label,opcode,operand);

lines = 0;

while(strcmp(opcode,"MEND")!=0)

{

fprintf(f3,"%s\t%s\t%s\n",label,opcode,operand);

strcpy(d[lines].lab,label);

strcpy(d[lines].opc,opcode);

strcpy(d[lines].oper,operand);

fscanf(f1,"%s %s %s",label,opcode,operand);

lines++;

}

}

else if(strcmp(opcode,macroname)==0)

{

printf("lines=%d\n",lines);

for(i=0;i<lines;i++)

{

fprintf(f2,"%s\t%s\t%s\n",d[i].lab,d[i].opc,d[i].oper);

printf("Label= %s\n Opcode= %s \n Operand= %s\n",d[i].lab,d[i].opc,d[i].oper);

}

}

Page 23: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

else

fprintf(f2,"%s\t%s\t%s\n",label,opcode,operand);

fscanf(f1,"%s%s%s",label,opcode,operand);

}

fprintf(f2,"%s\t%s\t%s\n",label,opcode,operand);

fclose(f1);

fclose(f2);

fclose(f3);

printf("FINISHED");

getch();

}

Input file

ex6in.txt

CALC START 1000

SUM MACRO **

** LDA #5

** ADD #10

** sTA 2000

** MEND **

** LDA LENGTH

** COMP ZERO

** JEQ LOOP

** SUM **

LENGTH WORD S

ZERO WORD S

LOOP SUM **

** END **

Output

Page 24: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

mdt.txt - Macro Definition Table

ex6out.txt

Page 25: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 7

/*Implementation of Pass One of Direct Linking*/

# include <stdio.h>

# include <conio.h>

# include <string.h>

# define MAX 20

struct estab

{

char csname[10];

char extsym[10];

int address;

int length;

}es[MAX];

void main()

{

char input[10],name[10],symbol[10];

int count=0,progaddr,csaddr,add,len;

FILE *fp1,*fp2;

clrscr();

fp1=fopen("ex7in.txt","r");

fp2=fopen("ex7out.txt","w");

printf("Enter the location where the program has to be loaded : ");

scanf("%d",&progaddr);

csaddr=progaddr;

fprintf(fp2,"CS_NAME\tEXT_SYM_NAME\tADDRESS\tLENGTH\n");

fprintf(fp2,"--------------------------------------\n");

fscanf(fp1,"%s",input);

while(strcmp(input,"END")!=0)

{

if(strcmp(input,"H")==0)

{

fscanf(fp1,"%s",name);

strcpy(es[count].csname,name);

strcpy(es[count].extsym,"**");

fscanf(fp1,"%d",&add);

es[count].address=add+csaddr;

fscanf(fp1,"%d",&len);

es[count].length=len;

fprintf(fp2,"%s\t%s\t\t%d\t%d\n",es[count].csname,es[count].extsym,es[count].address,es[count].length);

count++;

}

else if(strcmp(input,"D")==0)

{

fscanf(fp1,"%s",input);

while(strcmp(input,"R")!=0)

{

Page 26: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

strcpy(es[count].csname,"**");

strcpy(es[count].extsym,input);

fscanf(fp1,"%d",&add);

// printf("CSADDR = %d",csaddr);

es[count].address=add+csaddr;

es[count].length=0;

fprintf(fp2,"%s\t%s\t\t%d\t%d\n",es[count].csname,es[count].extsym,es[count].address,es[count].length);

count++;

fscanf(fp1,"%s",input);

}

csaddr=csaddr+len;

}

else if(strcmp(input,"T")==0)

{

while(strcmp(input,"E")!=0)

fscanf(fp1,"%s",input);

}

fscanf(fp1,"%s",input);

}

fprintf(fp2,"--------------------------------------\n");

fclose(fp1);

fclose(fp2);

printf("FINISHED\n");

getch();

}

Input file

ex7in.txt

H PROGA 0000 1000

D LISTA 0040 ENDA 0054

R LISTB ENDB LISTC ENDC

T 0020 141033 465555 678909 568787 345678

T 0054 000014 789087 776555 876666 456666

M 0054 06 +LISTC

E 0000

H PROGB 0000 2000

D LISTB 0040 ENDB 0054

R LISTA ENDA LISTC ENDC

T 0020 141033 465555 678909 568787 345678

T 0054 000000 789087 776555 876666 456666

M 0054 06 +ENDA

M 0054 06 -LISTA

M 0054 06 +LISTC

E 0000

H PROGC 0000 3000

D LISTC 0040 ENDC 0054

Page 27: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

R LISTA ENDA LISTC ENDB

T 0020 141033 465555 678909 568787 345678

T 0054 000020 789087 776555 876666 456666

M 0054 06 +ENDA

M 0054 06 -LISTA

M 0054 06 +PROGC

E 0000

END

Output

ex7out.txt

Page 28: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 29: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 8

Data Definition Language Commands

create table donor(name varchar(10) primary key, age number(3), blood_ml number(5), blood_group varchar(3));

desc donor;

create table donor_age as select name , age from donor;

alter table donor_age add (address varchar(10));

desc donor_age;

alter table donor modify (name character(10));

desc donor;

rename donor_age to donor_age_add;

desc donor_age;

desc donor_age_add;

truncate table donor_age_add;

desc donor_age_add;

drop table donor_age_add;

desc donor_age_add;

Output

Page 30: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 31: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 32: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 9

Data Manipulation Language Commands

create table movies(name varchar(20) , genre varchar(20), time number(5) not null, price number(5) not null);

desc movies;

select * from movies;

insert into movies values('spiderman','action',1900,5000);

insert into movies values('gotham','action',2300,7000);

insert into movies values('happy','comedy',1200,5000);

insert into movies values('ghost','horror',0100,7000);

insert into movies values('life','love',1600,5000);

select * from movies;

select * from movies where (genre = 'action');

update movies set price=price*1.20 where time < 1200;

select * from movies;

delete from movies where genre = 'action';

select * from movies;

Output

Page 33: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 34: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 10

Data Control Language Commands

select * from movies;

savepoint a1;

delete movies;

select * from movies;

rollback to a1;

select * from movies;

commit;

create user pat identified by pat;

grant create session to pat;

connect pat;

create table name (gender char(8));

desc name;

revoke create session from pat;

disconnect pat;

drop user pat;

Output:

Page 35: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 36: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 11

Procedures and Functions in Database Management Systems

Procedure

create procedure cse is

begin

dbms_output.put_line('Semester III');

end;

/

set serveroutput on;

exec cse;

desc cse;

begin cse;

end;

/

declare

a number;

b number;

c number;

procedure min(x in number, y in number, z out number) is

begin

if x < y then

z:=x;

else

z:=y;

end if;

end;

begin

a:=99;

b:=85;

min(a,b,c);

dbms_output.put_line('Minimum of (99,85):' || c);

end;

/

select * from movies;

Function

create or replace function total_movies

return number is

declare total number(2):=0;

begin select count(*) into total from movies;

return total;

end;

/

Page 37: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

declare

a number(2);

begin

a:=total_movies();

dbms_output.put_line('Total number of movies is: '|| a);

end;

/

set serveroutput on

Output

Page 38: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 39: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 12

Triggers in Database Management Systems

create table customers(id number(2) , name varchar(10), age number(3));

desc customers;

insert into customers values('1','Laurent',28);

insert into customers values('2','Hector',26);

insert into customers values('1','Nacho',31);

select * from customers;

create or replace trigger alpha

after insert or update on customers

for each row

when (new.id > 0)

declare beta number(2);

begin

beta:=new.age - :old.age;

dbms_output.put_line('The new age is: '|| :new.age);

dbms_output.put_line('The old age is: '|| :old.age);

dbms_output.put_line('The growth in years is: '|| beta);

end;

/

set serveroutput on;

insert into customers values('4','Per',33);

select * from customers;

update customers set age=32 where name='Per';

select * from customers;

update customers set age=29 where id=2;

select * from customers;

drop trigger alpha;

Output

Page 40: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 41: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 42: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 13

Cursors in Database Management Systems

create table customers(id number(2) , name varchar(10), age number(3));

desc customers

insert into customers values('1','Robert',24);

insert into customers values('2','Innocent',70);

insert into customers values('3','Karamagi',101);

select * from customers;

Implicit Cursor

set serveroutput on;

declare

sum_rows number(2);

begin

update customers

set age=age+5;

if sql%notfound then

sum_rows:=sql%rowcount;

dbms_output.put_line('No customers have grown older');

elsif sql%found then

dbms_output.put_line(sum_rows||' customers have grown older');

end if;

end;

/

select * from customers;

Explicit Cursor

declare

alpha customers.id%type;

beta customers.name%type;

gamma customers.age%type;

cursor rho is select id, name, age from customers;

begin

open rho;

loop

fetch rho into alpha, beta, gamma;

exit when rho%notfound;

dbms_output.put_line(alpha||' '||beta||' '||gamma);

end loop;

close rho;

end;

/

Page 43: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Implicit Cursor

Page 44: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Explicit Cursors

Page 45: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 14

Implementation of Payroll Processing System

create table employees(emp_name varchar(10), emp_id number(10), emp_age number(10), emp_country

varchar(10), emp_salary number(10));

desc employees;

insert into employees values('Alexis',17,27,'Chile',150000);

insert into employees values('Olivier',12,30,'France',200000);

insert into employees values('Mesut',11,26,'Germany',180000);

insert into employees values('Aaron',16,25,'Wales',190000);

insert into employees values('Santiago',19,28,'Spain',170000);

select * from employees;

declare

c_code number(10);

c_sal number(10);

c_raise number(10);

c_name varchar(10);

begin

c_code:=&id;

c_raise:=&raise;

update employees set emp_salary=emp_salary+c_raise where emp_id=c_code;

if sql%notfound then

dbms_output.put_line('Entered employee is not in the database.');

else

select emp_name,emp_salary into c_name,c_sal from employees where emp_id=c_code;

dbms_output.put_line('The employee name is: '||c_name);

dbms_output.put_line('The updated salary is: '||c_sal);

end if;

end;

/

select * from employees;

select avg (emp_salary)"Average Salary" from employees;

select min (emp_age)"Youngest employee" from employees;

select sum (emp_salary)"Total Salary" from employees;

select count (emp_name)"Number of employees" from employees;

select max (emp_salary)"Highest Salary" from employees;

Page 46: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

create view wage as select emp_name,emp_salary from employees;

select * from wage;

create view country as select emp_name,emp_country from employees;

select * from country;

Output

Page 47: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 48: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 49: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 50: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 15

Implementation of Banking System

create table bank(name varchar(20), acc_no number(20), balance number(20), interest number(20), bank_date

varchar(20));

desc bank;

set serveroutput on;

declare

p number;

r number;

t number;

si number;

b bank%rowtype;

cursor c is select name from bank;

begin

p:=&Deposit;

r:=&Rate;

t:=&Time;

si:=(p*r*t)/100;

insert into bank values('&Depositor_Name',&Account_Number,p,si,sysdate);

open c;

loop

fetch c into b.name;

exit when c%notfound;

dbms_output.put_line('Respected '||b.name||' has deposited an amount of '||p||' on '||sysdate||' getting an interest of

'||si);

end loop;

close c;

end;

/

select * from bank;

insert into bank values('Alexis',1727,150000,92325,sysdate);

insert into bank values('Mesut',1126,180000,78127,sysdate);

insert into bank values('Aaron',1625,190000,88195,sysdate);

select * from bank;

select sum (balance)"Total Balance" from bank;

select avg (interest)"Average interest" from bank;

create view bank_details as select name, balance, interest from bank;

select * from bank_details;

Page 51: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Output

Page 52: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 53: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 54: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

Experiment 16

Implementation of Library Management System

create table library(std_name varchar(20), std_id number(20), book_name varchar(20), book_id number(20));

desc library;

set serveroutput on;

declare

lib library%rowtype;

cursor borrow is select std_name, std_id, book_name, book_id from library;

begin

insert into library values('&student_name', &student_number, '&book_name', &book_number);

open borrow;

loop

fetch borrow into lib.std_name, lib.std_id, lib.book_name, lib.book_id;

exit when borrow%notfound;

dbms_output.put_line('Student Name: '||lib.std_name||' Student Number: '||lib.std_id||' Book Name: '||lib.book_name||'

Book Number: '||lib.book_id);

end loop;

close borrow;

end;

/

select * from library;

create table students(std_name varchar(20), std_id number(20),dept varchar(20), sem number(20));

create table books(std_name varchar(20), book_name varchar(20),author varchar(20), book_id number(20));

desc students;

desc books;

insert into students values('Harry Samuel',1455010,'CSE',3);

insert into students values('Jessica Carter',1253091,'EEE',7);

insert into students values('Anthony Ben',1356121,'ISNE',5);

insert into students values('Elias Gregory',1541048,'ECE',1);

insert into students values('Lydia Tim',1255007,'CSE',7);

insert into books values('Harry Samuel','Data Structures','Puntambekar',3124);

insert into books values('Jessica Carter','Digital Electronics','Godse',9312);

insert into books values('John Tim','Oracle','Beckland',8396);

select * from students;

select * from books;

Page 55: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering

select students.std_name, students.std_id, books.book_name, books.book_id from students inner join books on

students.std_name=books.std_name;

select students.std_name, students.std_id, books.book_name, books.book_id from students right outer join books on

students.std_name=books.std_name;

select students.std_name, students.std_id, books.book_name, books.book_id from students left outer join books on

students.std_name=books.std_name;

select students.std_name, students.std_id, books.book_name, books.book_id from students full outer join books on

students.std_name=books.std_name;

Output

Page 56: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 57: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering
Page 58: ST. JOSEPH UNIVERSITY IN TANZANIA€¦ · ST. JOSEPH UNIVERSITY IN TANZANIA St. Joseph University College of Engineering and Technology Department of Computer Science and Engineering