学生信息管理系统毕业论文_第1页
学生信息管理系统毕业论文_第2页
学生信息管理系统毕业论文_第3页
学生信息管理系统毕业论文_第4页
学生信息管理系统毕业论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、广州航海高等专科学校(毕业论文)题 目 学生信息管理系统 姓 名 张晓玲 学 号 2009401209 专 业 计算机应用技术 班 别 计应092 指导教师 李莉 日 期 2012年5月13日 广州航海高等专科学校毕业设计(论文)任务书 编号: gmc-2-017-02设计(论文)题目学生信息管理系统完成时间 2012 年 4 月 1 日 至 5 月 20 日设计者(作者)张晓玲指导教师李莉系统要求:采用c/s或b/s模式,数据库根据自己开发的特点可任选;前台可以选择适合的前台设计语言(vb.net,asp.net等)设计要求:一、 登录系统(包含用户名及密码检测)二、 创建合理的数据表,对表

2、的字段值添加合适的约束、默认、规则等三、 数据管理。包括数据添加、数据删除、数据修改四、 查询功能。应包含多种查询功能(固定条件查询,模糊查询等)五、 整个系统的安全、维护及数据的备份论文要求:一、 设计思想二、 画出整个系统的e-r图三、 系统设计的过程四、 系统开发过程中所遇到的问题及解决的方法五、 设计完成后的结论 指导教师填写签名: 年 月 日教研室主任意见: 教研室主任签名:年 月 日备注:注:一式三份,设计者(作者)、指导教师、教研室各一份摘 要随着科学技术的不断进步,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应

3、用的一个重要部分,信息管理系统是一个由用户和计算机组成的进行信息管理、信息收集、存储处理、传递使用和维护的软件系统。学生信息管理系统是学校地方管理工作过程中不可缺少的部分,对学生信息管理工作,具有着手工管理所无法比拟的优点,检索迅速、查找方便、可靠性高、存储量大等。这些优点能够极大地提高日常查询的效率。因此,开发学生信息管理系统成为很有必要的事情。数据库技术是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。而在互联网日益发展、壮大的背景下,在因特网普及浪潮持续高涨的情况下,如何让原来在单机中使用的数据库可供多机使用,也成了必然的趋势。学生信息管理系统是典型的信

4、息管理系统 (mis),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用microsoft公司的visual basic开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。目 录第一章 visual basic 概述 1.1 visual basic 语言的特点1.2 visual basic 系

5、统几个程序应用中的常用名词第二章 设计的目的与需求分析2.1 设计的目的2.2 需求分析第三章 学生信息管理系统总体设计3.1 学生信息系统的设计分析3.2可行性分析3.3 关系型数据库的实现第四章 程序设计与编码4.1 开发平台与工具4.2 程序设计 4.2.1 用户管理4.2.2 新生注册4.2.3 课程班级信息4.2.4 成绩录入4.2.5 成绩查询4.2.6 学生奖罚信息4.2.7 个人信息查询结束语致谢主要参考文献第一章 visual basic 概述1.1 visual basic 语言的特点 basic 是属于高阶程式语言的一种,英文名称的全名是 beginners all-pu

6、rpose symbolic instruction code,就名称的含意来看,是适用于初学者的多功能符号指令码,是一种在计算机发展史上应用最为广泛的程式语言。 一般人类自然语言有标准语言,也有方言,电脑语言亦是如此。许多种电脑都有 basic语言,但其语法、规则、功能并不尽然相同,而同一种电脑所使用的 basic 语言也可能有不同版本或由不同的软件开发公司制作的不同品牌 basic 语言,只是大家一致地继承了 basic 创始者所设计的基本形态与精神,而分别赋予独特的设计手法与增添一些功能罢了。visual basic 语言用其设计应用程序时具有两个基本特点:可视化设计和事件驱动编程。(1

7、) 可视化设计:表现在vb在设计应用于程序界面时有“所见即所得”的处理功能。(2) 事件驱动编程:在设计应用程序时,把对象添加到窗体中,在用户与程序进行交互时,用户基本上是通过鼠标、键盘与应用程序进行交互的,那些对象就必须对鼠标和键盘操作所引发的事件做出响应,来执行一段应用程序。1.2 visual basic 系统几个在程序应用中的常用名词在visual basic中,可以通过属性、方法和事件来说明和衡量一个对象的特征。 事件(event):事件是指发生在某一对象上的事情。事件又可分为鼠标事件和键盘事件。例如,在命令按钮(command button)这一对象上可能发生鼠标单击(click)

8、、鼠标移动(mouse move)、鼠标按下(mouse down)等鼠标事件,也可能发生键盘按下(key down)等键盘事件。总之,事件指明了对象“什么情况下做?”,常用于定义对象发生某种反映的时机和条件。 方法(method):方法是用来控制对象的功能及操作的内部程序。例如,人具有说话、行走、学习、睡觉等功能,在visual basic中,对象所能提供的这些功能和操作,就称作“方法”。以窗体为例,它具有显示(show)或隐藏(hide)的方法。总之,方法指明了对象“能做什么?”,常用于定义对象的功能和操作。 属性(property):属性是指用于描述对象的名称、位置、颜色、字体等特征的一

9、些指标。可以通过属性改变对象的特性。 有些属性可以在设计时通过属性窗口来设置,不用编写任何代码;而有些属性则必须通过编写代码,在运行程序的同时进行设置。可以在运行时读取和设置取值的属性成为读写属性,只能读取的属性成为只读属性。总之属性指明了对象“是什么样的?”,常用于定义对象的外观。 对象(object):visual basic 具有“面向对象”的特性,visual basic 应用种程序的基本单元是对象,用visual basic 编程就是用“对象”组装程序。这种“面向对象”的编程方法与传统的全部用代码编制程序的方法有很大区别,就像用集成电路芯片组装电视机和用三极管,二极管组装电视机的区别

10、一样。显然,“面向对象”的编程方法比传统的编程方法更简单,更方便,并且编写出的程序也更加稳定。因此,“对象”可以被看做 visual basic 程序设计的核心。 在 visual basic 程序设计中,对象中还可以包含头,手,腿,脚等部位,其中的每个部位又可以单独作为作为被研究的对象。在 visual basic 程序设计中,整个应用程序就是一个对象,应用程序中又包含着窗体(frame),命令按钮(command),菜单(menu)等对象。 类(class):在 visual basic 中,对象是由类创建的,因此对象可以说是类的具体实例,这就好比是蛋糕和做蛋糕的模具之间的关系。 各种不同

11、的对象分属于各种不同的种类。同一类对象可能具有一些不同的特征(或是说同一类对象不一定具有完全相同的特性);具有某些相同的特性的对象,不一定是同一类对象,这就好比是人和猴子虽然都有身高、性别等特征,但二者之间还存在着智商、语言等特性差异,这两个对象之间的特性相差很多,根本就不能算是同一类对象。而男人和女人,虽然有着性别、生理等方面的差异,但他们绝大部分特性相同,可以算是同一种类。由此,可以归结为一句话:同一类对象的绝大部分特性相同。第二章 设计的目的与需求分析2.1 设计的目的随着计算机技术的发展和互联网时代的到来和飞速发展,我们已经进入了信息时代,也有人称为数字化时代,在这数字化的时代里,学校

12、传统的管理方法和办学水平都受到了极大的挑战。internet技术持续迅猛的发展,也给传统的办学提出了新的模式。绝大部分大学和学院都已接入互联网并建成校园网,各校的硬件设施已经比较完善。通过设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理,从而方便管理者、老师和学生间信息发布、信息交流和信息共享。以现代计算技术、网络技术为基础的数字化教学主要是朝着信息化、网络化、现代化的目标迈进。与网络技术相结合的新型办学模式具有对于教育、教学过程来说极为宝贵的特性,可以为新型办学模式的建构提供理想的环境。通过设计达到熟练掌握.net基本结构以及visual basic语言

13、的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握acess数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。根据题目的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握visual basic语言的运用和visual studio2008工具的使用。2.2 需求分析用户的需求具体体现在各种信息的录入、修改、删除和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。更重要的是数据库设计经验在今后其他项目的开发过程中同样有着很重要的借

14、鉴作用。学生管理系统的开发目的是为了实现学生课程、学籍的信息化管理。本系统需要完成的功能有: 有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。学生信息的修改。班级管理信息的输入,包括输入班级设置、年级信息等。班级管理信息的查询。班级管理信息的修改。学生课程的设置和修改。8.学生奖罚情况的查询。第三章 学生信息管理系统的总体设计3.1模块的设计分析本次设计主要分为四个模块:管理员模块、学生模块、教师模块、访客模块,详细情况如下图所示:登陆界面管理员学生教师访客用户管理新生注册课程班级信息成绩录入成绩查询学生

15、奖罚信息个人信息查询添加用户删除用户修改用户密码数据库文件备份退出课程设置班级辅导员信息个人成绩查询班级成绩查询学生信息课程信息重新登陆退出修改个人信息必修课查询选修课查询 3.2可行性分析学生信息,作为一个学校,就有一定的工作量存在,而学生信息,它的工作量可能是其它信息工作量的几倍,班级的增加、班级的查找、班级的修改;学生档案;课程管理;成绩管理;缴费管理;统计等等,每个信息的数据都在不断地变化着,如果采用人工的方式进行操作,那么,一天的工作量,足以让人觉得比较繁琐,吃不消。针对这样的情况,采用让数据的查询变得简单化,数据变的更让每个人都在任何时刻都可以了解到。学生信息管理系统是为本校开发的

16、,本系统所采用的语言是visual basic,用microsoft access 2003数据库完成。该系统总体有三部分组成,包括用户管理信息、学生信息、老师信息。通过本系统,把本校内部查询用户管理信息、学生信息、老师信息各个环节进行有效地计划、组织和控制。通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。本系统主要信息流程为:管理员维护接受学生的信息,学生信息查询根据管理员维护的学生信息做出对所接收的信息合理性进行判断,并交于信息维护进行相应的修改,再把信息存入数据库中。学生信息是对学生进行相应地修改自己的个人信息。采用本系

17、统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。本系统中使用到的数据表主要有学生信息表、登陆信息表、课程表、必修课、选修课成绩表、班级辅导员信息表、学生奖罚信息表,由这七个表,组成了名为student的数据库(如图一)。其中学生信息表是本系统主要的一张表(图一)3.3关系型数据库的实现access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于excel的电子表格,可以使数据库

18、一目了然。另外,access允许创建自定义报表用于打印或输出数据库中的信息。access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他用户共享数据库。access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,access作为关系数据库开发具备了许多优点,可以在一个数据包同时拥有桌面数据库的便利和关系数据库的强大功能。数据库与vb的连接:本系统的数据链接采用的是ado方法,打开控制面板,打开odbc数据源图标,选择“系统dsn”标签,点击“添加”按钮,在弹出的“创建新数据源”对话框中选择名称为“microsoft access dri

19、ve(*.mdb)”,点击“完成”按钮,在odbc microsoft access 安装对话框中在数据源名中输入信息,在数据库这个框中, 单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。所有信息都是根据这张学生档案进行有关的操作,主要的字段有如下表所示:字段代号字段类型字段长度是否可以为空备注学号char10否学生编号姓名char10否学生姓名性别char10是学生性别出生年月char10是民族

20、char1000是籍贯char1000是家庭住址char100是电话char10否入学年份char10否班名char10否专业名char10否班治面貌char10是职务char10是宿舍住址char10否班内序号char10是学院char10否 各表间关系如图所示:e-r图:学生信息表民 族出生年月性 别姓 名学 号政治面貌专业名班 名入学年份电 话家庭住址籍 贯职 务宿舍住址学 院班内序号关联关联关联登陆信息表用户名密码身份选修课成绩表必修课成绩表课程表id必修课程选修课程id学号姓名专业学期课程成绩id学号专业学期课程成绩姓名第四章 程序设计与编码 4.1 开发平台与工具本次系统设计,是在

21、windows xp系统下,基于visual studio 2008环境下,使用visual basic语言进行编程,通过与acess 2003数据库连接,使整个系统能更加完美的得以实现。4.2 程序设计4.2.1 登录模块程序设计本模块主要是用户通过学生信息管理系统的首页登录进入该系统。用户输入正确的用户名和密码,系统会根据用户的身份进行相应权限划分;如果登录信息有错误,则系统提示登入错误的信息,并且禁止系统用户进行任何操作。学生信息管理系统的登录主页面如图4.1所示。 图4.1 学生信息管理系统登录首页用户在登录页面写好用户名和密码,选择登录,登录成功则跳转到系统的首页,否则提示错误信息。

22、代码如下:if frm1.dialogresult = windows.forms.dialogresult.ok then if frm1.shenfen.text = 访客 then shell(explorer.exe /, 1) me.close() exit sub elseif frm1.shenfen.text = 学生 then studentlogin.show() exit sub elseif frm1.txtusername.text = then msgbox(用户名不能为空!, msgboxstyle.okonly + m

23、sgboxstyle.exclamation, information.) show_login() exit sub elseif frm1.txtpassword.text = then msgbox(密码不能为空!, msgboxstyle.okonly + msgboxstyle.exclamation, information.) show_login() exit sub elseif frm1.shenfen.text = 请选择 then msgbox(请选择身份!, msgboxstyle.okonly + msgboxstyle.exclamation, informati

24、on.) show_login() exit sub end if dim tablename as string = 登录信息表 dim strr as string strr = select 用户名,密码,身份from 登录信息表where(用户名= & frm1.txtusername.text & ) try commonmodule.sqlopera(strr, tablename) if (commonmodule.myrow.item(1) = frm1.txtpassword.text) and (commonmodule.myrow.item(2) = frm1.shenf

25、en.text) then dim str as string str = application.startuppath() me.backgroundimage = drawing.image.fromfile(str & 8.jpg) me.icon = new icon(str & 1.ico) timer1.start() timer2.start() me.show() elseif (commonmodule.myrow.item(1) = frm1.txtpassword.text) then msgbox(身份错误!, msgboxstyle.okonly + msgboxs

26、tyle.exclamation, information.) show_login()exit sub elseif (commonmodule.myrow.item(2) = frm1.shenfen.text) then msgbox(密码错误!, msgboxstyle.okonly + msgboxstyle.exclamation, information.) show_login() exit sub else msgbox(身份或密码错误!, msgboxstyle.okonly + msgboxstyle.exclamation, information.) show_log

27、in() exit sub end if catch ex as exception msgbox(没有该用户!, msgboxstyle.exclamation + msgboxstyle.okonly, information.) show_login() exit sub end try elseif frm1.dialogresult = windows.forms.dialogresult.cancel then if messagebox.show(你真的不登录学生信息管理系统吗?, 退出系统提示信息, _ messageboxbuttons.yesno, messageboxic

28、on.information) = msgboxresult.yes then application.exit() end if end if4.2.2 管理员功能模块设计本模块中最主要的是管理系统用户,设置用户信息等操作,其中管理系统用户包括对他们进行添加,修改,删除及查询操作。其中系统管理员对系统用户进行管理的操作页面如下图(4.2)所示: 图4.2管理员管理用户操作界面 用户管理添加用户、删除用户、修改用户密码添加用户是管理员的专有权限,其操作页面如下图(4.3)图(4.4)图(4.5)所示: 图4.3 图4.4 图4.5添加代码如下:dim tablename as s

29、tring = 登录信息表 dim strr as string strr = select 用户名,密码 from 登录信息表 try if textbox1.text = then msgbox(请输入用户名!, msgboxstyle.okonly + msgboxstyle.information, information.) textbox1.focus() exit sub end if if textbox1.text = then msgbox(请输入密码!, msgboxstyle.okonly + msgboxstyle.information, information.)

30、 textbox2.focus() exit sub end if if textbox2.text = textbox3.text then commonmodule.sqlopera(strr, tablename) dim addrow as datarow = commonmodule.mytable.newrow addrow.item(0) = trim(textbox1.text) addrow.item(1) = trim(textbox2.text) mytable.rows.add(addrow) commonmodule.mycmdbuilder = new oledb.

31、oledbcommandbuilder(commonmodule.mydap) commonmodule.mydap.update(commonmodule.mydataset, tablename) msgbox(添加成功!, msgboxstyle.okonly + msgboxstyle.information, information.) textbox1.text = textbox2.text = textbox3.text = else msgbox(两次输入的密码不匹配,请重新输入!, msgboxstyle.okonly + msgboxstyle.information,

32、information.) textbox3.focus() end if catch ex as exception msgbox(err.description, msgboxstyle.okonly + msgboxstyle.exclamation, information.) end try删除用户代码如下:if commonmodule.myrow.item(1) = textbox1.text then try dim str as string str = select * from 登录信息表 commonmodule.sqlopera(str, tablename) com

33、monmodule.mytable.rows(currentrow).delete() if msgbox(确定删除该用户吗?, msgboxstyle.question + msgboxstyle.okcancel + msgboxstyle.defaultbutton2, information.) = msgboxresult.ok then dim cbuild as new oledb.oledbcommandbuilder(commonmodule.mydap) commonmodule.mydap.insertcommand = cbuild.getinsertcommand c

34、ommonmodule.mydap.deletecommand = cbuild.getdeletecommand commonmodule.mydap.updatecommand = cbuild.getupdatecommand commonmodule.mycmdbuilder = new oledb.oledbcommandbuilder(commonmodule.mydap) commonmodule.mydap.update(commonmodule.mydataset, 登录信息表) msgbox(删除成功!, msgboxstyle.information + msgboxst

35、yle.okonly, infoemation.) combobox1.items.clear() textbox1.text = datashow() end if catch ex as exception msgbox(ex.message) end try else msgbox(密码错误!不能删除!, msgboxstyle.okonly + msgboxstyle.exclamation, information.) end if end sub public sub datashow() dim tablename as string = 登录信息表 dim strr as st

36、ring strr = select 用户名 from 登录信息表 try commonmodule.sqlopera(strr, tablename) dim count as int32 = commonmodule.mytable.rows.count dim i as int32 = 0 for i = 0 to count - 1 combobox1.items.add(commonmodule.mytable.rows.item(i).item(0).tostring() next catch ex as exception msgbox(ex.message) end try修改

37、用户密码代码如下:if textbox2.text = commonmodule.myrow.item(1).tostring then try if textbox3.text = textbox4.text then commonmodule.myrow.item(1) = trim(textbox3.text) msgbox(密码修改成功!, msgboxstyle.information + msgboxstyle.okonly, information.) dim cbuilder as new oledb.oledbcommandbuilder(commonmodule.mydap

38、) commonmodule.mydap.insertcommand = cbuilder.getinsertcommand commonmodule.mydap.deletecommand = cbuilder.getdeletecommand commonmodule.mydap.updatecommand = cbuilder.getupdatecommand commonmodule.mycmdbuilder = new oledb.oledbcommandbuilder(commonmodule.mydap) commonmodule.mydap.update(commonmodul

39、e.mydataset, 登录信息表) textbox1.text = textbox2.text = textbox3.text = textbox4.text = textbox1.focus() else msgbox(两次输入密码不相同!请重新输入!, msgboxstyle.information + msgboxstyle.okonly, information.) textbox2.text = textbox3.text = textbox4.text = textbox2.focus() exit sub end if catch ex as exception msgbox

40、(ex.message) end try elsemsgbox(原密码输入错误!请重新输入!, msgboxstyle.information + msgboxstyle.okonly, information.) textbox4.text = textbox2.text = textbox3.text = textbox2.focus() end if 新生注册这是管理员添加修改新进学生信息的最为重要模块,如果管理员没有这个功能,学生信息管理系统就不完美地实现最基本的功能了。新生注册界面如图(4.6)所示: 图4.6 新生注册界面主代码如下: dim tablename as

41、 string = 学生信息表 dim strr as string strr = select * from 学生信息表 where(学号= & txtid.text & ) try commonmodule.sqlopera(strr, tablename) dim count as integer = commonmodule.mytable.rows.count if count 0 then msgbox(学生信息表中已经存在该学号的学生信息!, msgboxstyle.okonly + msgboxstyle.information, information.) exit sub

42、else datashow() end if catch ex as exception msgbox(ex.message) end try end sub private sub button5_click(byval sender as system.object, byval e as system.eventargs) handles button5.click me.close() end sub public sub datashow() dim tablename as string = 学生信息表 dim strr as string strr = select 学号,姓名,

43、性别,出生年月,民族,籍贯,家庭住址,电话,入学年份,班名,专业名,政治面貌,职务,宿舍住址,班内序号 from 学生信息表 commonmodule.sqlopera(strr, tablename) if txtid.text = then msgbox(请输入学号!, msgboxstyle.okonly + msgboxstyle.information, information.) txtid.focus() exit sub end if if txtname.text = then msgbox(请输入姓名!, msgboxstyle.okonly + msgboxstyle.i

44、nformation, information.) txtname.focus() exit sub end if if txtsex.text = then msgbox(请输入性别!, msgboxstyle.okonly + msgboxstyle.information, information.) txtsex.focus() exit sub end if if txtbirthyear.text = then msgbox(请输入出生年份!, msgboxstyle.okonly + msgboxstyle.information, information.) txtbirthyear.focus() exit sub end if if txtbirthmonth.text = then msgbox(请输入出生月份!, msgboxstyle.okonly + msgboxstyle.information, information.) txtbirthmonth.focus() exit sub end if if txtnati

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论