1. Write a program to store Roll No, Name, Class and Address of any five students.
OPEN "ABC.TXT" FOR OUTPUT AS #1
FOR I = 1 TO 5
INPUT "Enter roll, name,class and address : ",R,N$,C,A$
WRITE #1,R,N$,C,A$
NEXT I
CLOSE #1
END
2. A data file "hospital.dat" contains information about some staffs. The records are staffname,post,shift,age. Write a program to insert 15 records to data file.
OPEN "hospital.dat" FOR APPEND AS #1
FOR I = 1 TO 15
Input "Enter staff name, post, shift and age : ",N$,P$,S$,AGE
WRITE #1,N$,P$,S$,AGE
NEXT I
CLOSE #1
END
3. Write a program that asks the item's name, rate and quantity and stores into "sales.txt". The user can supply 10 records in each execution of the program.
OPEN "sales.txt" FOR OUTPUT AS #1
FOR I = 1 TO 10
INPUT "Enter item's name, rate and quantity ",name$,rate,quantity
WRITE #1,name$,rate,quantity
NEXT I
CLOSE #1
END
4. Write a program to create a sequential data file named "Employee.dat" to store Name, Post, Address, and Salary for the number of employees. The program should terminate on the user's choice.
OPEN "employee.dat" FOR OUTPUT AS #1
DO
INPUT "Enter employee name, post , address and salary ",name$,post$,adr$,sal
WRITE #1,name$,post$,adr$,sal
INPUT " Want to add more records"; choice$
LOOP WHILE UCASE$(choice$)="Y"
CLOSE #1
END
5. Write a program to create a sequential data file "salary.dat" to store programmer's Name, salary and post according to the need of the user.
Open "salary.dat" for output as #1
Do
Input "Enter employee name, post and salary ",name$,post$,salary
WRITE #1,name$,post$,salary
input " Want to add more records"; choice$
Loop while(ucase$(choice$))="Y"
Close #1
End
6. Write a program to ask students' name, class and marks secured in three subjects. Store the data in a sequential data file "RESULT.TXT" along with the total marks. Make a provision to ask users to enter other records.
Open "result.txt" for output as #1
top:
Input "Enter name, class and marks of three subjects ",n$,c,s1,s2,s3
total = S1 + S2 + S3
WRITE #1,n$,c,s1,s2,s3,total
Input "Want to add another records ",choice$
If ucase$(choice$)="Y" then goto top
Close #1
End
7. Write a program to input the Name, Address and Post of some employees and store them in a file named "emp.txt" along with a serial number for each record.
Open "emp.txt" for output as #1
top:
sn = 1
Input "Enter name, address and post ",n$,a$,p$
write #1,sn,n$,a$,p$
sn = sn + 1
Input "Want to add another records ",choice$
If ucase$(choice$)="Y" then goto top
Close #1
End
8.Write a program that asks students' name, roll and class and stores into "class.txt" only those records who are studying in class 10. Users can supply the records as per his/her need.
Open "class.txt" for output as #1
top:
Input "Enter name,roll and class ",n$,roll,class
If class=10 then
write #1,n$,roll, class
End If
Input "Want to add another records ",choice$
If ucase$(choice$)="Y" then goto top
Close #1
End
9.Write a program that asks student's names and marks in English, Math and Computer. Store only those records that are passed in all the subjects into the data file named "pass.dat". The user will be asked whether to input another record or not. [Note: pass mark for all the subjects is 40.]
Open "pass.txt" for output as #1
top:
Input "Enter name, marks in Eng,Math and Computer ",n$,e,m,c
If e>=40 and m>=40 and c>=40 then
write #1,n$,e,m,c
End If
Input "Want to add another records ",choice$
If ucase$(choice$)="Y" then goto top
Close #1
End
10. A sequential data file called "record.txt" contains NAME,AGE,CITY and TELEPHONE fields. Write a program to display all the contents of that data file.
Open "record.txt" for input as #1
Print "Name","Age","City","Telephone"
while not eof(1)
Input #1,n$,age,city$,tel$
Print n$,age,city$,tel$
Wend
Close #1
End
11. A sequential data file "EMP.TXT" contains name, post and salary fields of information about employees. Write a program to display all the information of the employee along with the tax amount also(tax is 15% of salary).
Open "emp.txt" for input as #1
Print "Name","Post","Salary","Tax"
While not eof(1)
Input #1,name$,post$,salary
Tax = (SALARY * 15)/100
Print name$,post$,salary,tax
Wend
Close #1
End
12. A data file "STAFF.dat" has stored records of few employees with EmpID, FirstName, LastName, Post and Salary. Write a program to display all the records of the employees whose salary is more than 40,000.
Open "staff.dat" for input as #1
Do while not eof(1)
Input #1, empid, f$, l$, p$, salary
If salary>40000 then
print empid, f$, l$, p$, salary
End if
Loop
Close #1
End
13. A sequential data file called "SEE.TXT" has stored data under the field heading Symbol No, Name, English, Nepali, Maths and Computer. Write a program to display all the information of those students whose marks in Computer is more than 80.
Open "SEE.TXT" for input as #1
Do while not eof(1)
Input #1, symbolnum, NAME$, eng, nep, maths,comp
If comp>80 then
print symbolnum; NAME$; eng; nep; maths; comp
End if
Loop
Close #1
End
14. A sequential data file called "Record.txt" has stored data under the file heading Roll No, Name, Gender, English, Nepali, Maths and Computer. Write a program to display all the information of those students whose gender are "F" and obtained marks in the computer is more than 90.
Open "Record.txt" for input as #1
print "Roll"; "Name"; "Gender"; "English"; "Maths"; "Computer"
While not eof(1)
Input #1, Roll, Name$, Gen$, Eng, Maths, Comp
If UCASE$(Gen$)="F" and Comp>90 then
Print Roll; Name$; Gen$; Eng; Maths; Comp
End if
Wend
Close #1
End
15. A sequential data file "class.txt" has several records with the field's students' name, roll and class. Write a program that reads all the records and displays only those records whose roll number is less than 10.
Open "class.txt" for input as #1
Print "Roll", "Name", "Class"
While not eof(1)
Input #1, Roll, Name$, class
If Roll < 10 then
Print Roll, Name$, class
End if
Wend
Close #1
End
16. A sequential data file "pass.dat" has several records having fields student's name and marks in English, Math and Computer. Write a program that reads all the records and displays only those records whose name starts with 'A' and also counts the total number of records stored in the file.
Open "pass.dat" for input as #1
While not eof(1)
Input #1, Name$, eng,math,comp
C = C + 1
p$ = ucase$(left$(NAME$, 1))
If p$="A" then
Print Name$,eng,math,comp
End if
Wend
Print "total number of record is" ; C
Close #1
End
17. A doctor keeps name, age and sex of his patients in a sequential data file "PATIENT.DAT". Write a QBASIC program to display only male patient records also count the total number of patients in a file.
OPEN "PATIENT.DAT" FOR INPUT AS #1
PRINT "Name","Age","Sex"
WHILE NOT EOF(1)
INPUT #1, NAME$,AGE,SEX$
C = C + 1
IF UCASE$(SEX$)="MALE" THEN
PRINT NAME$,AGE,SEX
END IF
WEND
PRINT "Total number of patients ",C
END
18. Write a program which reads records from the file "RESULT.DAT" having the fields name, and marks of three different subjects and display only those records whose percentage is greater than 60 and less than 80. Also count the total number of records present in that data file.
OPEN "RESULT.DAT" FOR INPUT AS #1
WHILE NOT EOF(1)
INPUT #1,NAME$,SUB1,SUB2,SUB3
C = C + 1
PER = (SUB1 + SUB2 + SUB3) / 3
IF PER>60 AND PER<80 THEN
PRINT NAME$,PER
END IF
WEND
PRINT "TOTAL NUMBER OF RECORD IS " ; C
Close #1
End
19. A sequential data file "staff.txt" has several records related to name, post , date of birth (mm-dd-yyyy) and salary. Write a program to display the records of those people who were born between the years 2000 to 2020 as well as count and display the total number of records.
Open "staff.txt" for input as #1
While not eof (1)
Input #1, n$, p$, dob$, sal
c = c + 1
a$ = Right$(DOB$, 4)
d = val(a$)
If d>=2000 and d<=2020 then
Print n$,p$, dob$, sal
End if
Wend
close #1
Print "total records= "; c
End
20. A sequential data file "class.txt" has several records having fields student's name, class and roll number. Write a program to copy all the records from "class.txt" into another new file "stduent.txt".
Open "class.txt" for Input as #1
Open "student.txt" for Output as #2
While not eof(1)
Input #1, name$, class, roll
Write #2, name$, class, roll
Wend
Close #1,#2
Print "Data Copied Successfully!"
End
21. A sequential data file "records.txt" has several records having fields Employee's Name, Post and Salary. Write a program to increase the salary of all employees by 10%.
Open "records.txt" for input as #1
Open "temp.txt" for output as #2
while not eof(1)
Input #1, name$,post$,salary
SALARY = SALARY + (SALARY * 10) / 100
Write #2, name$,post$,salary
Wend
Close
kill "records.txt"
name "temp.txt" as "records.txt"
Print "Salary has been updated by 10%"
End
22. Write a program to read the data from "INFO.TXT" that contains student name, class, roll no , DOB(MM-DD-YYYY) and address. Write/copy all the data whose DOB is current month to the data file "INFO.TXT".
Open "info.txt" for input as #1
Open "temp.txt" for output as #2
While not eof (1)
Input #1, n$, c, r, dob$, A$
If left$(dob$,2)=left$(date$,2) then
Write #2, n$,c,r,dob$,a$
End if
Wend
close
Kill "info.txt"
Name "temp.txt" as "info.txt"
Print "Data copied successfully!"
End
23. A sequential data file “RECORDS.TXT” contains name, address, phone number and DOB of few people. Write a program to count the total number of records stored in a data file and display the records of only those people whose name is five character long.
Open "RECORDS.TXT" for input as #1
c=0
While not eof(1)
Input #1, name$ , address$ , phone$ , DOB$
c = c + 1
a = len(NAME$)
If a=5 then
print name$ , address$ , phone$ , DOB$
End if
Wend
Close #1
Print "Total records=";c
End
24. Write a program to read product name, quantity, grade and price of 20 products from “product.dat”. Then count only those records where price is greater than 200 and grade="A".
Open "product.dat" for input as #1
c=0
while not eof(1)
Input #1,name$,quantity,grade$,price
If price>200 and grade$="A" then
c = c + 1
End if
Wend
Close #1
Print "Total number of products having price greater than 200 and grade A =";c
End
25. "score.dat" is a sequential data file which contains marks scored by students in a test . WAP to count and display all the students who has passed in all the subjects along with the calculation of their total marks. Assume field structure of data stored in the file is regno(registration number), English, Nepali, Science, Compulsory mathematics)
open "score.dat" FOR INPUT AS #1
WHILE NOT EOF(1)
INPUT #1,REGNO$,ENG,NEP,SCI,MATHS
IF ENG>=40 AND NEP>=40 AND SCI>=40 AND MATHS>=40 THEN
PRINT REGNO$,ENG,NEP,SCI,MATHS
C = C + 1
END IF
WEND
CLOSE #1
PRINT "No. of Passed Students : " ; C
END
Bonus programs on file handling
(1) To create data file "STUDENT.DAT" to store Name, Roll No, Class and Section of students.
OPEN "STUDENT.DAT" FOR OUTPUT AS #1
DO
INPUT "Enter student name, roll, class and section ", NAME$,ROLL,CLASS,SEC$
WRITE #1,NAME$,ROLL,CLASS,SEC$
INPUT " Want to add more records ", CHOICE$
LOOP WHILE UCASE$(CHOICE$)="Y"
CLOSE #1
END
(2) To store Name, Address , Age and Salary of employees in data file "STAFF.DAT"
OPEN "STAFF.DAT" FOR OUTPUT AS #1
DO
INPUT "Enter name, address , age and salary: ", NAME$,ADR$,AGE,SAL
WRITE #1,NAME$,ADR$,AGE,SAL
INPUT " Want to add more records ", CHOICE$
LOOP WHILE UCASE$(CHOICE$)="Y"
CLOSE #1
END
(3) To add records in data file created in (1)
OPEN "STUDENT.DAT" FOR APPEND AS #1
DO
INPUT "Enter student name, roll, class and section ", NAME$,ROLL,CLASS,SEC$
WRITE #1,NAME$,ROLL,CLASS,SEC$
INPUT " Want to add more records ", CHOICE$
LOOP WHILE UCASE$(CHOICE$)="Y"
CLOSE #1
END
(4) To display all records of data file “STUDENT.DAT” created in (1)
OPEN "STUDENT.DAT" FOR INPUT AS #1
PRINT "Name","Roll No","Class","Section"
WHILE NOT EOF(1)
INPUT #1, NAME$,ROLL,CLASS,SEC$
PRINT NAME$,ROLL,CLASS,SEC$
WEND
CLOSE #1
END
(5) To search record of studetent on the basis of roll
OPEN "STUDENT.DAT" FOR INPUT AS #1
INPUT "ENTER ROLL : ";R
FLAG = 0
WHILE NOT EOF(1)
INPUT #1,NAME$,ROLL,CLASS,SEC$
IF ROLL=R THEN
PRINT NAME$,ROLL,CLASS,SEC$
GOTO AA
ELSE
FLAG = 1
END IF
WEND
IF FLAG=1 THEN
PRINT "RECORD NOT FOUND"
END IF
AA:
CLOSE #1
END
(6) To display those records whose salary is greater than 15000 from the data file “STAFF.DAT” created in (2)
OPEN "STAFF.DAT" FOR INPUT AS #1
PRINT "Name","Address","Age","Salary"
WHILE NOT EOF(1)
INPUT #1,NAME$,ADR$,AGE,SAL
IF SAL>15000 THEN
PRINT NAME$,ADR$,AGE,SAL
END IF
WEND
CLOSE #1
END
(7) To delete the records whose age is greater than 60 from the data file "STAFF.DAT"
OPEN "STAFF.DAT" FOR INPUT AS #1
OPEN "TEMP.DAT" FOR OUTPUT AS #2
WHILE NOT EOF(1)
INPUT #1,NAME$,ADR$,AGE,SAL
IF AGE<60 THEN
WRITE #2,NAME$,ADR$,AGE,SAL
END IF
WEND
CLOSE #1,#2
KILL "STAFF.DAT"
NAME "TEMP.DAT" AS "STAFF.DAT"
PRINT "Employees having age greather than 60 deleted."
END
(8) Write a menu based program to append, display and delete records from the data file.
DECLARE SUB MENU()
DECLARE SUB ADDREC()
DECLARE SUB DISREC()
DECLARE SUB DELREC()
CALL MENU
INPUT CH
SELECT CASE CH
CASE 1
CALL ADDREC
CASE 2
CALL DISREC
CASE 3
CALL DELREC
CASE ELSE
PRINT "Bye Bye"
END SELECT
END
SUB ADDREC
OPEN "STUDENT.DAT" FOR APPEND AS #1
DO
INPUT "Enter student name, roll, class and section ", NAME$,ROLL,CLASS,SEC$
WRITE #1,NAME$,ROLL,CLASS,SEC$
INPUT " Want to add more records ", CHOICE$
LOOP WHILE UCASE$(CHOICE$)="Y"
CLOSE #1
END SUB
SUB DISREC
OPEN "STUDENT.DAT" FOR INPUT AS #1
PRINT "Name","Roll No","Class","Section"
WHILE NOT EOF(1)
INPUT #1, NAME$,ROLL,CLASS,SEC$
PRINT NAME$,ROLL,CLASS,SEC$
WEND
CLOSE #1
END SUB
SUB DELREC
OPEN "STUDENT.DAT" FOR INPUT AS #1
OPEN "TEMP.DAT" FOR OUTPUT AS #2
INPUT "Enter name to delete ",DN$
FLAG = 0
WHILE NOT EOF(1)
INPUT #1, NAME$,ROLL,CLASS,SEC$
IF UCASE$(DN$)<>UCASE$(NAME$) THEN
WRITE #2,NAME$,ROLL,CLASS,SEC$
ELSE
FLAG = 1
PRINT "Data deleted"
END IF
WEND
IF FLAG=0 THEN
PRINT "Record not found"
END IF
CLOSE #1,#2
KILL "STUDENT.DAT"
NAME "TEMP.DAT" AS "STUDENT.DAT"
END SUB
SUB MENU
PRINT "1. To add records "
PRINT "2. To display record"
PRINT "3. To delete record"
PRINT "Enter your choice"
END SUB
1. Write a program to create a sequential data file “salary.dat” to store programmer’s name, salary and post according to the need of the user.
OPEN "salary.dat" FOR OUTPUT AS #1
DO
INPUT "Enter name,salary and post ",name$,salary,post$
WRITE #1,name$,salary,post$
INPUT "More records(Y-Yes/N-No) ";ch$
loop while ucase$(ch$)="Y"
CLOSE #1
END
2. Write a program to create a sequential data file named "employ.dat" to store Name, Post, Address and Salary for the number of employees. The program should terminate on user's choice.
OPEN "employ.dat" FOR OUTPUT AS #1
DO
INPUT "Enter name ,post , address and salary ";name$,post$,address$,salary
WRITE #1,name$,salary,post$
INPUT "more records (Y-Yes/n-No) ";ch$
LOOP WHILE UCASE$(ch$)="Y"
CLOSE #1
END
3. A sequential data file called "Record.txt" has stored data under the field heading Roll No, Name, Gender, English, Nepali, Maths and Computer. Write a program in QBASIC to display all the information of those students whose gender are “F” and obtained marks in computer is more than 90.
OPEN "RECORD.DAT" FOR INPUT AS #1
WHILE NOT EOF(1)
INPUT #1,ROLL,NAME$,GEN$,ENG,NEP,MATHS,COMPUTER
IF GEN$="F" AND COMPUTER>90 THEN
PRINT ROLL,NAME$,GEN$,ENG,NEP,MATHS,COMPUTER
END IF
WEND
CLOSE #1
END
4. A sequential data file called "Record.txt" has stored data under the field heading Roll No., Name, Gender, English, Nepali and Math’s and Computer. Write a program in QBASIC to display all the information of female students who pass in all subjects. [Note: Pass nark in all subjects is 40].
END
5. A sequential data file "emp.dat" contains employee's name, address, gender and salary. Write a program in QBASIC to display all the information of employees whose salary is more than Rs.20,000.
END
6. A sequential data file "class.dat" has several records with fields student's name, roll no, address and class. Write a program in QBASIC that reads all the records and displays only those records whose class is 10.
END
7. A sequential data file "abc.txt" has several records with fields student's name, roll no , address and class. Write a program in QBASIC that reads all the records and displays only those records whose address is "Pokhara".
END
8. A sequential data file "abc.txt" has several records with fields student's name, roll no , address, fee and class. Write a program in QBASIC that reads all the records and displays only those records whose fee is greater than 5000.
END
9. A sequential data file "student.txt" consists of Book's name, Author's name and Price of book. Write a program in QBASIC to count and display the total number of records present in the file.
END
10. A sequential data file called "record.txt" has stored data under the field heading Roll no, Name, Gender , English, Nepali, Maths and computer. Write a QBASIC program to display all the female student who passed in all subjects. [Note: Assume pass mark in each subject is 40.]
END