python学生成绩管理系统实验报告心得_Python学习笔记:从入门到放弃(10)学生成绩管理系统(完结?)...

本文展示了作者使用Python实现的一个学生管理系统,包括显示所有学生成绩、查看特定学生成绩、添加新学生及成绩、处理负数成绩等功能。通过这个项目,作者提升了Python编程技能,并表达了对Python易读性和面向对象特性的赞赏。此外,作者还提到Python在嵌入式编程中的应用前景,以及未来可能学习的动态网页和爬虫技术。
摘要由CSDN通过智能技术生成

02db465212d3c374a43c60fa2625cc1caeaab796.png

通过本系统可以完成如下操作:

1.显示所有人的成绩d43075d6192e7e5a9986a68459fb825df2df2a78.png显示所有人的成绩

2.显示某个人的成绩

bfe96ce561537841a23cfc7158c766e49f8e0917.png正确输入

a81d8d2954b73e01a8df35da73b3a39a3a66e334.png人名输入错误时

3.添加新同学f3256532857ebaa3fac602afbb6e7f4967c0b1ef.png添加新同学

4.给同学录入成绩55abe7f8ec88fbc2e731b24d5225898b5b4b3699.png成功输入

f774d7e0dcb2f82d2c9a005d8557fa3ff63c8806.png输入的成绩如果不是数字

9f1942c0857e99e72001a1b5e0f86d07cae2fd84.png没有找到需要添加成绩的同学

5.退出c1edb753f36bfc3043750e9a0c3979111d322f13.png

6.主界面输入字符错误时c1bbd25eaf4fc55c43bcdeb5816fb27a595b4103.png

7.其他

当录入的成绩为负数,显示的会为Fail4adb9255ada5b97061e610b682b8636764fe50ed.png

程序

students = [["Ben", {"Maths": 67, "English": 78, "Science": 72}],

["Mark", {"Maths": 56, "Art": 64, "History": 39, "Geography": 55}],

["Paul", {"English": 66, "History": 88}]]

# 制作分数段

# 0~50不及格,50~60D,60~70C,70~80B,80~100A,101~作弊

grades = ((0, "FAIL"), (50, "D"), (60, "C"), (70, "B"), (80, "A"), (101, "CHEAT!"))

# 显示全部学生的姓名和成绩

def print_report_card(report_student=None):

for student in students:  # 从数组中依次读取每个学生的词条

if (student[0] == report_student) or (report_student is None):  # 确定读取到了数据

print("Report card for student ", student[0])

for subject, mark in student[1].items():  # 在字典中依次读取该名同学的学科和对应的程序

for grade in grades:  # 读取分数段

if mark < 0:  # 如果出现了负数则判断为0

mark = 0

if mark - 10 < grade[0]:  # 把成绩转换为等第

print(subject, " : ", grade[1])

break

# 显示一位学生的姓名和成绩

def print_one_report_card():

report_student = input("Please input the student's name")  # 得到学生姓名

i = 0

for student in students:  # 从数组中依次读取每个学生的词条

if student[0] == report_student:

i = 1

print("Report card for student ", student[0])

for subject, mark in student[1].items():  # 在字典中依次读取该名同学的学科和对应的程序

for grade in grades:  # 读取分数段

if mark < 0:  # 如果出现了负数则判断为0

mark = 0

if mark - 10 < grade[0]:  # 把成绩转换为等第

print(subject, " : ", grade[1])

break

if i == 0:  # 如果查不到输入的学生姓名

print("We cannot find this student in the database.")

# 添加一位学生的姓名

def add_one_report_name():

report_student = input("Please input the student's name")  # 得到学生姓名

i = 0

for student in students:  # 从数组中依次读取每个学生的词条

if student[0] == report_student:  # 如果在数组中找到了学生姓名则进行提示并退出添加

print("This student", student[0], "already exists in the database ")

i = 1

break

if i != 1:  # 添加学生词条

students.append([report_student, {}])

# 添加一位学生的成绩

def add_one_report_card():

report_student = input("Please input the student's name")  # 得到学生姓名

d = 0

c = None

for student in students:  # 得到该学生在数组中所处的位置

if student[0] == report_student:

c = 0

continue

d = d + 1

if c is None:  # 如果找不到该学生则提示添加

print("We cannot find this student in the database.If it is necessary, enter 3 to create")

while c == 0:

a = input("Please input the lesson")

b = input("Please input the score")

if b.isdigit() is False:  # 判断输入的成绩是否为数字

print("The score must be a number")

break

else:

b = int(b)

students[d][1][a] = b  # 添加课程a成绩为b

print("Enter 0 keep typing")

print("Enter other number return")

c = input()

if c.isdigit() is False:  # 如果输入为0就跳出循环,输入其他字符则可以继续输入下一门课程的成绩

c = 1

else:

c = int(c)

# 主程序

# 主循环

while True:

print("Welcome to the student database")

print("What can I help you with?")

print("Enter 1 to view all report cards")

print("Enter 2 to view the report card for a student")

print("Enter 3 to add a student")

print("Enter 4 to add a mark to a student")

print("Enter 5 to exit")

#     判断输入的是否是数字

#     是:转换为int类型

#     否:提示"Please input the legal number in 1-5"

user_choice = input("Choice: ")

if user_choice.isdigit() is False:

user_choice = 0

else:

user_choice = int(user_choice)

#     判断输入的是否是数字1-5

#     是1:显示全部学生的姓名和成绩

#     是2:显示一位学生的姓名和成绩

#     是3:给一位学生添加姓名

#     是4:给一位学生添加成绩

#     是5:跳出循环

#     否:提示"Please input the legal number in 1-5"

if user_choice == 1:

print_report_card()

elif user_choice == 2:

print_one_report_card()

elif user_choice == 3:

add_one_report_name()

elif user_choice == 4:

add_one_report_card()

elif user_choice == 5:

break

else:

print("Please input the legal number in 1-5")

print("Goodbye and thank you for using the Student database")

02db465212d3c374a43c60fa2625cc1caeaab796.png

我学习Python到此为止可以算做告一段落,学到这里就可以基本阅读和更改他人的代码并具备一定的编写能力。我在2018年8月正式接触Python,它是我在C语言之后接触的第二门编程语言也是我自学的第一门语言,和C相比它的语法格式更加简单(最主要的是没有指针)并且它是一门面向对象编程的语言,还有很多大佬上传了很多的模块以供使用。随着电子信息的发展,嵌入式编程的语言也开始从最早的汇编,到现在的C,以至未来的Python(就现在而言在单片机跑Linux用Python上还是太奢侈了)。这次学校课程里添加Python的学习也算的上是一次复习,课程主旨还是在嵌入式编程,所以到这里就完结了,当然之后我可能还会研究用python来制作动态网页和爬虫。这不是结束,只是一个新的开始。撒花~~~

人生苦短,我学Python

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值