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

下载本文档

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

文档简介

东 北 石 油 大 学课 程 设 计课 程 WEB网站课程设计 题 目 学生毕业信息管理系统 院 系 计算机与信息技术学院 专业班级 计科12-4 学生姓名 李东佳 学生学号 120702140412 指导教师 程亮 2014年7月25日东北石油大学课程设计任务书课程 web网站课程设计题目 学生毕业信息管理系统专业 计算机科学与技术 姓名 李东佳 学号 120702140412一、主要内容:开发一个学生毕业信息管理系统。设计并实现这样的一个系统主要是锻炼学生采用面向对象方法、设计思路等开发软件的能力。二、基本要求:系统主要有以下功能:登录、数据管理等。登录:包含用户登录信息、用户注册信息;数据管理:包括两方面,一是对各表的查询,二是对表进行删除添加操作;除了实现上述功能以外,毕业生信息系统还具有友好、简洁的界面,安全性要高,稳定性要强。三、主要参考资料:1梅玫.物资库存的计算机管理M.哈尔滨.黑龙江科技信息出版社,2009.2萨师煊,张旺.数据库系统概论M.北京.高等教育出版社., 2000.3王华椰.Visual C#.NET范例入门与提高M.北京.清华大学出版社,2003.4李佳, 付强, 丁宁.C#开发技术大全M.清华大学出版社,2009.5张希庆.sql计算机管理M.哈尔滨.黑龙江科技信息出版社,2007.完成期限 21-22周 指导教师 程亮 专业负责人 富宇 2014 年 7 月 14日目 录第1章 系统分析11.1 开发背景11.2 系统需求分析11.3 开发环境2第2章 系统设计32.1 问题需求分析32.2 系统数据表设计32.3 系统功能模块图5第3章 系统实现73.1 登录模块73.2 管理员界面9第4 章 系统测试164.1软件测试基础理论164.2系统测试174.2系统评价18结论19参考文献20 第1章 系统分析1.1 开发背景Internet的快速发展,使互联网已成为人们快速获取、发布和传递信息的重要渠道,显然它已成为社会生活的一部分。因特网给信息交流带来了巨大影响,网络信息化进入一个崭新的阶段。而根据统计,中国年都有近120多万名高校毕业生毕业,高峰时期将近160万。因而对毕业生信息的管理要求也越来越高。毕业生信息管理系统就是基于这样一种现实提出的一种利用互联网络的快速、高效、方便、快捷等特点来帮助高校管理人员更好更快的完成大批量毕业生信息的管理任务的管理系统网站。网站中用户分不同角色登录,登录后用户可以根据自己的权限和需要进行各自不同的操作。本网站提供了毕业生和管理员两种种角色的权限管理功能1。毕业生信息管理系统的网站的设计不仅仅是为了满足高校对大批量毕业生信息管理的需要,更是适应当今信息爆炸时代的信息高效快速管理的需要。也是高校和毕业生等各方受益于科学技术的一个典型。随着科学技术,具体的说是网络技术的高速发展,利用网络特别是网站的形式来满足办公生活等方面的需求已成为必然的趋势。而毕业生信息管理系统网站的出现也是适应这种趋势的一种产物。本系统采用ASP.NET作为开发环境,Sql2005作为数据库服务器,实现了各用户对信息的查询及信息的修改等功能。前台页面的模板自定义和生成,以及后台用户管理系统实现了对信息的管理2。完成了一个毕业生管理系统的基本功能。前台页面全部生成HTML静态页面,杜绝了一般用户直接操作数据库的可能,能够承受大量用户同时浏览的压力,满足大部分毕业生管理系统的需求。1.2 系统需求分析毕业生信息管理系统的基本职能是完成对毕业生各项信息的合理、有效和安全的管理。并且是毕业生能通过该网站完成对信息的查询和完善,以及毕业生和管理员之间的信息的有效传递。因此,本网站设计三种用户角色,分别是毕业生、和管理员。同时为各个角色设置相应的权限的操作。本网站设计使用浏览器、服务器的体系结构,同时使用适应于中小型数据存储处理的SqlServer2005,数据库计算机上只要配置了Web浏览器就可以以人机交互的方式方便而快捷的进行各自所需的信息处理。同时,网站也可以进行快速的响应,提高了信息处理的效率。本网站的数据对象的具体内容的设计需要结合于用户的具体要求来实现。通过访谈等方式来进行数据对象的整合和最终的数据对象的抽象,使得最终的数据对象结果尽量满足用户的需求。本网站主要的数据对象有毕业生数据模型,包括毕业生信息,通知信息;管理员数据模型,主要包括对毕业生和管理员的管理信息等。1.3 开发环境数据库是“按照数据结构来组织、存储和管理数据的仓库”。在信息管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。毕业生信息管理系统的管理员、学生信息都存放在表中,这张表就可以看成是一个数据库。有了这个数据仓库就可以根据需要随时掌握用户信息,也可以也可以随时更新新闻的具体内容。这些工作如果都能在计算机上自动进行,那系统管理就可以达到极高的水平。由于用到的数据表格多,二而且对于新闻的具体内容需要海量的存储空间,如新闻基本信息的变动,选择了SQL Server作为数据库开发,而没有选用Access。而SQL Server是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用SQL Server数据库。本系统具体采用的是SQL Server20053。此外该系统是基于C#语言进行编码,C#是微软公司在2000年6月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究院Anders Hejlsberg的最新成果。它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角4。C#编程语言是微软在.NET计划中重要的开发语言,它具有语法简单、功能强大、快速应用、语言自由,有多种Web服务器控件,支持跨平台,与XML相融合等优点,因此选择C#编程语言。本系统采用以下环境开发:(1)开发工具:Microsoft Visual Studio 2005(2)数据库环境: Microsoft SQL Server 2005 第2章 系统设计2.1 问题需求分析本系统的目标是开发一套院级管理系统软件,通过浏览器与后台服务器端程序连接,在完成前台程序运行时,传输给后台数据库,通过对后台数据库程序的SQL语句执行完成操作。本系统所需要实现的功能主要是通过满足以下几个方面的功能:1. 毕业研究生注册个人信息,便于学校管理和录入。2. 管理员可以统计毕业研究生的去向、就业情况等等。3. 对于忘记密码的用户,管理员可以对其进行修改和查询。2.2 系统数据表设计由于用到的数据表格多,二而且对于新闻的具体内容需要海量的存储空间,如学生及教师基本信息的变动,选择了SQL Server作为数据库开发,而没有选用Access。而SQL Server是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用SQL Server数据库。本系统具体采用的是SQL Server2005。综合以上分析,要实现上面的所有功能模块,数据库需要登录表(Login)、新闻表(News)、本科生表(bs)、全日制硕士表(qrss)、工程硕士表(gcss)等张数据表。在这些数据库表中,大部分表都是用于绑定下拉列表,这些下拉列表基本为毕业研究生注册信息某一字段。下面本文只列出登录表、新闻表、博士表、全日制硕士表、工程硕士表几个重要表格的设计表的结构。1.登录表(Login)登录表存储用户登录信息,包括用户名、密码、角色登录类型字段。如表2-1所示。表2-1 登录表(Login)列名数据类型长度允许空备注ID自动编号长整型不允许主键User_name文本50不允许用户名Pass_word文本50不允许密码Tpye文本50不允许角色类型2.新闻表(News)新闻表存储了管理员发布消息的所有信息,包括消息题目、消息内容、消息时间字段。如表2-2所示。表2-2 新闻表(News)列名数据类型长度允许空备注news_id自动编号长整型不允许主键new_title文本50允许消息题目new_content备注允许消息内容new_time日期/时间常规时间允许消息时间3.本科生表(bs)博士存储了已经注册过的所有毕业博士的基本信息,包括学号、姓名、姓名拼音、性别、性别码、一级学科授予、二级学科等等70多字段。如表2-3所示。表2-3 本科生表(bs)列名数据类型长度允许空备注xh文本50不允许主键xm文本50允许姓名xmpy文本50允许姓名拼音xbm文本50允许性别码xb文本50允许性别yjxk文本50允许一级学科授予ejxk文本50允许二级学科.bz文本50允许备注4.全日制硕士表(qrss)全日制硕士表中存储了所有已经注册过毕业系统的全日制硕士的基本信息,包括学号、姓名、姓名拼音、性别码、性别、考试类型、学习方式等70多个字段。如表2-4所示。表2-4 全日制硕士表(qrss) 列名数据类型长度允许空备注xh文本50不允许主键xm文本50允许姓名xmpy文本50允许姓名拼音xbm文本50允许性别码xb文本50允许性别kslx文本50允许考试类型xxfs文本50允许学习方式5.工程硕士表(gcss)工程硕士表中存储了所有已经注册过毕业系统的工程硕士的基本信息,包括学号、姓名、姓名拼音、性别码、性别、考试类型、学习方式等70多个字段。如表2-5所示。表2-5 工程硕士表(gcss)列名数据类型长度允许空备注xh文本50不允许主键xm文本50允许姓名xmpy文本50允许姓名拼音xbm文本50允许性别码xb文本50允许性别kslx文本50允许考试类型xxsf文本50允许学习方式.bz文本50允许备注2.3 系统功能模块图根据需求分析的结果,将网站总分两大块,分别是管理员模块,主要完成毕业生信息的查询、修改,添加等功能;毕业生模块,主要完成毕业生的信息显示和密码等信息管理。其系统功能模块分成如图2-1所示。学生毕业信息管理系统学生模块管理员模块硕士模块本科生模块工程硕士统计就业修改信息发布信息删除信息修改密码显示信息修改密码显示信息修改密码显示信息图2-1 功能模块图学生毕业信息管理系统主要分为两个部分。登陆界面,学生信息界面和信息管理界面。登陆界面包括管理员与学生的登陆。信息管理界面包括本科生,硕士和工程硕士各项信息的查询及修改,系统流程图如图2-2所示。开始登陆验证管理员学生管理信息修改密码博士硕士工程硕士退出结束图2-2系统流程图第3章 系统实现本网站是以对毕业生的信息的管理为主要设计目标,根据需求分析和总体设计,本网站设计了三大角色功能的模块,各个模块根据各自的功能需求进行具体的功能的细分。三大模块分别是毕业生信息管理模块,教师信息管理模块和管理员模块。其中登陆模块主要是用于登录的角色的判定。下面将根据各个模块来具体进行功能的详细设计。3.1 登录模块首页通过控件实现了管理员和学生的功能。 图3-1 登陆页面主要代码如下:void binddata() string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(select * from News, conn); OleDbDataAdapter adp = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); adp.Fill(ds, link); GridView1.DataSource = ds.Tableslink.DefaultView; GridView1.DataBind(); string username = TextBox1.Text.Trim(); string password = TextBox2.Text.Trim(); string type = DropDownList1.Text.Trim(); string temp = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; string sql = select * from Login where Username= + username + and Password= + password + and Type= + type + ; OleDbConnection conn = new OleDbConnection(temp); conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); OleDbDataReader dr = cmd.ExecuteReader(); dr.Read(); if (dr.HasRows) SessionUsername = username; SessionPassword = password; if (type = 0) Response.Redirect(admin.aspx); else if (type = 1) Response.Redirect(bsst.aspx); else if (type = 2) Response.Redirect(qrssst.aspx); else Response.Redirect(gcssst.aspx); else Response.Write(alert(用户名或密码错误!);location=login.aspx ); 3.2 管理员界面该界面包括两个部分,信息管理与用户管理部分。管理中心包括新闻信息管理;用户管理部分主要实现的是所有学生信息的管理包括密码,学号,就业情况等等。3.2.1新闻信息管理首先介绍,新闻信息管理包括发布信息与删除信息两个模块,通过发布信息将信息存储到数据库中,达到与学生进行数据共享。图3-2 发布信息管理界面图3-3 发布信息管理界面部分代码如下:if (!IsPostBack) binddata(); void binddata() string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(select * from News, conn); OleDbDataAdapter adp = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); adp.Fill(ds, link); GridView1.DataSource = ds.Tableslink.DefaultView; GridView1.DataBind(); protected void Button1_Click(object sender, EventArgs e) Response.Redirect(admin.aspx); protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; string xh = GridView1.DataKeyse.RowIndex.Value.ToString(); string sql = delete from News where newsid = + xh + ; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.ExecuteNonQuery(); binddata();3.2.2学生管理该模块式学生管理模块,该部分包括学生资料管理、学生资料添加、所在院系级专业的查询,学生资料管理包括学号、姓名、性别、学号、所在学院等信息。并且可通过该学生学号查询该学生的具体信息。如图3-4所示。图3-4 学生资料管理界面代码如下: void binddata() string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(select * from News, conn); OleDbDataAdapter adp = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); adp.Fill(ds, link); GridView1.DataSource = ds.Tableslink.DefaultView; GridView1.DataBind(); protected void Button1_Click(object sender, EventArgs e) Response.Redirect(admin.aspx); protected void Button1_Click(object sender, EventArgs e) string xh = TextBox1.Text.Trim(); string xm = TextBox2.Text; string xmpy = TextBox3.Text; string xbm = TextBox4.Text; string xb = TextBox5.Text; string yjxk = TextBox6.Text; string ejxk = TextBox7.Text; string bz = TextBox8.Text; string sql = insert into bs values( + xh + , + xm + , + xmpy + , + xbm + , + xb + , + yjxk + , + ejxk + , + bz + ); string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.ExecuteNonQuery(); Response.Redirect(bs.aspx); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(admin.aspx); 该界面是学生信息添加界面,管理员可通过界面上的文本框及按钮对学生信息的录入并保存到系统中,添加后进而可以通过上一部分的功能来检测是否添加成功。如图3-5所示。图3-5 学生信息添加界面部分代码如下:protected void Button1_Click(object sender, EventArgs e) string xh = TextBox1.Text.Trim(); string xm = TextBox2.Text; string xmpy = TextBox3.Text; string xbm = TextBox4.Text; string xb = TextBox5.Text; string yjxk = TextBox6.Text; string ejxk = TextBox7.Text; string bz = TextBox8.Text; string sql = insert into bs values( + xh + , + xm + , + xmpy + , + xbm + , + xb + , + yjxk + , + ejxk + , + bz + ); string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.ExecuteNonQuery(); Response.Redirect(bs.aspx); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(admin.aspx); 该界面是学生信息查询界面,管理员可通过界面上的文本框及按钮实现到数据库中查找该学号学生细心,查找后还可以对此学生的信息进行编辑或删除等。如图3-6所示。图3-6 学生信息添加界面部分代码如下void binddata() string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(select * from News, conn); OleDbDataAdapter adp = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); adp.Fill(ds, link); GridView1.DataSource = ds.Tableslink.DefaultView; GridView1.DataBind(); :string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); string xh = TextBox1.Text.Trim(); OleDbCommand cmd = new OleDbCommand(select * from bs where xh= + xh + , conn); OleDbDataAdapter adp = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); adp.Fill(ds, link); GridView1.DataSource = ds.Tableslink.DefaultView; GridView1.DataBind();string xh = TextBox1.Text.Trim(); string xm = TextBox2.Text; string xmpy = TextBox3.Text; string xbm = TextBox4.Text; string xb = TextBox5.Text; string yjxk = TextBox6.Text; string ejxk = TextBox7.Text; string bz = TextBox8.Text; string sql = insert into bs values( + xh + , + xm + , + xmpy + , + xbm + , + xb + , + yjxk + , + ejxk + , + bz + ); string str = Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=.; OleDbConnection conn = new OleDbConnection(str); conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.ExecuteNonQuery(); Response.Redirect(bs.aspx);第4 章 系统测试4.1软件测试基础理论在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。测试的重要性:软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。 在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:1、试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;2、发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;3、试工作枯燥无味,不能引起人们的兴趣;4、试工作是艰苦而细致的工作;5、自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。 这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。 测试的目的:如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。 1、件测试是为了发现错误而执行程序的过程;2、试是为了证明程序有错,而不是证明程序无错误;3、个好的测试用例是在于它能发现至今未发现的错误;这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。测试步骤:与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:1、测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。2、测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。3、测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。4.2系统测试至此,系统的设计已经完毕,进入了系统测试阶段,进行功能测试。在已知产品所具有的功能的前提下,通过预测试来检测每个功能是否都能正确实现。系统运行从登录界面开始,键入用户类型,用户名和密码,系统判断正确,即可登录到管理员的界面,在这个界面可进行三种操作,管理员可通过点击不同功能模块分别对学生、新闻信息进行查询。同时还可以对基本信息中的各项内容进行添加,点击页面中的“添加”按钮,系统会跳转到添加的页面,键入要添加的信息后,点击该页面“确认”按钮

温馨提示

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

评论

0/150

提交评论