用宁典存储数据,实现一个具有基本功能的学生 总成绩单,具有查询,更新、珊除联系人信息功能。具体功 (1) 查询全部学生 信息:显示所有学生的总成绩单。 (2) 插沁学生 成绩:可以向学生总成绩单中新建学生,若学生已经存在,则询问是否修改学生信息;若 学生不存在,则新建学生成绩。 (3) 更新学生成绩:可以更新学生,若学生不存在,则吉知。否则
时间: 2023-12-22 18:03:52 浏览: 30
,根据用户输入的学生姓名或学号查询到该学生,并可以修改该学生的成绩信息。 (4) 删除学生信息:可以根据学生姓名或学号删除学生的总成绩单信息。
首先需要在宁典中创建一个学生总成绩单的表格,包含学生姓名、学号、成绩等字段。可以使用以下 SQL 语句创建表格:
```
CREATE TABLE student_scores (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
student_id VARCHAR(50) NOT NULL,
score INT(11) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY student_id_unique (student_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```
接下来可以编写 Python 代码来实现具体功能。首先是查询全部学生信息的函数:
```python
import pymysql
def query_all_scores():
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='dbname')
cursor = conn.cursor()
sql = 'SELECT name, student_id, score FROM student_scores'
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
name, student_id, score = row
print(f'姓名:{name},学号:{student_id},成绩:{score}')
cursor.close()
conn.close()
```
插入学生成绩的函数:
```python
import pymysql
def insert_score(name, student_id, score):
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='dbname')
cursor = conn.cursor()
sql = f'SELECT * FROM student_scores WHERE student_id="{student_id}"'
cursor.execute(sql)
if cursor.fetchone() is not None:
choice = input('该学生已存在,是否修改学生信息?(y/n)')
if choice == 'y':
sql = f'UPDATE student_scores SET name="{name}", score={score} WHERE student_id="{student_id}"'
cursor.execute(sql)
conn.commit()
print('学生信息已更新')
else:
print('未修改学生信息')
else:
sql = f'INSERT INTO student_scores (name, student_id, score) VALUES ("{name}", "{student_id}", {score})'
cursor.execute(sql)
conn.commit()
print('学生成绩已插入')
cursor.close()
conn.close()
```
更新学生成绩的函数:
```python
import pymysql
def update_score(name=None, student_id=None):
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='dbname')
cursor = conn.cursor()
if name is None and student_id is None:
student_id = input('请输入要更新的学生学号:')
if name is None:
name = input('请输入学生姓名:')
if student_id is None:
student_id = input('请输入学生学号:')
sql = f'SELECT * FROM student_scores WHERE student_id="{student_id}"'
cursor.execute(sql)
if cursor.fetchone() is not None:
score = int(input('请输入学生成绩:'))
sql = f'UPDATE student_scores SET name="{name}", score={score} WHERE student_id="{student_id}"'
cursor.execute(sql)
conn.commit()
print('学生信息已更新')
else:
print('学生不存在')
cursor.close()
conn.close()
```
删除学生信息的函数:
```python
import pymysql
def delete_score(name=None, student_id=None):
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='dbname')
cursor = conn.cursor()
if name is None and student_id is None:
student_id = input('请输入要删除的学生学号:')
if name is None:
name = input('请输入学生姓名:')
if student_id is None:
student_id = input('请输入学生学号:')
sql = f'SELECT * FROM student_scores WHERE student_id="{student_id}"'
cursor.execute(sql)
if cursor.fetchone() is not None:
sql = f'DELETE FROM student_scores WHERE student_id="{student_id}"'
cursor.execute(sql)
conn.commit()
print('学生信息已删除')
else:
print('学生不存在')
cursor.close()
conn.close()
```
以上是基本的功能实现,可以根据需要进行扩展和优化。注意在实际使用中需要根据实际情况修改数据库连接配置和表格名称。
阅读全文