大家好,今天咱们来聊聊“校友信息管理系统”这个东西,还有它跟“学校”的关系。其实吧,这个系统说白了就是帮学校把那些毕业了的学生信息给管起来,方便以后联系、搞活动啥的。
不过呢,你可能想问:“这玩意儿有什么用?我一个学生又不关心这些。”那我告诉你,别小看这个系统,它可是学校管理的一个重要部分。比如说,学校要搞校庆、发通知、组织校友聚会,都需要靠这个系统来获取数据。而校友呢,也能通过这个系统看到学校的最新动态,甚至还能更新自己的联系方式。
那我们今天就来做一个简单的演示,看看怎么用代码实现一个基础的校友信息管理系统。不用太复杂,但能让你明白整个流程是怎么运作的。
1. 技术选型:为什么选Python和SQLite?
首先,咱们得选个合适的编程语言和数据库。Python是个很适合做这种小项目的语言,语法简单,社区活跃,写起代码来也快。再说了,Python有好多现成的库可以用,比如用来操作数据库的SQLAlchemy或者直接用SQLite的内置模块。
至于数据库,这里用的是SQLite,因为它是一个轻量级的数据库,不需要安装额外的服务,直接在本地就能运行。对于演示项目来说,完全够用了。
2. 系统功能需求
那这个系统需要干啥呢?我们先来列几个基本的功能点:
添加校友信息(姓名、性别、毕业年份、联系方式等)
查看所有校友信息
根据姓名或毕业年份搜索校友
修改或删除某个校友的信息
听起来是不是挺简单的?是的,但就是这么几个功能,已经可以展示出整个系统的结构了。
3. 数据库设计
接下来咱们得设计一下数据库的结构。这里用的是SQLite,所以我们可以直接用Python的sqlite3模块来操作。

数据库里有一个表叫“alumni”,里面包含以下字段:
id:主键,自增

name:姓名
gender:性别
graduation_year:毕业年份
contact_info:联系方式
现在,我们写一段代码来创建这个表。
import sqlite3
# 连接到SQLite数据库(如果不存在则会自动创建)
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS alumni (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
gender TEXT,
graduation_year INTEGER,
contact_info TEXT
)
''')
# 提交更改
conn.commit()
conn.close()
这段代码很简单,就是连接到数据库,然后创建一个名为“alumni”的表。如果表已经存在,就跳过创建。
4. 添加校友信息
现在我们来写一个函数,用来添加新的校友信息。
def add_alumni(name, gender, graduation_year, contact_info):
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO alumni (name, gender, graduation_year, contact_info) VALUES (?, ?, ?, ?)',
(name, gender, graduation_year, contact_info))
conn.commit()
conn.close()
print("校友信息已添加!")
你看,这里用了参数化查询,避免了SQL注入的问题。调用这个函数的时候,只需要传入相应的参数就行了。
举个例子,我们来添加一个校友信息:
add_alumni("张三", "男", 2015, "zhangsan@example.com")
执行完后,数据库里就会多一条记录。
5. 查看所有校友信息
接下来我们写一个函数,用来查看所有校友的信息。
def view_all_alumni():
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM alumni')
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
调用这个函数后,就会打印出所有校友的信息,包括他们的ID、姓名、性别、毕业年份和联系方式。
6. 搜索校友信息
有时候我们想找某个特定的校友,比如按姓名或者毕业年份来查找。
def search_alumni(name=None, year=None):
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
if name:
cursor.execute('SELECT * FROM alumni WHERE name LIKE ?', ('%' + name + '%',))
elif year:
cursor.execute('SELECT * FROM alumni WHERE graduation_year = ?', (year,))
else:
cursor.execute('SELECT * FROM alumni')
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
这个函数支持两种搜索方式:按姓名模糊匹配,或者按毕业年份精确匹配。
7. 修改和删除校友信息
除了添加和查看,我们还需要能够修改或删除某些信息。
def update_alumni(id, name=None, gender=None, graduation_year=None, contact_info=None):
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
fields = []
values = []
if name:
fields.append('name = ?')
values.append(name)
if gender:
fields.append('gender = ?')
values.append(gender)
if graduation_year:
fields.append('graduation_year = ?')
values.append(graduation_year)
if contact_info:
fields.append('contact_info = ?')
values.append(contact_info)
if not fields:
print("没有提供要更新的字段")
return
# 构造SQL语句
set_clause = ', '.join(fields)
query = f'UPDATE alumni SET {set_clause} WHERE id = ?'
values.append(id)
cursor.execute(query, values)
conn.commit()
conn.close()
print("校友信息已更新!")
这个函数可以根据提供的参数来更新指定ID的校友信息。
def delete_alumni(id):
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
cursor.execute('DELETE FROM alumni WHERE id = ?', (id,))
conn.commit()
conn.close()
print("校友信息已删除!")
删除操作也很简单,只要传入要删除的校友ID即可。
8. 演示:实际运行一下
现在我们把这些函数整合在一起,写一个简单的命令行界面,让用户可以通过输入指令来操作系统。
while True:
print("\n--- 校友信息管理系统 ---")
print("1. 添加校友")
print("2. 查看所有校友")
print("3. 搜索校友")
print("4. 修改校友信息")
print("5. 删除校友")
print("6. 退出")
choice = input("请选择操作(1-6):")
if choice == '1':
name = input("请输入姓名:")
gender = input("请输入性别(男/女):")
year = int(input("请输入毕业年份:"))
contact = input("请输入联系方式:")
add_alumni(name, gender, year, contact)
elif choice == '2':
view_all_alumni()
elif choice == '3':
search_name = input("请输入要搜索的姓名(留空表示按年份搜索):")
if search_name:
search_alumni(name=search_name)
else:
year = int(input("请输入要搜索的毕业年份:"))
search_alumni(year=year)
elif choice == '4':
id = int(input("请输入要修改的校友ID:"))
name = input("请输入新姓名(留空表示不修改):")
gender = input("请输入新性别(留空表示不修改):")
year = input("请输入新毕业年份(留空表示不修改):")
contact = input("请输入新联系方式(留空表示不修改):")
update_alumni(
id=id,
name=name if name else None,
gender=gender if gender else None,
graduation_year=int(year) if year else None,
contact_info=contact if contact else None
)
elif choice == '5':
id = int(input("请输入要删除的校友ID:"))
delete_alumni(id)
elif choice == '6':
print("退出系统。")
break
else:
print("无效选项,请重新选择。")
这就是一个完整的演示程序了。你可以运行它,然后按照提示进行操作,体验一下这个系统的功能。
9. 总结:从演示中看到未来
虽然这个系统只是一个简单的演示,但它展示了校友信息管理系统的基本架构和功能。现实中的系统可能会更复杂,比如加入用户登录、权限管理、数据导出等功能。
但不管怎么说,这个项目的核心逻辑是相通的:用数据库保存数据,用代码处理业务逻辑,用界面提供交互。如果你对计算机感兴趣,或者想学习如何构建一个实用的小系统,这个项目就是一个很好的起点。
总之,通过这个简单的演示,我们看到了“校友信息管理系统”是如何与“学校”紧密相连的。它不仅是学校管理的一部分,也是校友与学校之间沟通的桥梁。希望这篇文章能让你对这个系统有个初步的认识,并激发你进一步探索的兴趣。
