Advertisement
nadiachoudhry123

withfunctions

Aug 29th, 2016
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.19 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. def datasave(save_number, save_sname, save_fname, save_dob, save_addr, save_phone, save_gend, save_tutor, save_email):
  32.         student = [0 for i in range(10)] # initialise an array. the stuff in the brackets basically creates an array with 10 cells
  33.  
  34.         # save all the data to the cells of the array. Arrays are 0 indexed - the first cell is cell 0
  35.         student[0] = save_number
  36.         student[1] = save_sname
  37.         student[2] = save_fname
  38.         student[3] = save_dob
  39.         student[4] = save_addr
  40.         student[5] = save_phone
  41.         student[6] = save_gend
  42.         student[7] = save_tutor
  43.         student[8] = save_email
  44.        
  45.         student[9] = 1 # check digit
  46.        
  47.         return student # returns the array of student details
  48.  
  49. def extractData(studentNumber):
  50.         # open the file
  51.         file = open('students.csv')
  52.         reader = csv.reader(file)
  53.         data = list(reader)
  54.        
  55.         index = 0
  56.         row = 0
  57.         while studentNumber != index:
  58.                 index = data[row][0]
  59.                 # variable = array[row number][column number]
  60.                 # row and column numbers are 0 indexed, so they start at 0
  61.                
  62.                 if studentNumber != index:
  63.                         row = row + 1
  64.         student = datasave(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])
  65.         print(student[1])
  66.         print('The details of student number ' + studentNumber + ' have been loaded.')
  67.         file.close
  68.  
  69.         return student
  70.  
  71. # the following 3 functions create reports and save to a file
  72.  
  73. def contactDetails(student):
  74.         print()
  75.         reportName = student[0] + '_' + student[1] + '_cont'
  76.         reportFile = open(reportName + '.txt', 'w')
  77.        
  78.         print('The contact details for student ' + student[0] + ' are: ')
  79.         reportFile.write('The contact details for student ' + student[0] + ' are: ' + '\n')
  80.        
  81.         print('      Address: ' + student[4])
  82.         reportFile.write('      Address: ' + student[4] + '\n')
  83.        
  84.         print(' Phone number: ' + student[5])
  85.         reportFile.write(' Phone number: ' + student[5] + '\n')
  86.        
  87.         print('Email Address: ' + student[8])
  88.         reportFile.write('Email Address: ' + student[8] + '\n')
  89.        
  90.         reportFile.close()
  91.         print('these details have been written to ' + reportName + '.txt')
  92.         input()
  93.  
  94. def personalDetails(student):
  95.         print()
  96.         reportName = student[0] + '_' + student[1] + '_pers'
  97.         reportFile = open(reportName + '.txt', 'w')
  98.        
  99.         print('The personal details for student ' + student[0] + ' are: ')
  100.         reportFile.write('The personal details for student ' + student[0] + ' are: ' + '\n')
  101.        
  102.         print('         Name: ' + student[2] + ' ' + student[1])
  103.         reportFile.write('         Name: ' + student[2] + ' ' + student[1] + '\n')
  104.        
  105.         print('Date of birth: ' + student[3])
  106.         reportFile.write('Date of birth: ' + student[3] + '\n')
  107.        
  108.         print('       Gender: ' + student[6])
  109.         reportFile.write('       Gender: ' + student[6] + '\n')
  110.        
  111.         reportFile.close()
  112.         print('these details have been written to ' + reportName + '.txt')
  113.         input()
  114.  
  115. def fullReport(student):
  116.         print()
  117.         reportName = student[0] + '_' + student[1] + '_full'
  118.         reportFile = open(reportName + '.txt', 'w')
  119.         print('The full details for student ' + student[0] + ' are: ')
  120.         reportFile.write('The full details for student ' + student[0] + ' are: ' + '\n')
  121.         print('       Number: ' + student[0])
  122.         reportFile.write('       Number: ' + student[0] + '\n')
  123.         print('         Name: ' + student[2] + ' ' + student[1])
  124.         reportFile.write('         Name: ' + student[2] + ' ' + student[1] + '\n')
  125.         print('Date of birth: ' + student[3])
  126.         reportFile.write('Date of birth: ' + student[3] + '\n')
  127.         print('      Address: ' + student[4])
  128.         reportFile.write('      Address: ' + student[4] + '\n')
  129.         print(' Phone number: ' + student[5])
  130.         reportFile.write(' Phone number: ' + student[5] + '\n')
  131.         print('       Gender: ' + student[6])
  132.         reportFile.write('       Gender: ' + student[6] + '\n')
  133.         print('  Tutor group: ' + student[7])
  134.         reportFile.write('  Tutor group: ' + student[7] + '\n')
  135.         print('Email Address: ' + student[8])
  136.         reportFile.write('Email Address: ' + student[8] + '\n')
  137.         reportFile.close()
  138.         print('these details have been written to ' + reportName + '.txt')
  139.         input()
  140.  
  141. # this functions write the details of a new student
  142. def writeDataToFile():
  143.         file = open('students.csv')
  144.         reader = csv.reader(file)
  145.         lastrow = sum(1 for row in reader)
  146.         #the file needs to be opened twice for this part, I think it's just a quirk of python
  147.         file = open('students.csv')
  148.         reader = csv.reader(file)
  149.         data = list(reader)
  150.         studentNumber = int(data[lastrow - 1][0]) + 1
  151.         print('The new student will be saved as student number ' + str(studentNumber))
  152.  
  153.         sname = input('enter student surname: ')
  154.         fname = input('enter student forename: ')
  155.         dob = input('enter student birthdate: ')
  156.         addr = input('enter student address: ')
  157.         phone = input('enter student phone number: ') # add error handling here so a user can only input a number
  158.         gend = input('enter student gender (M/F): ') # add error handling here so a user can only enter 'M' or 'F', or a single character
  159.         tutor = input('enter student tutor group: ')
  160.         email = str(studentNumber) + '@treeroad.sch.uk'
  161.         print('the email address will be ' + email)
  162.         student = datasave(studentNumber, sname, fname, dob, addr, phone, gend, tutor, email)
  163.  
  164.         file = open('students.csv', 'a', newline = '')
  165.         writer = csv.writer(file, delimiter = ',')
  166.         writer.writerow([student[0], student[1], student[2], student[3], student[4], student[5], student[6], student[7], student[8]])
  167.         print()
  168.        
  169. print('Welcome to the Student Information System')
  170. usern = input("Enter username: ")
  171. print('Welcome ' + usern)
  172. passw = input('Enter password: ')
  173. print('Logged in to system as ' + usern)
  174.  
  175. state = 0
  176. student_loaded = 0
  177.  
  178. while (state != 4):
  179.         if state == 0:
  180.                 state = menu()
  181.         elif state == 1:
  182.                 studentNumber = input('input student number: ')
  183.                 chosen = extractData(studentNumber)
  184.                 student_loaded = chosen[9]
  185.                 state = 0
  186.         elif state == 2:
  187.                 if student_loaded == 1:
  188.                         report = reportMenu()
  189.                         if report == 1:
  190.                                 contactDetails(chosen)
  191.                         elif report == 2:
  192.                                 personalDetails(chosen)
  193.                         elif report == 3:
  194.                                 fullReport(chosen)
  195.                         else:
  196.                                 state = 0
  197.                         state = 0
  198.                 else:
  199.                         print('no student data has been loaded')
  200.                         state = 0
  201.         elif state == 3:
  202.                 chosen = writeDataToFile()
  203.                 state = 0
  204.         else:
  205.                 state = 0
  206.                
  207.  
  208. print('Thanks for using the system.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement