学生课程管理系统课件.ppt

上传人:peixunshi 文档编号:12993625 上传时间:2021-12-10 格式:PPT 页数:109 大小:729.50KB
返回 下载 相关 举报
学生课程管理系统课件.ppt_第1页
第1页 / 共109页
学生课程管理系统课件.ppt_第2页
第2页 / 共109页
学生课程管理系统课件.ppt_第3页
第3页 / 共109页
学生课程管理系统课件.ppt_第4页
第4页 / 共109页
学生课程管理系统课件.ppt_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《学生课程管理系统课件.ppt》由会员分享,可在线阅读,更多相关《学生课程管理系统课件.ppt(109页珍藏版)》请在三一文库上搜索。

1、学生课程管理系统,1,ASP.NET程序设计教程第12章 程序设计实例,学生课程管理系统,2,内容提要,本章介绍一个学生课程管理系统,目标是提高学生选课和成绩管理工作的效率,围绕此管理所需要的学生个人信息、课程和任课教师信息、所选课程信息进行管理及维护。学生可以通过此系统进行个人信息、考试成绩查询以及完成选课功能。系统开发的总体任务是实现学生选课和成绩管理的系统化、规范化,学生课程管理系统,3,12.1 系统总体设计,12.1.1 系统功能描述学生课程管理系统的功能包括: 管理员的操作功能 学生的操作功能,学生课程管理系统,4,12.1.1 系统功能描述,管理员的操作功能。管理员权限最大,可以

2、对学生、班级、课程等情况进行统一的管理,细分如下:学生信息的浏览;学生信息的添加;学生信息的修改、删除。(2) 班级管理信息的浏览;班级管理信息的添加;班级管理信息的修改、删除。(3) 教师信息的添加;教师权限的修改;管理员可将教师的权限设为管理员。(4) 学校基本课程的浏览;学校基本课程的添加;学校基本课程修改、删除。,学生课程管理系统,5,(5) 学校对所设课程进行教师分配。(6) 学生成绩信息的浏览与统计,可按成绩具体范围(如系、班级等)、课号、年度、统计内容方面对成绩进行统计;学生成绩信息的添加;学生成绩信息的修改、删除。(7) 学生选课信息的管理,包括修改与删除;学生选课人数的统计。

3、(8) 为了保证系统的安全性,除了管理员用户,不允许其他用户进入该模块。,12.1.1 系统功能描述,学生课程管理系统,6,学生的操作功能。学生只是利用此系统进行与自己有关的信息查询、输入等,不能操作和修改其他信息,学生所具有的操作功能如下:浏览个人基本信息;学生登录系统后,修改个人信息,为了保证系统的安全性,学生只能修改个人密码;浏览课程信息,进行选课等。(2) 学生利用此系统选修课程,在选课过程中,学生可查询待选课程的基本信息及教师情况,并可浏览截止当前选此课的人数;浏览个人的选课情况;浏览个人成绩信息。,12.1.1 系统功能描述,学生课程管理系统,7,12.1.2 系统性能,一般的性能

4、需求是指相互消息传递顺利,协议分析正确,界面友好,运行时间满足使用需要,安全性得到完全保证。就实际情况,在高系统配置、高网络带宽很容易得到保证的情况下,我们最需要考虑的性能需求就是系统安全性问题。要限定相应的目录访问,如其他用户不能随意访问管理员目录。进行了认证与授权。尤其要注意认证,在此使用forms验证,简单地说就是确定谁是特定用户,并针对安全性验证该用户的身份。在识别用户之后,就要利用一种方法向用户授权,从而能够使用系统的特定功能。也就是说,需要一种方法来决定允许特定用户进行什么样的操作。在配置文件Web.config中进行了相关的设置。,学生课程管理系统,8,12.2 系统功能模块分析

5、,学生课程管理系统的主要功能包括: 用户(管理员)的管理,含学生、教师、课程、班级、选课、成绩等有关信息的管理 学生对个人信息的管理等功能,含修改密码、课程信息、选课操作、所选课程、成绩查询等功能,学生课程管理系统,9,系统模块图,学生课程管理系统功能结构图设计如图所示,12.2 系统功能模块分析,学生课程管理系统,10,12.2.1 用户(管理员)管理模块,该模块主要由6个子模块构成,主要负责管理员、教师以及学生信息等相关的管理功能 学生管理子模块 教师管理子模块 课程管理模块 班级管理模块 选课管理模块 成绩管理模块 管理员与教师管理子模块,学生课程管理系统,11,12.2.2 学生操作模

6、块,学生只能进入此模块,该模块主要有5个方面的功能。可操作有关个人的信息,如: 修改个人的登录密码 浏览相关的课程信息 进行选课操作 查看自己已经选修的课程 查询自己的成绩,学生课程管理系统,12,12.3 数据库设计和建立,用户信息主要有用户登录号、用户密码、用户权限代码,读者可根据自己的具体需要添加字段,表12.1显示了表中各个字段的数据类型、大小以及简短描述,表12.1 用户信息数据表(Users),学生课程管理系统,13,在系统中,最重要的对象是学生,系统设计了学生信息数据表(student),用于存储本校所有学生信息,其中包括在校生,也包括已毕业学生。表12.2中显示了表中各个字段的

7、数据类型、大小以及简短描述,表12.2 学生信息数据表(Student),12.3 数据库设计和建立,学生课程管理系统,14,表12.2 学生信息数据表(Student),12.3 数据库设计和建立,学生课程管理系统,15,学生所在班级信息相对独立,系统用班级信息数据表(class)记录本学校所有班级信息。表12.3中显示了表中各个字段的数据类型、大小以及简短描述,表12.3 班级信息数据表(Class),12.3 数据库设计和建立,学生课程管理系统,16,系统构建教师信息数据表(teacher)用来存储本校所有教师信息,教师信息表给出一个较为简单的结构。表12.4显示了表中各个字段的数据类型

8、、大小以及简短描述,表12.4 教师信息数据表(teacher),12.3 数据库设计和建立,学生课程管理系统,17,每一个教师讲授什么课程都有记录,而且一门课可能会有多个老师授课。因此必须包括课程名称、年度、学期、班级号等,以便管理员或学生查询信息,系统采用教师课程记录数据表(teacher_course)记录以上信息。如表12.5所示表中各个字段的数据类型、大小以及简短描述,12.3 数据库设计和建立,学生课程管理系统,18,表12.5 教师课程记录数据表(teacher_course),12.3 数据库设计和建立,学生课程管理系统,19,学生总是离不开课程,系统设计了课程信息数据表(co

9、urse),用于存储本校所有课程信息,其中包括课程类型、学分等。表12.6显示了表中各个字段的数据类型、大小以及简短描述。,12.3 数据库设计和建立,学生课程管理系统,20,表12.6 课程信息数据表(teacher_course),12.3 数据库设计和建立,学生课程管理系统,21,学生所学课程都会有成绩,并且每个学生每一门课只有一个成绩。系统设计了学生课程信息数据表(studentcourse),用于存储本校所有学生所学课程信息,表12.7显示了表中各个字段的数据类型、大小以及简短描述。,12.3 数据库设计和建立,学生课程管理系统,22,表12.7 学生课程记录数据表(student_

10、course),12.3 数据库设计和建立,学生课程管理系统,23,系统使用Microsoft SQL Server 2000建立数据库,库名为S_Class。库中设计的七个表及表间相关关系如图12.2所示。,12.3 数据库设计和建立,学生课程管理系统,24,12.3 数据库设计和建立,构建了数据库的表结构后,接下来创建负责表中信息选择、添加、更新以及删除的相关存储过程。系统使用了几个存储过程。具体操作: select_student_1存储过程 Insert_student_1存储过程,学生课程管理系统,25,select_student_1存储过程,以下代码表示了这一存储过程: CREA

11、TE PROCEDURE select_student_l (Student_id varchar(50) ) AS select * from student where Student_id=Student_id,学生课程管理系统,26,Insert_student_1存储过程,以下代码表示了这一存储过程: CREATE PROCEDURE insert_student_l (Student_id varchar(50), Student_name varchar(50), Student_sex char(5), Student_nation char(5), Student_birth

12、day datetime, StudenLtime datetime, Student classid varchar(50), Student_home varchar(50), Student_else varchar(50),学生课程管理系统,27,Insert_student_1存储过程,AS INSERT INTO Student_Class.dbo.student ( Student_id, Student_name, Student_sex, Student_nation, Student_birthday, Student_time, Student_classid, Stud

13、ent_home, Student_else),学生课程管理系统,28,Insert_student_1存储过程,VALUES ( Student id, Student_name, Student_sex, Student_nation, Student_birthday, Student_time, Student_classid, Student_home, Student_else),学生课程管理系统,29,12.4 系统配置,12.4.1 连接数据库 对于数据库调用字符串,由于数据库使用的是本地数据库,Data Source(数据源)设置为(local);UID(用户ID)赋值为系统

14、默认的sa:PWD(连接密码)赋值为空;DATABASE(数据库名称)设为我们上一节中创建的S_Class。Web.Config配置文档的相关主要代码如下: ,学生课程管理系统,30,12.4.2 设置用户验证和授权,先在Web.Config中设置用户名和密码,代码清单如下: ,学生课程管理系统,31,12.4.2 设置用户验证和授权,然后设置目录manager的访问权限。 ,学生课程管理系统,32,12.5 主要界面及相关代码分析,12.5.1 学生课程管理系统首页 学生课程管理系统首页如图12.3所示,图12.3 学生课程管理系统首页,学生课程管理系统,33,12.5.1 学生课程管理系统

15、首页,/程序清单12-1 private void Btn_enter_Click(object sender, System.EventArgs e) /从文件web.config中读取连接字符串,并连接本地计算机的S_Class数据库 String str_id= Tbx_userid.Text; string strconn= ConfigurationSettings.AppSettingsdsn; SqlConnection cn=new SqlConnection(strconn); cn.Open( ); /打开连接,学生课程管理系统,34,12.5.1 学生课程管理系统首页,/

16、构造SQL语句,检验用户名和密码是否正确 string strsql=select * from users where User_id=+Tbx_userid.Text+and User_password=+Tbx_userpwd.Text+; SqlCommand cm=new SqlCommand(strsql,cn); SqlDataReader dr=cm.ExecuteReader( ); /先检查输入的用户名和密码是否在配置文件web.config中, if(System.Web.Security.FormsAuthentication.Authenticate (this.Tb

17、x_userid.Text,this.Tbx_userpwd.Text),学生课程管理系统,35, /用户名和密码若在配置文件web.config中,则进入管理员模块。System.Web.Security.FormsAuthentication.RedirectFromLoginPage (this.Tbx_userid.Text,false); Response.Redirect(manager/student.aspx); /否则,看是否在数据库表中,若在表中,进入学生 else if(dr.Read( ) /保存当前用户名到Session。 SessionUser_id=drUser_

18、id; Sessionuser_power=drUser_power;,12.5.1 学生课程管理系统首页,学生课程管理系统,36,12.5.1 学生课程管理系统首页,if(int)SessionUser_power=0) /进入学生操作页面 Response.Redirect(query.aspx); else Lbl_note.Text=对不起,登陆失败!; cn.Close( ); /关闭连接 ,学生课程管理系统,37,12.5.2 管理员操作模块,12.5.2.1 学生信息管理页面学生信息维护页面窗体如图12.4所示,其所属的学生信息维护模块是学生课程管理系统中管理学生学籍的部分,图1

19、2.4 学生信息维护页面,学生课程管理系统,38,12.5.2.1 学生信息管理页面,学生信息维护页面的后台支持类(student.aspx.cs)主要代码如下:/程序清单12-2 namespace Student_Class / / student 的摘要说明。 / public class student : System.Web.UI.Page SqlConnection cn; string strsql; private void Page_Load(object sender, System.EventArgs e) ,学生课程管理系统,39,/ 在此处放置用户代码以初始化页面

20、string strconn= ConfigurationSettings.AppSettingsdsn; cn=new SqlConnection(strconn); if(!IsPostBack) Bindgrid( ); private void Btn_search_Click(object sender, System.EventArgs e) Pnl_sort.Visible=true; private void Btn_all_Click(object sender, System.EventArgs e) ,12.5.2.1 学生信息管理页面,学生课程管理系统,40,Pnl_s

21、ort.Visible=false; Bindgrid( ); public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e) Dgd_student.CurrentPageIndex=e.NewPageIndex; Bindgrid( ); public void DataGrid_cancel(object sender,DataGridCommandEventArgs e) Dgd_student.EditItemIndex=-1;,12.5.2.1 学生信息管理页面,学生课程管理系统,41,Bindgrid

22、( ); public void DataGrid_edit(object sender,DataGridCommandEventArgs e) Dgd_student.EditItemIndex=(int)e.Item.ItemIndex; Bindgrid( ); public void DataGrid_update(object sender,DataGridCommandEventArgs e) string strsql=update student set Student_name=Student_name,12.5.2.1 学生信息管理页面,学生课程管理系统,42,Studen

23、t_sex=Student_sex,Student_nation=Student_nation,Student_birthday=Student_birthday,Student_time=Student_time,Student_classid=Student_classid,Student_home=Student_home, Student_else=Student_else where Student_id=Student_id; SqlCommand cm=new SqlCommand(strsql,cn); try cm.Parameters.Add(new SqlParamete

24、r (Student_name,SqlDbType.VarChar,50);,12.5.2.1 学生信息管理页面,学生课程管理系统,43,cm.Parameters.Add(new SqlParameter(Student_sex,SqlDbType.Char,10); cm.Parameters.Add(new SqlParameter (Student_nation,SqlDbType.Char,10); cm.Parameters.Add(new SqlParameter (Student_birthday,SqlDbType.DateTime,8); cm.Parameters.Add

25、(new SqlParameter (Student_time,SqlDbType.DateTime,8); cm.Parameters.Add(new SqlParameter (Student_classid,SqlDbType.VarChar,50); cm.Parameters.Add(new SqlParameter (Student_home,SqlDbType.VarChar,50);,12.5.2.1 学生信息管理页面,学生课程管理系统,44,cm.Parameters.Add(new SqlParameter (Student_else,SqlDbType.VarChar,5

26、0); cm.Parameters.Add(new SqlParameter (Student_id,SqlDbType.VarChar,50); string colvalue=(TextBox)e.Item.Cells1.Controls0).Text; cm.ParametersStudent_name.Value=colvalue; colvalue=(TextBox)e.Item.Cells2.Controls0).Text; cm.ParametersStudent_sex.Value=colvalue; colvalue=(TextBox)e.Item.Cells3.Contro

27、ls0).Text; cm.ParametersStudent_nation.Value=colvalue; colvalue=(TextBox)e.Item.Cells4.Controls0).Text;,12.5.2.1 学生信息管理页面,学生课程管理系统,45,cm.ParametersStudent_birthday.Value=colvalue; colvalue=(TextBox)e.Item.Cells5.Controls0).Text; cm.ParametersStudent_time.Value=colvalue; colvalue=(TextBox)e.Item.Cell

28、s6.Controls0).Text; cm.ParametersStudent_classid.Value=colvalue; colvalue=(TextBox)e.Item.Cells7.Controls0).Text; cm.ParametersStudent_home.Value=colvalue; colvalue=(TextBox)e.Item.Cells8.Controls0).Text; cm.ParametersStudent_else.Value=colvalue; cm.ParametersStudent_id.Value= Dgd_student.DataKeys (

29、int)e.Item.ItemIndex;,12.5.2.1 学生信息管理页面,学生课程管理系统,46,cm.Connection.Open( ); cm.ExecuteNonQuery( ); Lbl_note.Text=编辑成功; Dgd_student.EditItemIndex=-1; catch Lbl_note.Text=编辑失败,请检查输入!; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); ,12.5.2.1 学生信息管理页面,学生课程管理系统,47,public void DataGrid_delet

30、e(object sender,DataGridCommandEventArgs e) string strsql=delete from student where Student_id=userid; SqlCommand cm=new SqlCommand(strsql,cn); cm.Parameters.Add(new SqlParameter(userid,SqlDbType.VarChar,50); cm.Parametersuserid.Value= Dgd_student.DataKeys(int)e.Item.ItemIndex; cm.Connection.Open( )

31、; try ,12.5.2.1 学生信息管理页面,学生课程管理系统,48,cm.ExecuteNonQuery( ); Lbl_note.Text=删除成功; catch(SqlException) Lbl_note.Text=删除失败; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); public void Bindgrid( ) strsql=select * from student;,12.5.2.1 学生信息管理页面,学生课程管理系统,49,SqlDataAdapter da=new SqlDataAdapt

32、er(strsql,cn); DataSet ds=new DataSet( ); da.Fill(ds); Dgd_student.DataSource=ds; Dgd_student.DataBind( ); private void Btn_ok_Click(object sender, System.EventArgs e) strsql=select * from student where Student_id=+Tbx_sortid.Text+or Student_name=+Tbx_name.Text+; SqlDataAdapter da=new SqlDataAdapter

33、(strsql,cn);,12.5.2.1 学生信息管理页面,学生课程管理系统,50,DataSet ds=new DataSet( ); da.Fill(ds); Dgd_student.DataSource=ds; Dgd_student.DataBind( ); private void Lbtn_course_Click(object sender, System.EventArgs e) Response.Redirect(course.aspx); ,12.5.2.1 学生信息管理页面,学生课程管理系统,51,12.5.2.2 课程信息管理主页面,课程信息管理页面窗体如图12.5所

34、示,它和学生信息维护页面非常相似,图12.5 课程信息管理页面,学生课程管理系统,52,12.5.2.2 课程信息管理主页面,课程信息管理页的后台支持类(course.aspx.cs)的主要代码:/程序清单12-3 namespace Student_Class public class course : System.Web.UI.Page SqlConnection cn; string strsql; private void Page_Load(object sender, System.EventArgs e) / 在此处放置用户代码以初始化页面 string strconn= Co

35、nfigurationSettings.AppSettingsdsn;,学生课程管理系统,53,12.5.2.2 课程信息管理主页面,cn=new SqlConnection(strconn); if(!IsPostBack) Bindgrid( ); public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e) Dgd_course.CurrentPageIndex=e.NewPageIndex; Bindgrid( ); public void DataGrid_edit(object sender,Data

36、GridCommandEventArgs e) ,学生课程管理系统,54,12.5.2.2 课程信息管理主页面,Dgd_course.EditItemIndex=(int)e.Item.ItemIndex; Bindgrid( ); public void DataGrid_cancel(object sender,DataGridCommandEventArgs e) Dgd_course.EditItemIndex=-1; Bindgrid( ); public void DataGrid_delete(object sender,DataGridCommandEventArgs e) /

37、,学生课程管理系统,55,12.5.2.2 课程信息管理主页面,string strsql=delete from course where Course_id=course_id; SqlCommand cm=new SqlCommand(strsql,cn); cm.Parameters.Add(new SqlParameter(course_id,SqlDbType.VarChar,50); cm.Parameterscourse_id.Value=Dgd_course.DataKeys (int)e.Item.ItemIndex;/ cm.Connection.Open( ); try

38、 ,学生课程管理系统,56,12.5.2.2 课程信息管理主页面,cm.ExecuteNonQuery( ); Lbl_note.Text=删除成功; catch(SqlException) Lbl_note.Text=删除失败; Lbl_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); ,学生课程管理系统,57,12.5.2.2 课程信息管理主页面,public void DataGrid_update(object sender,DataGridCommandEventArgs e) string strsql=update

39、 course set Course_name=Course_name, Course_period=Course_period,Course_credit=Course_credit, Course_kind=Course_kind where Course_id=Course_id; SqlCommand cm=new SqlCommand(strsql,cn); cm.Parameters.Add(new SqlParameter (Course_name,SqlDbType.VarChar,50);,学生课程管理系统,58,12.5.2.2 课程信息管理主页面,cm.Parameter

40、s.Add(new SqlParameter(Course_period,SqlDbType.Int,4); cm.Parameters.Add(new SqlParameter(Course_credit,SqlDbType.Int,4); cm.Parameters.Add(new SqlParameter(Course_kind,SqlDbType.Int,4); cm.Parameters.Add(new SqlParameter(Course_id,SqlDbType.VarChar,50); string colvalue=(TextBox)e.Item.Cells1.Contro

41、ls0).Text; cm.ParametersCourse_name.Value=colvalue;colvalue=(TextBox)e.Item.Cells2.Controls0).Text;,学生课程管理系统,59,12.5.2.2 课程信息管理主页面,cm.ParametersCourse_period.Value=colvalue; colvalue=(TextBox)e.Item.Cells3.Controls0).Text; cm.ParametersCourse_credit.Value=colvalue; colvalue=(TextBox)e.Item.Cells4.Co

42、ntrols0).Text; cm.ParametersCourse_kind.Value=colvalue; cm.ParametersCourse_id.Value= Dgd_course.DataKeys(int)e.Item.ItemIndex; cm.Connection.Open( ); try cm.ExecuteNonQuery( ); Lbl_note.Text=编辑成功;,学生课程管理系统,60,12.5.2.2 课程信息管理主页面,Dgd_course.EditItemIndex=-1; catch(SqlException) Lbl_note.Text=编辑失败; Lb

43、l_note.Stylecolor=red; cm.Connection.Close( ); Bindgrid( ); public void Bindgrid( ) strsql=select * from course;,学生课程管理系统,61,12.5.2.2 课程信息管理主页面,SqlDataAdapter da=new SqlDataAdapter(strsql,cn); DataSet ds=new DataSet( ); da.Fill(ds); Dgd_course.DataSource=ds; Dgd_course.DataBind( ); private void Btn_

44、search_Click(object sender, System.EventArgs e) strsql=select * from course where Course_id=+Tbx_id.Text+or Course_name=+Tbx_name.Text+;,学生课程管理系统,62,12.5.2.2 课程信息管理主页面,SqlDataAdapter da=new SqlDataAdapter(strsql,cn); DataSet ds=new DataSet( ); da.Fill(ds); Dgd_course.DataSource=ds; Dgd_course.DataBi

45、nd( ); ,学生课程管理系统,63,12.5.2.3 成绩信息管理页面,成绩管理页面窗体如图12.6所示,该页面完成的功能较多,包括按选定的条件进行限定条件的成绩查询,图12.6 成绩管理页面,学生课程管理系统,64,12.5.2.3 成绩信息管理页面,成绩管理页面的后台支持类(grade_manage.aspx.cs)的统计内容的主要相关代码,读者可以重点参见SQL语句来理解。/程序清单12-4 namespace Student_Class public class grade_manage : System.Web.UI.Page SqlConnection cn; string s

46、trsql; private void Page_Load(object sender, System.EventArgs e) ,学生课程管理系统,65,12.5.2.3 成绩信息管理页面,/ 在此处放置用户代码以初始化页面 string strconn= ConfigurationSettings.AppSettingsdsn; cn=new SqlConnection(strconn); public void DataGrid_Page(object sender,DataGridPageChangedEventArgs e) Dgd_grade.CurrentPageIndex=e.

47、NewPageIndex; Bindgrid( ); private void Btn_count_Click(object sender, System.EventArgs e) ,学生课程管理系统,66,12.5.2.3 成绩信息管理页面,if(Ddl_stat.SelectedItem.Value=系别) if(Ddl_content.SelectedItem.Text=总人数) strsql=select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student,class where Cour

48、se_id=+Tbx_classid.Text+ and student_course.Course_year=+Tbx_year.Text+and student_course. Student_id=student.Student_id and student.Student_classid=class.Class_id and class.Class_department=+Tbx_area.Text+ ; ,学生课程管理系统,67,12.5.2.3 成绩信息管理页面,else if(Ddl_content.SelectedItem.Text=优秀人数) strsql=select AV

49、G(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student,class where Course_id=+Tbx_classid.Text+ and student_course.Course_year=+Tbx_year.Text+and student_course. Student_id=student.Student_id and student.Student_classid=class.Class_id and class.Class_department=+Tbx_area.Text+and S

50、tudent_grade=85; ,学生课程管理系统,68,12.5.2.3 成绩信息管理页面,else if(Ddl_content.SelectedItem.Text=不及格人数) strsql=select AVG(Student_grade),MAX(Student_grade),COUNT(*) from student_course,student,class where Course_id=+Tbx_classid.Text+ and student_course.Course_year=+Tbx_year.Text+and student_course. Student_id=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1