[计算机毕设]基于java的小区门户网站设计与实现(源代码+项目报告)

项目报告

小区门户网站之社区共享

随着计算机的不断发展和广泛应用,人们的工作效率得到不断的提高。互联网的发展,更是缩短了人们之间的距离。如何充分利用互联网,这是大家共同关心的问题。本文主要介绍了关于小区门户网站之社区共享的实现方法,设计规划了小区门户网站之社区共享的网页,以互联网的形式将各种信息进行管理。

本论文系统地阐述了小区门户网站之社区共享系统的功能及实现。实现了小区门户网站之社区共享中的会员上传、下载、审核信息、管理信息等功能。本系统界面简单直观,易于操作和使用,交互性强。

经过分析,我们使用 SUN公司的JSP开发工具, 强大的MYSQL查询语言实现建立关系数据库,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成满意的可行系统。

小区门户网站  社区共享  JSP  MYSQL

   

1、绪论-------------------------------------------------------------------------------------------------1

1.1 课题研究目的------------------------------------------------------------------------------------1

1.2 开发设计思想------------------------------------------------------------------------------------1

1.3 课题意义------------------------------------------------------------------------------------------1

2、应用需求分析及可行性分析-------------------------------------------------------------------2

2.1 应用需求分析-------------------------------------------------------------------------------------2

2.2 运行需求分析------------------------------------------------------------------------------------3

2.3 其他需求分析-------------------------------------------------------------------------------------3

2.4 可行性分析---------------------------------------------------------------------------------------3

2.4.1 技术可行性-------------------------------------------------------------------------------------3

2.4.2 经济可行性-------------------------------------------------------------------------------------4

2.4.3 操作可行性-------------------------------------------------------------------------------------4

2.4.4 时间可行性-------------------------------------------------------------------------------------4

3、数据库及开发语言介绍--------------------------------------------------------------------------4

3.1 MYSQL数据库------------------------------------------------------------------------------------4

3.2开发语言介绍--------------------------------------------------------------------------------------5

3.2.1 JSP 介绍-----------------------------------------------------------------------------------------5

3.2.2 JSP版本简介------------------------------------------------------------------------------------6

3.2.3 JSP语言特点-------------------------------------------------------------------------------------6

3.3 JDBC 介绍-----------------------------------------------------------------------------------------7

4、系统设计-------------------------------------------------------------------------------------------8

4.1 主要功能-------------------------------------------------------------------------------------------8

4.2系统流程图----------------------------------------------------------------------------------------9

4.3 主要功能模块设计------------------------------------------------------------------------------10

4.3.1 会员登陆---------------------------------------------------------------------------------------10

4.3.2 会员注册---------------------------------------------------------------------------------------11

4.3.3会员上传文件----------------------------------------------------------------------------------11

4.3.4 浏览共享文件---------------------------------------------------------------------------------12

4.3.5 等待审核提示---------------------------------------------------------------------------------12

4.3.6 管理员审核文件-------------------------------------------------------------------------------12

4.3.7 审核成功提示----------------------------------------------------------------------------------13

4.3.8 管理已上传文件-------------------------------------------------------------------------------13

5、软件安装与调试---------------------------------------------------------------------------------13

5.1  软件的安装与配置--------------------------------------------------------------------------13

5.2  软件调试--------------------------------------------------------------------------------------14

5.3  软件测试--------------------------------------------------------------------------------------14

结论-----------------------------------------------------------------------------------------------------16

致谢-----------------------------------------------------------------------------------------------------17

参考文献-----------------------------------------------------------------------------------------------18

附录-----------------------------------------------------------------------------------------------------19

1、绪论

1.1 课题研究目的

21世纪以来,计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时代已经来临。信息化浪潮、网络革命在给社会带来冲击的同时,也使社区服务受到了强烈的冲击,社区管理和服务方式已不能适应用户的需求,建设小区门户网站系统,是现代化建设的客观要求。建设以计算机为核心的社区服务网络,实现社区服务的自动化,更好地为工作服务。

本论文主要涉及软件,数据库与网络技术等。涵盖知识面广,可有效地提高学生综合运用所学知识分析解决问题的能力,增强学生对事物的理解与掌握能力,培养学生掌握科学的研究方法,正确的设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。

1.2 开发设计思想

本系统用JSP语言来编写社区服务系统系统,数据库用MYSQL来连接系统,通过编写JavaBeans来进行后台业务逻辑控制,即JSP +JavaBeans + MYSQL三层模式完成整个设计工作。本系统全部基于Internet网络,以JSP语言对网站进行开发,注重用户与网站的交互性。因此在这样的背景下,针对当前Internet网络发展趋势来计社区服务系统系统就成为了当今应用软件的首选体系结构。

1.3 课题意义

在人类跨入21世纪之际,席卷全世界的信息化浪潮正在全球范围内轰轰烈烈的上演,它已经深刻地渗透到现代社会的各个领域。计算机技术的发展,其性价比大幅的下降,使得其被大量广泛的使用。针对现实中的各种应用需求,相应的产生很多技术体系、技术标准,大大的推动了信息化进程。计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:

首先,计算机可以代替人工进行许多繁杂的劳动;

其次,计算机可以节省许多资源;

第三,计算机可以大大的提高人们的工作效率;

现在我国的信息管理水平还比较落后,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。软件作为一项有力的工具,只能当此种工具,与我们的实践相结合起来的时候,才具有重大的社会价值及使用价值。因此根据目前实际的情况开发一套小区门户网站系统是十分必要的。

2、应用需求分析及可行性分析

2.1应用需求分析

服务器

硬件

处理器:Intel 酷睿
内 存:256M 或更大
硬 盘:20G 或更大

软件

Microsoft Windows XP

Microsoft Sql Server 2000
Microsoft IIS 5.0 或更高版本
Microsoft Office 2003

客户机

硬件

无特殊要求,只要能上连接互联网即可

软件

Microsoft Windows XP

Microsoft IE 5.0 或更高版本

系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。

硬件系统环境:C600、1G MB(RAM)、500MB(HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好

2.2 运行需求分析

硬件条件:酷睿 CPU、1G RAM、10 G硬盘以上的PC机;打印机;局域网。

软件条件:Windows XP

2.3 其他需求分析

本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性、可测试性、等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。

2.4 可行性分析

2.4.1 技术可行性

本系统是采用基于Web的程序设计思想进行编制的,利用JSP语句结合MYSQL后台数据库开发“小区门户网站”。整个系统由若干个表、窗口、菜单构成的。用户可通过菜单来调用系统的各项功能。

基于Web的程序设计语言JSP,之所以成为功能强大的服务器端程序是因为它为Web编程人员提供了一组功能强大的内置对象,通过这些内置对象,编程人员可以控制Web页面的各个方面。所以载技术上是可行的。

2.4.2 经济可行性

鉴于次系统是毕业设计,所以本系统不需要多余的格外开发成本,硬件配置和软件配置环境家用机可完全胜任,所以在经济上是可行的。

2.4.3 操作可行性

本设计力求界面简单明了,操作简单,便于上手,使用户可以在最短的时间内熟练掌握各功能。所以在操作上是可行的。

2.4.4 时间可行性

从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。

3、数据库及开发语言介绍

3.1 MYSQL数据库

目前流行的数据库管理系统有Oracle,DB2,Sybase、MS Access和MYSQL等。Oracle和DB2 是性能卓越、稳定可靠的大型数据库管理系统,目前拥有较多的用户。 MS  Access 是一种性能可靠、使用方便的小型数据库系统。一般而言,数据库是由特定的操作系统环境上的一个或者一组文件组成的,而数据库管理系统一般是由运行于用户计算机或网络上的远程计算机上面的一整套程序组成的。

根据对数据组织方式的不同,数据库系统分成关系数据库 、层次数据库和网状数据库。目前常见的数据库系统上基本上都是关系型数据库系统。在关系型数据库系统中,数据被组织成为二维表格形式,表格中的每个数据行称为一条记录或直接称为行,每一个列有时被称为字段或直接称为列,通过指定行和列定位一个指定的数据项。

一个优秀的数据库系统应具备如下特征:

(1)最大限度的减少数据的重复存储以减少存储空间的占用;

(2)尽可能地提高数据的查询(搜索)速度;

(3)提供灵活的数据组织和统计手段;

(4)保章数据的安全。

本系统采用的数据库是MYSQL.它是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。

3.2开发语言介绍

3.2.1 JSP 介绍

“JSP”指的是JAVASERVERPAGE语言,一种在计算技术发展历史上应用得最为广泛的语言。JSP在原有JAVA语言的基础上进一步发展,至今包含了数百条语句、函数及关键词。专业人员可以用JSP实现其它任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。

从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过Internet的遍及全球分布式应用程序,都可在JSP提供的工具中各取所需。

1.数据访问特性允许对包括SQLServer和其它企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。

2.有了JDBC技术就可与其他任何数据库建立连接。

3.Internet能力强大,使得您很容易在应用程序内通过Internet或intranet访问网游信息网站和应用程序,或者创建Internet服务器应用程序。

4.已完成的应用程序是使用JAVA虚拟机真正跨平台系统,您可以自由发布。

3.2.2 JSP版本简介

JSP可以使编程人员轻松开发基于windows平台和linux平台的动态服务器端应用程序,目前最高版本为jsp2.0。

3.2.3 JSP语言特点

JSP程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程.

1.可视化设计

同其他的一些可视化程序开发工具一样,JSP具有可视化设计的特点,微软的Word在刚刚进入市场时,同WPS竞争的一个重要的功能砝码就是"所见即所得"的字处理功能,JSP在设计应用程序界面时也可以说是"所见即所得".在设计时,头脑中所想象的应用程序界面,完全可以通过键盘鼠标以及徒手画出来,而不是编制大量的代码然后再编译生成,如果需要修改,也是利用键盘鼠标和手画,而底层的一些程序代码由JSP自动生成或修改。

JSP为用户提供大量的界面元素(在JSP中称为对象),这些对象对于熟悉Windows应用程序的用户而言是一点也不陌生。

2.事件驱动编程

Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用JSP设计应用程序时,必须首先确定应用程序如何同用户进行交互,由用户编写控制这些事件的响应,这就是所谓的事件驱动编程。

JSP是目前最为广泛的、易学易用的面向对象的开发工具。JSP提供了大量的插件,这些插件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统JSP是一个相对较好的选择。

3.3 JDBC 介绍

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。

 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。

Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。  

4、系统设计

4.1 主要功能

本人主要负责的是社区共享模块,本模块的主要功能有:会员上传文件、前台的文件浏览、对以上传的文件进行修改以及管理员对上传文件的审核等功能。

4.2系统流程图

管理员

检查有效性

通过审核

未通过

输入密码

退出

会员

检查有效性

上传文件

管理文件

输入密码

退出

浏览文件

4.3 主要功能模块设计

4.3.1 会员登陆

具体实现代码如下:

<SCRIPT language=javascript>

//检验表单的合法性

function checklogin() {

       if (document.form1.username.value.replace(/\s+$|^\s+/g,"").length<=0) {

              alert("\请输入您的用户名!");

              document.form1.username.focus();

       }

       else if (document.form1.password.value.replace(/\s+$|^\s+/g,"").length<=0) {

              alert("\请输入您的密码!");

              document.form1.password.focus();

       }

       else if(document.form1.checkcode.value.replace(/\s+$|^\s+/g,"").length<=0) {

              alert("\请输入验证码!");

              document.form1.checkcode.focus();

       }

       else if (document.form1.checkcode.value != document.form1.yzm.value) {

              alert("\验证码错误!");

              document.form1.checkcode.focus();

       }

       else{

            form1.submit();

       }

}

</SCRIPT>

<%

String message = (String)request.getAttribute("message");

       if(message == null){

              message = "";

       }

       if (!message.trim().equals("")){

              out.println("<script language='javascript'>");

              out.println("alert('"+message+"');");

              out.println("</script>");

       }

       request.removeAttribute("message");

       String yzm=code.getCheckCode();

%>

<TABLE id=Table7 width=400 border=0>

                                                                            <TBODY>

                                                                              <TR height=40>

                                                                                <TD vAlign=center align=middle colSpan=3>

                                                        <FONT face=宋体></FONT><BR><FONT color=#ff7700><STRONG>欢迎登陆<%=sysList.get(0).toString() %></STRONG></FONT>

                                                               </TD></TR>

                                                                              <TR>

                                                                                <TD colSpan=3>

                                                                                  <HR class=hui align=center width="98%" SIZE=1>

                                                                                  </TD></TR>

                                                                              <TR height=60>

                                                                                <TD align=right width=84 height=110>

                                                        <IMG  height=52 src="<%=basePath %>images/Key.gif" width=49>

                                                               </TD>

                                  <TD noWrap align=middle width=171>

                                    <TABLE width="100%" border=0>

                                      <TBODY>

                                    <TR>

                                  <TD width="35%" height=24>用户名:</TD>

                                  <TD>

                                                          <INPUT class=input_new id=username style="WIDTH: 110px" size=15 maxLength=10 name=username onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

                              οnkeyup="value=value.replace(/[\W]/g,'')"  value=<%=request.getAttribute("reg_user")==null?"":request.getAttribute("reg_user") %>>

</TD>

</TR>

<TR>

<TD height=25>

<INPUT class=input_new id=password style="WIDTH: 110px" type=password size=15  maxLength=16 name=password onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

                              οnkeyup="value=value.replace(/[\W]/g,'')">

                                                          </TD>

                                                          </TR>

                                                          <TR>

                                  <TD height=25>验证码:</TD>

                                  <TD height=25><input type="hidden" name="yzm" value="<%=yzm %>" >

                                                          <INPUT class=input_new id=checkcode size=5 maxlength="4" name=checkcode onKeyUp="this.value=this.value.replace(/\D/gi,'')"> <%=yzm %>                                             

4.3.2 会员注册

具体实现代码如下:

<TBODY>

              <FORM name="regbb" action="<%=basePath%>Member.shtml" method="post">

              <INPUT type=hidden  name="method">

              <TR >

                <TD align=right width="38%"  height=30>用 户 名:</TD>

                <TD width="62%"  height=30 align=left><font color=red><%=request.getAttribute("message")==null?"":request.getAttribute("message")+"<br>" %></font>

                            <INPUT class=inputb id=username maxLength=10 size=21 name=username value='<%=request.getAttribute("username")==null?"":request.getAttribute("username") %>' onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

                              οnkeyup="value=value.replace(/[\W]/g,'')" >&nbsp; <input type=button value="查看是否重名" onClick="sameREGcheck()" > 不小于4位

                            </TD>

                            </TR>

              <TR class=black >

                <TD align=right width="38%"  height=30>登陆密码:</TD>

                <TD width="62%"  height=30 align=left>

                            <INPUT class=inputb id=password type=password maxLength=16 size=22 name=password onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

                              οnkeyup="value=value.replace(/[\W]/g,'')" > 6位以上

                            </TD>

                            </TR>

              <TR class=black >

                <TD align=right width="38%"  height=30>密码确认:<input type=hidden name=reg_type value=person></TD>

                <TD width="62%"  height=30 align=left>

                            <INPUT class=inputb id=reg_pwd2 type=password maxLength=16 size=22 name=reg_pwd2 onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

                              οnkeyup="value=value.replace(/[\W]/g,'')" >

                            </TD>

                            </TR>

              <TR class=black >

                <TD align=middle  colSpan=2 height=40>

                            <img src=<%=basePath %>images/sub.gif οnclick="checkREG()" border=0>    <img src=<%=basePath %>images/back.gif οnclick="window.location='<%=basePath %>'" border=0>

                </TD>

                            </TR>

                     </FORM>

                     </TBODY>

                     </TABLE>

4.3.3会员上传文件

具体实现代码如下:

<table width='100%' cellspacing='1' cellpadding='3' bgcolor='#CCCCCC' class="tablewidth">

<tr class="head">

      <td colspan="2">    

<%

       if(method.trim().equals("addfiles")){

%>

        上传文件 (内容简介不能超过5000个字符)

<%}else{%>

          修改上传文件 (内容简介不能超过5000个字符)

<%} %>

      </td>

    </tr>

       <form name="form1" action="<%=basePath %>News.shtml" method="post"  enctype="multipart/form-data" >

  <tr bgcolor='#FFFFFF'> <input type="hidden" name="method" value="<%=method %>"> <input type="hidden" name="id" value="<%=id %>"><input type="hidden" name="member" value="<%=member %>">

    <td width='30%'><div align="right">文件名称:</div></td>

    <td ><input name="title" type="text" id="title" size="40" maxlength="100" value="<%=title %>"></td>

  </tr>

  <tr bgcolor='#FFFFFF'>

    <td width='30%'><div align="right">上传文件:</div></td>

    <td ><input name="url" type="file" contentEditable=false  size="40" maxlength="150" >&nbsp;</td>

  </tr>

  <tr bgcolor='#FFFFFF'>

    <td colspan="2" valign="top"><TEXTAREA style="display:none" NAME="content" ROWS="20" COLS="70"><%=content %></TEXTAREA>     

         <FCK:editor id="infoContent" basePath="/Sqwl/FCKeditor/"

              width="100%"

              height="400"

              skinPath="/Sqwl/FCKeditor/editor/skins/silver/"

              defaultLanguage="zh-cn"

              tabSpaces="8"

              imageBrowserURL="/Sqwl/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"

              linkBrowserURL="/Sqwl/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector"

              flashBrowserURL="/Sqwl/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"

              imageUploadURL="/Sqwl/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Image"

              linkUploadURL="/Sqwl/FCKeditor/editor/filemanager/upload/simpleuploader?Type=File"

              flashUploadURL="/Sqwl/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Flash">

      </FCK:editor>  

     </td>

    </tr>

  <tr bgcolor='#FFFFFF'>

      <td colspan="2" align="center">

        <input class=mmcinb type='button' name='button' value='提交数据' οnclick='sub()'>

      </td>

4.3.4 浏览共享文件

具体实现代码如下:

<TABLE class=xsnr id=tb1_nr1  cellSpacing=0 cellPadding=0 width="100%" border=0>

                    <TBODY>

                    <TR>

          <TD  align=left><font color=blue><strong>文件名称</strong></font></TD>

                <TD align=center><font color=blue><strong>上传会员</strong></font> </TD>

                <TD align=right><font color=blue><strong>上传时间</strong></font></TD>

              </TR>

                    <%

                    List fileList=news.getAllShFiles();

                    if(!fileList.isEmpty()){

                                   for(int alln1=0;alln1<fileList.size();alln1++){

                                          List allnew=(List)fileList.get(alln1);

                     %>

        <TR>

          <TD  align=left><A href="<%=basePath%>fileinfo.jsp?id=<%=allnew.get(0).toString()%>" ><%=allnew.get(1).toString()%></A></TD>

                <TD align=center><%=allnew.get(4).toString()%> </TD>

                <TD align=right><%=allnew.get(5).toString()%> </TD>

              </TR>

              <%}} %>

                            </TBODY>

                     </TABLE>                  

                     </TD>

              </TR>

        </TBODY>

         </TABLE>

4.3.5 等待审核提示

具体实现代码如下:

<%

String message = (String)request.getAttribute("message");

       if(message == null){

              message = "";

       }

       if (!message.trim().equals("")){

              out.println("<script language='javascript'>");

              out.println("alert('"+message+"');");

              out.println("</script>");

       }

       request.removeAttribute("message");

%>

4.3.6 管理员审核文件

4.3.7 审核成功提示

具体实现代码如下:

<%

                     List pagelist3=newsb.getAllFiles();

                            if(!pagelist3.isEmpty()){

                            for(int i=0;i<pagelist3.size();i++){

                                   List pagelist2 =(ArrayList)pagelist3.get(i);

                     %>

       <tr class="trA" onMouseOver="this.className='trB'" onMouseOut="this.className='trA'">

      <td width='5%' align="center" style="border-bottom:1px dotted #ccc;"><%=i+1 %></td><input type="hidden" name="id<%=i %>" value="<%=pagelist2.get(0).toString()%>" >

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><a href="<%=basePath %>fileinfo.jsp?id=<%=pagelist2.get(0).toString()%>" target="_blank"><%=pagelist2.get(1).toString() %></a> </td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><%=pagelist2.get(4).toString() %></td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><%=pagelist2.get(5).toString() %></td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><a href="<%=basePath%>Common.shtml?method=shfile&id=<%=pagelist2.get(0).toString()%>" ><%=pagelist2.get(6).toString() %></a> </td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><a href="<%=basePath %>Common.shtml?method=admindelfile&id=<%=pagelist2.get(0).toString()%>" >删除</a> </td>

    </tr>

4.3.8 管理已上传文件

具体实现代码如下:

<TABLE  cellSpacing=0 cellPadding=0 width="100%" border=0>

  <TBODY>

  <TR>

    <TD align="left" vAlign=top >

<table width='100%' cellspacing='1' cellpadding='3' bgcolor='#CCCCCC' class="tablewidth">

     <tr class="head">

      <td width="5%" align="center">ID </td>

      <td  align="center">文件名称</td>

      <td  align="center">上传会员</td>

      <td  align="center">上传时间</td>

      <td  align="center">审核</td>

      <td  align="center">删除</td>

    </tr>

    <%

                     List pagelist3=newsb.getAllFiles();

                            if(!pagelist3.isEmpty()){

                            for(int i=0;i<pagelist3.size();i++){

                                   List pagelist2 =(ArrayList)pagelist3.get(i);

                     %>

     <tr  class="trA" onMouseOver="this.className='trB'" onMouseOut="this.className='trA'">

      <td width='5%' align="center" style="border-bottom:1px dotted #ccc;"><%=i+1 %></td><input type="hidden" name="id<%=i %>" value="<%=pagelist2.get(0).toString()%>" >

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><a href="<%=basePath %>fileinfo.jsp?id=<%=pagelist2.get(0).toString()%>" target="_blank"><%=pagelist2.get(1).toString() %></a> </td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><%=pagelist2.get(4).toString() %></td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><%=pagelist2.get(5).toString() %></td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><a href="<%=basePath%>Common.shtml?method=shfile&id=<%=pagelist2.get(0).toString()%>" ><%=pagelist2.get(6).toString() %></a> </td>

      <td align="center" bgcolor="#FFFFFF"  style="border-bottom:1px dotted #ccc;"><a href="<%=basePath %>Common.shtml?method=admindelfile&id=<%=pagelist2.get(0).toString()%>" >删除</a> </td>

    </tr>

<%

       }}

%> 

  </TBODY>

</TABLE>

5、软件安装与调试

5.1  软件的安装与配置

(1)软件安装:操作系统Windows  XP

          Microsoft SQLServer2000

  JDK安装:

JDK安装特别简单,和安装其他的软件没什么区别。

  JDK的配置:

设置JAVA_HOME环境变量:JDK 安装目录 例:C:\j2sdk1.4;

设置CLASSPATH环境变量:JDK安装目录\lib\tools.jar 例:

C:\j2sdk1.4\lib\tools.jar;.

设置PATH环境变量:JDK 安装目录\bin;例:C:\j2sdk1.4\bin;

服务器的安装:Tomcat 5.0

设置TOMCAT_HOME环境变量:Tomcat安装目录  例:C:\Tomcat 5.0;

(2)安装Tomcat5.0 安装时注意在选择Java虚拟机路径是一定要选择安装的JSDK的目录,然后再开始安装。

(3)安装完毕后,启动TOMCAT,然后再浏览器中输入http://localhost:8080时可以看见TOMCAT的欢迎页面,这时表示配置成功了。

5.2  软件调试

    系统调试的目的是发现程序和系统中的错误并及时予以纠正。在网络便民服务系统中用的调试方法也包括这些:

(1) 程序调试

包括语法调试和逻辑检查,测试数据除采用正常数据外,还应用一些异常资料,用来考验程序的正确性。

①用正常资料调试。

②用异常资料调试。

③用错误资料调试。

5软件测试

软件的测试是系统开发周期中一个十分重要的环节,其重要性体现在它是保证系统质量与可靠性的最后关口,是对整个系统开发过程的最终审查,如果错误不能在测试阶段被发现并纠正,就可能会造成不堪设想的后果。

测试结果:

★中文乱码问题,从数据库中取出的中文数据出现乱码。

★参数传递出错,无法传递数据。

★当大量用户同时对数据库进行访问时,效率低,有的用户访问失败。

主要的解决方法:

☆我使用如下方法来解决乱码问题:

request.getParameter("choose").getBytes("8859_1"),"GB2312"

<%@ page contentType="text/html;charset=GB2312"%>

  • 对于各个模块接参数的格式进行了统一。

结论

本文通过小区门户网站的设计与开发,得出下列结论:   

(1)学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它。

(2)一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。

(3)要想系统更加完善,网站的界面必须要美观、有特色、友好,功能要健全。不过由于经验不足,我设计的图形界面比较简单。只是对基本功能进行了开发。

(5)本次开发,我参考了很多社区服务系统的例子,吸取了一些别的信息系统的长处,对自己的毕业设计进行了完善,但是还有很多的不足之处,有待以后进一步学习。

实践证明,小区门户网站系统有着很好的发展前景,经测试运行。本文所制作的小区门户网站系统界面友好、使用灵活、操作简单、功能齐全、表现方式独特,已基本具备了成熟的技术理论。

由于时间仓促,本次设计由我完成小区门户网站系统的制作,对我这样一个JSP新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单。还有很多毕业设计中用到JSP语言的知识也不够全面,还有很多地方不能够作到完全的理解和掌握。通过这次毕业论文的设计制作使本人受益匪浅。首先,由于毕业设计所用的JSP技术和其中用到JSP语言的其他部分是在课堂上没有接触过的,要用它来做设计必须通过大量自学来掌握,在这个过程中,不仅大大提高了我的自学能力而且让我对JSP的学习有了进一步的认识 。由于是独立完成在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。

经过两个多星期设计,课程设计基本完成了。本次课程设计就是通过对 “小区门户网站”的设计,进一步深化了小区门户网站为人们日常生活所带来的巨大便利的认识!

根据方案,大部分问题均已解决,也已基本实现了预期的目标和功能,但由于方案不成熟,时间紧迫,人力,物力方面的原因,此系统还是有许多地方需要进一步的完善和提高,因而,我们的系统不可避免的有一些不足之处,希望老师们给予批评指正。在本次课程设计中困难遇到不少,比如数据库的连接,全局参数的传递等。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,再到数据库设计、数据库结构实现及各功能模块的创建都需要从整体上考虑设计。这些都有待以后进一步改进。通过实践对于我以后的学习将会带来很大的帮助!

小区门户网站是一种新型的网络信息技术。随着网络的不断发展和完善,其不可替代的多功能作用会越来越明显。更好地建设与管理小区门户网站是我们不可推卸的责任。

参考文献

[1]孙卫琴,李洪成.《Tomcat 与 Java Web 开发技术详解》.电子工业出版社,2003年6月:1-205

[2]BruceEckel.《Java编程思想》. 机械工业出版社,2003年10月:1-378

[3]FLANAGAN.《Java技术手册》. 中国电力出版社,2002年6月:1-465

[4]孙一林,彭波.《Java数据库编程实例》. 清华大学出版社,2002年8月:30-210

[5]Lee Anne Phillips.《巧学活用HTML4》.电子工业出版社,2004年8月:1-319

[6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9月:32-300

[7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2003年5月1日:1-354

[8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月:1-246

[9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月:3-460

[10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社 ,2003年3月:1-268    

[11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2004年5月:1-410  

[12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2001年9月:34-307     

[13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2002年8月:23-294  

附录

源代码

package com.bean;

import java.sql.ResultSet;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.List;

import com.util.Constant;

import com.util.DBO;

public class CaiWu {

       private List list;

       private ResultSet rs;

       private String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());

      

       //增加分类

       public int addFenLei(String fenlei){

              String sql = "insert into classname (flmc,addtime) values('"+fenlei+"','"+date+"')";

              DBO dbo = new DBO();

              dbo.open();

              try{

                     int i = dbo.executeUpdate(sql);

                     if(i == 1)

                            return Constant.SUCCESS;

                     else

                            return Constant.SYSTEM_ERROR;

              }catch(Exception e){

                     e.printStackTrace();

                     return Constant.SYSTEM_ERROR;

              }finally{

                     dbo.close();

              }

       }

       // 修改分类

       public int upFenLei(int id,String fenlei){

              String sql = "update classname set flmc='"+fenlei+"' where id='"+id+"'";

              DBO dbo = new DBO();

              dbo.open();

              try{

                     int i = dbo.executeUpdate(sql);

                     if(i == 1)

                            return Constant.SUCCESS;

                     else

                            return Constant.SYSTEM_ERROR;

              }catch(Exception e){

                     e.printStackTrace();

                     return Constant.SYSTEM_ERROR;

              }finally{

                     dbo.close();

              }

       }

       // 删除分类

       public int delFenLei(int id){

              String sql = "delete from classname where id='"+id+"'";

              DBO dbo = new DBO();

              dbo.open();

              try{

                     int i = dbo.executeUpdate(sql);

                     if(i == 1)

                            return Constant.SUCCESS;

                     else

                            return Constant.SYSTEM_ERROR;

              }catch(Exception e){

                     e.printStackTrace();

                     return Constant.SYSTEM_ERROR;

              }finally{

                     dbo.close();

              }

       }

       // 所有分类

       public List getAllFenLei(){

              String sql = "select * from classname order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       //增加 输入

       public int addCaiWu(String fenlei,String xingzhi,String shuoming,String shuliang,String remark){

              String sql ="insert into inmoney(fenlei,xingzhi,shuoming,shuliang,remark,addtime)" +

                            "values('"+fenlei+"','"+xingzhi+"','"+shuoming+"','"+shuliang+"','"+remark+"','"+date+"')";

              DBO dbo = new DBO();

              dbo.open();

              try{

                     int i = dbo.executeUpdate(sql);

                     if(i == 1)

                            return Constant.SUCCESS;

                     else

                            return Constant.SYSTEM_ERROR;

              }catch(Exception e){

                     e.printStackTrace();

                     return Constant.SYSTEM_ERROR;

              }finally{

                     dbo.close();

              }

       }

//     修改 输入

       public int upCaiWu(int id,String fenlei,String xingzhi,String shuoming,String shuliang,String remark){

              String sql ="update inmoney set fenlei='"+fenlei+"',xingzhi='"+xingzhi+"',shuoming='"+shuoming+"',shuliang='"+shuliang+"',remark='"+remark+"' where id='"+id+"'";

              DBO dbo = new DBO();

              dbo.open();

              try{

                     int i = dbo.executeUpdate(sql);

                     if(i == 1)

                            return Constant.SUCCESS;

                     else

                            return Constant.SYSTEM_ERROR;

              }catch(Exception e){

                     e.printStackTrace();

                     return Constant.SYSTEM_ERROR;

              }finally{

                     dbo.close();

              }

       }

//     删除 输入

       public int delCaiWu(int id){

              String sql ="delete from inmoney where id='"+id+"'";

              DBO dbo = new DBO();

              dbo.open();

              try{

                     int i = dbo.executeUpdate(sql);

                     if(i == 1)

                            return Constant.SUCCESS;

                     else

                            return Constant.SYSTEM_ERROR;

              }catch(Exception e){

                     e.printStackTrace();

                     return Constant.SYSTEM_ERROR;

              }finally{

                     dbo.close();

              }

       }

//     所有 输入

       public List getAllCaiWu(){

              String sql = "select * from inmoney order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

//     单个 输入

       public List getOneCaiWu(int id){

              String sql = "select * from inmoney where id='"+id+"' ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            list.add(rs.getString(1));

                            list.add(rs.getString(2));

                            list.add(rs.getString(3));

                            list.add(rs.getString(4));

                            list.add(rs.getString(5));

                            list.add(rs.getString(6));

                           

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       public int chuShiHua(){

              String sql="delete from inmoney";

              String sql2="delete from classname";

              String sql3="delete from adminlog";

              DBO dbo = new DBO();

              dbo.open();

              try{

                     dbo.executeUpdate(sql);

                     dbo.executeUpdate(sql2);

                     dbo.executeUpdate(sql3);

                     return Constant.SYSTEM_ERROR;

              }catch(Exception e){

                     e.printStackTrace();

                     return 0;

              }finally{

                     dbo.close();

              }

       }

//     所有 输入

       public List getAllCaiWu1(String xingzhi){

              String sql = "select * from inmoney where xingzhi='"+xingzhi+"' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       public List getAllCaiWu2(String ks,String js){

              String sql = "select * from inmoney where addtime>'"+ks+" 00:00:01' and addtime<'"+js+" 23:59:59' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       public List getAllCaiWu3(String js){

              String sql = "select * from inmoney where  addtime<'"+js+" 23:59:59' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       public List getAllCaiWu4(String ks){

              String sql = "select * from inmoney where  addtime>'"+ks+" 00:00:01' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       public List getAllCaiWu5(String ks,String js,String xingzhi){

              String sql = "select * from inmoney where addtime>'"+ks+" 00:00:01' and addtime<'"+js+" 23:59:59' and xingzhi='"+xingzhi+"' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       public List getAllCaiWu6(String js,String xingzhi){

              String sql = "select * from inmoney where addtime<'"+js+" 23:59:59' and xingzhi='"+xingzhi+"' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       public List getAllCaiWu7(String ks,String xingzhi){

              String sql = "select * from inmoney where addtime>'"+ks+" 23:59:59' and xingzhi='"+xingzhi+"' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

       //all in ,all out

       public List getAllIn(String xingzhi){

              String sql = "select * from inmoney where xingzhi='"+xingzhi+"' order by id desc ";

              DBO dbo=new DBO();

              list = new ArrayList();

              dbo.open();

              try{

                     rs = dbo.executeQuery(sql);

                     while(rs.next()){

                            List list2=new ArrayList();

                            list2.add(rs.getString(1));

                            list2.add(rs.getString(2));

                            list2.add(rs.getString(3));

                            list2.add(rs.getString(4));

                            list2.add(rs.getString(5));

                            list2.add(rs.getString(6));

                            list2.add(rs.getString(7));

                            list.add(list2);

                     }

                     return list;

              }catch(Exception e){

                     e.printStackTrace();

                     return null;

              }finally{

                     dbo.close();

              }

       }

}

参考资源:

java毕业设计——JAVA小区门户网站(源代码+论文).zip

Java毕业设计174例,包含部署视频-CSDN博客

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Java企业人事管理系统是一个基于Java语言开发的应用程序,旨在帮助企业管理人事信息,包括员工档案、薪资福利、考勤管理等方面。本系统的设计实现毕设将围绕以下几个方面展开。 首先,需要对企业人事管理系统的需求进行分析和调研,了解用户的实际需求和使用场景。通过与企业人事部门的沟通和调研,收集相关数据和信息,为后续的系统设计开发提供依据。 其次,需要进行系统的设计工作,包括数据库设计、系统架构设计、界面设计等。在数据库设计方面,需要根据企业的实际情况建立员工信息表、部门信息表、薪资福利表等,保证数据结构的合理性和完整性。在系统架构设计方面,需要选择合适的技术框架和组件,确保系统的稳定性和性能优化。在界面设计方面,需要根据用户的操作习惯和需求,设计简洁、直观的用户界面,提高用户体验。 最后,需要进行系统的实现和测试工作。在实现方面,需要利用Java语言和相关的开发工具进行编码工作,保证系统可以实现各项功能需求。在测试方面,需要进行单元测试、集成测试和系统测试,确保系统的稳定性和功能完整性,同时发现和修复潜在的问题和Bug。 综上所述,Java企业人事管理系统的设计实现毕设需要进行需求分析、系统设计、系统实现和测试等一系列工作,以确保最终的系统能够满足企业的实际需求,提高人事管理工作的效率和精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业课程设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值