图书馆管理系统

一、项目概述

        图书馆是一个提供书籍、资料等学习资源的场所,对于学生、教师等用户来说具有重要意义。本系统的目标是为图书馆提供一套高效、便捷的信息管理系统,提供图书管理功能、读者管理功能、借阅统计功能、管理员服务质量评定等功能。

注意:MySQL版本为8、jdk8

二、需求分析

数据字典:

1.读者信息数据

1)数据项1{

数据项名:卡号

描述:唯一标识一位读者,长度为7,前两位是年级编号,第3、4位是专业编号,后三位按顺序编号

类型:字符串

取值范围:“0000000”~ “9999999”

}

2)数据项2{

       数据项名:姓名

描述:对读者的一种标识,但不唯一 ,长度在2-20个字符之间的字符串,不可以为空

       类型:字符串

取值范围:由汉字和字母组成的字符串

}

. 3)数据项3{

数据项名:性别

描述:用来区别读者的性别,长度为3,不可以为空

类型:字符串

取值范围:男、女

}

4)数据项4{

数据项名:职务

描述:可以用来知道读者是老师还是学生等身份,长度为10,不可以为空

类型:字符串

取值范围:学校中所具有的职务均可

}

5)数据项5{

数据项名:罚款金额

描述:不同的损坏程度对应不同的罚款额,损坏程度由高到低依次罚款20、10、0,不可以为空

类型:整型

取值范围:仅能取20、10或0

}

2.图书信息数据

1)数据项1{

数据项名:书号

描述:可用来唯一标识书本,长度为7

类型:字符串

取值范围:“0000000”~“9999999”

}

2)数据项2{

数据项名:书名

描述:读者可以通过书名来查寻自己想要借阅的图书,长度为1~30的字符串,不能为空

类型:字符串

取值范围:由汉字和字母组成

}

3)数据项3{

数据项名:作者

描述:图书创作人的姓名,不能为空,长度为1~20的字符串

类型:字符串

取值范围:由汉字和字母组成

}

4)数据项4{

数据项名:存放位置

描述:可以表示出在图书在哪个书架、第几层,例“101-3”,表示在101号书架,第3层,便于寻找,长度为4

类型:字符串

取值:“001-1”至“999-9”

}

3.书架信息数据

(1)数据项1{

数据项名:书架编号

描述:用来唯一标识一个书架,长度为3

类型:字符串

取值范围:“001”~“999”

}

(2)数据项2{

数据项名:状态

描述:用来表示书架此时的状态,不能为空,长度为6

类型:字符串

取值范围:{存满、有书、空}

}

4.管理员信息数据

(1)数据项1{

数据项名:工作号

描述:可以唯一标识一位管理员

类型:字符串

取值范围:“0”~ “9”

}

(2)数据项2{

数据项名:姓名

描述:由字母和汉字组成,可以用来区别管理员,但不唯一,长度为1~20不能为空

类型:字符

取值范围:由汉字和字母组成

}

(3)数据项3{

数据项名:年龄

描述:用来表示管理员的年纪大小,长度为3

类型:字符串

取值范围: “000”~“130”

}

5.供应商信息数据

(1)数据项1{

数据项名:供应商名

描述:唯一标识一家供应商,某图书对应的供应商名,相同类型书可对应不同的供应商,同一供应商可对应多种图书,长度为2~20

类型:字符串

取值范围:由汉字和字母组成

}

(2)数据项2{

数据项名:地址

描述:记录供应商的地理位置,长度为2~50,不能为空

类型:字符串

取值范围:由汉字、字母、数字组成

}

(3)数据项3{

数据项名:联系电话

描述:电话号码的数字一共有11位,前3位代表网络识别号,第4-7位代表地区编码,第8-11位代表用户号码(随机分配的)

类型:字符串

}

6、罚款评定信息数据

(1)数据项1{

数据项名:损坏程度

描述:用特定的词语描述读者对书本造成的损坏程度,长度为6

类型:字符串

取值范围:严重、轻微、无(没有损坏)

}

(2)数据项2{

数据项名:罚款金额

描述:不同的损坏程度对应不同的罚款额,损坏程度由高到低依次罚款20、10、5

类型:整型

取值范围:仅能取20、10或5

}

三、概念结构设计

(一)实体及联系的定义

读者(卡号,姓名,性别,职务,罚款)。

图书(书号,书名,作者,存放位置)

供应商(供应商名称,地址,电话)

管理员(工作号,姓名,年龄)

书架(书架编号,状态)

罚款评定(损坏程度,罚款金额)

借阅归还记录(卡号, 书号, 借阅时间、归还时间)

图书供应(供应商名,书号,  运输方式)

服务(工作号,卡号,管理员,读者, 评分)

逾期(卡号, 书号, 逾期天数)

破损(卡号,书号,破损情况)

(二)实体图及实体联系E-R图

四、逻辑结构设计

Reader(Rno, Rname, Rsex, Rjob, Rfine,Drank)

Book(Bno, Bname, Bwriter, Bplace)

Provider(Pname, Paddr, Ptele)

Manager(Mno, Mname, Mage)

Shelf(Sno,Sstate)

Damage(Drank, Dfine)

BorrowReturenRecord(Rno, Bno, Borr_time, Ret_time)

BP(Pname,Bname,transport)

Service(Mno, Rno, grade)

Overdue(Rno, Bno, days)

Break(Rno,Bno,degree)

五、物理结构的设计及实施

(一)创建数据库

(二)创建表及约束条件

-- 创建读者表
CREATE TABLE Reader(
	Rno varchar(7) PRIMARY KEY,
	Rname VARCHAR(20) NOT NULL,
	Rsex CHAR(3) CHECK(Rsex IN ("男","女")),
	Rjob VARCHAR(10) NOT NULL,
    Drank VARCHAR(8);
	Dfine INT CHECK(Dfine = 20 OR Dfine = 10 OR Dfine = 0)
);

-- 创建图书表
CREATE TABLE Book(
	Bno VARCHAR(7) PRIMARY KEY,
	Bname varchar(30) NOT NULL,
	Bwriter VARCHAR(20) NOT NULL,
	Bplace VARCHAR(6) NOT NULL
);

-- 创建供应商表

CREATE TABLE Provider(
		Pname varchar(20) PRIMARY KEY,
		Paddr varchar(50) NOT NULL,
		Ptele varchar(11) NOT NULL
);

-- 创建管理员表

CREATE TABLE Manager(
	 Mno char PRIMARY KEY,
	 Mname varchar(20) NOT NULL,
	 Mage int
);

-- 创建书架信息表
CREATE TABLE Shelf(
	Sno VARCHAR(3) PRIMARY KEY,
	SState VARCHAR(6) NOT NULL
	);
	 
-- 创建损坏评定标准表
CREATE TABLE Damage(
	Drank VARCHAR(8) PRIMARY KEY,
	Dfine INT CHECK(Dfine = 20 OR Dfine = 10 OR Dfine = 0)
);

-- 创建借阅记录表
CREATE TABLE BorrowReturnRecord(
	Rno varchar(7),
	Bno VARCHAR(7) ,
	BRtime DATE NOT NULL,
	Ret_time DATE NOT NULL,
	CONSTRAINT k1 PRIMARY KEY(Rno, Bno),
	CONSTRAINT fk_Re_BRR FOREIGN KEY(Rno) REFERENCES Reader(Rno),
	CONSTRAINT fk_Bo_BRR FOREIGN KEY(Bno) REFERENCES Book(Bno)
);

-- 创建供应商与图书之间的供应关系表
CREATE TABLE BP(
	Pname VARCHAR(20),
	Bno VARCHAR(7),
	transport varchar(15),
	count Int,
	CONSTRAINT k4 PRIMARY KEY(Pname, Bno),
	CONSTRAINT fk_Pr_BP FOREIGN KEY(Pname) REFERENCES Provider(Pname),
	CONSTRAINT fk_Pr_Bo FOREIGN KEY(Bno) REFERENCES book(Bno)
	);

-- 创建管理员与读者之间的服务信息表
CREATE TABLE Service(
	Mno CHAR,
	Rno VARCHAR(7),
	grade INT,
	CONSTRAINT k5 PRIMARY KEY(Mno,Rno),
	CONSTRAINT fk_Re_S FOREIGN KEY(Rno) REFERENCES Reader(Rno),
	CONSTRAINT fk_Ma_S FOREIGN KEY(Mno) REFERENCES Manager(Mno)
);

-- 创建逾期表
CREATE TABLE overdue(
	Rno varchar(7),
	Bno VARCHAR(7),
	days int,
	CONSTRAINT k6 PRIMARY KEY(Rno, Bno),
	CONSTRAINT fk_Re_ov FOREIGN KEY(Rno) REFERENCES reader(Rno),
	CONSTRAINT fk_Bo_ov FOREIGN KEY(Bno) REFERENCES book(Bno)
	);
	
-- 创建读者的损坏记录	
CREATE TABLE break(
	Rno varchar(7),
	Bno VARCHAR(7),
	degree VARCHAR(8),
	CONSTRAINT k7 PRIMARY KEY(Rno, Bno),
    CONSTRAINT fk_Re_br FOREIGN KEY(Rno) REFERENCES reader(Rno),
    CONSTRAINT fk_Bo_br FOREIGN KEY(Bno) REFERENCES book(Bno)
	);
-- 创建的存储过程:
	CREATE PROCEDURE getLevel(
	IN inMno VARCHAR(1),
	OUT outlevel INT)
	
	BEGIN
		DECLARE totallevel INT;
		DECLARE grade INT;
		DECLARE templevel FLOAT;
		DECLARE num INT;
		DECLARE v_done INT DEFAULT 0;
		DECLARE mycursor  CURSOR FOR
		SELECT  s.grade FROM service s
		JOIN manager m ON s.Mno = m.Mno
		WHERE s.Mno = inMno;
		DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done := TRUE;
		SET totallevel :=0;
		SET num := 0;
		OPEN mycursor;
		myloop: LOOP 
			FETCH mycursor INTO grade;
			IF v_done THEN
				LEAVE myloop;
			END IF; 
			IF grade BETWEEN 90 AND 100 THEN SET templevel := 10.0; 
			ELSEIF grade BETWEEN 80 AND 89 THEN SET templevel := 8.0; 
			ELSEIF grade BETWEEN 70 AND 79 THEN SET templevel := 7.0; 
			ELSEIF grade BETWEEN 60 AND 69 THEN SET templevel := 6.0; 
			ELSE SET templevel := 5.0;
			END IF; 
			SET totallevel := totallevel+templevel;
			SET num := num + 1;
		END LOOP;
			CLOSE mycursor;
			SET outlevel := totallevel / num;
	  END;

(三)创建索引

CREATE INDEX idx_service ON service(rno,mno);
CREATE INDEX idx_reader ON reader(rno, rname);
CREATE INDEX idx_book on book(bno, bname);

(四)加载数据

INSERT INTO Reader 
VALUES
("2284167","李明","男","学生","无",0),
("2284002","小红","女","学生","严重",20),
("2284321","张三","男","教师","无",0),
("2284164","王丽","女","学生","轻微",10),
("2284187","杨刚","男","学生","无",0);

INSERT INTO Book 
VALUES
("1100023","理想国","柏拉图","101-3"),
("2254130","老人与海","海明威","102-2"),
("0021365","物理学","李帅朋","103-6"),
("5521301","活着","老舍","201-1"),
("0214536","简爱","李白","106-2"),
("0215478","论语","孔子","205-6");

INSERT INTO Provider 
VALUES
("滕训公司","河南","18303636327"),
("亿动公司","上海","15362486521"),
("平裹公司","北京","10324561598");

INSERT INTO Manager
VALUES
("1","小帅帅","18"),
("2","小诗诗","19"),
("3","小文文","32");

INSERT INTO Shelf 
VALUES
("101","有书"),
("102","有书"),
("103","有书"),
("201","有书"),
("106","有书"),
("205","有书");

INSERT INTO Damage
VALUES
("严重",20),
("轻微",10),
("无",0);

INSERT INTO BorrowReturnRecord 
VALUES
("2284002","1100023","2023-01-02","2023-04-01"),
("2284167","0215478","2023-12-27","2024-01-02"),
("2284002","0021365","2023-03-01","2023-04-11"),
("2284002","0214536","2023-06-03","2023-06-08"),
("2284321","0021365","2022-04-05","2022-09-01"),
("2284164","0214536","2021-03-04","2021-05-14"),
("2284187","0021365","2023-02-08","2023-11-18"),
("2284187","0214536","2022-11-26","2022-12-20");

INSERT INTO BP 
VALUES
("滕训公司","2254130","铁路",2),
("亿动公司","0215478","空运",3),
("平裹公司","0021365","水路",4),
("滕训公司","5521301","空运",1),
("亿动公司","1100023","铁路",5),
("平裹公司","0214536","水路",2),
("滕训公司","0215478","空运",100),
("亿动公司","0021365","水路",50),
("平裹公司","2254130","铁路",40);

INSERT INTO overdue 
VALUES
("2284167","1100023",2),
("2284321","0215478",3);
	
INSERT INTO break 
VALUES
("2284167","1100023","无"),
("2284321","0215478","轻微");
	
	
INSERT INTO Service 
VALUES
('1',"2284167","95"),
("3","2284167","91"),
("1","2284002","92"),
("3","2284321","96"),
("1","2284321","91"),
("3","2284164","92"),
("2","2284164","91"),
("3","2284187","99"),
("2","2284167","94");

六、系统实现

要求:

采用JDBC连接数据方式操作数据库

采用简单控制台操作界面实现数据库的增删改查操作

至少实现5种以上的菜单功能,其中要有一个复杂的业务加工逻辑有存储过程实现。

public class Main {
    public static void main(String[] args) throws SQLException {
        Scanner sc = new Scanner(System.in);
        while (true){
            printMenu();
            System.out.print("请输入你的需求:");
            int choice = sc.nextInt();
            switch (choice){
                case 0:
                    System.exit(0);
                    break;
                case 1:
                    ReaderAdd readerAdd = new ReaderAdd();//添加读者信息
                    readerAdd.add();
                    break;
                case 2:
                    ReaderDelete readerDelete = new ReaderDelete();
                    readerDelete.delete();//删除读者信息
                    break;
                case 3:
                    BookCount bookCount = new BookCount();
                    bookCount.getBookCount();//统计图书的数目
                    break;

                case 4:
                    ProviderModify providerModify = new ProviderModify();
                    providerModify.modify();//修改供应商的信息
                    break;
                case 5:
                    BookDetail bookDetail = new BookDetail();
                    bookDetail.getBookDetail();//查询图书列表
                    break;
                case 6:
                    ServiceQuality serviceQuality = new ServiceQuality();
                    serviceQuality.getServiceQuality();//输入管理员工作号查询他(她)的服务质量等级,最高为10.0,
                    break;                              //该功能使用存储过程
                default:
                    System.out.println("选择错误,请重新选择");
            }
        }

    }
    public static void printMenu(){
        System.out.println("=========欢迎来到图书管理系统=========");
        System.out.println("0.退出");
        System.out.println("1.添加读者信息");
        System.out.println("2.删除读者信息");
        System.out.println("3.统计图书的册数");
        System.out.println("4.修改供应商信息");
        System.out.println("5.查看图书表");
        System.out.println("6.管理员服务质量评定");
    }

}

获取connection:

public class DatabaseConnection {
    public static Connection conn(){
        Connection connection;
        String url = "jdbc:mysql://localhost:3306/librarysys?serverTimezone=GMT%2B8";   //数据库连接的url地址
        String user = "root";   //数据库用户名
        String password = "1127";  //数据库密码
        try {
            //加载数据库驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //System.out.println("数据库驱动加载成功!");
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try{
            //通过DriverManager获取数据库连接
            connection = DriverManager.getConnection(url,user,password);
            //System.out.println("数据库连接成功!");
            return connection;
        }catch (SQLException e) {
            e.printStackTrace();
            return null;
        }

    }

}

 

添加读者信息:

public class ReaderAdd {
    public  void add() throws SQLException {
        Connection conn = DatabaseConnection.conn();
        Statement statement = conn.createStatement();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入卡号、姓名、性别、职位和罚款金额:");
        String no = sc.next();
        String name = sc.next();
        String sex = sc.next();
        String job = sc.next();
        int fine = sc.nextInt();
        String sql = "INSERT INTO Reader VALUES('"+no+"','"+name+"','"+sex+"','"+job+"',"+fine+")";
        statement.executeUpdate(sql);
        System.out.println("添加成功!");
        conn.close();
        statement.close();
    }
}

删除读者信息:

 

public class ReaderDelete {
    public void delete() throws SQLException {
        Connection conn = DatabaseConnection.conn();
        Statement statement = conn.createStatement();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的读者的图书卡号:");
        String Rno = sc.next();
        String sql = "delete from Reader where Rno = '"+Rno+"'";
        int count = statement.executeUpdate(sql);
        if(count != 0)
            System.out.println("删除成功!");
        else
            System.out.println("删除失败!");
    }
}

统计图书的数量:

public class BookCount {
    public void getBookCount() throws SQLException {
        Connection conn = DatabaseConnection.conn();
        Statement statement = conn.createStatement();
        String sql = "select COUNT(*) as num from Book";
        ResultSet resultSet = statement.executeQuery(sql);
        while(resultSet.next()){
            int num = resultSet.getInt("num");
            System.out.println("图书馆中共藏书:"+num+"本");
        }

        conn.close();
        statement.close();
    }
}

修改供应商信息:

public class ProviderModify {
    public void modify() throws SQLException {
        Connection conn = DatabaseConnection.conn();
        Statement statement = conn.createStatement();
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入供应商名称:");
        String Pname = sc.next();
        System.out.println("==========");
        System.out.println("1.地址");
        System.out.println("2.电话");
        System.out.println("3.地址、电话");
        System.out.println("请选择要修改的内容:");
        int choice = sc.nextInt();
        switch (choice){
            case 1:
                System.out.println("请输入地址:");
                String addr = sc.next();
                String sql = "UPDATE Provider "+
                        "set Paddr = '"+addr+
                        "'where Pname='"+Pname+"'";
                statement.executeUpdate(sql);
                break;
            case 2:
                System.out.println("请输入电话:");
                String tele = sc.next();
                String sql2 = "UPDATE Provider "+
                        "set Ptele ='"+tele+
                        "'where Pname='"+Pname+"'";
                statement.executeUpdate(sql2);
                break;
            case 3:
                System.out.println("请输入地址、电话:");
                String addr1 = sc.next();
                String tele1 = sc.next();
                String sql3 = "UPDATE Provider "+
                        "set Paddr='"+addr1+"',Ptele ='"+tele1+
                        "' where Pname='"+Pname+"'";
                statement.executeUpdate(sql3);
                break;
            default:
                System.out.println("选择错误请重新选择。");
                break;
        }
        System.out.println("修改成功!");
        conn.close();
        statement.close();
    }
}

查看图书信息:

public class BookDetail {
    public void getBookDetail() throws SQLException {
        Connection conn = DatabaseConnection.conn();
        Statement statement = conn.createStatement();
        String sql = "select * from Book";
        ResultSet rs = statement.executeQuery(sql);
        System.out.println("书号   ||   书名    ||    作者    ||   位置 ");
        while(rs.next()){
            String Bno = rs.getString("Bno");
            String Bname = rs.getString("Bname");
            String Bwriter = rs.getString("Bwriter");
            String Bplace = rs.getString("Bplace");
            System.out.println(Bno+"\t《"+Bname+"》\t"+Bwriter+"\t"+Bplace);
        }
        conn.close();
        statement.close();
    }
}

管理员服务质量评定,管理员服务评定功能是通过存储过程实现的复杂业务逻辑(存储过程代码粘贴在上面):

public class ServiceQuality {
    public void getServiceQuality() throws SQLException {
        Connection conn = DatabaseConnection.conn();
        CallableStatement stmt = conn.prepareCall("{CALL getLevel(?,?)}");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要评定服务等级的管理员的工作号:");
        String inMno = sc.next();
        stmt.setString(1,inMno);
        stmt.registerOutParameter(2, Types.REAL);
        stmt.execute();
        float outLevel = stmt.getFloat(2);
        System.out.println("该管理员的服务质量等级为:"+outLevel);
        conn.close();
        stmt.close();
    }
}

主要功能简介 一、适用范围:本软件广泛适用于各大、中、小学校、企事业单位等图书馆使用,促进图书馆信息化建设。 二、功能介绍:为了推动企业、单位、学校等图书馆的信息化建设我们开发了本套软件。此软件界面友好,容易使用而且功能强大。囊括了图书馆管理的所有功能。 该系统主要有几个大的模块:图书信息录入、图书借阅管理、读者信息管理、图书信息查询,其中每个模块的主要功能如下: 图书信息录入:图书信息的录入采用联网查询方式,通过条码枪扫描图书的ISBN码,系统会自动搜索图书信息,然后把图书信息录入到系统。通过实验,录入1本书的时间大概是20—40秒,这比原来的繁琐的手工录入效率提高90%,极大的减轻了图书管理人员的劳动强度,使广大中小学图书管理信息化突破了录入的瓶颈。 图书借阅管理:根据读者提供的借书证号或借书卡号进行图书的借阅、图书归还操作。 读者信息管理:对读者进行注册登记、注销读者、查阅借阅记录等操作。 图书信息查询:包括导入导出图书信息,根据图书的书名、分类、出版社、价格范围、出版日期来查询图书,进行分类统计,形成上级报表等。 三、模块介绍: 1.系统设置: 管理员设置,系统参数设置,初始化系统。 2.图书管理: 导出图书或期刊模板,导入图书或期刊信息,导入图书marc码,图书或期刊信息录入,注销图书期刊,图书类型设置,出版社设置,书架设置。 3.借阅管理:图书借阅,图书归还,期刊借阅,期刊归还,图书挂失。4.读者管理:添加读者信息,注销读者信息,批量办证,读者类型设置,读者部门设置。 5.系统查询:图书信息查询,图书借阅查询,图书归还查询,期刊资料查询,期刊借阅查询,期刊归还查询,读者资料查询,超期未还查询,读者档案查询。 6.系统维护:系统备份,系统恢复 7.条码打印: 打印书籍资料条形码,打印读者资料条形码,用户自定义打印条码,借书证打印。 8.软件首次登录 用户名:超级用户 密码:admin 四、系统特点: 1.录入 图书信息时,支持扫描条形码或ISBN号自动弹出出版社名,出版地等。 2.支持Excel数据导入 3.支持书标自动生成 4.支持输入分类号后,自动显示分类名。 5.支持条形码、书标、借阅证、自定义条形码打印。 6.支持分页显示。 7.支持书籍自动编号。 8.支持复本同时录入、上中下册录入、上下册录入。 9.读者卡可以支持磁卡、条码卡、IC卡、ID卡等。 10.软件自带中图分类法详细分类 11.支持图书Marc数据导入。 12.支持互联网检索,录入书籍时扫描条形码或ISBN,软件自动通过互联网检索书籍名称、出版社名、中图分类、内容简介等相关信息,避免繁琐的手工录入,大大提高书籍录入效率。 产品介绍 本图书管理软件是专门针对广大的中小学小图书馆设计的,界面友好,操作简单。 该系统主要有三个大的模块:图书借阅管理、读者信息管理、图书信息查询,其中每个模块的主要功能如下: 图书借阅管理:根据读者提供的借书证号或借书卡号进行图书的借阅、图书归还操作。 读者信息管理:对读者进行注册登记、注销读者、查阅借阅记录等操作。 图书信息查询:包括导入导出图书信息,根据图书的书名、分类、出版社、价格范围、出版日期来查询图书,进行分类统计,形成上级报表等。 图书信息的录入采用互联网查询方式,比原来的繁琐的手工录入效率提高90%,极大的减轻了图书管理人员的劳动强度,使广大中小学图书管理信息化突破了录入的瓶颈。 系统支持磁卡、条形码设备。 本系统分学校版和教育局版,学校版能提供师生借阅情况、图书分类统计等数据上传,教育局版能把全市或某个地区学校传上的数据汇总在一起,并形成Excel格式的表格,使教育局能及时了解辖区各学校图书馆的运行状况。 单机版本采用Accesss数据库管理,安装设置简单易用,操作方便,是广大中小学图书馆的首选。 网络版采用MySql数据库管理,全面支持多用户联网操作,是百万册图书管理学校的选择。 系统支持扫描枪、磁卡、条形码设备。 单机版本采用Accesss数据库管理,安装设置简单易用,操作方便,是广大中小学图书馆的首选。 系统首次启动登录用户是:超级用户 密码是:admin。
项目管理是“管理科学与工程”学科的一个分支,是介于自然科学和社会科学之间的一门边缘学科。 在信息技术刚刚兴起的时候,信息系统还没有作为一个专门的学科独立出来,它更多的只是计算机学科的一个附属,但是,随着信息技术的条约式发展和计算机系统在生产、生活、商务活动中的广泛应用,信息系统作为一个独立的整体逐渐独立出来,并得到了迅速发展,由于信息系统基于计算机技术、系统科学、管理科学以及通信技术等多个学科的交叉学科,因此,信息系统是一个跨专业,面向技术和管理等多个层面,注重将工程化的方法和人的主观分析方法相结合的一门学科。、 目录 1.信息系统项目的背景介绍 5 2.编制项目的可行性研究报告 6 2.1引言 6 2.2现行组织系统概况 6 2.3拟建立的图书馆管理系统 7 2.4经济可行性分析 8 2.5技术可行性分析 9 2.6社会可行性分析 9 2.7可行性研究结论 9 3.图书馆管理系统招标书 9 3.1本次招标项目要求详见附件 9 3.2投标单位及投标文件的要求 9 4.投标书 10 4.1报价书 10 4.2资质文件 10 4.3投标单位情况表 11 4.4主要工程业绩 11 4.5项目领导小组 11 4.6工程组织设计 11 4.7售后服务体系及人员培训计划 12 5.项目章程 13 5.1文档简介 13 5.2 项目综述 13 5.3初步项目实施计划 15 6.项目工作分解结构(WBS) 19 6.1项目工作的结构分解图 19 6.2项目工作分解结构轮廓图 19 7.设计项目团队内部的组织结构 20 8.绘制该团队的职责分配矩阵 22 9.设计团队成员的考核体系 22 9.1绩效考评管理的分析 22 9.2 绩效考评的具体方法 24 10.项目的文档管理规范 30 10.1设有专职文档管理负责人 30 10.2强调文档说明和修改记录 31 10.3文档统一格式定义 31 10.4文档内容规范 31 10.5文档存储结构 31 11.对该项目的干系人进行分析 32 11.1客户分析 32 11.2项目经理的分析 32 11.3项目分包商的分析 32 11.4项目发起人分析 32 12.对该项目的范围进行调整并进行相应的变更控制 32 12.1项目范围变更 32 12.2变更理由 33 12.3变更造成的影响 33 12.4变更控制 33 13.对该项目的进度和成本进行一定调整并进行相应的变更控制 33 13.1问题的提出 33 13.2图书馆管理系统开发项目成本的组成及影响因素分析 33 13.3软件开发项目成本控制存在的主要问题 34 13.4软件开发项目成本控制的策略分析 35 14.项目进度调整与变更控制 36 14.1影响软件开发项目进度的因素 36 14.2项目进度控制的目的 39 14.3软件开发项目常用进度控制措施 40 15.对项目的风险进行识别、分析和应对 42 15.1 风险的识别 43 15.2 风险的分析 43 15.3 风险的应对 43 16.建立项目的运行管理制度 45 16.1 项目成立 45 16.2工程师项目期间行为规范 45 16.3项目经理的职责 46 16.4项目计划 47 16.5项目周报 47 16.6项目执行的协调 47 16.7项目执行的考核 48 16.8项目实施过程中项目组定期提交的文档 48 17.撰写科研技能训练报告的心得体会 49 附件: 50 1.系统软件总体要求 50 2. 质量、技术要求 51
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值