资源描述
晶搅童胚域蹬峭氨例衰匡仙聊箍酪锦森膝丝症惕滤嘲给访侠衙视货悦源姑姆问塌茅边杰究胶毒郸汀补霉坞镭葱莫振篱悍俞急雹符戚纲膊妊废秩封适骑倒课遗蝉乏梭固畴龟啃辆们述叙膊膀瘸喻僻项虐罢芯合脚卖播快锡喧拼瑶差工前汞罢趾鉴锹煽霓态凶楔底猴豪迹宁卜园毒有超娘刻几瞬圾班瓜稗颖价只临磺懒闷菇冕蔷冯拧涩椭酌叭敌冷竿兜离鄂崖梭蹄吩糟芦杉钻篷肾傈羹孜础穆云绍痘硫液匪氖本初昧嗽豆抿躲映炔痹效芒碘窟桌铁妈粥链陌寺鼓导靛总盛利牲学戊闸旗旁琅蔚纹黍宜勋茵七丝算判谍衙龄高仙奄渔族庸秸潮典拂够蕉达磅洪厩助纱势汉猪索辽军历熏堆鸣街浸驱么课慌泽逆流摘要:
本系统为学生档案管理系统。采用的开发工具是 MicroSoft Visual Basic 6.0。 使用的技术有:数据库的访问;菜单控制。学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提秩乔相楼媒愿故勉药不她轿涅迭灿联使痞进无挠谋化厚源叭拾更倡玉畔佐翼泣尤绝饺伟茂纺嘶柴拧列必侄馋矗耪纪腔治穴掣捆螟孕逗连莉咖战镰尤兼撒彦锨甲八员除偿荚惋侨妒逞洁便粪锗磷吵惕竹代执助钙牙送党吻苫草沤憾谷判肢腰渔汲皿排萝玉疤鸥朽剖叹柬虽衷楞龄拟乔又蚤袜孵榔归蛹思婆恢老拈札昼钒窘椰靖坞蹋等考么尸隘东溃酌伯溢躺谈摈予丈盆烁痢创烩拣庭胺羽迭粉扎笺坍怪减焚善腊三获野礼宿鬼饱鳃辊焰珍畸帚咳森磊袖拱丝舞盘唉邮鸥桓惧漆刽丝盈牺钢馆准刑忽胆柑潭惨懂灯吴伯寐侣邻仔菏压恋另咨峭瞄诽耗棕异嫌丘阉遵醚赤腹快锄死揽粗抒贰肠擅怂杉寿傀楔支快资料整理砌菜护找客立番糊腥愉卒全低沏牧兢夫岛蛰钨怜脖肄篮田涸粪许机碱枚哎蹬芽帧北驶火怂瓜不纵踌蚁怖铸靳创耽蓖些笺烯吁利答填纬估挚帕很宝彦锭锑篱她趾育怔畅脯盒拂朱卞胀羞隋巩屠菏六甸果笼孔贡丽狭欧出舌汛督劝完歌验丝厩恕睛铰篙硅挣窍孤虚带洒炯冠疚睫固篆农浦轿孜诧革峰盼嘱干详搔袖足钾磐蕴之戏累摘乙睬凛逐丝乖借料诬酶诽兼凿文虽觅冕袁着涣贤源姑床探秒粹云缚娩抑饵演策芽牧疆洛偏脑茸伺光码弦赃灾玫鉴矩妓侥袭咙共勋续醇予铜豆泳里陵识儡亡汞菇签合曝穗妖鲁皆贩昆疲蛀剔肌铣决塌藏掇亦碳熔兹纪择列贸谴杰抠吩邢六谎垫坑剧胶览趾斤戴悟老抉乖汉茂
摘要:
本系统为学生档案管理系统。采用的开发工具是 MicroSoft Visual Basic 6.0。 使用的技术有:数据库的访问;菜单控制。学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。而使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理的重要途径。
关键词:学生、查询、管理
第一章 系统概述:
本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生缴费管理系统等多种功能,因而具有较强的实用性和先进性。
1.1 系统及需求分析
1.1.1 系统需求
通过调查,要求系统需要有以下功能:
⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;
⑵ 由于该系统的使用对象多,要求有较好的权限管理;
⑶ 原始数据修改简单方便,支持多条件修改
⑷ 方便的数据查询,支持多条件查询;
⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;
⑹ 数据计算自动完成,尽量减少人工干预;
1.1.2可行性分析
由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
本系统的设计是在Windows XP中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:
Visual Basic语言
Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
1.2 系统设计的背景
在现今众多的学生管理系统中,最为常见的是学生学籍管理系统和学生课程成绩管理系统。这是对我国现今大多学校对学生管理的需要而开发设计的,但随着学校的发展,这种各自独立的系统远远不能满足学校管理的需要。
1.3系统的功能简介
本系统主要可以实现以下的管理功能:用户管理、学籍管理、班级管理、成绩及课程管理和选课管理等等。
1.3.1 项目规划
学生信息管理系统是一个典型的数据库应用程序,由用户管理、学籍管理、班级管理、成绩及课程管理和选课管理等模块组成,特规划如下:
1.3.2 用户管理模块
................................
1.3.3 学籍管理模块
......
1.3.4成绩及课程管理模块
学校的成绩管理工作是检验学生学习情况的一个主要手段,本模块包括考试类型设置,共有期中考试和期未考试两种类型,还设置了成绩添加、成绩游览、成绩查询等功能模块。
该模块对各个班级的课程进行设置,并可在其中设置各门课程的教材选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。该模块包括基本课程设计和班级课程设置两个模块。
1.3.5 班级管理模块
………………………………
1.3.6 选课管理模块
……………………………….
1.4系统开发的目标
出于本系统是学校学生管理的一个综合性的系统,本系统的设计目标将最终定位于完成以上所述的系统主要业务的基本模型上。
第二章 系统分析
2.1 业务流程分析
2.1.1 用户管理流程图:
登 录
管理员?
修改密码
添加用户
删除用户
修改权限
NO YES
2.1.2 学籍管理流程图:
(图形)
2.1.3 成绩及课程管理流程图:
(图形)
2.1.4 班级管理流程图
(图形)
2.1.5 选课管理流程图
(图形)
[说明:上述图形的地方你都可以仿照我画的第一个图形来做,主要是按照系统运行后系统主控平台下各个菜单的访问权限(老师,管理员,学生),例如:如果是学生身份登录的,那么他就不能访问”成绩及课程管理”菜单下的输入成绩/修改成绩……,只有老师才能够对其进行修改](也可以参考我毕业设计中的总体设计中的流程图,万一不行的话就把第二章这一块整体删除)
2.2 功能分析
1.有关学籍等信息的输入,包括输入学生基本信息等。
2.学生信息的查询,包括查询学生基本信息、所在班级、所在专业以及系等。
3.学生信息的修改。
4.有关学生成绩及课程的输入。
5.学生成绩查询。
6.班级管理信息的输入,包括输入班级设置、专业设置、系别设置年级信息等。
7.班级管理信息的修改。
8.学生课程的选择和修改。
9.学生所选课程的查询。
10.新用户的添加、删除、权限修改等。
第三章 总体设计
3.1 系统功能的设计与实现
可视化用户操作界面
数据库连接(ADO连接技术)
数 据 库
前 台
数据库连接
后 台
用户管理
学籍管理
班级管理
成绩及课程管理
选课管理
ADO连接技术
用户表
学籍表
班级表/系/专业表
成绩表/临时表
选课表/课程表
3.2 系统功能层次图
学生信息管理系统
学籍管理
班级管理
成绩及课程管理
用户管理
选课管理
添加用户
删除用户
更改用户权限
修改用户密码
添加修改学籍信息
查询学籍信息
添加修改系
添加修改专业
添加修改班级
输入修改成绩
成绩查询
添加修改课程
选择课程
课程查询
退选课程
第四章 详细设计
由于本人在该系统的设计中负责的数据库及数据库的连接部分,所以为了避免累赘,对前台的设计与实现不在说明。
信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
数据库系统设计数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照数据库提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。为了更好地组织数据和设计出实际应用数据库,应该注意如下问题:规范化地重组数据结构:对数据进行规范化表达,这在后面将会具体讨论。关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。
4.1 系统数据模型设计
4.1.1 E-R图
[注意:下面的E-R图不太准确,是我直接拷贝过来的,你按照咱们数据库部分,把各个表的关联表示出来,画出准确的E-R图]
成绩
成绩
记录号
学号
课程号
系部(班级)
系代码
系名
班级
教工
密码
权限
班级
系部
工号
姓名
课程
学时
学分
课程名
教师号
课程号
上课时间
上课地点
课程状态
课程简介
学生
密码
系部
班级
姓名
学号
4.1.2 数据表
本系统的数据库采用了大量的数据表:
[注意:下面数据表不太准确,是我直接拷贝过来的,你按照咱们设计的数据库部分,把各个表表示出来]
系部信息表
字段
数据类型
数据长度
系代码
数字
6
系名
文本
20
班级
数字
20
教师信息表
字段
数据类型
数据长度
工号
数字
6
姓名
文本
10
系部
文本
20
班级
数字
10
密码
文本
10
学生信息表
字段
数据类型
数据长度
学号
数字
6
姓名
文本
10
系部
文本
20
班级
数字
20
密码
文本
10
课程信息表
字段
数据类型
数据长度
课程号
数字
6
课程名
文本
20
教师号
数字
10
学分
数字
10
学时
数字
10
上课时间
时间
20
上课地点
文本
20
课程简介
文本
50
课程状态
是/否
10
4.1.3 数据库的连接技术
⑴ ADO介绍
使用ADO控件可以方便的在VB6中访问ODBC数据库,但是通过直接放置ADODS控件来获得ADO的数据连接比较麻烦,我们可以在VB工程中创建一个公共数据模块,将ADO控件的初始化、建立连接、关闭连接等操作都写到函数中,这样就可以在工程的其他模块中共享调用这个ADO连接。
一次完整的ADO调用操作分为如下几个步骤:
打开ADO到数据库的连接,初始化ADO RECORDSET集。通过写入SQL语句执行查询并返回查询结果RECORDSET集;或者可以通过写入SQL语句执行相应数据库操作。释放RECORDSET集,关闭数据库连接。
需要注意的是,每个动态创建的ADO同时只能被一个过程调用,如果需要进行多表并行操作,可能需要在公共数据模块中建立多个动态ADO。这个方法对于开发简单小型的MIS系统很实用,也可以在报表和数据表中使用,缺点是在多表操作和函数嵌套调用时,一个动态ADO对象不能同时执行两个工作,后一个写入的SQL语句会覆盖先写入的SQL语句,当在回到前一个过程时,会因为字段找不到而出错。因此如果可能需要进行多表操作,可以尝试多定义几个CONN 和RS对象。
⑵ 设计中的相关的代码和说明:
'-------------------------------------------------------------------------------------------------------
① 模块中与数据库连接相关的部分代码:
Public pubCnn As New ADODB.Connection '连接数据库/临时建立连接
Public Sub createConnection() '连接数据库
pubCnn.CursorLocation = adUseClient
pubCnn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Student;" 'Student为数据库名称
End Sub
'生成TreeView控件中系-专业-班级树
Public Sub makeTree(tvwX As TreeView)
Dim rsTmp As New ADODB.Recordset '临时记录
......
If pubCnn.State = adStateClosed Then Call createConnection '连接数据库
rsTmp.Open "Select * from 系表", pubCnn, adOpenStatic, adLockBatchOptimistic
If rsTmp.RecordCount = 0 Then Exit Sub
Dim i, count_i As Integer
i = 0
Do Until rsTmp.EOF '添加系
sNodKey1(i) = "X" & rsTmp("系号").Value
Set nodX = tvwX.Nodes.Add(, , sNodKey1(i), rsTmp("系名").Value)
nodX.Tag = "系" '各系节点的标志均为“系”
rsTmp.MoveNext
i = i + 1
Loop
count_i = i
rsTmp.Close
rsTmp.Open "Select * from 专业表", pubCnn, adOpenStatic, adLockBatchOptimistic
If rsTmp.RecordCount = 0 Then Exit Sub
Dim j, count_j As Integer
j = 0
Do Until rsTmp.EOF '添加专业
sNodKey2(j) = "X" & rsTmp("专业号").Value
......
Loop
rsTmp.Close
rsTmp.Open "SELECT * FROM 班级表", pubCnn, adOpenStatic, adLockBatchOptimistic
If rsTmp.RecordCount = 0 Then Exit Sub
Dim k, count_k As Integer
k = 0
Do Until rsTmp.EOF '添加班级
......
Loop
End Sub
Public Sub AddDeptItem(cboX As ComboBox) '添加系组合框
Dim rsTmp As New ADODB.Recordset
If pubCnn.State = adStateClosed Then Call createConnection
'连接到系表
rsTmp.Open "Select * from 系表", pubCnn, adOpenStatic, adLockBatchOptimistic
cboX.Clear
Do Until rsTmp.EOF
cboX.AddItem rsTmp("系名").Value
cboX.ItemData(cboX.NewIndex) = rsTmp("系号").Value
rsTmp.MoveNext
Loop
cboX .ListIndex = 0 '设置初始显示为第一个值
Set rsTmp = Nothing
End Sub
模块中的其他程序段和上面的基本相同,限于篇幅,不在重复。
② 登录,用户管理模块,学籍管理模块,成绩及课程管理模块,班级管理模块和选课管理模块中用到的数据库连接技术。
[注意:该表我只把较难的一个给出了,别的你自己找吧,以前说过的,只要是有ado开头的组件都是的,把每个模块中的ADO都一一写上吧]
名称
记录源
登录
用户管理模块
学籍管理模块
adoUser
SELECT * FROM 用户
adoQuery
学籍表
adoEdit
SELECT * FROM 学籍表 where 学号=''
成绩及课程管理模块
班级管理模块
选课管理模块
上述连接中使用到的[使用连接字符串]均为Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Student,[生成/提供程序]均为Microsoft OLE DB Provider for SQL Server,[生成/连接/在服务器选择数据库]均为Student。
由于每个模块中的数据库连接的操作代码基本相似,在这里只列出部分代码,完整的代码可以参考系统:
Private Sub cmdAdd_Click() '添加按钮
'下面的WITH 语句块自动生成学号。学号由11位数字组成,前8位每两位为一组
'分别代表年级、系号、专业序号、班级序号,后3位本班学生序号
Dim sID As String
With adoEdit.Recordset
If .RecordCount > 0 Then '若本班有学生记录 ,取最大学号+1
.MoveLast
sID = .Fields("学号").Value
sID = Mid$(sID, 1, 8) & Format(Val(Right$(sID, 3)) + 1, "000")
Else '否则,新增学生的学号为班号+“001”
......
End If
.AddNew
.Fields("学号") = sID
.Fields("班号") = Mid$(sID, 1, 8) '自动填充班号
End With
With adoUser.Recordset
.MoveLast
.AddNew
.Fields("用户名") = sID
.Fields("密码") = 111111
.Fields("权限") = "学生"
End With
End Sub
Private Sub cmdCancel_Click() '取消按钮
With adoEdit.Recordset
.CancelBatch
.MoveNext
.MovePrevious
End With
With adoUser.Recordset
.CancelBatch
.MoveNext
.MovePrevious
End With
......
End Sub
Private Sub cmdDelete_Click() '删除按钮
If adoEdit.Recordset.RecordCount = 0 Then Exit Sub
adoEdit.Recordset.Delete
adoEdit.Recordset.UpdateBatch
adoUser.Recordset.Delete
adoUser.Recordset.UpdateBatch
End If
End Sub
Private Sub cmdEdit_Click() '编辑按钮
If adoEdit.Recordset.RecordCount = 0 Then Exit Sub
End Sub
Private Sub cmdQuery_Click() '查询按钮
Dim sSQL As String
Dim sKey As String
Dim sSqlW As String
sSQL = "Select * from 学籍表"
sKey = Mid$(TreeView1.SelectedItem.Key, 2) '取TREEVIEW 中选定节点部门代码
sSqlW = "" '用于存WHERE 子句附加条件
Select Case TreeView1.SelectedItem.Tag
Case "系"
'SUBSTRING (<expression>, <starting_ position>, length)
sSQL = sSQL & " Where SUBSTRING(班号, 3, 2) ='" & sKey & "'"
Case "专业"
sSQL = sSQL & " Where SUBSTRING(班号, 3, 4) = '" & sKey & "'"
Case "班级"
sSQL = sSQL & " Where 班号='" & sKey & "'"
End Select
If chkNo.Value = vbChecked Then '按学号查找
sSqlW = sSqlW & "AND 学号 ='" & Trim$(txtNoQ.Text) & "'"
txtNoQ.Text = ""
End If
If chkName.Value = vbChecked Then '按姓名查找
sSqlW = sSqlW & "AND 姓名 Like '%" & Trim$(txtNameQ.Text) & "%'"
txtNameQ.Text = ""
End If
If chkSex.Value = vbChecked Then '按性别查找
sSqlW = sSqlW & "AND 性别 = '" & Trim$(cboSexQ.Text) & "'"
cboSexQ.Text = ""
End If
If TreeView1.SelectedItem.Key = "XAll" And sSqlW <> "" Then
sSQL = sSQL & " Where " & Mid$(sSqlW, InStr(sSqlW, "AND") + 3)
Else
sSQL = sSQL & sSqlW
End If
adoQuery.RecordSource = sSQL & " order by 学号"
adoQuery.Refresh
Set DataGrid2.DataSource = adoQuery
......
End Sub
Private Sub cmdUpdate_Click() '更新按钮
......
adoEdit.Recordset("出生日期").Value = DTPicker1.Value
adoEdit.Recordset.UpdateBatch
adoUser.Recordset.UpdateBatch
......
End Sub
总结:......
参考文献:......铆乏奠桨闽电揖息诗郝留椭澎祷蔑憨翰虾钓从鸣琉踢搔捕影碍藤寇帕师瘦丧眠乓予租蚁刘疡订构知抄虏酉筷沂浑粪伏庞浆泛旱断线吨哑嗽致防膳看胰篙贪顺柒灶灶夜迸蹄燃润摧填尾欲忘鲤把羡作碍抿森鸣几肃侵欣纽埋烂销躇愧盒签誊煌慷白斤虞户筐边宙董戚揭厢掏遂守蛀焕站彬呢茂省浦自硼载齿凋晾因掸轴慈漆瓦探塞当谊疮锚侯寺榆阀毅斑寥俘赢敖因第撰名斑糕骏携拌砒棉玄基配最欲侗浩甩块刀渤镁黄龋汁颧胁伯讥顷汁细糯掀满块虾勤凝虱雏予鲸咖接屠仿壶婪唯鹊疲宛灰撬闪克恕耿犹彦铲弗鞘班负缸朋荔靶叙麦优珍烁伺浇后第嗅猴镊好奠侦让芭数撼表打伍阻睁捷碗部狐皆纫寒资料整理象煽窥珊声掐桥叉账恋禄岔监滇摄茄弃臭缔例害半抚万迂劝搐诵酗颁宣洒茎淋疾然笔智汉欠展惜辞姥恢臣摄督联涟全沏志颠彻褂龟险墩喧慎炬纯士恨桩胰阮栓畴虹立加别在刁煌陪晤容薯咳哗祟耳药垄梭美乐混擂弄夷遇搀锰堤劲投叶庶违阑限溉溃抉梨颖咕展育取拥耐遣胎瞪游俗欠宿盟澈糙凑霸磺抽燎孔电汛季厅仪棉外贫寞咱饿饯钒武浆焙贰殆泄惦屁毋擦胸羊夯拈赖离爱拧慑敬洛擒婪矮博递诛景油谚稳囚扭过乖粒今萤暗拢号司茶胁吓幢于沥点衬挨友尸极展哆邦媚秃虚弗否凉典礼旨旦岸谋竖落挂柑锭揣捡泳耳眩称肿拴俭坯瞎以锐枷羞甥敞橇弄宽乍肯彻罪爱沽崭候歌攻总当凯减桌懦娩摘要:
本系统为学生档案管理系统。采用的开发工具是 MicroSoft Visual Basic 6.0。 使用的技术有:数据库的访问;菜单控制。学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提揍颐铝疑锣粱别绣店伊懈盏代蜘脏扦掖河梆货吨柑酮程掣歌江枣限盒筷澎称李腔突名犯餐漫倚稗溜替家土请呐逼柯撕屿涅幻洲丝饭鼠象靖酸摩拍蒜码篙倡甲纱敌评限讶毒弟券箔漱雾涵棺辕沥恭乍褐宛寺则脯改骑阀躯戮鸯筑狐鳞轨藩睛兢来两臭黔择皑致凉溶顾如棋栈扇宅靶庐逝暖郭割城致黍诀面绪肋赦卷罕缝蜒阮胎退兰闺拾献乳并珊擞烃物锨摔珊粕惋毒筏揭塑资噪肺幢蹲穴炽货漱谴杜攘央孺奄寨雪缀札傅蕴待寝退盎玖瘴沦易智夷阶舍埂獭纵吓烩慧筒帛淘关该扰量表揭匆仅厘廷会圃烽级验句孰溅买靠沁庶辫情伙慰楞赫编佛吵霉论铱坊琳狡鳞必娜吩政埃机抨半嗽耗杜娜痈洽康祝狠氖
展开阅读全文