·  设为首页    ·  加入收藏    ·  联系我们


  您的位置:  首页  实验教学  实验指导  工商管理实验教学区
网络程序设计实验指导(二)
来源:经济管理实验教学中心    时间:2009/06/18    编辑:admin    点击:1379
[导读]

1.熟练掌握利用Session对象记载特定客户信息的技术,编制相关的验证演示程序;

2.熟练掌握利用Application对象记载所有客户信息的技术,编制相关的验证演示程序,并设计一个简单“聊天室”程序。

1.上机验证教材上的例5-1至例5-7。

2.试编写一个ASP程序,实现并显示当前网页的在线人数和计数器。

3.试编写一个ASP程序,实现一个简单的聊天室,能够显示发言人的姓名、发言内容和发言时间等。

(一)Session对象
Session指的就访问者从到达某个特定主页到离开为止的那段时间,每一访问者都会单独获得一个Session。
Session对象存储特定的用户会话所需的信息。

13. Session对象的属性:

(1)   SessionID:存储用户的Session ID
1.Timeout:Session的有效期时长

14. Session对象的方法:

2.Abandon:清除Session对象

3.Session对象的事件(与Global.asa结合使用):

⑴ Session_OnStart:一个Session对象开始前,调用该程序;
⑵ Session_OnEnd:一个Session对象结束后,调用该程序;

4.Session对象存取信息

⑴ Session对象存取变量或字符串
保存语法:Session(“Session名字”)=变量或字符串信息
从Session中调用该信息的语法:a=session(“Session名字”)
⑵ Session对象存取数组
保存数组的语法:Session(“Session数组名”)=数组变量
获取数组的语法:V_array=Session(“Session数组”)
(二)Application对象简介
Application对象记载不同客户端共享的数据。所有客户使用一个Application对象。
Application对象无有效期。从该应用程序启动直到该应用程序停止。

1.Application对象的方法

⑴ Lock:锁定
⑵ Unlock:解除锁定

2.Application对象的事件(与Global.asa结合使用):

⑴ Application_OnStart:一个Application对象开始前,调用该程序;
⑵ Application _OnEnd:一个Application对象结束后,调用该程序;

15. Application对象存取信息

⑶ Application对象存取变量或字符串
Application对象保存数据的语法:Application(“Application名字”)=变量或字符串
Application对象获取数据的语法:v_name=Application(“Application名字”)
⑷ Application对象存取数组
必须把数组当成一个整体存入和读取,只是存储时应Lock和Unlock。
⑸ 存储数组语法:Application(“Application数组名”) = 数组变量
⑹ 获取数组信息的语法:V_array = Application(“Application数组名”)
(三)实例分析:一个简单的小小聊天室
该聊天室功能较简单,仅在进入时输入昵称,然后在聊天室输入并显示输入信息。

主程序:Index.asp
输入昵称
框架程序:Chat.asp
上框架程序:Main.asp
显示发言
下框架程序:Input.asp
输入发言
退出聊天室程序:Exit.asp
选择退出

1.聊天室总体结构


 

2.主程序:Index.asp

主程序主要输入用户昵称,并检查昵称是否为空,为空则重新输入;不为空则调Chat.asp程序,进入聊天室。
其程序代码如下:
<html>
<head>
       <title>聊天室</title>
       <Script Language="JavaScript">
       <!--
       function check_Null(){
              if (document.form1.user_name.value==""){
                     alert("昵称不能为空!");
                     return false;
              }
              return true;
       }
       // -->
       </Script>
</head>
<body >
       <h2 align="center">小小聊天室</h2>
       <center>
       现在共有<%=Application("user_online")%>人在线<p>
       <form method="post" action="chat.asp" name="form1" onsubmit="JavaScript: return check_Null();">
       请输入昵称<input type="text" name="user_name" size="10">
       <input type="submit" value=" 进 入 ">
       </form>
       </center>
</body>
</html>

3.框架程序:Chat.asp

该程序首先保存用户的昵称到个人Session对象,然后把用户的一些基本信息,如IP地址、昵称、来访时间等保存到公共Application对象中,并把在线人数增加1个。最后把网页分为上、下两个框架,上框架显示发言,下框架输入发言。
程序代码如下:
<html>
<head>
       <title>小小聊天室</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
       <%
       Session("user_name")=Request("user_name")    将用户昵称保存到session中
       下面几句返回来访者信息
       Dim sayStr
       sayStr="来自" & Request.ServerVariables("Remote_Addr")& "的"   来访者IP地址
       sayStr=sayStr & "<b>" & Session("user_name") & "</b>"           来访者昵称
       sayStr=sayStr & "于" & Time & "大驾光临"                      来访时间
       sayStr="<font color=red>" & sayStr & "</font>"                  红色显示
       下面几句将来访信息保存到Application中
       Application.Lock                                            先锁定
       Application("show")= sayStr & "<br>" & Application("show")       返回聊天信息
       Application("user_online")=Application("user_online")+1           在线人数加1       Application.Unlock                                          解除锁定
       %>
       <frameset rows="*,14%">
              <frame name="main" src="main.asp" >
              <frame name="input" src="input.asp">
              <noframes>
                     <body scroll="no">
                       <p>此网页使用了框架,但您的浏览器不支持框架。</p>
                     </body>
              </noframes>
       </frameset>
</html>

4.上框架程序:Main.asp

该程序5秒在屏幕上显示一次Application对象的内容。其程序代码如下:
<html>
<head>
    <title> 发言区</title>
<meta http-equiv="refresh" content="5">
</head>
<body>
       <%
       Response.Write Application("show")                     显示聊天内容
       %>
</body>
</html>

5.下框架程序:Input.asp

该程序主要输入发言内容,并能选择发言文字的颜色和表情。程序实现如下:
<html>
<head>
       <title>发言区</title>
</head>
<body bgcolor="#FFFFCC" topmargin="0" leftmargin="0" onload="document.form1.say.focus();">
       <form method="post"  action="" name="form1">
              发言:   
              <input type="text" name="say" size=40 >      
              <input type="submit" value="发言" >
              <br>   
              颜色:      
              <select name="mycolor" style="font-size:12px">      
                     <% If Request("mycolor")="#000000" Then %>
                            <option value="#000000" style="color:#000000" selected>黑色</option>
                     <% Else %>
                            <option value="#000000" style="color:#000000" >黑色</option>
                     <% End If %>
                     <% If Request("mycolor")="#FF0000" Then %>
                            <option value="#FF0000" style="color:#FF0000" selected>红色</option>
                     <% Else %>
                            <option value="#FF0000" style="color:#FF0000" >红色</option>
                     <% End If %>
                     <% If Request("mycolor")="#FFFF00" Then %>
                            <option value="#FFFF00" style="color:#FFFF00" selected>黄色</option>
                     <% Else %>
                            <option value="#FFFF00" style="color:#FFFF00" >黄色</option>
                     <% End If %>
                     <% If Request("mycolor")="#3333FF" Then %>
                            <option value="#3333FF" style="color:#3333FF" selected>蓝色</option>
                     <% Else %>
                            <option value="#3333FF" style="color:#3333FF" >蓝色</option>
                     <% End If %>
              </select>     
              表情:      
              <select name="myemote" style="font-size:12px">      
                     <option value="无" selected>无  
                     <option value="回眸一笑">回眸一笑  
                     <option value="幸灾乐祸">幸灾乐祸  
                     <option value="号啕大哭">号啕大哭  
                     <option value="拳打脚踢">拳打脚踢  
                     <option value="气急败坏">气急败坏  
                     <option value="温柔细语">温柔细语  
                     <option value="得意非凡">得意非凡  
                     <option value="大惊失色">大惊失色  
              </select>
              &nbsp&nbsp&nbsp&nbsp&nbsp
              <a href="exit.asp" target="_top">离开聊天室</a> 
       </form>
       <%
       IF Request("say")<>"" Then
              获取发言的有关信息
              Dim say,mycolor,myemote,user_name           声明变量待用
              user_name=Session("user_name")               返回用户昵称
              say=Server.HtmlEncode(Request("say"))     返回发言,并用HtmlEncode编码
              mycolor=Request("mycolor")                  返回本次发言的颜色
              myemote=Request("myemote")                 返回本次发言表情
              If myemote="无" Then                     
                 myemote=""
              End If
              下面三句将得到本次发言的字符串
              Dim sayStr
              sayStr="<small>" & user_name & Time & myemote & "说:</small>"
              sayStr=sayStr & "<font color=" & mycolor & ">" &  say & "</font>"
             
              下面几句将本次发言信息保存到Application中
              Application.Lock                        先锁定
              Application("show")= sayStr & "<br>" & Application("show")
              If Len(Application("show"))>10000 Then  如果发言总长度超过10000个字符,则截断为10000
                     Application("show")=Mid(Application("show"),1,10000)
              End If
              Application.Unlock                       解除锁定
       End If
       %>
</body>
</html>

6.退出聊天室程序:Exit.asp

首先保存退出者的相关信息,然后把在线人数减少1个,重定向到Index.asp。
程序代码如下:
       <%
       下面几句返回离开者信息
       Dim sayStr
       sayStr="来自" & Request.ServerVariables("Remote_Addr")& "的"    来访者IP地址
       sayStr=sayStr & "<b>" & Session("user_name") & "</b>"            来访者昵称
       sayStr=sayStr & "于" & Time & "高兴而去"                       离开时间
       sayStr="<font color=red>" & sayStr & "</font>"                   红色显示
       下面几句将来访信息保存到application中
       Application.Lock                                             先锁定
       Application("show")= sayStr & "<br>" & Application("show")
       Application("user_online")=Application("user_online")-1            在线人数减1
       Application.Unlock                                           解除锁定
       Response.Redirect "index.asp"                                  重定向回首页
       %>

1.请编写两个页面,在第一个页面中客户要输入姓名,然后保存到 Session 中。在第二个页面中读取该 Session 信息,并显示欢迎信息。如果客户没有在第一页登录就直接访问第二页,要将客户重定向回第一页。


 

1.了解和掌握ASP数据库组件的基本概念和使用方法。

2.掌握常用网络数据库的基本操作方法。

3.以Access和SQL Server数据库为例,熟练掌握ASP数据库存取技术。

1.建立实验所需要的数据库(例如:wwwlink.mdb),并设置好数据源(例如:wwwlink)。

2.上机验证教材上的例6-1至例6-4。

3.设计一个具有查询、更新、删除和插入功能的简单通讯录管理系统。

数据库存取组件ADO组件可访问和操作数据库中的数据,属于ASP内置组件。
ADO组件主要包括三个对象:Connection、Command和Recordset。
(一)Connection对象
Connection对象主要是建立与数据库的连接

16. Connection对象的方法

方 
说 
Open
建立与数据库的连接
Close
关闭与数据库的连接
Excuse
执行SQL命令
BeginTrans
开始事务处理
CommitTrans
提交事务处理结果
RollbackTrans
取消事务处理结果

1.Connection对象的属性

属 
   
Attributes
设置Connection对象控制事务处理时的行为
CommandTimeout
Execute方法的最长执行最长时间
ConnectionString
指定Connection对象的数据库链接信息
ConnectionTimeout
Open方法与数据库链接的执行最长时间
CursorLocation
控制光标的类型
DefaultDatabase
指定Connection对象的缺省数据库名称
IsolationLevel
指定Connection对象事务处理的时机
Mode
设置连接数据库的权限
Provider
设置Connection对象内定的数据库管理程序名称
Version
显示ADO对象的版本信息
(二)ADO的Recordset对象
Recordset对象又称记录集对象

17. Recorsdet对象的常用属性

属 
说 
Source
Command 对象名或 SQL 语句或数据表名
ActiveConnection
Connection 对象名或包含数据库连接信息的字符串
CursorType Recordset
对象记录集中的指针类型
LockType
Recordset 对象的使用类型
MaxRecords
控制从服务器取得的记录集的最大记录数目
CursorLocation
控制数据处理的位置,客户端还是服务器端
Filter
控制欲显示的内容
RecordCount
记录集的总数
Bof
记录集的开头
Eof
记录集的结尾
PageSize
数据分页显示时每一页的记录数
PageCount
数据分页显示时数据页的总数
AbsolutePage
当前指针所在的数据页
AbsolutePosition
当前指针所在的记录行

2.Recorsdet对象的方法

属 
说 
Open
打开记录集
Close
关闭当前的 Recordset 对象
Requery
重新打开记录集
MoveFirst
移动到第一条记录
MoveProvious
移动到上一条记录(向后移动
MoveNext
移动到下一条记录(向前移动
MoveLast
移动到最后一条记录
Move
移动到指定记录
AddNew
添加新的记录
Delete
删除当前记录
Update
更新数据库数据
CancelUpdate
取消数据更新
GetRows
从记录集中取得多行数据
Resync
与数据库服务器同步更新

3.Fields集合和Field对象

Field 对象又称字段对象,是 Recordset 的子对象。简单地说:一个记录集就好比一个电子表格,该表格内总是包含有许多列(字段),每一个字段就是一个 Field 对象,而所有 Field 对象组合起来就是一个 Fields 集合。
⑴ Fields集合的属性
Fields集合的属性只有一个,为是Count属性。该属性返回记录集中字段(Field 对象)的个数。
语法:  Recordset 对象.Fields.Count
⑵ Fields集合的方法
Fields集合常用的方法也只有一个,为Item方法。该方法用于建立某一个 Field 对象。
语法:  Set Field 对象=Recordset 对象.Fields.Item(字段名或字段索引值)
⑶ Field 对象的属性
属 
说 
Name
字段名称
Value
字段值,这是最常用的
Type
字段数据类型
DefinedSize
字段长度
Precision
字段存放数字最大位数
NumericScale
字段存放数字最大值
ActualSize
字段数据值长度
Attributes
字段数据值属性
⑷ Field对象的方法
Field对象的常用方法只有一个,为AppendChunk,用来在当前字段的数据末尾添加数据。
语法:Field对象.AppendChunk Data
(三)实例分析:动态网络导航程序分析


该程序通过表格的形式完成对网址的增加、删除和修改,其主界面形式如下:


 

1.数据库设计

建立一个数据库wwwlink.mdb,表为link,结构如下:

 


Link表已有的记录如下:

 


2.总体设计

 

 


3.主程序:Index.asp

利用Select语句查询数据库表Link。把Link表中的记录显示在屏幕上。
其程序代码如下:
<%  Option Explicit   %>
<html>
<head>
       <title>利用Select语句查询记录示例</title>
</head>
<body>

       <h2 align="center">网络导航</h2>

       <%
       以下连接数据库,建立一个Connection对象实例db
       Dim db

       Set db=Server.CreateObject("ADODB.Connection")

       db.Open "Dbq="&Server.Mappath("wwwlink.mdb")&";Driver={Microsoft Access Driver (*.mdb)}"

       以下建立Recordset对象实例rs

       Dim strSql,rs

       strSql="Select * From link Order By link_id Desc"       

       Set rs=db.Execute(strSql)

       以下显示数据库记录
       %>
       <center>

       <a href="add_form.asp">添加记录</a>

       <table border="1" width="100%" >

              <tr bgcolor="#E0E0E0">

                     <td>名称</td>
                     &, lt;td>网址</td>
                     <td>简介</td>
                     <td>删除</td>
                     <td>修改</td>
              </tr>
              <%

              Do While Not rs.Eof 

              %>
                     <tr>
                     <td><%=rs("name")%></td>

                     <td><a href="http://<%=rs("URL")%>" target="_blank"><%=rs("URL")%></a> </td>

                     <td><%=rs("intro")%></td>

                     <td><a href="delete.asp?link_id=<%=rs("link_id")%>">删除</a></td>

                     <td><a href="update_form.asp?link_id=<%=rs("link_id")%>">修改</a></td>

                     </tr>
              <%
              rs.MoveNext
              Loop
              %>
       </table>
       </center>
</body>
</html>

 

4.添加:Add_form.asp

利用Form表单形成输入界面;利用Insert语句往数据库表中添加记录 。

实现代码如下:

 

<% Option Explicit %>

<%
如果上面的信息填全了,就添加记录,否则给出错误信息

If Request.Form("t_name")<>"" And Request.Form("t_URL")<>"" And Request.Form("t_intro")<>"" Then

       以下连上数据库,建立一个Connection对象实例db

       Dim db,strconn

       Set db=Server.CreateObject("ADODB.Connection")

       strConn="Dbq=" & Server.Mappath("wwwlink.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

       db.Open strconn

 

        以下添加新记录

       Dim strSql,varName,varURL,varIntro                 声明几个变量

       varName=Request.Form("t_name")
       varURL=Request.Form("t_URL")
       varIntro=Request.Form("t_intro")

       StrSql="Insert Into link(name,URL, intro,submit_date) Values(" & varName & "," & varURL & "," & varIntro & ",#" & Date() & "#)" 

       db.Execute(strSql)                 

       Response.Redirect "index.asp"                     添加成功,则返回首页

Else

       Response.Write "请将所有信息填写完整,"

       Response.Write "<a href=add_form.asp>重新添加</a>"

End If
%>

 

5.删除:Delete_form.asp

利用Delete语句删除选择的网站信息记录 。具体代码如下:

<%  Option Explicit   %>

<%

Response.Buffer=True

以下连上数据库,建立一个Connection对象实例db

Dim db

Set db=Server.CreateObject("ADODB.Connection")

db.Open "Dbq=" & Server.Mappath("wwwlink.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

以下删除记录,注意这里是由index.asp传过来的要删除的记录的网站编号

Dim varLink_id,strSql

varLink_id=Request.QueryString("link_id")               获取要删除的记录网站编号

strSql="Delete From link Where link_id=" & varLink_id

db.Execute(strSql)               

Response.Redirect "index.asp"                            删除完毕,重定向回首页

%>

 

6.修改:Update_form.asp

从数据库表Link中取出要修改的网站信息记录,并形成Form修改表单。利用Update语句修改数据库表中的记录 。代码如下:

<% Option Explicit %>

<html>
<head>
       <title>修改记录表单示例</title>
</head>
<body>

       <h2 align="center">修改网站</h2>

       <%

       Dim varLink_id

       varLink_id=Request.QueryString("link_id")        获取要修改的记录的网站编号
       Session("link_id")=varLink_id           保存到Session中,以备upload.asp使用
       以下连接数据库,建立一个Connection对象实例db
       Dim db

       Set db=Server.CreateObject("ADODB.Connection")

       db.Open "Dbq="&Server.Mappath("wwwlink.mdb")&";Driver={Microsoft Access Driver (*.mdb)};"

       以下打开记录集

       Dim strSql,rs

       strSql="Select * From link Where link_id=" & varLink_id 

       Set rs=db.Execute(strSql)

       %>
       <center>

       <table border="1" width="90%">

              <form name="form1"  method="post" action="update.asp" >

              <tr>

                     <td>网站名称</td><td><input type="text" name="name" size=20 value="<%=rs("name")%>"></td>

              </tr><tr>

                     <td>网站地址</td><td><input type="text" name="URL" size=40 value="<%=rs("URL")%>"></td>

              </tr><tr>
                     <td>网站简介</td><td>

                     <textarea name="intro" rows="2" cols="40" wrap="soft"> <%=rs("intro")%></textarea></td>

              </tr><tr>

                     <td></td><td><input type="submit" value=" 确 定 "></td>

              </tr>    </form>
       </table>
       </center>
</body>
</html>

四、实验思考题

1.请利用数据库在首页开发一个计数器(提示:每次访问该页面就读取数据库中的访问次数,然后再更新记录即可)。

2.请模仿一般网站的注册系统开发一个程序,要求用户能注册,输入用户名、密码等个人信息,下一次访问时可以用该用户名和密码登录,登录后就可以察看有关网页内容。如果没有登录直接访问其他页面,则重定向回注册页面。


实验六  ASP综合设计   TOP

一、实验目的及要求

1.掌握ASP网络程序设计技术,

2.能综合运用各种知识编写一个相对独立的网络程序。

二、实验内容

学生可从下列三个综合实验中任选一个进行程序设计与调试:

3.网络留言版的设计与实现;

4.网络聊天室的设计与实现;

5.BBS论坛的设计与实现。

三、实验指导

以设计一个留言板为例进行分析。

(一)总体设计

设计思想:对普通客户来说,只要能浏览和添加留言即可;而对管理员来说,除了浏览和添加留言外,最好还能删除和回复留言。因此该系统包括如下主要ASP文件:

1.首页index.asp:在其中显示原有留言(20个一页)和一个添加留言的表单。

2.添加留言add.asp:当客户在首页表单中输入内容后,就传递到本页面,添加完毕后自动返回首页。

3.删除留言delete.asp:单击首页中的“删除”超链接就可以打开本页面,输入管理员密码后就可以删除该信息,删除完毕返回首页。

4.回复留言radd.asp:单击首页中的“回复”超链接就可以打开本页面,输入管理员密码后就可以回复该信息,回复完毕返回首页

留言版系统框架结构如下:

(二)数据库设计

数据库系统采用Access 2000,数据库为Guest..mdb,并包含一个数据表guest,其结构如下:

 


(三)关键技术

1.留言表单输入信息的检查

对留言表单输入信息的检查放在客户端进行。客户端的Script程序代码:位于<Script>…</Script>内的程序代码。
Form表单和客户端验证函数的写法:
⑴ Form表单:

 

<form method=”post”   action=”add.aspname=”myform” >

  主题:<input type=”text”  name=”title”  size=”60”>**
  内容:<Textarea  Name=”body” Rows=”4” Cols=”60”></TextArea>

  姓名:<input type=”text” name=”name” size=”13”>**

  email:<input type=”text” name=”email” size=”40”>

  <input type=“button” value=“提   交”  onClick=”check_null”>

</form>

 

⑵ 客户端验证函数

 

<script language=”VBScript”>

    function check_Null()

        if trim(document.myform.title.value)=”” then

           msgbox “主题不能为空!”

          exit function

      end if

      myform.submit

    end function
</script>

 

 

 

 

2.对输入文本的处理:应能自动换行,屏蔽客户输入的HTML代码

 

Function myReplace(myString)
myString=Replace(myString,"&","&amp;")           替换&为字符实体&amp;
myString=Replace(myString,"<","&lt;")              替换<为字符实体&lt;
myString=Replace(myString,">","&gt;")             替换>为字符实体&gt;
myString=Replace(myString,chr(13),"<br>")         替换回车符为换行标记<br> 
myString=Replace(myString,chr(32),"&nbsp;")       替换空格符为字符实体&nbsp;
myString=Replace(myString,chr(9)," &nbsp;&nbsp;&nbsp;&nbsp;")    替换Tab缩进符为
myString=Replace(myString,chr(39),"&acute;")       替换单引号为字符实体&acute;
myString=Replace(myString,chr(34),"&quot;")        替换双引号为字符实体&quot;
myReplace=myString                            返回函数值
End Function

(四)具体实现

1.公共文件:Odbc_connection.asp

 

<%
Dim db
Setdb=Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("guest.mdb")
%>

 

2.配置文件:Config.asp (用来设置所用到的一些常量)

 

<%
   Const GuestTitle=“我的留言板”        留言板的名称
   Const Password="123456"             是回复和删除文档的密码  
   Const PageSize=20                   每页显示多少条记录
%>

 

3.函数:function.asp

 

<%
Function myReplace(myString)
myString=Replace(myString,"&","&amp;")
myString=Replace(myString,"<","&lt;") myString=Replace(myString,">","&gt;")
myString=Replace(myString,chr(13),"<br>") myString=Replace(myString,chr(32),"&nbsp;")
myString=Replace(myString,chr(9)," &nbsp;&nbsp;&nbsp;&nbsp;")
myString=Replace(myString,chr(39),"&acute;") myString=Replace(myString,chr(34),"&quot;")
myReplace=myString                             返回函数值
End Function
%>

 

4.层叠样式文件:guest.css

层叠样式表一般用来设置网页的字体颜色、背景颜色、超链接颜色、表格样式等各种样式。通常有3种使用方法:直接写在行中;写在文件头中;写在专门的CSS文件中

 

body{background-color:#FFFFFF}
td{font: 12px "宋体", "新宋体"; color:#000033}
a{font: 15px "宋体", "新宋体"; color: #6633FF; text-decoration: none}
a:hover{color: #FF0033; text-decoration: underline}

 

四、实验结果

1.所选综合实验的的总体设计思想和结构;

2.数据库结构

3.实现的一些关键技术

4.能实际运行的系统代码

 
   
  COPYRIGHT (C) 2002-2006 经济管理实验教学中心 ALL RIGHTS RESERVED
地址:中南财经政法大学文泉楼。   联系电话:027-88386795-8201    邮编:430070
 网上报警岗亭>

 
版权所有:中南财经政法大学经济管理实验教学中心  地址:中南财经政法大学文泉楼

联系电话:027-88386523 传真:027-88386523 邮编:430073  中心投诉信箱