Difference between revisions of "CSC111 Homework 4 2015b"

From dftwiki3
Jump to: navigation, search
(Created page with "--~~~~ ---- <bluebox> Once again, you have to work in programming pair mode for this assignment. This assignment is due on Thursday 10/8/15, at 11:55 p.m. </bluebox> <br />...")
 
Line 120: Line 120:
 
<br />
 
<br />
  
=Problem #7=
+
=Problem #6=
 
<br />
 
<br />
 
Write a program that asks the user for several pieces of information about some famous person, and outputs the information in a nicely formatted box, where the length of the bar of '=' signs before and before the information is the same as the length of the ''accomplishment'' information.
 
Write a program that asks the user for several pieces of information about some famous person, and outputs the information in a nicely formatted box, where the length of the bar of '=' signs before and before the information is the same as the length of the ''accomplishment'' information.

Revision as of 19:48, 27 September 2015

--D. Thiebaut (talk) 20:48, 27 September 2015 (EDT)



Once again, you have to work in programming pair mode for this assignment. This assignment is due on Thursday 10/8/15, at 11:55 p.m.



Make sure you use a main() function in all your programs!


Problem #1


Write a program that prompts the user for her first and last name, and outputs a computer account made of the first initial of her first name, plus her last name, all in lowercase, plus a number equal to the number of characters in the string just created. Make sure there's a blank line before the output of the account name. This line will be used by the grading program to spot your output.

Example 1
    First name? Allie
    Last name? BABA

    Your computer account name is: ababa5 


Example 2
    First name? kathleen 
    Last name? MCCARTNEY

    Your computer account name is: kmccartney10 
  • Submit your program to HW 4 PB 1 on Moodle.


Problem #2


Write a program that prompts the user for her first and last name, and outputs a computer account made of the first initial of her first name, plus her last name, all in lowercase. But now we want the computer account to be exactly 8 characters long. If the user names are too short, your program will pad it with the character '#'.

Example
    First name? Allie 
    Last name? BABA
 
    Your computer account name is: ababa### 
    First name? Al 
    Last name? Gus 

    Your computer account name is:agus#### 
    First name? Alma 
    Last name? Verylongname 

    Your computer account name is: averylon 


  • Submit your program to HW 4 PB 2 on Moodle.


Problem #3


Write a program that prompts the user for her first and last name, and outputs a computer account made of the first initial of her first name, plus her last name, all in lowercase. We want the computer account to be exactly 8 characters long, but this time it is padded with the current year (2015 for us). We assume the user name will always have at least 3 characters.

Example
    First name? Allie 
    Last name? BABA 

    Your computer account name is: ababa201 
    First name? Al 
    Last name? Gus 

    Your computer account name is: agus2015 
    First name? Alma 
    Last name? Verylongname 

    Your computer account name is: averylon 


  • Submit your program to HW 4 PB 3 on Moodle.


Problem #4


Write a program that prompts the user for her first and last name, and outputs a triangle made with her name, padded with dots in front of it, as illustrated below. There is no limit on the length of the first and last names. Notice that there is a blank line between the input section and the output section.

Example
First name? Maria
Last name? LUCE
 
........M
.......Ma
......Mar
.....Mari
....Maria
...MariaL
..MariaLU
.MariaLUC
MariaLUCE


  • Submit your program to HW 4 PB 4 on Moodle.


Problem #5


Write a program that prompts the user to enter a date representing the beginning and end of a semester, in the form mmdd-mmddyyyy, and displays it back as dd month yyyy to dd month yyyy, where month is the first 3 letters of the name of the month, in English.


Example
Enter date of semester: 0129-05012015

29 Jan to 1 May 2015

Note that the day for May is 1, and not 01.

  • Submit your program to HW 4 PB 5 on Moodle.


Problem #6


Write a program that asks the user for several pieces of information about some famous person, and outputs the information in a nicely formatted box, where the length of the bar of '=' signs before and before the information is the same as the length of the accomplishment information.

Example
Please enter first name: Sophia
Please enter last name:  SMITH
Please enter date of birth (yyyymmdd): 17960827
Please enter date of death( yyyymmdd): 18700602
Please enter accomplishment: Funded Smith College, the largest member of the seven sisters.

Sophia Smith (August 27, 1796 -- June 2, 1870)
Funded smith college, the largest member of the seven sisters.


  • Note that the name is formatted correctly, even if the user enters all uppercase or lowercase letters for the name.
  • Submit your program to HW 4 PB 7 on Moodle.


<tanbox>

<showafterdate after="20150225 00:00">

Solution Programs


# hw4sol.py
# D. Thiebaut
# Solution program(s) for Homework 4, 2015
# The solution organizes the individual solutions
# into functions, but you didn't have to do that for
# solving the problems.
# Just comment out the appropriate line in the the main()
# function to energize the solution for a give problem..

# solution for Problem 1
def problem1():
    fName = input( "Your first name? " )
    lName = input( "Your last name? " )
    full  = fName[0] + lName
    full = full.lower()
    print( full)

# solution for Problem 2
def problem2():
    fName = input( "Your first name? " )
    lName = input( "Your last name? " )
    full  = fName[0] + lName + "zzzzzzzz"
    full = full[0:8].lower()
    print( full)

# solution for Problem 3
def problem3():
    fName = input( "Your first name? " )
    lName = input( "Your last name? " )
    full  = fName[0] + lName + "20152015"
    full = full[0:8].lower()
    print( full)

# solution for Problem 4
def problem4():
    fName = input( "Your first name? " )
    lName = input( "Your last name? " )
    name = fName + lName
    noChars = len( name )
    for i in range( 1, noChars+1 ):
        noSpaces = noChars - i
        spaces = '.' * noSpaces
        print( spaces + name[0:i] )

# solution for Problem 5
def problem5():
    # define the list of months as a list of strings
    monthNames = ["January", "February", "March", "April", 
                  "May", "June", "July", "August",
                  "September", "October", "November", "December"]
    
    # get the date from the user
    date = input( "Enter date: " )

    # extract the different variables from the date
    month = date[0:2]
    day   = date[2:4]
    year  = date[4: ]
    dayInt = int( day )
    monthIndex = int( month ) - 1
    monthStr   = monthNames[ monthIndex ][0:3]

    # display result
    print( dayInt, monthStr, year )


# solution for Problem 6
def problem6():
    # define the list of months as a string of 3-char names
    monthNames = "JanFebMarAprMayJunJulAugSepOctNovDec"

    # get the date from the user
    date = input( "Enter date: " )

    # extract the different variables from the date
    month = date[0:2]
    day   = date[2:4]
    year  = date[4: ]
    dayInt = int( day )
    monthIndex = int( month ) - 1
    monthStr   = monthNames[ monthIndex*3 : monthIndex*3+3]

    # display result
    print( dayInt, monthStr, year )


# solution for Problem 7
def problem7():

    # get the input from the user
    fName   = input( "Enter first name: " )
    lName   = input( "Enter last name:  " )
    dob     = input( "Date of birth (yyyymmdd)" )
    dod     = input( "Date of death (yyyymmdd)" )
    accomp  = input( "Enter accomplishment: " )


    # Figure out the length of the bar
    bar     = "=" * len( accomp )

    # reformat names 
    fName   = fName.capitalize()
    lName   = lName.capitalize()
    accomp  = accomp.capitalize()

    # use a list of strings for the month, to get
    # the correct month for a give number.
    months  = ["January", "February", "March", 
               "April", "May", "June", 
               "July",  "August", "September", 
               "October", "November", "December" ]

    # extract day, month and year from dates.
    dobDay  = int( dob[-2:] )
    dobYear = dob[0:4]
    dobMonth= int( dob[4:6] ) - 1
    dobMonth= months[ dobMonth ]

    dodDay  = int( dod[-2:] )
    dodYear = dod[0:4]
    dodMonth= int( dod[4:6] ) - 1
    dodMonth= months[ dodMonth ]

    # output the result, nicely formatted
    #print()
    print( bar )
    line1 = "{0:1} {1:1} ({2:1} {3:1}, {4:1} -- {5:1} {6:1}, {7:1})"
    print( line1.format( fName, lName, dobMonth, dobDay, dobYear,
                         dodMonth, dodDay, dodYear ) )
    print( accomp )
    print( bar + "\n" )


# main program.
# Calls all the functions that solve the different problems.
# Comment out the lines you want to actually activate the
# function you are interested in.

def main():
    #problem1()
    #problem2()
    #problem3()
    #problem4()
    #problem5()
    #problem6()
    problem7()

main()


</showafterdate>


...