基于C#+asp.net+sqlserver的网上教材管理系统设计与实现(毕业论文+程序源码)
大家好,今天给大家介绍基于C#+asp.net+sqlserver的网上教材管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦
文章目录:
1、项目简介
1.本系统主要完成了一个网上教材管理系统,其主要实现学生、教师、教材科的订书,学生、教师的领书功能,教材零售,因书的质量问题换书,报损处理。对订书的情况做统计,为师生提供各种条件的教材信息查询等功能。
2. 本系统开发平台选用Visual Studio ,后台数据库为SQL Sever Express。本系统适用于各类型学校的教材科的库存管理工作,可以大大的提高了教材科工作的效率,减少失误。本文将对该系统的设计开发过程和具体功能做详细的介绍。
2、资源详情
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9397个字24页
包含内容:整套源码+完整毕业论文
3、关键词:
教材管理;教材领取;库存管理;ASP.NET;B/S4、毕设简介
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
引言
在学校,教材管理对教学工作的正常进行起着至关重要的作用,因此教材科管理人员对于教材征订、教材领取、教材信息管理等,需要有一个自动化的工具进行统筹管理,才能够及时、准确地反映教材的征订状态。
目前,很多学校教材科的管理工作还停留在纸质记录的原始方式上。教师书面提出需要使用的教材名,上交后由系领导审核,审核通过后,由教学秘书统计需要的数量,然后提交给教材科。之后教材科还有大量的工作,统计各系各班级需要某种教材的数量,任课教师需要的数量,教材科需要的数量,然后进行订购。领书的时候,要学生提供领书单才能领书,还要记得立刻做记录。这样的操作过程不但繁琐,而且在这一系列的操作中,无论哪一步出了错误,对最终教学工作的正常进行都有很大的影响。
鉴于以上的原因,通过对教材科的具体工作进行分析,编写了网上教材管理系统,用来方便的管理教材科的教材管理工作。
这个系统是面向教材科库房的信息管理系统。系统通过对各种信息的录入、修改、查询、删除、统计等各个功能的实现,基本上可以满足教材科对于征订、领取的管理,在很大的程度上提高教材库存管理的效率和合理性。
系统的功能和传统管理模式相比较,毫无疑问会大大提高教材科的运作效率,辅助提高学校的相关部门决策水平,管理水平,为减少差错,节省人力,减少学生领书时间,提高师生满意度,提供有效的技术保障。
2 相关理论基础
2.1 B/S结构
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。
2.2 ASP.NET与Visual Studio
ASP.NET是建立在通用语言运行时刻库(CLR)上的应用程序框架。他用来在服务器端构建功能强大的web应用程序。ASP.NET提供了几个超越以前web开发模式的优点:
·增强的性能。ASP.NET是运行在服务器端的编译后的CLR代码,而不是像ASP那样解释执行。 ASP.NET利用提前绑定,即时编译,本地优化和缓存服务来提高性能。所有这一切,性能远远大于你以往写的每一行代码。
·世界级水平的开发工具支持。在Visual Studio .net的集成开发环境(IDE)中,ASP.NET框架由工具箱和设计器组成。所见即所得的(WYSIWYG)编辑方式、拖放服务器控件、以及自动部署,仅仅是这一强大工具所提供的一少部分功能。
·强大而富有弹性。由于ASP.NET是基于(CLR)的,因此整个.net平台的强大和富有弹性,同样可以应用于web应用程序开发者。 .net框架的类库、消息以及数据访问解决方案,都可以无缝集成到web。ASP.NET也是语言中立的,因此你可以选择你最熟悉的语言,或者通过几种语言来共同完成一个应用。而且,CLR的互用性可以保证你升级到ASP.NET的时候,现存的基于COM的开发投资依然保留。
·简单。ASP.NET使执行常用的工作变得很容易,比如从简单的表单提交、客户端验证,到部署和站点配置。例如,ASP.NET允许你建立用户接口,实现页面和逻辑代码的分离,同时,就像VB的表单执行模式那样来处理事件(也就是说,由页面驱动模式变成了事件驱动模式)。此外,CLR简化了部署,用来管理代码服务,例如自动参照和垃圾回收。
·易于管理。ASP.NET使用一个基于文本的、分层次的配置系统,它简化了服务器端环境和web应用程序的设置。由于配置信息用纯文本格式保存,新的设置不需要本地管理工具的支持。这种“零本地支持”的理念也同样应用到了部署ASP.NET应用程序。ASP.NET应用程序部署到服务器,简化为复制必要的文件到服务器。在部署,甚至替换正在运行的变异代码的时候,也不需要重新启动服务器。
·可伸缩性和有效利用性。ASP.NET被设计成可伸缩的,能为集群和多处理器环境设计提高性能。而且,ASP.NET运行时刻密切监视和管理进程,这样,如果发生了错误的行为,例如漏洞和死锁,新的进程会在当前位置建立,来帮助你的应用程序继续处理事件请求。
·可订制和扩展。ASP.NET提供一种良好的扩充结构,允许开发者在适当的级别“插入”他们的代码。事实上,使用自己的编写的组件可以扩展或者替换ASP.NET运行时刻的任何子组件。
Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。
2.3 SQL与SQL Sever Express
SQL是用来对存放在计算机中的数据库进行组织、管理和检索的语言。SQL一词是“Structured Query Language(结构式查询语言)”的缩写,是IBM公司San Jose实验室为System R而设计的语言,从1982年开始,美国国家标准协会(ANSI)即着手SQL标准化工作,1986年ANSI的数据库委员会批准了SQL作为关系数据库语言的美国标准,这就是第一个SQL标准,同时公布了SQL标准文本,在此后不久的1987年,国际标准化组织(ISO)也做出了同样的决定,目前的SQL标准是1992年指定的SQL—92标准,是一种用于与数据库进行交互的语言。SQL语言的极大普及是当今计算机工业中最引人注目的趋势之一。在过去的几年中,SQL已经发展成为标准计算机数据库查询语言。现在,微机到大型机,有很多数据库产品支持SQL,SQL的国际标准已经能够被采用并被不断扩充。SQL在主要计算机开发上的数据库体系中占有重要的地位。
省略
3 需求分析与总体设计方案
3.1 系统需求
3.1.1 用户角色需求
根据习惯上教材科的操作方式,整个系统应该有三种用户角色,即教材科人员,普通学生教师和系统管理员。
教材科人员处理订书领书操作,而不能进入到系统管理的模块中;学生教师可以查询教材信息,不能进入其它任何模块;系统管理员在后台对系统进行用户管理,教材信息管理,并展开系统的正常运行维护工作,但不能进入教材科人员操作模块。除普通的学生教师等查询用户外,每个角色操作都通过密码验证和用户类型选择后登录。通过系统管理员才可以修改密码。工作完成后,通过各自专门的出口退出登录状态。
3.1.2 功能需求
系统功能主要包括订书处理、领书处理、特殊处理、系统信息管理四个部分。以下按照不同的功能处理对具体功能进行描述:
一、订书处理:
教材科人员通过登录页面登录成功后,可以通过菜单选择为学生、老师、或者教材科订书,首先选择需要定的教材,输入教材使用的学年度,如果为学生订书需要选择系和班级,填入需要订购的数量,如果是教师订书需要填写教师名字,选择确定,订书的过程就完成了。
二、领书处理:
教材科人员通过登录页面登录成功后,可以通过菜单选择为学生、老师做领书处理。当学生代表来领书时,通过班级就可以查询到需要领什么书,需要领多少本,什么书已经领取了等信息,领书成功会做上领书标记。教师来领书时,通过选择教师名字,就可以知道需要领什么书,也和学生类似的在领书后做领书标记。
三、特殊处理:
特殊处理指的是换书、报损、零售、统计、查询这些功能。教材科人员从登录模块登录后可以进入这些功能模块。换书是只书本身由缺陷的情况下,对领书的学生或老师做换书处理,并作记录。报损是因为其它教材科的原因造成的问题做报损处理,并且登记。零售是对丢失教材的学生做零售处理,并且记录。这些操作都是要在教材科有自己购买相关教材的情况下才能进行。如果在进行这些操作的时候,数量少于阀值将报警,数量不足或没有库存的时候会弹出提示框并关闭相关功能。统计功能是在选择学年度和教材后统计订购数量,或者按班级统计订购数量。查询模块是所有用户在没有登录情况下都可以操作,可以按模糊查询、按授课教师等方式查询教材相关信息。
四、系统管理:
系统管理员从登录页面进入系统,选择用户类型为“系统管理”。系统管理员登录后不能进入教材科用户使用的模块。系统管理员可以添加删除修改教材信息,管理各类用户,设置报警阀值,管理班级和系的信息。
3.1.3 性能需求
整个系统应当操作简便,界面友好,维护简便。数据库要求运行稳定,执行速度快,数据安全性高。软件系统本身运行对计算机硬件平台和操作系统平台要求适中。
3.2 系统层次模块图
教材库存管理系统层次模块图(图3-1):
图3-1 系统层次模块图
3.3 系统流程图
网上教材管理系统系统流程图(图3-2):
图3-2 系统流程图
3.4 数据库设计
数据库的表结构是非常重要的环节,一个良好的数据库设计,可以提高效率,方便维护,并且为以后进行功能的扩展留有余地。表3-1是系统数据库表的清单。
4 详细设计
4.1 主框架
整个系统的布局采用了框架结构。顶部框架里是系统的标题。主框架又分左右两部分。左部框架是树型功能菜单,整个系统功能模块的跳转主要在这里完成。右部框架用来显示和操作各主要功能模块。
4.2 数据操作公共类
整个系统在几乎所有的模块中都会涉及到大量类似的数据库操作。所以把几个常用的方法抽出,放到一个公共的类中,供所有的模块调用。
首先建立一个和SQL Server 数据库之间的连接。代码如下:
SqlConnection sqlconn = new SqlConnection("Data Source=(local)\\sqlexpress;
Initial Catalog=bm;Persist Security Info=True;User ID=xsliang;Password=xiaosong");
DataCom方法用来返回受影响的结果的行数,但不返回任何东西。操作过程是首先打开连接,之后建立一个对 SQL Server 数据库执行的一个SQL 语句的对象,执行SQL语句,然后关闭数据库连接。具体代码如下:
public void DataCom(string sqlstr)
{
sqlconn.Open();
SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);
sqlcom.ExecuteNonQuery();
sqlconn.Close();
}
rowNumber方法用来返回受影响的行数。但是和DataCom不同的是回返回一个具体的int类型的行数。
rowFirst方法用来返回一个object类型的查询后的第一行的第一列的结果。代码和上面的两个方法类似,只是执行ExecuteScalar方法来取得第一行的第一列的结果。
4.3 登录操作
登录页面的功能主要是供合法的用户根据自己的用户类型进行登录。网上教材管理系统登录模块运行的结果如图4-1所示。
图4-1 网上教材管理系统登录模块运行的结果
如果用户在没有登录的情况下选择其它功能模块会退回到登录界面。如果用户已经登录,可以在登录模块进行退出登录的操作。
在登录到这个页面或者刷新这个页面的时候,首先要进行一次session的判断。在输入用户名密码后,先确认输入框中有数据,将把输入框中的数据和数据库中的数据进行比较验证。如果一切通过,将产生两个session分别用来存放用户名和用户类型。之后跳转到相应的登录成功的页面。
4.4 订书操作
网上教材管理系统订书模块分为三个子模块,分别是学生订书模块、教师订书模块、教材科订书模块。主要功能是完成各类用户的订书操作。网上教材管理系统学生订书模块运行的结果如图4-2所示。
图4-2 网上教材管理系统学生订书模块运行的结果
当教材科工作人员以教材科类型用户登录到系统后,可进行教材的订书操作。首先填写教材使用的学年度,然后选择使用的系和班级,再选择使用的教材名,最后填写订书的数量,如果确认无误后,就可以点击确定订书。
在进入到这个模块时,首先还是判断是否有session存在,没有的情况下返回登录页面。存在session时,判断用户类型是否属于教材科用户,如果不是,跳转到管理页面。
在输入了订书信息选择确定后,如果一切无误,会进行插入操作。订购信息会先后插入到订书表和领书表。但是在领书表中不会插入领书时间、操作者、领书标记这些信息。成功后会返回订书模块。具体的实现代码如下。
string sql_dingshu = "insert into dingshu"
+"(number,time,name,class,department,xnd,jiaocaike,bookname)"
+"values('" + number + "','" + time + "','" + name + "','" + classname + "','" + department + "','" + xnd + "','" + jiaocaike + "','" + bookname + "')";
db.DataCom(sql_dingshu);
string sql_lingshu = "insert into lingshu"
+ "(number,class,department,xnd,jiaocaike,bookname,tag)"
+ "values('" + number + "','" + classname + "','" + department + "','" + xnd + "','" + jiaocaike + "','" + bookname + "','" + tag + "')";
db.DataCom(sql_lingshu);
Response.Redirect("st_dingshu.aspx");
4.5 领书操作
网上教材管理系统领书模块分为两个子模块,分别是学生领书模块、教师领书模块。主要功能是完成学生和老师的领书操作。网上教材管理系统学生领书模块运行的结果如图4-3所示。
图4-3 网上教材管理系统学生领书模块运行的结果图
如是学生领书操作,只需要选择相应的系和班级,点击查询后就可以看到已经领了的教材和需要领取的教材。教师领书模块操作类似,不同的只是根据教师名字选择。
在进行订书操作的时候,首先会判断用户是否选择了要领取的教材。如果没有选择具体的教材就进行领书操作,会弹出错误提示,之后返回。实现代码如下:
//判断是否选择了书
if (GridView1.SelectedIndex == -1 && GridView2.SelectedIndex == -1)
{
Response.Write("<script lanuage=javascript>alert('没有选择图书!');
location='javascript:history.go(-1)'</script>");
return;
}
string ID1;
if (GridView1.Visible == true)
{
ID1 = GridView1.SelectedDataKey.Value.ToString();
}
else
{
D1 = GridView2.SelectedDataKey.Value.ToString();
}
如果选择了具体的教材,接下来会通过领书标记判断选择的教材是否已经被领取了。如果书已经被领取了,也会弹出出错提示,之后返回。具体代码如下:
//加一个判断领书是否已经发生
string sql_1="select tag from lingshu where tag='"+true+"' and ls_ID='"+ID1+"'";
if (Convert.ToBoolean(db.rowFirst(sql_1)))
{
Response.Write("<script lanuage=javascript>alert('书已经领取!');
location='javascript:history.go(-1)'</script>");
return;
}
如果一切没有问题,会把领书的时间、操作者、领书标记填入领书记录中。然后返回领书模块。具体代码如下:
string sql="update lingshu set time='"+DateTime.Now+"',name='"+name+"',tag='"+true+"' where ls_ID='"+ID1+"'";
db.DataCom(sql);
Response.Redirect("st_lingshu.aspx");
4.6 报损 换书 零售操作
报损是当教材因教材科的原因造成损坏时,选择对相应的书进行报损处理。换书是书已经发给学生或教师后,因书自身的问题进行换书处理。零售是针对部分学生因各种原因需要再次购买教材时进行教材零售。网上教材管理系统的教材零售模块运行的结果如图4-4所示。
图4-4 材库存管理系统教材零售模块运行的结果图
报损、换书、零售其实都是特殊的领书过程,只对应于教材科的领书领书操作。如果教材科没有订购教材,这些操作则都不能进行。
退换和报损处理的操作几乎相同,选择需要报损或退换的教材,在有足够库存的情况下进行报损或退换操作,分别记入报损表中和退换表中,领书表中教材科领书的相应项目数量减少。在库存少于规定的阀值的时候会进行报警。在没有库存的时候会显示“无库存”并且禁止对此教材进行相应的报损、换书、零售处理。
零售模块与报损、换书不同的是,在选择好教材进行点击查询后会显示教材的价格。在购买后会显示购买的总价格并写入表中。
首先在点击查询之后,通过数据库得到报警阀值。代码如下:
Label4.Visible = false;
database db = new database();
//SqlCommand cmd = new SqlCommand();
GridView1.Visible = true;
//GridView2.Visible = false;
string number = "select number from number";
object test = db.rowFirst(number);
decimal test_de = Convert.ToDecimal(test);
得到报警阀值后,与得到的库存教材数量进行比较,如果小于库存阀值就会出现“库存不足”的报警。如果领书标记显示为真表示该教材已经没有库存了。
通过参数化查询得到教材的价格。
string price = "select price from jiaocai where bookname='"+DropDownList1.Text+"'";
Label1.Text = db.rowFirst(price).ToString();
pirce_de = Convert.ToDecimal(Label1.Text);
在点击了确定购买按钮后,首先判断是否选择了教材,然后判断是否输入了购买的数量。之后会做一个防止过量购买的安全检查,根据输入的购买数量看是根本没有库存还是库存不足。如果通过会根据购买的数量计算总的价格,购买后会对教材科领书的数量做相应的处理,如果该图书被购买完了,会做上领书标记防止再被购买。
4.7 查询汇总
汇总是根据教材使用的学年度,通过教材名或者系,对教材的订购情况进行汇总统计。网上教材管理系统教材汇总模块运行的结果如图4-5所示。
教材查询模块是一个面向所有用户的模块。在这个模块中可以通过组合查询、班级订购教材查询、授课教师查询来查询到自己需要的教材。网上教材管理系统教材查询模块运行的结果如图4-6所示。
图4-5 网上教材管理系统教材汇总模块运行的结果
图4-6 网上教材管理系统教材查询模块运行的结果
4.8 系统管理
这是本系统的系统管理部分。需要在登录的时候选择管理员才可以进入。图书管理主要是对图书信息的添加、删除、修改。网上教材管理系统图书管理模块运行的结果如图4-7。系统管理主要作用是设置报警阀值、添加删除修改用户、添加删除班级和系。网上教材管理系统系统管理模块运行的结果如图4-8。
图4-7 网上教材管理系统教材管理模块运行的结果
图4-8 网上教材管理系统系统管理模块运行的结果
教材管理模块可以对教材进行添加、删除、修改操作。进入模块后,可以直接点击“添加新教材”打开一个新的页面来输入教材的相关信息,在确认输入无误后点击确定,通过一个insert语句把新教材的数据放入数据库的教材表。另外,在进入教材管理功能模块的时,有一个“显示所有教材”按钮,可以选择教材对一些信息进行修改,之后用UPDATA使修改后的数据写入数据表,也可以选择删除来删除错误的教材数据。
另一个重要的模块是系统管理模块,虽然在功能上相对简单,但是在整个系统各个模块中起着重要作用。该模块的主要功能是管理用户,设置用户的类型。这些user在多个表中需要作为一个值被插入,也用于session判断中。另一个功能设置报警的阀值,以便教材科可以根据需要及时补充教材。还有一个功能是添加新的系和班级,这样由管理员输入到数据库再由教材课使用的时候被调用,可以减少教材科的工作量,也避免了出错。
5 测试
在系统制作完成后对系统的功能和健壮性进行了测试。
建议使用的硬件环境:
● 处理器:Inter Pentium 4 或更高。
● 内存:256M以上
● 硬盘空间:20GB以上
● 显卡:SVGA显示适配器
建议使用的软件环境:
● 操作系统:Windows XP
● 数据库:SQL Server Express
下面是功能测试:
(1)系统管理部分,可以按相应身份登录到系统,可以添加、修改、删除教材,可以添加、删除、修改用户,可以设置报警阀值。
(2)库存管理部分,可以以学生、教师、教材科的类型进行订书操作。可以以学生、教师的类型进行领书操作。可以在教材科有订书的情况下进行报损、换书、零售的操作。可以按班级和书名统计某学年度内订书的数量。可以按照相关的条件进行图书查询。
由于操作此系统的非计算机专业人员,在操作的过程中容易发生错误。所以在设计系统的时候考虑了很多鲁棒性方面的问题。
下面是错误操作测试:
(1) 登录的时候输入错误用户或者不输入用户会报错提示。
(2) 订书的时候不输入数量、学年度、教师姓名时候会报错提示。
(3) 领书的时候不选择图书、重复领书会报错提示。
(4) 报损、换书、零售时候不选择图书、不填写数量、过量领书会报错提示。
通过对系统功能测试和错误操作测试,基本都达到了预期的效果。
结 论
这个网上教材管理系统成功的实现了教材订购、教材领取、报损、换书、零售、统计、库存报警等主要功能。系统的最大的特点是操作简单,部署方便,并且较好的防止错误操作发生,尽可能多的给用户提示信息。这样面对非计算机专业的教材科管理人员能很快上手,极大的提高教材科工作的效率和服务的质量。
参考文献
[1] BRADLEY L.JONES[美]. 21天学通C#[M]. 信达工作室译 北京:人民邮电出版社,2005。
[2] 求是科技. ASP.NET数据库管理系统开发实例导航[M]. 北京:人民邮电出版社,2005。
[3] Christian Nagel[美]. C#高级编程[M] 李敏波译. 北京:清华大学出版社,2006。
[4] Jesse Liberty[美]. Programming ASP.NET[M] 瞿杰 赵立东译. 北京:电子工业出版社,2007。
[5] 张树亮 李超. ASP.NET 2.0+SQL Server网络应用系统开发案例精解[M]. 北京:清华大学出版社,2006。
[6] 郝刚. ASP.NET 2.0开发指南[M]. 北京:人民邮电出版社,2006。
[7] Chris Hart;John Kauffman[美]. ASP.NET 2.0经典教程–C#篇[M] 孟宪瑞;易磊译. 北京:人民邮电出版社,2007。
致 谢
省略
5、资源下载
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于C#+asp.net+sqlserver的网上教材管理系统设计与实现(源码+文档)_C#_BS架构_网上教材管理系统.zip |