Advertisement
nadiachoudhry123

maincode

Aug 29th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.98 KB | None | 0 0
  1. # Main file of the Python program.
  2. import csv
  3. def menu():
  4.     #this prints the menu
  5.     print()
  6.     print('STUDENT INFORMATION SYSTEM')
  7.     print('1 - load student data')
  8.     print('2 - create student report')
  9.     print('3 - enter new student details')
  10.     print('4 - exit')
  11.     print()
  12.     choice = int(input('enter the menu number: '))
  13.  
  14.     #returns the choice to the main program
  15.     return choice
  16.  
  17. def reportMenu():
  18.     #this prints the report menu
  19.     print()
  20.     print('STUDENT INFORMATION SYSTEM - report generator')
  21.     print('1 - contact details')
  22.     print('2 - personal details')
  23.     print('3 - full report')
  24.     print('4 - back')
  25.     print()
  26.     choice = int(input('enter the menu number: '))
  27.  
  28.     #returns the choice to the main program
  29.     return choice
  30.  
  31. class student:
  32.         #common class for students
  33.         loaded = 0
  34.  
  35.         #defines the parameters of the class
  36.         def __init__(self, number, sname, fname, dob, addr, phone, gend, tutor, email):
  37.                 self.number = number
  38.                 self.sname = sname
  39.                 self.fname = fname
  40.                 self.dob = dob
  41.                 self.addr = addr
  42.                 self.phone = phone
  43.                 self.gend = gend
  44.                 self.tutor = tutor
  45.                 self.email = email
  46.  
  47.         #produces the contact details in a file
  48.         def contactDetails(self):
  49.                 print()
  50.                 reportName = self.number + '_' + self.sname + '_cont'
  51.                 reportFile = open(reportName + '.txt', 'w')
  52.                 print('The contact details for student ' + self.number + ' are: ')
  53.                 reportFile.write('The contact details for student ' + self.number + ' are: ' + '\n')
  54.                 print('      Address: ' + self.addr)
  55.                 reportFile.write('      Address: ' + self.addr + '\n')
  56.                 print(' Phone number: ' + self.phone)
  57.                 reportFile.write(' Phone number: ' + self.phone + '\n')
  58.                 print('Email Address: ' + self.email)
  59.                 reportFile.write('Email Address: ' + self.email + '\n')
  60.                 reportFile.close()
  61.                 print('these details have been written to ' + reportName + '.txt')
  62.                 input()
  63.  
  64.         def personalDetails(self):
  65.                 print()
  66.                 reportName = self.number + '_' + self.sname + '_pers'
  67.                 reportFile = open(reportName + '.txt', 'w')
  68.                 print('The personal details for student ' + self.number + ' are: ')
  69.                 reportFile.write('The personal details for student ' + self.number + ' are: ' + '\n')
  70.                 print('         Name: ' + self.fname + ' ' + self.sname)
  71.                 reportFile.write('         Name: ' + self.fname + ' ' + self.sname + '\n')
  72.                 print('Date of birth: ' + self.dob)
  73.                 reportFile.write('Date of birth: ' + self.dob + '\n')
  74.                 print('       Gender: ' + self.gend)
  75.                 reportFile.write('       Gender: ' + self.gend + '\n')
  76.                 reportFile.close()
  77.                 print('these details have been written to ' + reportName + '.txt')
  78.                 input()
  79.  
  80.         def fullReport(self):
  81.                 print()
  82.                 reportName = self.number + '_' + self.sname + '_full'
  83.                 reportFile = open(reportName + '.txt', 'w')
  84.                 print('The full details for student ' + self.number + ' are: ')
  85.                 reportFile.write('The full details for student ' + self.number + ' are: ' + '\n')
  86.                 print('       Number: ' + self.number)
  87.                 reportFile.write('       Number: ' + self.number + '\n')
  88.                 print('         Name: ' + self.fname + ' ' + self.sname)
  89.                 reportFile.write('         Name: ' + self.fname + ' ' + self.sname + '\n')
  90.                 print('Date of birth: ' + self.dob)
  91.                 reportFile.write('Date of birth: ' + self.dob + '\n')
  92.                 print('      Address: ' + self.addr)
  93.                 reportFile.write('      Address: ' + self.addr + '\n')
  94.                 print(' Phone number: ' + self.phone)
  95.                 reportFile.write(' Phone number: ' + self.phone + '\n')
  96.                 print('       Gender: ' + self.gend)
  97.                 reportFile.write('       Gender: ' + self.gend + '\n')
  98.                 print('  Tutor group: ' + self.tutor)
  99.                 reportFile.write('  Tutor group: ' + self.tutor + '\n')
  100.                 print('Email Address: ' + self.email)
  101.                 reportFile.write('Email Address: ' + self.email + '\n')
  102.                 reportFile.close()
  103.                 print('these details have been written to ' + reportName + '.txt')
  104.                 input()
  105.                
  106.  
  107. def extractData(studentNumber):
  108.         file = open('students.csv')
  109.         reader = csv.reader(file)
  110.         data = list(reader)
  111.         index = 0
  112.         row = 0
  113.         while studentNumber != index:
  114.                 index = data[row][0]
  115.                 # variable = array[row number][column number]
  116.                 # row and column numbers are 0 indexed, so they start at 0
  117.                
  118.                 if studentNumber != index:
  119.                         row = row + 1
  120.         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])
  121.         student.loaded = 1
  122.         print('The details of student number ' + studentNumber + ' have been loaded.')
  123.         file.close
  124.         return chosen
  125.  
  126.         example = int(input('input an example number '))
  127.         loaddata(example)
  128.  
  129. def writeDataToFile():
  130.         file = open('students.csv')
  131.         reader = csv.reader(file)
  132.         lastrow = sum(1 for row in reader)
  133.        
  134.         file = open('students.csv')
  135.         reader = csv.reader(file)
  136.         data = list(reader)
  137.         studentNumber = int(data[lastrow - 1][0]) + 1
  138.         print('The new student will be saved as student number ' + str(studentNumber))
  139.  
  140.         sname = input('enter student surname: ')
  141.         fname = input('enter student forename: ')
  142.         dob = input('enter student birthdate: ')
  143.         addr = input('enter student address: ')
  144.         phone = input('enter student phone number: ')
  145.         gend = input('enter student gender: ')
  146.         tutor = input('enter student tutor group: ')
  147.         email = str(studentNumber) + '@treeroad.sch.uk'
  148.         print('the email address will be ' + email)
  149.         news = student(studentNumber, sname, fname, dob, addr, phone, gend, tutor, email)
  150.  
  151.         file = open('students.csv', 'a', newline = '')
  152.         writer = csv.writer(file, delimiter = ',')
  153.         writer.writerow([news.number, news.sname, news.fname, news.dob, news.addr, news.phone, news.gend, news.tutor, news.email])
  154.         print()
  155.        
  156. print('Welcome to the Student Information System')
  157. usern = input("Enter username: ")
  158. print('Welcome ' + usern)
  159. passw = input('Enter password: ')
  160. print('Logged in to system as ' + usern)
  161.  
  162. state = 0
  163. student.loaded == 0
  164.  
  165. while (state != 4):
  166.         if state == 0:
  167.                 state = menu()
  168.         elif state == 1:
  169.                 studentNumber = input('input student number: ')
  170.                 chosen = extractData(studentNumber)
  171.                 state = 0
  172.         elif state == 2:
  173.                 if student.loaded == 1:
  174.                         report = reportMenu()
  175.                         if report == 1:
  176.                                 chosen.contactDetails()
  177.                         elif report == 2:
  178.                                 chosen.personalDetails()
  179.                         elif report == 3:
  180.                                 chosen.fullReport()
  181.                         else:
  182.                                 state = 0
  183.                         state = 0
  184.                 else:
  185.                         print('no student data has been loaded')
  186.                         state = 0
  187.         elif state == 3:
  188.                 chosen = writeDataToFile()
  189.                 state = 0
  190.         else:
  191.                 state = 0
  192.                
  193.  
  194. print('Thanks for using the system.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement