基于SSM框架的图书馆管理系统设计与实现

基于SSM框架的图书馆管理系统

摘要:在21信息时代中,编程技术的日益成熟,计算机已经是普通使用的。编程技术的实现是基于计算机硬件上,计算机科学与技术的进步,让时代发展的更快,更加信息化。人们都是学习如何使用计算机来辅助做一些工作或者管理一些重要的资料。因此,通过计算机管理数据是一个很有效的手段
JAVA是20世纪由著名的大公司推出来的面向对象的编程语言,它可以运用在很多地方上,它的特性决定了它是一门很方便运用在应用开发上面。那么本图书馆管理设计采用JAVA编程语言整体结合JAVA技术的一些特性,运用简单的数据库,实现基于局域网的图书馆管理系统。随着信息的增多,图书和用户数量的增多,很多图书信息数据管理增大。传统的手工方式管理工作量大,整体管理效率不高,不方便读者对图书进行查阅,已经不能满足要求。在这个信息时代里,计算机编程技术就成为了重中之重的时代模块。由此,传统管理的人工图书馆不能满足现在的需求,那么一个移动化的图书馆是非常有必要的。
根据我的调查和研究,想这样去设计图书馆,先做一些基本要求,先用MYSQL设计简单的数据库进行测试,然后自己去巩固下java的一些知识,还有java如何编写功能程序,再对图书馆进行基本的简单设计,实现简陋的大概页面。以满足图书书籍管理,该系统可以让读者借阅图书,查询图书,帮助管理员更容易管理图书信息。
关键词:JAVA , MYSQL,spring框架 图书馆书籍管理

Library management system based on SSM framework

Abstract: In the 21st information age, with the increasingly mature programming technology, computers have become common use.The realization of programming technology is based on the computer hardware, the progress of computer science and technology, let The Times develop faster, more information.People are learning how to use computers to do some work or to manage some important information.Therefore, data management through computer is a very effective means
JAVA is an object-oriented programming language introduced by famous big companies in the 20th century. It can be used in many places, and its characteristics determine that it is a very convenient application development.So this library management design USES JAVA programming language as a whole to combine some characteristics of JAVA technology, the use of simple database, library management system based on LAN.With the increase of information, the number of books and users increased, many books information data management increased.Traditional manual way of management workload, the overall management efficiency is not high, not convenient for readers to consult the books, has not been able to meet the requirements.In this information age, computer programming technology has become the most important time module.Therefore, the traditional management of artificial library can not meet the current needs, so a mobile library is very necessary.
According to my investigation and research, I want to design the library in this way. First, I will do some basic requirements. First, I will use MYSQL to design a simple database test.In order to meet the books and books management, the system can let readers borrow books, search books, help administrators more easily manage the book information.
Key words: JAVA, MYSQL,spring frame, library book management

目 录

1 绪 论
1.1 研究的背景和意义
1.2 研究的需求和目标
1.3 系统采用的技术
2 系统分析
2.1 系统需求说明
2.2 系统的运行环境和开发工具
3 系统设计
3.1 总体架构设计
3.2 功能模块的划分
3.2.1 用户管理和图书管理
3.2.2 借还管理和系统管理
3.2.3 出版社管理 系统监控
3.3 数据库设计
3.3.1 数据库需求分析
3.3.2 数据库的简洁设计
4 系统实现
4.1 基本界面实现
4.1.1 用户登录模块的实现
4.1.2 首页
4.1.3 角色管理模块的设计
4.2 主要界面实现
4.2.1书籍管理模块的实现
4.2.2 借阅管理界面模块的实现
4.3 重要功能的实现
4.3.1 实现数据库连接
4.3.2 图书添加
5 系统测试
5.1 测试的意义
5.2 测试的目的
5.3 软件测试措施
6 本章小结
参考文献:
致谢

1 绪 论

1.1研究的背景和意义
我的想法是想着以管理角度为基点,自己建立一个数据库,把所有图书信息全部聚集在一起放进去这个数据库。让数据库变成一个信息库,可以实现信息的获取,记录,查询等,同时还可以解放管理人员,让他们工作更加的轻松,没有那么多的压力,从而有更多的时间精力去做其他对自己有意义的事情。
据我的调查所知,我发现高校内很多管理图书的方式是靠人工慢慢的去记录图书资料的相关信息,而且有些图书的信息甚至是不全的。这样的方式缺点很多,效率并不高,工作量大投入的人力精力也较多。现在随着图书资料数量的越来越多,投入的时间精力也会增多。人们管理图书馆的资料,或者更新图书的旧信息的难度也会加大,是非常不方便的。因此,我认为传统的人工去管理图书在现在信息如此多的情况下是行不通的,那么运用计算机编程开发一个图书馆管理系统就是一个非常行的通的管理方法。
图书管理系统是通过计算机编程实现的系统,有着人工管理无法比的优点,比如查找方便快速,可靠性高,存储量大,并且成本低效率高。因此,一套以计算机管理方式的图书馆管理系统,是非常有必要的。
1.2研究的需求和目标
我自己对书籍的管理就是聚集管理,主要研究的是怎么实现书籍的管理操作(难点),用spring+springmvc+mybatis(可能运用其他技术代替)来实现图书书籍的管理操作,要求是主要是后台管理,需要掌握java语言(主要编程语言),前端只涉及简单的html+css+jsp+servlet技术。主要目的是实现用户借阅查询,预约,归还图书的功能,二是实现图书管理员的添加以及修改一些图书信息。最终实现整个系统的基本书籍管理。
1.3系统采用的技术
采用技术主要是编程:Java,环境是自己下载的最新版的JDK1.8.04,架构技术是spring+springmvc+hibernate(代替mybatis,未掌握mybatis这门技术,由于本人是学前端的),数据库采用mysql简单实现,运用jsp解决部分功能界面等,在系统结构上运用目前最基本用的三层体系结构(一般用于后台),方便用户直接运行后可以在浏览器上提交响应请求,服务器负责响应和反馈。数据库运用简单的mysql+jeecg开发平台,可以减少开发过程中出现的代码重复的问题,省去代码重复书写的过程与时间,可以灵活使用重复性大的代码,在一定的程度上可以减少工作量。

2 系统分析

2.1 系统需求说明
根据调查高校图书馆管理图书的形式,这个系统可以完成以下几个方面的基本功能要求:
1.对新书进行登记入库、删除管理。
图书馆管理人员对新的书籍进行添加,删除等一系列操作。
2.对借书读者信息提供维护功能
管理读者借书的基本信息,进行标注借的什么书以及是否续借或者当前状态。
3.可以借书、续借、还书功能
读者需要阅读书籍可以去借书,还可以在期限过后继续续借,也可以进行归还图书。

2.2 系统的运行环境和开发工具
操作系统:win 10
开发工具:Eclipse-j
Web服务平台:Tomcat 7.0
数据库管理:Mysql
JDK:1.8.0_44
开发语言:java,JSP

3 系统设计

3.1 总体架构设计
系统参与者:
管理员:主要负责用户的管理,有最大的管理权限,对系统进行维护。
图书馆管理员:主要查看图书基本信息,然后记录新图书,登记用户借书和还书。
图书借阅者:查看图书的基本信息。

3.2 功能模块的划分
一个软件的强弱可以决定一个软件的质量,根据想法分析系统的功能需求,划分出以下的图3-2功能模块
在这里插入图片描述
图3-2 功能模块图
3.2.1 用户管理和图书管理
管理员可以给用户一个账号,用户可以自行更改自己的账号的密码,还可以退出账号。支持表数据的导入等。

在图书管理这里,可以进行增加,删除,修改,查询图书等,提供搜索功能,方便读者搜索图书相关信息,支持表数据的导入。
3.2.2 借还管理和系统管理
读者先交纳100元押金,从而保证图书的归还。每位读者最多可以同时借2本图书。读者借用书后,在借书期间内还没阅读完,如果需要继续借用的话,则可以续借一次,但是如果续借之后若超出一个月则按天数进行扣款处罚。一天扣款1元钱。如果不继续续借的话,那么图书归还后则不会扣款。图书的借还管理可以分为三类:已借出、已入库、延迟归还。
在管理中的角色分类:管理员、图书馆管理员、读者。由于各个角色的所负责的不一样,所以进行分配的时候要加入权限控制使不同的角色登陆系统后所拥有的权限不同。
3.2.3 出版社管理 系统监控
对出版社进行维护,考虑到书籍都会标注出版社,所以为了便于在录入图书信息时进行快速选择出版社,详细记录图书的一些基本信息。
详细记录用户的登陆时间、以及退出系统的操作等等,管理系统一些操作记录一些情况,只做日志登记.
3.3 数据库设计
3.3.1 数据库需求分析
我们都知道,图书馆是图书资源信息的存储地,可以存储一系列图书,并且用户也只会越来越多。这就要管理大量的信息数据,同时我们也知道以前的图书管理都是几乎用人工管理这样的方式去管理的,一般人们用文本或者表格这些很不方便的方式去记录图书的信息,还有图书的状态,比如借阅的记录,借阅天数等,对图书的所有情况基本是通过人工进行检查的,这就导致很容易因为人的出错而图书记录出错。那么在图书信息越来越多的情况下,人工管理这样的方式必然是行不通的,并且很容易出现很多错误,让数据丢失,查找也是极其不方便。因此,时代的变迁,图书信息的管理也会改变。采用计算机信息管理手段是非有必要的,由此就出现的多种多样的数据库,用于管理图书信息是非常有效的手段。
数据库的设计是最重要的一环,并且它也是最困难的,建立数据库是系统最重要的环节,它是系统的最本质的内容。数据库的设计需要符合用户的最大需求,也要保证数据库的最大简洁。这样管理数据库才会有条不序,不会出现数据库混乱。我们都知道现在信息的疯狂增加,保存,刷新和查询,这就要求数据库结构一定要能充分满足各种信息的输出和输入,这样用户就在数据库中拿到对自己有用的信息,为后面的自己设计的具体数据库提供更方便的途径。
1.用户管理
包括读者(用户)的基本信息,读者的添加,编辑,删除。在用户管理中读者就是系统用户,所以还包括用户的登录系统,修改密码,查阅借阅管理的中自己是否借书或者借书后的状态是否归还等功能。
2.图书管理
主要包括借阅管理,书籍管理。根据自己的分析,书籍一般都会标注有出版社,因此,出版社管理也设计其中。图书管理中出版社跟图书信息相关,所以也把出版社管理设计为图书管理中的一环。
借阅管理包括录入借书的名字以及ID等,可以进行图书的删除,续借,归还图书。图书续借为延期使用图书的借出操作,图书的归还需要根据借书日期到归还日期进行是否进行罚款操作,到期前续借不算进去。
书籍管理包括书籍的添加,书籍的编辑,删除。
出版社管理包括出版社的信息添加,出版社的编辑,删除。
根据以上需求分析,设计简结数据库,如下:

3.3.2 数据库的简洁设计
数据库简洁设计如下几个要点:
(1) 保证数据的简单,不重复。
(2) 设计基本的结构,表间不关联。
(3) 保证数据结构的稳定。

根据要点,数据库的设计如下九个表:
表不关联(关联表未掌握),简洁设计,全部实现简单删除
字段 类型 长度 主键 是否空 说明
Id Int 255 Y N 管理员id
userName varchar 10 N N 用户名
PassWord varchar 100 N N 密码
Realname Varchar 50 N Y 真实姓名
Status Int 6 N Y 状态
Browser Vachar 20 N Y 浏览器
Signature Blob N Y 标志附件
Userkey Varchar 200 N Y 秘钥码
Departid Varchar 32 N Y 所属部门
表1 管理员信息表(T_S_BASE_USER)给管理员基本信息设置字段,Id作为主键。

表2 图书表(T_B_BOOK),这是图书基本信息的记录,图书的编号,名称以及图书作者等。

字段 类型 长度 主键 是否空 说明
Id varchar 36 Y N 图书编号
bookName varchar 30 N Y 图书名称
Author varchar 20 N Y 作者
BookType varchar 2 N Y 图书类型
Isbn varchar 30 N Y Isbn
Pressname varchar 30 N Y 出版社名称
Status varchar 10 N Y 状态

表3 出版社表(T_B_Press),这是与图书信息相关的出版社表,主要记录图书的出版社编号,哪家出版社,出版社地址等等。

字段 类型 长度 主键 是否空 说明
Id varchar 36 Y N 出版社编号
Pressname varchar 30 N Y 出版社名称
Pressaddr varchar 40 N Y 出版社地址
Presstel Varchar 15 N Y 出版社电话

表4借还书表(T_B_lend)借书还书记录表用于记录图书的借出和归还的日期。
字段 类型 长度 主键 是否空 说明
Id varchar 36 Y N 编号
bookId varchar 36 N Y 图书编号
bookName varchar 30 N Y 图书名称
Author varchar 20 N Y 作者
Isbn varchar 30 N Y Isbn
Userid Varchar 36 N Y 用户编号
Realname Varchar 30 N Y 真实姓名
Lenddate Datetime N Y 借出日期
ReturnDate Datetime N Y 归还日期
Debit Decimal 5 N Y 扣款
Totalcount varchar 1 N Y 续借次数
Status varchar 1 N Y 状态

表5 部门表(T_S_DEPART) 用于分配角色属于哪个部门。
字段 类型 长度 主键 是否空 说明
Id Varchar 36 Y N 部门编号
DepartName Varchar 100 N Y 部门性质
Description Text N Y 描述

表6 日志表(T_S_LOG)这个表主要用于详细记录系统的基本情况。

字段 类型 长度 主键 是否空 说明
id Varchar 36 Y N 日志编号
Browser Varchar 100 N Y 浏览器
Logcontent Text N Y 日志内容
Loglevel Int 6 N Y 日志级别
Note Text N Y 登陆ip
Operatetime Date N Y 操作时间
Operatetype Int 6 N Y 操作性质
Userid Varchar 36 N Y 用户编号

表7 角色表(T_S_ROLE)用于系统为不同用户分配不同角色,例如管理书籍的则分配为图书管理员。
字段 类型 长度 主键 是否空 说明
Id Varchar 36 Y N 角色编号
Rolecode Varchar 10 N Y 角色码
RoleName Varchar 100 N Y 角色名

表8用户功能表(T_S_ROLE_FUNCTION)为用户设置功能,以及用户属于什么角色。
字段 类型 长度 主键 是否空 说明
Id Varchar 36 Y N 用户功能编号
operation Varcahr 100 N Y 操作
roleid Varchar 36 N Y 角色编号

4 系统实现

4.1 基本界面实现
采用EASYUI设计界面,看起来比较简结,好看。
4.1.1 用户登录模块的实现
@RequestMapping(params = “login”)
public String login(HttpServletRequest request) {
DataSourceContextHolder
.setDataSourceType(DataSourceType.dataSource_jeecg);
TSUser user = ResourceUtil.getSessionUserName();
String roles = “”;
if (user != null) {
List rUsers = systemService.findByProperty(
TSRoleUser.class, “TSUser.id”, user.getId());
for (TSRoleUser r : rUsers) {
TSRole role = r.getTSRole();
roles += role.getRoleName() + “,”;
}
if (roles.length() > 0) {
roles = roles.substring(0, roles.length() - 1);
}
request.setAttribute(“roleName”, roles);
request.setAttribute(“userName”, user.getUserName());
request.setAttribute(“debit”, user.getDebit());
request.getSession().setAttribute(“CKFinder_UserRole”, “admin”);

	 else {
		return "login/login";
	}

}

}

输入正确的用户名、密码和验证码后进行登陆。做三个文本框进行用户名,密码的输入
在这里插入图片描述
4-1-1 登录功能模块结构图
输入错误的用户名,密码,验证时会提示用户名或者密码错误。
在这里插入图片描述

4-1-1 登录错误功能模块结构图
4.1.2 首页
登陆成功
在这里插入图片描述

图4-1-2首页
4.1.3 角色管理模块的设计
在角色管理这里,可以添加三类角色,分别是:管理员,读者,图书管理员。在这个页面为其配置权限,同时我们可以进行角色录入,编辑等操作,可以删除已经添加的角色,但仅限管理员有权限操作。
在这里插入图片描述

图4-1-3 角色管理模块图

在这里插入图片描述

图4.5角色管理分配权限模块图

4.2 主要界面实现
4.2.1书籍管理模块的实现
添加书籍信息,并对其进行增删,编辑管理,查看等。
在这里插入图片描述

图4-2-1书籍信息模块图
4.2.2 借阅管理界面模块的实现
添加借阅管理信息,并对其图书的状态进行标识,可以进行删除,续借,归还图书等操作(仅限管理员可以操作)。
在这里插入图片描述

图4-2-2借阅信息模块图
4.3 重要功能的实现
1.数据库的连接实现
2.书籍的添加录入(主要时对书籍的加入)
4.3.1 实现数据库连接
连接数据库使用最简单的连接方式,用JDBC连接数据库,把需要用的jar包(jar包可能并非最新的,可以使用的)导入,配合使用JEECG。调用其中的相关的类。通过config.properties这个配置文件获取要连接数据库中的数据和登陆数据库帐户的用户名和密码,把数据库连接起来。从而实现系统与数据库的数据互通。具体的代码如下表:

连接数据库代码
hibernate.dialect=org.hibernate.dialect.MySQLDialect
validationQuery.sqlserver=SELECT 1
jdbc.url.jeecg=jdbc:mysql://localhost:3306/db_library?
useUnicode=true&characterEncoding=UTF-8
jdbc.username.jeecg=root
jdbc.password.jeecg=123456
jdbc.dbType=mysql
4.3.2 图书添加
用户在添加图书表中将图书的基本信息填写完成后,提交表单给服务器,服务器那么就会根据用户提交的表单进行验证处理,看是否符合正确填写的标准,正确则会跳转反馈给图书成功添加。相反,如果填写的信息不符合要求,那么服务器不会响应这个提交的请求,则图书添加失败。
信息填写正确后,在这个页面才会由表单的Action属性确定将用户的请求发送到服务器下的BookController这个类下进行处理,当服务器获取到请求之后调用类BookController的Add方法,在Add方法中调用BookService类中的save方法,在save方法中调用了CommonServiceImpl类中的save方法进行添加。具体代码实现如下:

/**
* 添加图书表
*
* @param ids
* @return
*/用try catch捕获异常
@RequestMapping(params = “doAdd”)
@ResponseBody
public AjaxJson Add(TBBookEntity tBBook, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
String message = “图书表添加成功”;
try{
Book.setStatus(Globals.BOOK_RETURN);
BookService.save(tBBook);
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}catch(Exception e){
e.printStackTrace();
message = “图书表添加失败”;
throw new BusinessException(e.getMessage());
}
j.setMsg(message);
return j;
}

5 系统测试

5.1 测试的意义
我们都知道一个系统完成后,都需要进行测试这个环节。那么测试的最终是为了什么呢?相信学编程的都知道程序运行出错都会去检查代码是否出错。那么测试也是同样的一个道理,就是为了检查是否存在没有检查出来的错误。
软件测试是因为软件的产生而产生的,是软件开发中必须实现的一个阶段。在软件系统的开发过程中,会遇到很多问题需要解决。软件的生存周期中不可能不出现错误,有可能存在某一个阶段。所以我们只能对每个阶段进行盘查,这样才可以更早的发现错误并修正错误,让软件更加可靠耐用。这是一项很重要并且不容易的困难工作,对软件质量的保证具有很重要的意义.
我们都知道用面向对象技术的基本思想可以让软件质量得到保证。但是只要是编程技术,就不可能在编程过程中不出现一丁点的错误。同时,面向对象技术他的缺点是它的代码重复率高,需要进行很严格的测试,才能减少错误。
5.2 测试的目的
测试的目的是在条件成立的情况下,对已经初步完成或者已经完成的软件或者系统进行一系列测试,通过测试去发现软件或者系统中程序的错误或者BUG,BUG简称小错误,缺陷,会造成无法正确运行程序,或者运行程序出现部分功能用不了的情况。所以通过测试修改BUG后,这样可以更容易保证软件的质量或者系统的可靠性,然后对软件或者系统是否满足开发的最初需求或者最初目的做出一个正确的判断.

5.3 软件测试措施
开发需要步骤,测试也是同样的原理,每个步骤是逐步实现的,并不是一蹴而就的。软件系统通常不是单个系统的,往往是多个子系统组成一个大系统,每个子系统又由很多模块构成。
(1) 单元测试:单元测试用我们的话来理解就是测试每个功能,把单个功能拿出来一个一个进行测试。一般在单元测试中主要采用功能性测试(黑盒测试)和结构性测试(白盒测试)两种。
(2)系统测试:它是检验系统是否确实能够运行或者指定功能是否实现,从而设计测试用例,根据我实习的经验来说,一般设计测试用例是需要根据需求说明书去设计。根据我实习经历中,一般在这个测试步骤中所发现的错误
都是在需求说明书中。准确来说,系统测试我自己是采取所学的功能测试(黑盒测试)方法来检查整体大概的功能。
(3)环境测试:搭建运行环境,检查环境安装是否遗漏,比如开发软件的安 装(eclipse),数据库软件的安装MYSQL等,需要的具备的运行环境(Tomcat 的配置),数据库测试,数据的输入是否有效,是否能获取等等。
6 本章小结
通过三个多月的系统开发,图书馆系统基本功能已经完成。在系统的开发过程中,以前在学校那些很抽象的课程,如软件工程导论、数据库原理与应用呀、面向对象程序设计,java程序设计等不会那么陌生了,感觉在一定程度上可以帮到自己,主要体现在设计思路上。因为自己基础不怎么好,感觉到这几门理论课程的重要性。
以前做一些应用的系统开发是小组做的,很随意的简单功能的编程,不会的有组员帮忙,想到哪里就实现哪里,没有一个整体的想法,等到完成后,才发现一大堆错误出来。另外一直以来,进行设计的过程中均采用结构化开发方法,对系统的整体面貌难以在开发完成前看到,最终做出来的系统并不是像自己预期的那样。
我在这个项目开发得到的收获:
1.学习到了很多Java开发中需要掌握的技术,自己并不会都是百度查找解决方案或者寻找实习公司做后台开发的同事帮忙,虽然说自己并不是做java这一块的,但是会点还是对自己的就业有一定的益处。
2.通过实践,提高了系统分析的能力,对一些工具的使用,环境的搭建,还有数据库连接等加深了熟悉程度,相信在以后的工作能帮助到自己,提升自己的技术能力。还可以将java知识学习一遍,对前端开发接口的学习有极大的帮助。

参考文献:

[1] [美]Todd Cook. JSP从入门到精通[M].北京:电子工业出版社,2003. 1-385.
[2] Roger S.Pressman.Software Engineering A Practitioner’s Approach, 5th ed[M].北京:清华大学出版社,2001.1-589.
[3] Hans Bergsten. JavaServer Pages_2nd Edition[M]. O’Reilly, August 2002,1-500.
[4] Paul C.Jorgensen.Software Testing A Craftsman’s Approach(second Edition)[M].China Machine Press,2003,170-175.
[5] jsp程序设计教程 莫兵 蒙焕念 黄良永 主编.北京:兵器工业出版社,2015.7
[6] JavaWeb程序设计与案例教程 邵奇峰等编著 人民邮电出版社
[7]网页设计与制作教程HTML +CSS+JavaScript 刘瑞新 张兵义 主编 机械工业出版社 2013.4
[8]spring+mybatis企业应用实战 疯狂软件编著 北京:电子工业出版社 2017,6-16.
[9]刘伟. Hibernate开发与实战 北京:电子工业出版社
[10]孙卫琴,李洪称. Tomcat与Java Web开发技术详解[M]. 北京:电子工业出版社,2003.
[11](美)阿姆斯 数字图书馆概论 电子工业出版
[12]MySQL数据库原理.设计与应用 蒋丽影,李建东主编,中国矿业大学出版社
[13]朱毅,张立杰基于Java Web 的图书馆管理系统 2014
[14]刘思,李斌,基于ELK的电力信息监控日志审计系统实现 电脑知识与技术2016
[15] 软件工程导论(第四版)[M]. 北京:清华大学出版社,2003

致谢

四年的学习生活即将结束,四年的每一个日日夜夜,每一天的学习生活,每一次遇到的难题,每一次基础的扎实,都是多么值得珍惜的回忆,与此同时感谢老师们的教诲。感谢广州大学松田学院以认真负责的态度为我们组织这次毕业设计以及毕业论文答辨,也感觉指导老师的耐心。你们的严格把关,对我来说有很大的压力和险阻。在这种压力下促使我面对自己的完全几乎不懂的敢于去挑战,通过这次煅炼,使我们的后台系统开发水平各方面都有了较大的进步并且对我自己以后就业有一定的专业性的帮助。通过积累的经验将对我们以后的学习和生活产生巨大的影响。
感谢我的指导老师,在毕业设计时给出时间让我们选题,教我们如何进
选题,写开题报告,任务书,日志,以及后续的PPT制作等,给出建议和意见说不要和同学们的题目太相像,愉快的完成学业。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值