python简单实现学生管理系统

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author:Du Fei
import os

#学号,姓名,年龄,性别,身高
allStudentsList=[]
#从文件中读取数据
def readFromFile(fileName):
    if not os.path.exists(fileName):# 如果文件不存在,则新增一个空文件
        f = open(fileName,"w")
        f.close()
    with open(fileName,"r",encoding="utf-8") as f:
        for onStr in f:
            oneList=onStr.strip("\n").split(",")
            oneList[0]=int(oneList[0])#学号
            oneList[1]=oneList[1]#姓名
            oneList[2]=int(oneList[2])#年龄
            oneList[3]=oneList[3]#性别
            oneList[4]=float(oneList[4])#身高
            allStudentsList.append(oneList)

#将数据写入文件
def writeToFile(fileName):
    f =open(fileName,"w")
    f.close()

    with open(fileName,"a",encoding="utf-8") as f:
        for oneList in allStudentsList:
            oneStr=str(str(oneList[0])+","+oneList[1]+","+str(oneList[2])+","+oneList[3]+","+str(oneList[4])+"\n")
            f.write(oneStr)

#显示所有学生信息
def allStudentsShow():
    for one in allStudentsList:
        print("学号:%d,姓名:%s,年龄:%d,性别:%s,身高:%f" % (one[0], one[1], one[2], one[3],one[4]))

#新增学生
def addNewStudent(newStuList):
    #check学号是否重复复
    for one in allStudentsList:
        if one[0] == newStuList[0]:
            return -1 #学号重复
        allStudentsList.append(newStuList)
        writeToFile("student.txt")
        return 1

#修改学生年龄
def updateStudentsAge(id,newAge):
    for one in allStudentsList:
        if one[0]==id:
            one[2]=newAge
            break
    else:
        return -1#找不到此学号
    writeToFile("student.txt")
    return 1

#删除学生
def deleteStudent(id):
    index =0
    for one in allStudentsList:
        if one[0] ==id:
            del allStudentsList[index]
            break
        index +=1
    else:
        return -1#找不到要删除的学号
    writeToFile("student.txt")
    return 1

#按照姓名查找
def searchStudents(name):
    flag =0
    for one in allStudentsList:
        if one[1]==name:
            print("学号:%d,姓名:%s,年龄:%d,性别:%s,身高:%f" % (one[0], one[1], one[2], one[3], one[4]))
            flag=1
    if flag==0:
        return -1#查无此人
    return 1

def sortMe(oneList):
    return oneList[0]

#按序号排序
def orderById(flag):#flag:1升序,2降序
    if flag==1:#升序
        allStudentsList.sort(reverse=False,key=lambda oneList:oneList[0])
    else:
        allStudentsList.sort(reverse=True,key=sortMe)

#功能菜单
def menuShow():
    print("**********************************")
    print("*1.查看所有学生信息****************")
    print("*2.新增学生************************")
    print("*3.修改学生************************")
    print("*4.删除学生************************")
    print("*5.按姓名查找**********************")
    print("*6.按学号排序**********************")
    print("*7.保存***************************")
    print("*8.退出***************************")
    print("**********************************")

if __name__ == "__main__":
    #从文件中读取数据
    readFromFile("student.txt")
    # print(allStudentsList)
    while True:
        # 显示主菜单
        menuShow()
        select =int(input("请选择功能选项:"))
        if select == 1:
            allStudentsShow()
        elif select == 2:
            while True:
                try:
                    id = int(input("请输入学号:"))
                    name = input("请输入姓名:")
                    age = int(input("请输入年龄:"))
                    sex = input("请输入性别:")
                    height = float(input("请输入身高:"))

                    newStuList=[id,name,age,sex,height]
                    if addNewStudent(newStuList) ==-1:
                        print("学号已存在,请重新输入")
                    else:
                        flag=input("新增用户成功,是否继续新增(y/n)?:")
                        if flag.lower() !="y":
                            break
                except:
                    print("输入有误请重新输入")

        elif select == 3:
            while True:
                id=int(input("请输入序号:"))
                newAge=int(input("请输入新的年龄:"))
                if updateStudentsAge(id,newAge) ==-1:
                    print("找不到此学号的学生,请重新输入")
                else:
                    flag = input("修改成功,是否继续修改(y/n)?:")
                    if flag.lower() != "y":
                        break

        elif select == 4:
            while True:
                id =int(input("请输入删除的学号:"))
                if deleteStudent(id) == -1:
                    print("找不到此学号的学生,请重新输入")
                else:
                    flag = input("删除成功,是否继续删除(y/n)?:")
                    if flag.lower() != "y":
                        break
        elif select == 5:
            while True:
                name=input("请输入查找的姓名:")
                if searchStudents(name) ==-1:
                    print("查无此人")

                flag = input("是否继续查找(y/n)?:")
                if flag.lower() != "y":
                    break

        elif select == 6:
            flag=int(input("请选择排序方式(1:升序,2:降序)"))
            orderById(flag)
            allStudentsShow()
        elif select == 7:
            writeToFile("student.txt")
        else:
            exit()

  

原文地址:https://www.cnblogs.com/coding2018/p/10072386.html

时间: 2024-07-29 16:37:56

python简单实现学生管理系统的相关文章

简单的学生管理系统

简单的学生管理系统 一,主要功能: 1,添加学生信息: 2,添加的学生信息显示在线型布局中: 3,把学生信息保存在xml文件中: 4,把保存在mxl中的学生信息取出来解析显示在界面: 二,主要知识点: 1,layout_weight的使用: 2,pull解析xml文件,xml序列化: 3,保存数据到sd卡: 4,动态添加控件刷新界面: 三,界面原型如下图: 四,代码展示: 1,界面xml文件,activity_main.xml <LinearLayout xmlns:android="ht

python开发的学生管理系统

python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管理系统 ") print(" 1.添加学生的信息") print(" 2.删除学生的信息") print(" 3.修改学生的信息") print(" 4.查询学生的信息") print(" 5.遍历所有学生的信

用python实现简易学生管理系统

以前用C++和Java写过学生管理系统,也想用Python试试,果然"人生苦短,我用Python".用Python写的更加简洁,实现雏形也就不到100行代码. 下面上代码 1 #!/usr/bin/python3 2 #coding=utf-8 3 #__author__='jeavenwong' 4 5 6 7 8 #实现switch-case语句用 9 class switch(object): 10 def __init__(self, value): 11 self.value

一个最简单的学生管理系统

package day15;import java.util.*;public class copystudent {    public static void main(String[] args) {        Scanner input=new Scanner(System.in);        String [][] stu=new String[100][8];        boolean flag=true;        int s=0;        while(fla

简单的学生管理系统,实现增删改查

#encoding=utf-8# 操作提醒def tip(): print("==="*10) print("学生管理系统V1.0") print("1.添加学生信息") print("2.删除学生信息") print("3.修改学生信息") print("4.查询学生信息") print("5.遍历学生信息") print("6.退出系统!")

js实现一个简单的学生管理系统

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

Android简单的学生管理系统

(1)管理系统实现的功能主要是:学生.教师的注册登录,和选课,以及修改学生的成绩等基本简单的功能,最主要的是实现一些Dialog的使用. 界面如下: (2)主要代码如下:(个人留作笔记,如需要完整代码,在最下边免费下载) 下边是一个适配器,适配器是为了一个listvie进行设置值,其中加载的是一个itemview,适配器中还是用了继承的方法,用于通知适配器进行更新. public class CourseAdapter extends BaseAdapter { private Context

Java——简单实现学生管理系统

import java.io.*;import java.util.ArrayList;import java.util.Scanner;class MyObjectOutputStream extends ObjectOutputStream{ public MyObjectOutputStream() throws IOException{  super(); } public MyObjectOutputStream(OutputStream out) throws IOException

java用数组实现简单的学生管理系统

用数组存放对象,然后遍历数组,加上一些数组的操作,很简单,纯属记录 import java.util.Scanner; public class StudentManagerTwice {    public static void main(String[] args) {        Student1 stu = new Student1("aaa",12,1201);        Student1 stu2 = new Student1("bbb",34,