Python - 211

    h=input()*2
    d=h/4
    q='|'
    e=' '
    w=e*d
    u='\n'
    s='+'+'-'*h+'+'
    y=e+w+s+u
    i=''
    v=q+e*h+q
    for l in range(0,d):y+=e*(d-l)+'/'+e*h+'/'+e*l+q+u;i+=v+e*(d-l-1)+'/'+u
    print y+s+w+q+u+''.join([v+w+q+u]*(d-1))+v+w+'+'+u+i+s

I'd like to note that I took some ideas from JPvdMerwe (Using a string to print once, and the one-liner for that I didn't know was correct syntax in Python)


----------


First version - Python - 256

    n = int(raw_input())
    d=n/2
    h=n*2
    q='|'
    e=' '
    w=e*d
    s='+'+'-'*h+'+'
    r=range
    print e+w+s
    for l in r(d,0,-1):
     print e*l+'/'+e*h+'/'+e*(d-l)+q
    print s+w+q
    v=q+e*h+q
    for l in r(d+1,n):
     print v+w+q
    print v+w+'+'
    for l in r(0,d):
     print v+e*(d-l-1)+'/'
    print s

I'm sure there's a couple of stuff that can be done better, I'm gonna be trying to improve it later on today.