python练习:做一个简易的课程设计。Student Information Management System

Student Information Management System

    犹记得,大一时候,用C语言做这个课程设计,我特么一口老血都要喷出来,现在用Python做,反而有一种亲切感。

    做一个menu菜单,在while循环里调用定义的insert(),delete(),modify(),sort(),display(),exit()等函数。

    

import pickle as p
import os
#Class Item
class Item:
    def __init__(self,name,age,gender,Chinese,Math,English):
        self.name = name
        self.age = age
        self.gender = gender
        self.Math = Math
        self.Chinese = Chinese
        self.English = English

#The main menu of Student Information Management System
def menu():
    print(‘********************‘)
    print(‘1.Insert an item‘)
    print(‘2.Delete an item‘)
    print(‘3.Modify an item‘)
    print(‘4.Display all items‘)
    print(‘5.Sort all items‘)
    print(‘6.Exit the program‘)
    print(‘********************‘)
    print(‘What do you waht to do?‘)

#Initialization of system,load the menber list
def begin():
    global itemlist
    #if os.path.exists(‘Information.txt‘) == True: #To judge whether the file exists
    listfile = open(‘Information.txt‘,‘rb‘)
    ‘‘‘
    if len(listfile.read())!= 0: # To judge whether the file is empty
        listfile.seek(0)
    itemlist = p.load(listfile)‘‘‘
    listfile.close()

#Exitance of system,store the member list
def end():
    global itemlist
    listfile = open(‘Information.txt‘,‘w+‘)
    p.dump(itemlist,listfile)
    listfile.close()

#Insert an item into the member list
def insert():
    name = input(‘Enter the name:‘)
    age = int(input(‘Enter the age:‘))
    gender = input(‘Enter the gender:‘)
    Chinese = float(input(‘Enter the Chinese score:‘))
    Math = float(input(‘Enter the Math score:‘))
    English = float(input(‘Enter the English score:‘))
    item = Item(name,age,gender,Chinese,Math,English)
    global itemlist
    itemlist.append(item)
    print(‘Insert done!‘)

#Print an item
def output(item):

    #itemlist = p.load(listfile)
    print(‘%-10s%-5d%-7s%-12f%-12f%-12f%f‘ % (item.name,item.age,item.gender,item.Chinese,item.Math,item.English,(item.Chinese+item.Math+item.English)/3.0))

#Print all items
def display():
    global itemlist
    l = len(itemlist)
    print(‘name    age    gender    Chinese    Math    English    AVG(Score)‘)
    for i in range(0,l):
          output(itemlist[i])
    print(‘‘)

#Delete an item by name from member list
def delete():
    name = input(‘Enter the name what you want to delete:‘)
    global itemlist
    l = len(itemlist)
    for i in range(0,l):
        if (itemlist[i].name == name):
            itemlist.pop(i)
            break
#Update an item
def update(item):
    item.name = input(‘Enter the name:‘)
    age = int(input(‘Enter the age:‘))
    gender = input(‘Enter the gender:‘)
    Chinese = float(input(‘Enter the Chinese score:‘))
    Math = float(input(‘Enter the Math score:‘))
    English = float(input(‘Enter the English score:‘))

#Update an item‘s information ny name
def modify():
    name = input(‘Enter the name what you want to modify:‘)
    global itemlist
    l = len(itemlist)
    for i in range(0,l):
        if (itemlist[i].name == name):
            update(itemlist[i])
    print(‘Update done!‘)

#Sort all items by age
def sort():
    global itemlist
    itemlist.sort(key = lambda item:item.age)
    display()
    print(‘Sort done‘)

#Here are the Scripts
itemlist = [] #!!!!
begin()
while True:
    menu()
    choice = int (input())
    if choice == 1:
        insert()
    elif choice == 2:
        delete()
    elif choice == 3:
        modify()
    elif choice == 4:
        display()
    elif choice == 5:
        sort()
    elif choice == 6:
        exit()
    else:
        print(‘Your input is incorrect , system will exit.‘)
        break
end()
print(‘Good Bye!‘)

      代码可以直接运行。

不吹不黑的说,Python做这个更简单。代码清晰,冗赘量小。

 

时间: 2024-10-14 12:24:42

python练习:做一个简易的课程设计。Student Information Management System的相关文章

python之路-利用索引切片功能做一个简易的两个未知数的加法计算器,代码如下:

python之路-利用索引切片功能做一个简易的两个未知数的加法计算器,代码如下: #content = input('请输入内容:'),如用户输入:5 +9或 5 + 9 等,然后进行分割再进行计算. content = input('>>>').strip() #content 等于所输入的内容,strip:删除字符串左右两边的空格. index = content.find('+') ''' content内容中的两边的空格都删除了,但中间还有,现在我们只需要定位已知内容是加法,两边

【Python】 做一个简单的 http 服务器

# coding=utf-8 ''' Created on 2014年6月15日 @author: Yang ''' import socket import datetime # 初始化socket s = socket.socket() # 获取主机名, 也可以使用localhost # host = socket.gethostname() host = "localhost" # 默认的http协议端口号 port = 80 # 绑定服务器socket的ip和端口号 s.bin

帮初中同学做的简单的课程设计

因为同学没学链表,结构体,只能简单并且麻烦的做了一个课程设计.内容为存储学生信息和考试成绩,对成绩单进行编辑,排序,删除,显示等功能. 代码如下: 1 #include <stdio.h> 2 #include <conio.h> 3 #include <string.h> 4 #define NUMSTU 5000 /*最大学生人数*/ 5 #define NUMSCORE 4 /*成绩个数*/ 6 #define NAMELEN 100 /*姓名的最大长度<1

利用map的特性做一个简易的投票程序

pair 1. 概念:pair是 一种模版类型,每个pair 可以存储两个值,这两种值的类型无限制.也可以将自己写的struct类型的的对象放进去. 2. 用法: pair<int ,int >p (1,2); pair<int ,int > p1= make_pair(1,2); 3. 编写程序读入一系列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vector容器并显示 #include<iostream> #includ

利用python+tkinter做一个简单的智能电视遥控器

要通过python实现遥控器功能分两步: 第一步:开发图形化界面 第二步:使PC端给电视发送相应指令 现在就开始第一步操作实现遥控器功能,python2输入以下代码 注意:python3需要将代码中的from Tkinter import * 替换为from tkinter import * 将from SimpleDialog import * 替换为import tkinter.simpledialog #coding=utf-8from Tkinter import * from Simp

python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询.cmd版的实时翻译.快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给大家分享一个二维码生成器的爬虫版本实现! 爬虫思路 网上有很多的二维码自动生成的网页,它可以将文本.名片.wifi分享等等都以二维码的形式生成,只需要用带有识别二维码的app就可以识别,比如手机浏览器一般就自带app哦! PS:这里,普及一个很重要点,不要用带有支付功能的app随便扫码(支付宝.微信等等)!!!

星期四、星期五、星期一—用GUI做一个简易的交易系统

1.登录界面 package org.eclipse.wb.swing; //登录界面 import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.GroupLayout;import javax.swing.GroupLayou

51单片机编程:做一个简易的流水灯

#include <reg52.h> #define uchar unsigned char #define uint unsigned int uint table[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f}; void delay(void) { uint a = 50000; while(a--); } void main() { int i = 0; while(1) { for(i = 0; i < 8; i++)

如何做一个简易的新闻客户端

1,下载一个服务端 tomcat 下载后开始运行,将需要浏览的东西,放在webapps-root文件下 这里假设有一个xml小文件,接下来就开始上代码了, 在同一个包下给mainactivity创造两个class文件,一个用来解析xml文件(解析方式多种,有兴趣可以上网查阅资料),一个用于存放数据 1,存放数据: package com.example.xinwen; public class News { private String city; private String temp; pr