当前位置: 首页 > news >正文

北京管庄网站建设公司药品网络营销公司

北京管庄网站建设公司,药品网络营销公司,余姚做百度网站建设,自适应wordpress博客一、项目要求1、程序启动,显示名片管理系统欢迎界面,并显示功能菜单**************************************************** 欢迎使用【学生信息管理系统】V1.0 请选择你想要进行的操作 1. 新建学生信息 2. 显示全部信息 3. 查询学生信息 4. 删除学生信息…

一、项目要求

1、程序启动,显示名片管理系统欢迎界面,并显示功能菜单

****************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息0. 退出系统
**************************************************"""

2、用户用数字选择 不同的功能

3、根据功能选择,执行不同的功能

4、需要记录学生的 姓名、语文成绩、数学成绩、英语成绩 、总分

5、 如果查新到指定的学生信息,用户可以选择 修改 或者 删除 信息

 二、代码编写框架

1、系统目标和范围

  • 核心目标:实现学生成绩的增删改查与数据持久化

数据持久化:确保数据不会因为程序关闭而丢失。也就是说,是指将程序运行过程中产生的内存数据(临时数据)保存到 非易失性存储介质(如硬盘、数据库等)中,确保数据在程序关闭、电脑重启甚至断电后不会丢失的过程。

  •  功能边界:仅处理学生基本信息+三门学科成绩(数学/语文/英语)。就是为了明确系统能做什么、不能做什么,避免功能过于复杂。
  •  交互方式:命令行文本交互,通过菜单选择操作。也就是说,用户通过键盘输入数字(如 “1”),然后按回车,告诉程序自己想执行哪个操作。

交互方式指的是用户与程序(或系统)之间进行信息传递、操作沟通的具体形式,简单说就是 “用户怎么操作程序,程序怎么回应用户”。

2、程序结构规划

如图是整个系统的“骨架”设计。

3、代码具体模块划分

│ ├─ 1. 新增学生功能:让用户输入新学生的信息,验证有效性后,将其加入系统。

│ │ ├─ 提示用户输入姓名及三门成绩(利用input函数)

│ │ ├─ 验证输入合法性(成绩需为整数)

│ │ ├─ 自动计算总分

│ │ └─ 将新学生信息添加到列表

│ ├─ 2. 查看所有学生功能:将系统中所有学生的信息以清晰的格式展示给用户。

│ │ ├─ 检查列表是否为空(空则提示)

│ │ └─ 以表格形式展示所有学生信息(对齐排版)

│ ├─ 3. 查找学生功能(input("请输入要查询的学生姓名:"))

│ │ ├─ 获取用户输入的姓名

│ │ ├─ 遍历列表匹配姓名

│ │ ├─ 找到则展示该学生详情

│ │ └─ 未找到则提示"学生不存在" 

│ ├─ 4. 修改学生功能

│ │ ├─ 获取目标学生姓名并查找

│ │ ├─ 找到后提供单科成绩修改入口(支持空输入不修改)

│ │ ├─ 修改后重新计算总分

│ │ └─ 未找到则提示 

│ └─ 5. 删除学生功能

│ ├─ 获取目标学生姓名并查找

│ ├─ 找到后从列表中移除该学生信息

│ └─ 未找到则提示

       这 5 个功能模块覆盖了学生成绩管理的核心需求,每个模块的步骤设计都遵循 “用户输入→程序处理→反馈结果” 的逻辑,既保证了功能的完整性,又考虑了用户操作的合理性(如空输入不修改、输入验证等)。下面这张图是代码编写思路。

三、代码编写

info = """
**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息0. 退出系统
**************************************************"""# 初始化部分,导入json文件import json# 从JSON文件中读取学生数据
# 打开students.json文件,只读模式,编码为utf-8
with open('students.json', mode='r', encoding='utf-8') as f:text = f.read()
students = json.loads(text)
while True:print(info)action = input('请选择你需要的操作:')if action == '1':print('1. 新建学生信息')name = input('请输入学生的名字:')math = int(input('请输入学生的数学成绩:'))Chinese = int(input('请输入学生的语文成绩:'))English = int(input('请输入学生的英语成绩:'))total = math + Chinese + Englishstudents.append({'name': name,'math': math,'Chinese': Chinese,'English': English,'total': total})elif action == '2':print('姓名 \t\t 数学 \t\t 语文 \t\t 英语 \t\t 总分')for student in students:print('{}\t\t{}\t\t{}\t\t{}\t\t{}'.format(*student.values()))elif action == '3':name = input('请输入被查的学生名字:')for student in students:if student ['name'] == name:print('姓名 \t\t 数学 \t\t 语文 \t\t 英语 \t\t 总分')print('{}\t\t{}\t\t{}\t\t{}\t\t{}'.format(*student.values()))breakelse:print(f'{name}这个同学不存在')elif action == '4':name = input('请输入被删除的学生名字:')for student in students:if student ['name'] == name:del students [students.index(student)]breakelse:print(f'{name}这个同学不存在')elif action == '5':name = input('请输入被修改的学生名字:')for student in students:if student['name'] == name:math = input('请重新输入学生的数学成绩:')if math:   # 如果重新输入的数学成绩不为空math = int(math)student['math'] = mathChinese = input('请重新输入学生的数学成绩:')if Chinese:   # 如果重新输入的数学成绩不为空Chinese = int(Chinese)student['Chinese'] = ChineseEnglish = input('请重新输入学生的数学成绩:')if English:   # 如果重新输入的数学成绩不为空English = int(English)student['English'] = Englishstudent ['total'] = student ['math'] + student ['Chinese'] + student ['English']else:# 学员不存在只有一个print(f'{name} 这个学员不存在')elif action == '0':print('0. 退出系统')with open('students.json', mode='w', encoding='utf-8') as f:f.write(json.dumps(students, ensure_ascii=False))breakelse:print('你输入的选项错了,请重新在选择')

info :是一个字符串变量,它存储了学生信息管理系统的操作菜单文本

open函数

file_object = open(file_path, mode, encoding)# file_path:指定文件的路径; 
# mode:指定文件的打开模式;'r':只读模式,'w':写入模式,'a':追加模式
# encoding:可选参数,指定文件编码(如 'utf-8',常用于处理包含中文的文件)

with: 作用就是会自动调用文件对象的 close() 方法关闭文件,无需手动编写 f.close()

text = f.read()将文件对象 f 中的内容读取出来,并存储到变量 text
students = json.loads(text):是将JSON 格式的字符串转换为Python 数据结构的操作。json.loads():这是 Python 内置 json 模块中的一个函数,作用是解析 JSON 字符串(即符合 JSON 格式的文本),并将其转换为对应的 Python 数据类型。

       假设Json文件是'[{"name": "张三", "math": 65}, {"name": "李四", "math": 70}]'

那么执行 students = json.loads(text) 后,students 会变成一个 Python 列表:
[ {"name": "张三", "math": 65},

{"name": "李四", "math": 70} ]

format() 方法:通过在字符串中使用占位符{}来标记需要替换的位置,然后将需要插入的值作为参数传递给 format()

  1. student.values()
    假设 student 是一个字典(dictionary),values() 方法会返回字典中所有的值(value)组成的可迭代对象。
    例如,如果 student = {'name': 'Alice', 'age': 18, 'score': 90},则 student.values() 会返回 ['Alice', 18, 90](具体顺序取决于 Python 版本,3.7+ 为插入顺序)。

  2. *student.values()
    这里的 * 是解包操作符,会将可迭代对象中的元素逐个提取出来,作为单独的参数传递给 format() 方法。
    接上面的例子,*student.values() 相当于把 'Alice'1890 这三个值分别作为参数传入。

    elif action == '0':print('0. 退出系统')with open('students.json', mode='w', encoding='utf-8') as f:f.write(json.dumps(students, ensure_ascii=False))breakelse:print('你输入的选项错了,请重新在选择')

在这段代码中,

with open('students.json', mode='w', encoding='utf-8') as f:
  • with 语句用于文件操作,会自动处理文件的打开和关闭,避免资源泄露
  • open() 函数用于打开文件,参数说明:
    • 'students.json':要操作的文件名(JSON 格式文件)
    • mode='w':打开模式为 "写入"(如果文件不存在则创建,存在则覆盖原有内容)
    • encoding='utf-8':指定文件编码为 UTF-8,确保中文等字符能正确写入
  • as f:将打开的文件对象赋值给变量f,后续通过f操作文件
 f.write(json.dumps(students, ensure_ascii=False))
  • json.dumps():将 Python 数据结构(这里是students列表)转换为 JSON 格式的字符串(序列化过程)
  • students:要转换的 Python 列表(通常包含多个字典,每个字典代表一个学生的信息)
  • ensure_ascii=False:关闭 ASCII 编码模式,默认情况下 JSON 会将中文等非 ASCII 字符转义为\uXXXX格式,设置为False后会直接保存原始字符
  • f.write():将转换后的 JSON 字符串写入到文件中。

 

 

http://www.dtcms.com/a/421457.html

相关文章:

  • 招聘网站做一下要多少钱中国网站空间
  • 网站建设攸县MEZZANINE wordpress
  • 网站被百度惩罚网站建设覀金手指科杰
  • 电子商务他们的代表网站优购物网
  • 网站建设是什么职位wordpress 导出excel
  • 做行业网站广告能赚多少钱潍坊点睛做网站怎么样
  • 哪个网站做任务能赚钱做网站时如何建立栅格
  • 企业网站推广的形式有怎么做免费网站推广
  • 在线diy网站wordpress源码教程
  • 湘潭做网站价格品牌磐石网络网站提交链接入口
  • 外包网站建设报价专业制作网站报价
  • aspnet东莞网站建设多少钱企业网站的建立特点是什么
  • 网站备案专员青岛建设局网站首页
  • 交易所网站建设教程广州网页设计html
  • 旅游网站毕业设计和论文网站开发文档撰写作业
  • 网站制作的基本概念苏州朗冠网站建设公司
  • 做网站怎么切片wordpress文章插广告
  • 做视频网站代码wordpress如何配置
  • 电子商务网站功能模块农村自建房设计图 一层楼
  • 赤城县城乡建设局网站阿里云 域名申请
  • app定制开发网站制作网站制作的评价指标中
  • 关于国际贸易的网站wordpress lay
  • 一个域名可以绑定两个网站吗如何查询网站的备案号
  • 科技因子网站建设方案项目流程八个阶段
  • 网站源码 com大全网站快速建设入门教程
  • html5网站建设中模板如何做二级域名网站
  • php网站建设实训引言怎么做网站的点击率
  • 跟做网站的人谈什么广东圆心科技网站开发网站模板设计
  • 南通住房和城乡建设局网站百度云wordpress建站
  • 网上做网站网站吗自己做图片网站