Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Main file of the Python program.
- import csv
- def menu():
- #this prints the menu
- print()
- print('STUDENT INFORMATION SYSTEM')
- print('1 - load student data')
- print('2 - create student report')
- print('3 - enter new student details')
- print('4 - exit')
- print()
- choice = int(input('enter the menu number: '))
- #returns the choice to the main program
- return choice
- def reportMenu():
- #this prints the report menu
- print()
- print('STUDENT INFORMATION SYSTEM - report generator')
- print('1 - contact details')
- print('2 - personal details')
- print('3 - full report')
- print('4 - back')
- print()
- choice = int(input('enter the menu number: '))
- #returns the choice to the main program
- return choice
- class student:
- #common class for students
- loaded = 0
- #defines the parameters of the class
- def __init__(self, number, sname, fname, dob, addr, phone, gend, tutor, email):
- self.number = number
- self.sname = sname
- self.fname = fname
- self.dob = dob
- self.addr = addr
- self.phone = phone
- self.gend = gend
- self.tutor = tutor
- self.email = email
- #produces the contact details in a file
- def contactDetails(self):
- print()
- reportName = self.number + '_' + self.sname + '_cont'
- reportFile = open(reportName + '.txt', 'w')
- print('The contact details for student ' + self.number + ' are: ')
- reportFile.write('The contact details for student ' + self.number + ' are: ' + '\n')
- print(' Address: ' + self.addr)
- reportFile.write(' Address: ' + self.addr + '\n')
- print(' Phone number: ' + self.phone)
- reportFile.write(' Phone number: ' + self.phone + '\n')
- print('Email Address: ' + self.email)
- reportFile.write('Email Address: ' + self.email + '\n')
- reportFile.close()
- print('these details have been written to ' + reportName + '.txt')
- input()
- def personalDetails(self):
- print()
- reportName = self.number + '_' + self.sname + '_pers'
- reportFile = open(reportName + '.txt', 'w')
- print('The personal details for student ' + self.number + ' are: ')
- reportFile.write('The personal details for student ' + self.number + ' are: ' + '\n')
- print(' Name: ' + self.fname + ' ' + self.sname)
- reportFile.write(' Name: ' + self.fname + ' ' + self.sname + '\n')
- print('Date of birth: ' + self.dob)
- reportFile.write('Date of birth: ' + self.dob + '\n')
- print(' Gender: ' + self.gend)
- reportFile.write(' Gender: ' + self.gend + '\n')
- reportFile.close()
- print('these details have been written to ' + reportName + '.txt')
- input()
- def fullReport(self):
- print()
- reportName = self.number + '_' + self.sname + '_full'
- reportFile = open(reportName + '.txt', 'w')
- print('The full details for student ' + self.number + ' are: ')
- reportFile.write('The full details for student ' + self.number + ' are: ' + '\n')
- print(' Number: ' + self.number)
- reportFile.write(' Number: ' + self.number + '\n')
- print(' Name: ' + self.fname + ' ' + self.sname)
- reportFile.write(' Name: ' + self.fname + ' ' + self.sname + '\n')
- print('Date of birth: ' + self.dob)
- reportFile.write('Date of birth: ' + self.dob + '\n')
- print(' Address: ' + self.addr)
- reportFile.write(' Address: ' + self.addr + '\n')
- print(' Phone number: ' + self.phone)
- reportFile.write(' Phone number: ' + self.phone + '\n')
- print(' Gender: ' + self.gend)
- reportFile.write(' Gender: ' + self.gend + '\n')
- print(' Tutor group: ' + self.tutor)
- reportFile.write(' Tutor group: ' + self.tutor + '\n')
- print('Email Address: ' + self.email)
- reportFile.write('Email Address: ' + self.email + '\n')
- reportFile.close()
- print('these details have been written to ' + reportName + '.txt')
- input()
- def extractData(studentNumber):
- file = open('students.csv')
- reader = csv.reader(file)
- data = list(reader)
- index = 0
- row = 0
- while studentNumber != index:
- index = data[row][0]
- # variable = array[row number][column number]
- # row and column numbers are 0 indexed, so they start at 0
- if studentNumber != index:
- row = row + 1
- chosen = student(data[row][0], data[row][1], data[row][2], data[row][3], data[row][4], data[row][5], data[row][6], data[row][7], data[row][8])
- student.loaded = 1
- print('The details of student number ' + studentNumber + ' have been loaded.')
- file.close
- return chosen
- example = int(input('input an example number '))
- loaddata(example)
- def writeDataToFile():
- file = open('students.csv')
- reader = csv.reader(file)
- lastrow = sum(1 for row in reader)
- file = open('students.csv')
- reader = csv.reader(file)
- data = list(reader)
- studentNumber = int(data[lastrow - 1][0]) + 1
- print('The new student will be saved as student number ' + str(studentNumber))
- sname = input('enter student surname: ')
- fname = input('enter student forename: ')
- dob = input('enter student birthdate: ')
- addr = input('enter student address: ')
- phone = input('enter student phone number: ')
- gend = input('enter student gender: ')
- tutor = input('enter student tutor group: ')
- email = str(studentNumber) + '@treeroad.sch.uk'
- print('the email address will be ' + email)
- news = student(studentNumber, sname, fname, dob, addr, phone, gend, tutor, email)
- file = open('students.csv', 'a', newline = '')
- writer = csv.writer(file, delimiter = ',')
- writer.writerow([news.number, news.sname, news.fname, news.dob, news.addr, news.phone, news.gend, news.tutor, news.email])
- print()
- print('Welcome to the Student Information System')
- usern = input("Enter username: ")
- print('Welcome ' + usern)
- passw = input('Enter password: ')
- print('Logged in to system as ' + usern)
- state = 0
- student.loaded == 0
- while (state != 4):
- if state == 0:
- state = menu()
- elif state == 1:
- studentNumber = input('input student number: ')
- chosen = extractData(studentNumber)
- state = 0
- elif state == 2:
- if student.loaded == 1:
- report = reportMenu()
- if report == 1:
- chosen.contactDetails()
- elif report == 2:
- chosen.personalDetails()
- elif report == 3:
- chosen.fullReport()
- else:
- state = 0
- state = 0
- else:
- print('no student data has been loaded')
- state = 0
- elif state == 3:
- chosen = writeDataToFile()
- state = 0
- else:
- state = 0
- print('Thanks for using the system.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement