gsh7859456 1 year ago
parent 1ae17556d8
commit 5d152ff5c1

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.12 (pythonProject) (2)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (pythonProject) (2)" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/pythonProject.iml" filepath="$PROJECT_DIR$/.idea/pythonProject.iml" />
</modules>
</component>
</project>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="53db1e8a-93a5-407d-9fe9-de2746d8741a" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/pythonProject.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo"><![CDATA[{
"associatedIndex": 1
}]]></component>
<component name="ProjectId" id="2hAyujgRf1Efd1ws2Hn0Gq4cV7f" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Python.学生管理系统.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
"git-widget-placeholder": "master"
}
}]]></component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-python-sdk-babbdf50b680-746f403e7f0c-com.jetbrains.pycharm.community.sharedIndexes.bundled-PC-241.15989.155" />
</set>
</attachedChunks>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="53db1e8a-93a5-407d-9fe9-de2746d8741a" name="Changes" comment="" />
<created>1717051400789</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1717051400789</updated>
</task>
<servers />
</component>
</project>

@ -0,0 +1,147 @@
import tkinter as tk
from tkinter import messagebox
window = tk.Tk()
window.title("学生信息管理系统")
window.geometry("1000x500")
# 学生管理系统
class StudentSystem:
root: None
def __init__(self):
self.root = None
self.student_list = []
# 创建界面
self.interface()
# 创建界面
def interface(self):
# 创建姓名输入框
name_label = tk.Label(window, text="姓名:")
name_label.place(x=180, y=50)
self.name_entry = tk.Entry(window)
self.name_entry.place(x=230, y=50)
# 创建性别输入框
gender_label = tk.Label(window, text="性别:")
gender_label.place(x=180, y=100)
self.gender_entry = tk.Entry(window)
self.gender_entry.place(x=230, y=100)
# 创建手机号输入框
phone_label = tk.Label(window, text="手机号:")
phone_label.place(x=180, y=150)
self.phone_entry = tk.Entry(window)
self.phone_entry.place(x=230, y=150)
# 添加按钮
tk.Button(window, text="添加", width=8, relief="solid", command=self.add_student).place(x=100, y=200)
# 删除按钮
tk.Button(window, text="删除", width=8, relief="solid", command=self.del_student).place(x=200, y=200)
# 修改按钮
tk.Button(window, text="修改", width=8, relief="solid", command=self.modify_student).place(x=300, y=200)
# 显示按钮
tk.Button(window, text="显示", width=8, relief="solid", command=self.show_student).place(x=400, y=200)
# 文字
tk.Label(window, text="xxxx级软件工程x班 xxx").place(x=180, y=250)
self.info_text = tk.Text(window)
self.info_text.place(x=0, y=280)
# 学生信息类
class Student:
def __init__(self, name, gender, tel):
self.name = name
self.gender = gender
self.tel = tel
# 检查输入是否为空
def is_input_empty(self, entry):
return len(entry.get()) == 0
# 添加学生
def add_student(self):
if self.is_input_empty(self.name_entry) or self.is_input_empty(self.gender_entry) or self.is_input_empty(
self.phone_entry):
messagebox.showwarning("警告", "输入不能为空!")
return
name = self.name_entry.get()
gender = self.gender_entry.get()
phone = self.phone_entry.get()
student = self.Student(name, gender, phone)
self.student_list.append(student)
self.name_entry.delete(0, tk.END)
self.gender_entry.delete(0, tk.END)
self.phone_entry.delete(0, tk.END)
self.info_text.insert(tk.END, f"添加学生:\n姓名:{name}\n性别:{gender}\n手机号:{phone}\n\n")
# 删除学生
def del_student(self):
if self.is_input_empty(self.name_entry):
messagebox.showwarning("警告", "请输入学生姓名!")
return
name = self.name_entry.get()
for student in self.student_list:
if student.name == name:
self.student_list.remove(student)
self.info_text.insert(tk.END,
f"删除学生:\n姓名:{student.name}\n性别:{student.gender}\n手机号:{student.tel}\n\n")
break
self.name_entry.delete(0, tk.END)
# 修改学生
def modify_student(self):
if self.is_input_empty(self.name_entry):
messagebox.showwarning("警告", "请输入学生姓名!")
return
name = self.name_entry.get()
gender = self.gender_entry.get()
phone = self.phone_entry.get()
for student in self.student_list:
if student.name == name:
student.gender = gender
student.tel = phone
self.info_text.insert(tk.END,
f"修改学生:\n姓名:{student.name}\n性别:{student.gender}\n手机号:{student.tel}\n\n")
break
self.name_entry.delete(0, tk.END)
self.gender_entry.delete(0, tk.END)
self.phone_entry.delete(0, tk.END)
# 显示学生
def show_student(self):
self.info_text.delete(1.0, tk.END) # 清空文本框内容
if len(self.student_list) == 0:
self.info_text.insert(tk.END, "学生列表为空!")
else:
self.info_text.insert(tk.END, "学生列表:\n")
for student in self.student_list:
self.info_text.insert(tk.END, f"姓名:{student.name}\n性别:{student.gender}\n手机号:{student.tel}\n\n")
if __name__ == "__main__":
app = StudentSystem()
window.mainloop()

@ -1,152 +0,0 @@
msg = """********************************
欢迎使用学生管理系统
请选择你想要进行的操作
1.新建学生信息
2.显示全部信息
3.查询学生信息
4.删除学生信息
5.修改学生信息
0.退出系统
********************************"""
student_info = [
{"姓名": '张三','语文': 80,'数学': 80,'外语': 80,'总分': 240},
{"姓名": '李四','语文': 80,'数学': 80,'外语': 80,'总分': 240},
]
account = input('请输入您的账号:')
password = input('请输入您的密码:')
if account == 'guoshenghui' and password == '21412030118':
print('登陆成功,欢迎使用')
print(msg) #输出函数
while True: #为真死循环
word = input("请输入想要进行的操作:")
if word == '1':
print("新建学生信息")
name = input('请输入学生姓名:')
chinese = input('请输入语文分数:')
math = input('请输入数学分数:')
english = input('请输入外语分数:')
sum = int(chinese) + int(math) + int(english)
print(sum)
dit = {
'姓名': name,
'语文': chinese,
'数学': math,
'外语': english,
'总分': sum,
}
student_info.append(dit)
elif word == '2':
print("显示全部信息")
print('姓名\t\t语文\t\t数学\t\t外语\t\t总分')
for student in student_info:
print(
student['姓名'] + '\t\t' +
str(student['语文'])+ '\t\t' +
str(student['数学'])+ '\t\t' +
str(student['外语'])+ '\t\t' +
str(student['总分'])+ '\t\t'
)
elif word == '3':
print("查询学生信息")
name = input('请输入您想要查询学生的姓名:')
for student in student_info:
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t外语\t\t总分')
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t' +
str(student['数学']) + '\t\t' +
str(student['外语']) + '\t\t' +
str(student['总分']) + '\t\t'
)
break
else:
print('没有该学生的信息')
elif word == '4':
print("删除学生信息")
name = input('请输入您想要删除学生的姓名:')
for student in student_info:
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t外语\t\t总分')
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t' +
str(student['数学']) + '\t\t' +
str(student['外语']) + '\t\t' +
str(student['总分']) + '\t\t'
)
result = input('是否确认删除该学生y/n)')
if result == 'y':
student_info.remove(student)
elif result == 'n':
continue
break
else:
print('没有该学生信息,请确认信息在删除')
elif word == '5':
print("修改学生信息")
name = input('请输入您想要修改学生的姓名:')
for student in student_info:
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t外语\t\t总分')
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t' +
str(student['数学']) + '\t\t' +
str(student['外语']) + '\t\t' +
str(student['总分']) + '\t\t'
)
result = input('是否确认修改该学生y/n)')
if result == 'y':
name = input('请输入学生姓名:')
chinese = input('请输入语文分数:')
math = input('请输入数学分数:')
english = input('请输入外语分数:')
sum = int(chinese) + int(math) + int(english)
print(sum)
student['姓名'] = name
student['语文'] = chinese
student['数学'] = math
student['外语'] = english
student['总分'] = sum
elif result == 'n':
continue
break
else:
print('未找到该学生信息,请先确认该学生是否存在再进行修改')
elif word == '0':
print("退出系统,欢迎下次使用")
break
elif account == 'xs' and password == '12345':
while True:
name = input('请输入您想要查询学生的姓名(输入0退出)')
if name == '0':
break
for student in student_info:
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t外语\t\t总分')
print(
student['姓名'] + '\t\t' +
str(student['语文']) + '\t\t' +
str(student['数学']) + '\t\t' +
str(student['外语']) + '\t\t' +
str(student['总分']) + '\t\t'
)
break
else:
print('没有该学生的信息')
else:
print('账号或者密码输入错误')
Loading…
Cancel
Save