基于C#+asp.net+sqlserver的校园新闻发布系统设计与实现(毕业论文+程序源码)
大家好,今天给大家介绍基于C#+asp.net+sqlserver的校园新闻发布系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦
文章目录:
1、项目简介
- 本毕业设计主要采用了B/S设计模式,基于ASP.NET+SQL Server技术开发了一个校园新闻发布系统。本校园新闻发布系统实现了如下功能:1 新闻浏览和搜索;2 系统管理员对系统和用户的管理;3 新闻管理员发布新闻。本系统其功能灵活并易于使用,能够实现网站新闻的动态管理,使得对新闻的管理更加及时,高效。本毕业论文将对该系统的开发过程和功能进行详细的阐述。
2、资源详情
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:7710个字28页
包含内容:整套源码+完整毕业论文
3、关键词:
新闻发布;新闻浏览; B/S; ADO.NET数据访问; ASP.NET4、毕设简介
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
引言
省略
2 相关理论基础
2.1 B/S模式
B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。B/S架构管理软件更是方便、快捷、高效。B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
2.2 ASP.NET技术
ASP.NET是微软公司的Active Server Pages.NET的最新版本,是一种建立在公共语言运行库上的编程构架,可用于在服务器上开发功能强大的Web应用程序。它不但执行效率大幅度提高,对代码的控制也做的很好,并且支持WebControls功能和多种语言(如C#,Jscript等等),以高安全性,易管理性和高扩展性等特点著称。
ASP.NET技术的系统性能上有很大的改善,其主要表现在以下几方面:
(1) 由于ASP页面每次打开都必须经过先编译后解释的过程,所以页面在反复打开时速度没有任何提升,而ASP.NET页面只需要一次编译后不需要重新编译,直到该页面被修改或Web应用程序重新启动。这使得在多次访问时速度有了极大的提升。
(2) 由于ASP没有提供任何输出数据为内容的元件,所以在使用ASP撰写数据库页面时只能借助ADO的RecordSet对象逐笔读取记录,而ASP.NET通过ADO.NET提供的DataGrid,DataReader或DateSet等数据库元件可以直接和数据库联系。
(3) 执行效率的大幅提高:ASP.NET是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。
(4) 强大性和适应性:因为ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中。ASP.NET同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.NET。
(5) 安全性:内置Windows身份验证和基于每个应用程序的配置保证了应用程序是安全的。
2.3 SQL SERVER
SQL Server 数据库是微软公司研制开发的数据库管理系统,可以进行数据库的建立,对数据库进行查询操作,安全性设置工作等。SQL Server 拥有如下功能:
(1) 使用SQL Server ,开发人员通过使用相似的语言,例如微软的Visual C# .NET和微软的Visual Basic,将能够创立数据库对象。开发人员还将能够建立两个新的对象——用户定义的类和集合。
(2) SQL SERVER 将支持丰富的全文应用软件。服务器的编目功能将得到增强,对编目的对象提供强大的灵活性。查询性能和升级性将大幅得到改进,同时管理工具将为有关全文功能的运行,提供更深入的了解。
数据库技术是现代信息技术的重要组成部分,随着一些大型应用的开发应用,数据库技术也随之发展进步。为了有效管理数据库,创建一组存储过程是非常必要的,否则我们不仅需要在数据操作时使用各种SQL语句,而且也无法复用这些SQL语句,更糟糕的是我们无法保证数据操作的效率;同是运用ADO.NET技术数据库的访问,它使得数据库编程变得相当容易。
3 需求分析
3.1 系统功能需求
本系统的目的是实现校园新闻发布系统的基本功能。
本新闻发布系统提供了不同类型新闻(如校园新闻、体育新闻和校园之家等),满足不同用户需求;系统将用户分为:普通用户,系统管理员和新闻管理员。
普通用户能在本系统中进行新闻浏览,阅读,新闻搜索。每条新闻的标题被做成一个链接,用户点击它们就能跳转页面进行新闻阅读;新闻阅读页面,每条新闻的详细信息将被取出,包括内容、标题等;用户能根据自己的需要搜索新闻,如可以通过新闻标题或新闻内容对新闻进行搜索,这样可以快速地找到符合条件的新闻,并输出搜索结果;用户能对新闻进行被评论(允许匿名评论)。
系统管理员可以进行新闻分类管理、添加新闻、修改新闻、新闻审核和删除新闻,同时系统管理员能完成用户管理如包括系统用户管理、添加用户和更改账号。
新闻管理员拥有添加新闻和更改账号的权限。根据用户不同,给予不同权限,这样加强系统的管理,同时加强系统的安全性。
3.2 系统性能需求
操作的简易实用性本系统是校园新闻发布系统,针对的用户大多数是学生,教师等等。因此操作的简易实用性就体现的尤其重要。在此系统的开发中就很好的体现了这一点,系统的界面美观,典雅,充满了人性化;用户操作起来也容易上手。对于一个校园新闻发布系统而言,新闻信息是很多的,而且使用人数较多,所以对系统的安全性有比较高的要求:对于数据库,要设置不同用户的权限,数据的修改必须由合法用户操作。
4 系统功能设计方案
4.1总体设计
本系统中,系统的功能主要分为三个功能模块:新闻浏览和搜索模块;系统管理员模块;新闻管理员模块。总体功能设计图如下,如图4-1。
图4-1 总体功能设计图
4.2新闻浏览和显示模块
普通用户登陆该系统后,进入系统首页,普通用户可以根据自己的需要进行新闻浏览,如对热点新闻,头版新闻,最新新闻的浏览;还可以进行新闻搜索,可以通过新闻内容或新闻题目搜索新闻。运用起来很方便。如图4-2
图4-2 新闻浏览和搜索示意图
4.3系统管理员和新闻管理员模块
这是本系统管理员功能示意图,管理员分为系统管理员和新闻管理员。系统管理员拥有较强的权限,能完成以下功能:新闻分类,如可将新闻分为校园新闻、校园之家、事实政治等等;添加新闻,通过不同的分类新闻进行新闻的添加;新闻管理等等。新闻管理员只拥有新闻添加和更改账号的功能。如图4-3
图4-3 系统管理员和新闻管理员示意图
5数据库表的设计与实现
5.1 数据表
在该系统中共需要创建4个数据表,用于存放新闻发布系统所需要的数据。
新闻发布和管理模块涉及的数据包括:新闻分类,新闻,用户和新闻评论,因为支持一个新闻发布和管理系统的基本数据结构只需要这些基本数据表就可以。
5.1.1 新闻分类表
新闻分类表db_fClass中保存了每一个新闻类目的名称,信息如下表5-1。
表5-1 新闻分类表
5.1.2 新闻条目表
新闻条目条db_Article中包含了所有类目中的所有新闻条目的相关信息和具体新闻内容,如下表5-2。这里,username引用了db_Admin中的username列作为外键,而classmane引用了db_fClass中的classname列作为外键。在这里,由于外键的约束,所以只有管理员才拥有提交新闻的功能。
表5-2 新闻条目表
5.1.3 新闻评论表
新闻评论表db_Remark的结构设计如下表5-3。
这里,只有articleid作为外键和新闻条目表db_Article连接起来,并不存在username的外键约束,所以,提交新闻评论的用户可以不是系统用户,不需登录,新闻评论也不需要审核即可发布。
表5-3 新闻评论表
5.1.4 用户管理表
用户管理表db_Admin的设计结构如下表5-4。
表5-4 用户管理表
5.1.5 各表之间的关系图
由后台SQL数据库关系图向导引导下自动生成各表间的关系图。从图中可以知道各表之间的关系。如图5-1
图5-1 数据库中各表之间关系图
5.2 存储过程
为了有效管理数据库,创建一组存储过程是非常必要的,否则我们不仅需要在数据操作时使用各种SQL语句,而且也无法复用这些SQL语句,数据操作的效率受到影响。下面是数据库设计中所包含的部分存储过程及参数,说明等。如表5-5
表5-5 部分存储过程及参数说明表
6 系统功能的设计与实现
6.1 系统登陆首页
这是本系统的主页面,普通用户和管理员均能登陆,如图6-1。
图6-1 普通用户和管理员首页登陆
6.2 新闻浏览
普通用户可以通过点击导航栏上的校园新闻进行初步的新闻浏览,在这里普通用户能浏览到校园新闻初始的界面。如图6-2。
图6-2 新闻浏览
6.3 新闻搜索
接下来,普通用户可以点击搜索新闻按钮,进入新闻搜索页面。这里普通用户可以通过新闻内容或新闻题目进行新闻的搜索。以助学中心为标题,点击搜索,这时搜索结果会出该新闻:助学中心。如图6-3
图6-3 新闻搜索
新闻搜索核心代码:
private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
if(Page.IsValid)
{
if(search1.SelectedIndex==0) //搜索标题
{
SqlConnection1=newSqlConnection(ConfigurationSettings.AppSettings["dsn"]);
SqlDataAdapter1 = new SqlDataAdapter();
SqlDataAdapter1.SelectCommand=new SqlCommand("sp_searchCkArticleByTitle",SqlConnection1);
SqlDataAdapter1.SelectCommand.CommandType=CommandType.StoredProcedure ;
SqlDataAdapter1.SelectCommand.Parameters.Add("@title",SqlDbType.NVarChar ,500);
SqlDataAdapter1.SelectCommand.Parameters["@title"].Value=keyword.Text ;
bindgrid();
}
else //搜索内容
{
SqlConnection1=newSqlConnection(ConfigurationSettings.AppSettings["dsn"]);
SqlDataAdapter1 = new SqlDataAdapter();
SqlDataAdapter1.SelectCommand=newSqlCommand("sp_searchCkArticleByContent",SqlConnection1);
SqlDataAdapter1.SelectCommand.CommandType=CommandType.StoredProcedure ;
SqlDataAdapter1.SelectCommand.Parameters.Add("@content",SqlDbType.NText);
SqlDataAdapter1.SelectCommand.Parameters["@content"].Value=keyword.Text.Trim() ; bindgrid();
}
}
}
6.4 系统管理员
这是管理员登陆界面,管理员通过用户名,密码的输入,登陆到系统管理后台,管理员分为系统管理员和新闻管理员。显示系统管理员所拥有的管理权限,接下来系统管理员就能执行自己所拥有的权限。如图6-4
图6-4系统管理员权限
6.5 进入分类管理
系统管理员进入此模块时,能对新闻分类进行管理。如图所示系统管理员能添加分类,如校园新闻,学术交流,校园广播,教师信息,学生工作处等等,并且等对分类新闻进行修改和删除。如图6-5
图6-5 添加新闻分类
添加新闻分类核心代码:
private void Submit_Click(object sender, System.EventArgs e)
{
if(Page.IsValid)
{
SqlConnection1 = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
SqlCommand1=new SqlCommand("sp_selFclass",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add("@classname",SqlDbType.Char,200);
SqlCommand1.Parameters["@classname"].Value=ClassName.Text.Trim();
try
{
SqlConnection1.Open();
SqlDataReader1=SqlCommand1.ExecuteReader();
if(SqlDataReader1.Read()==true)
{
myLabel.Text="已有此分类,请重新输入名字!";
SqlDataReader1.Close();
}
else
{
SqlDataReader1.Close();
SqlCommand1=new SqlCommand("sp_addFclass",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add("@classname",SqlDbType.Char,200);
SqlCommand1.Parameters["@classname"].Value=ClassName.Text.Trim();
SqlCommand1.ExecuteNonQuery() ;
myLabel.Text="添加分类成功!";
}
}
catch (SqlException e1)
{
myLabel.Text ="数据库操作错误:"+e1.Message;
}
6.6 添加新闻
系统管理员选择新闻类型后,就能对新闻进行详细的添加,如新闻标题,新闻属性,新闻内容,新闻介绍,相关新闻,作者。如图6-6
图6-6 添加新闻
添加新闻核心代码:
private void addClassNum()
{
SqlConnection1= new SqlConnection(ConfigurationSettings.AppSettings["dsn"]); SqlCommand1=new SqlCommand("sp_addClassNum",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add(newSqlParameter("@className",SqlDbType.Char,200));
SqlCommand1.Parameters["@className"].Value=ClassName.SelectedItem.Text.Trim();
string username=(string)Session["username"];
try
{
SqlConnection1.Open();
SqlCommand1.ExecuteNonQuery();
}
catch (SqlException e1)
{
myLabel.Text ="数据库操作错误:"+e1.Message;
}
SqlConnection1.Close();
}
private void addArticle()
{
int hl=0;
int HL=0;
if(Headline.Checked)
{
hl=1;
}
else
{
hl=0;
}
if(HighLight.Checked)
{
HL=1;
}
else
{
HL=0;
if(ul.Trim()=="系统管理员")
{
SqlCommand1.Parameters["@checkup"].Value = 1;
}
else
{
SqlCommand1.Parameters["@checkup"].Value = (int)Session["addnchk"];
}
try
{
SqlConnection1.Open();
int d = SqlCommand1.ExecuteNonQuery();
if(d>0)
{
myLabel.Text="添加新闻成功";
}
else
{
myLabel.Text="添加新闻错误";
}
}
6.7 新闻管理
系统管理员在此功能模块中对添加的新闻(如校园新闻)进行删除。如可以对图中的新闻—省市领导亲临我校视察工作进行删除。如图6-7
图6-7 新闻管理
新闻管理核心代码:
if(c.Trim()=="系统管理员"||(int)Session["chgnews"]==1)
SqlConnection1=newSqlConnection(ConfigurationSettings.AppSettings["dsn"]);
SqlCommand1=new SqlCommand("sp_delClassNum",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add("@className",SqlDbType.Char);
SqlCommand1.Parameters["@className"].Value = e.Item.Cells[2].Text.Trim();
try
{
SqlConnection1.Open();
SqlCommand1.ExecuteNonQuery();
}
catch (SqlException e1)
{
myLabel.Text ="数据库操作错误:"+e1.Message;
}
SqlConnection1.Close();
SqlCommand1=new SqlCommand("sp_delArticle",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add(new SqlParameter("@articleid",SqlDbType.BigInt));
SqlCommand1.Parameters["@articleid"].Value = MyDataGrid.DataKeys[e.Item.ItemIndex];
try
{
SqlConnection1.Open();
int r=SqlCommand1.ExecuteNonQuery();
if(r>0)
{
myLabel.Text="删除成功!";
}
}
else
{
myLabel.Text="删除错误!";
}
6.8 新闻转移
系统管理员能对新闻类型进行转移,如从分类中的校园新闻转移到学术交流。如图6-8
图6-8 新闻转移
新闻转移核心代码:
SqlCommand1=new SqlCommand("sp_updateArticleByClass",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add("@className",SqlDbType.Char,200);
SqlCommand1.Parameters["@className"].Value = name2;
SqlCommand1.Parameters.Add("@oldclassname",SqlDbType.Char,200);
SqlCommand1.Parameters["@oldclassname"].Value = name1;
try
{
SqlConnection1.Open();
int i=SqlCommand1.ExecuteNonQuery();
if(i>0)
{
myLabel.Text="转移成功";
}
}
catch (SqlException e1)
{
myLabel.Text ="数据库操作错误:"+e1.Message;
}
finally
{
SqlConnection1.Close();
}
6.9 添加用户
系统管理员可以添加用户,如新闻管理员或系统管理员。如图6-9。
图6-9 添加用户
添加用户核心代码:
private void Submit_Click(object sender, System.EventArgs e)
{
if(Page.IsValid )
{
SqlConnection1 = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
SqlCommand1=new SqlCommand("sp_addAdminValidate",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add("@username",SqlDbType.Char,40);
SqlCommand1.Parameters["@username"].Value =Username1.Text.Trim();
try
{
SqlConnection1.Open();
SqlDataReader1=SqlCommand1.ExecuteReader();
if(SqlDataReader1.Read()==true)
{
myLabel.Text="已有此管理员,请重新输入姓名!!" ;
SqlDataReader1.Close();
}
else
{
SqlDataReader1.Close();
SqlCommand1=new SqlCommand("sp_addAdmin",SqlConnection1);
SqlCommand1.CommandType=CommandType.StoredProcedure;
SqlCommand1.Parameters.Add("@username", SqlDbType.Char,40);
SqlCommand1.Parameters["@username"].Value=Username1.Text.Trim();
SqlCommand1.Parameters.Add("@password",SqlDbType.Char,40);
SqlCommand1.Parameters["@password"].Value=Password1.Text.Trim();
SqlCommand1.Parameters.Add("@userclass",SqlDbType.Char,20);
SqlCommand1.Parameters["@userclass"].ValueUserClass1.SelectedItem.Text.Trim();
SqlCommand1.Parameters.Add("@remark",SqlDbType.NChar,200);
SqlCommand1.Parameters["@remark"].Value = Remarks.Text.Trim();
try
{
int i=SqlCommand1.ExecuteNonQuery();
if(i>0)
{
myLabel.Text="添加管理员成功!";
}
}
catch (SqlException e1)
{
myLabel.Text ="数据库操作错误:"+e1.Message;
}
6.10 用户管理
系统管理员能对新添加的用户进行管理,如删除,在这里我们必须注意新闻管理员没有此权限,最初的系统管理员是不能被删除的。如图6-10,当删除系统管理员admin是,会提示删除错误。
图6-10 用户管理
用户管理核心代码:
public string show(object a,object b)
{ string d=a.ToString();
String c=a+"(<ahref=admin_popedom.aspx?username="+b+">修改权限</a></font>)";
if(d.Trim()=="系统管理员")
{
eturn d;
}
else
{
return c;
}
try
{
SqlConnection1. Open();
Int i=SqlCommand1.ExecuteNonQuery();
if(i>0)
{
myLabel.Text="删除成功";
MyDataGrid.EditItemIndex = -1;
(MyDataGrid.CurrentPageIndex>0)
{
MyDataGrid.CurrentPageIndex= MyDataGrid.CurrentPageIndex-1;
}
else
{
myLabel.Text="删除错误!";
MyDataGrid.EditItemIndex = -1;
}
6.11 修改账号
系统管理员或新闻管理员都拥有此权限。系统管理员或新闻管理员可随时更改他们的账号名和密码,这样更能提高系统的安全性,防止不法分子盗取账号名和密码对系统进行破坏。如图6-11
图6-11 账号修改
6.12 权限管理
系统管理员能对自己和新闻管理员的管理权限进行选择,如添加新闻,审核新闻,修改新闻等等。如图6-12
图6-12 管理员权限管理
权限管理核心代码:
if(dr["popedom"]!=null)
{
string popedom=(string)dr["popedom"];
int i=popedom.Length;
string df=popedom.Replace("addnews","1");
int j=df.Length ;
if(i!=j)
{
addNew.Checked=true;
}
i=popedom.Length;
df=popedom.Replace("addnchk","1");
j=df.Length ;
if(i!=j)
{
addNchk.Checked=true;
}
i=popedom.Length;
df=popedom.Replace("chgnews","1");
j=df.Length ;
if(i!=j)
{
chgnews.Checked=true;
}
i=popedom.Length;
df=popedom.Replace("chknews","1");
j=df.Length ;
if(i!=j)
{
chknews.Checked=true;
}
i=popedom.Length;
df=popedom.Replace("remark","1");
j=df.Length ;
if(i!=j)
{
remark.Checked=true;
}
6.13 新闻管理员
这是新闻管理员管理权限页面,新闻管理员拥有添加新闻,更改账号的权限。如图6-13。在这必须指出,新闻管理员拥有的权限由系统管理员在权限管理中确定。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4e753d3a66314058a6a09863db2f93d4.png)
图6-13 新闻管理员权限
7 系统测试
系统在上述软硬件环境下分别对新闻浏览,新闻搜索和管理员的详细设计功能进行测试,结果能够达到预期功能。
结 论
本文展示了一个较为完整的校园新闻发布系统从需求分析到设计实现的完整过程,在功能分析和划分,数据库设计,页面设计各层次进行了详细的分析和设计。本系统由于没有采用标准的三层结构设计模式,因此,提供丰富而高效的数据库存储过程成为系统设计的关键。在两层架构中,进行数据访问主要通过DataReader或DateSet对象调用相应的存储过程完成数据访问。在这里我们可知道新闻发布系统可作为一种典型的信息管理系统,其设计实现技术可以推广使用。
到现在为止,本校园新闻发布系统能够实现用户所需要的功能,如新闻浏览,新闻搜索,管理员能对本校园新闻发布系统进行管理,如添加分类,添加新闻,添加用户等计划内的大部分功能。
参考文献
[1] 吉根林,崔海源.ASP.NET程序设计教程[M].北京:电子工业出版社, 2004。
[2] 东方人华.Visual C#.NET Web应用程序入门与提高[M].北京:清华大学出版社, 2005。
[3] 杨浩.ASP.NET.1.1入门经典[M].北京:清华大学出版社, 2005。
[4] 张跃廷,王小科,许文武.ASP.NET数据库系统开发[M].北京:人民邮电出版社, 2007。
[5] 刘斌,张军.ASP.NET+SQL Server动态网站开发[M].北京:清华大学出版社, 2005。
[6] 方睿,刁仁宏,吴四九.网络数据库原理及应用[M].成都:四川大学出版社, 2005。
[7] 李明刚, 肖建.ASP.NET Web 站点高级编程范例[M].北京:清华大学出版社, 2004。
[8] 李伟红.SQL Server 2000数据库及应用[M].北京:清华大学出版社, 2005。
致 谢
省略
5、资源下载
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于C#+asp.net+sqlserver的校园新闻发布系统设计与实现(源码+文档)_C#_BS架构_新闻发布系统.zip |