Java 图书馆 管理系统

图书馆资源管理系统
1、数据模型
图书、光盘、图画
共有属性:
编号、标题、作者、评级(一般、儿童、成人等)
图书:出版社、ISBN、页数、年份
光盘:出品者、出品年份、视频时长
图画:出品国籍、作品尺寸
2、功能
增加、删、改、查
统计:资源类别、年份等
3、数据持久存储
读取、保存

book.java

import java.io.Serializable;

public class book extends common implements Serializable {

		// TODO Auto-generated constructor stub
	//出版社、ISBN、页数、年份
	String press;
	String isbn;
	int page;
	int year;
	
	public book() {
		super();
	}
	
	public String getPress() {
		return press;
	}
	public void setPress(String press) {
		this.press = press;
	}
	public String getIsbn() {
		return isbn;
	}
	public void setIsbn(String isbn) {
		this.isbn = isbn;
	}
	public int getPage() {
		return page;
	}
	public void setPage(int page) {
		this.page = page;
	}
	public int getYear() {
		return year;
	}
	public void setYear(int year) {
		this.year = year;
	}
	
}

picture.java

import java.io.Serializable;

public class pictrue extends common implements Serializable {
    //出品国籍、作品尺寸
	String nation;
	String siz;
	public pictrue() {
		super();
	}
	public String getNation() {
		return nation;
	}
	public void setNation(String nation) {
		this.nation = nation;
	}
	public String getSiz() {
		return siz;
	}
	public void setSiz(String siz) {
		this.siz = siz;
	}
	
}

cd.java

import java.io.Serializable;

public class cd extends common implements Serializable {
   //出品者、出品年份、视频时长
	String out;
	int year;
	int tim;
	public cd() {
		super();
	}
	public String getOut() {
		return out;
	}
	public void setOut(String out) {
		this.out = out;
	}
	public int getYear() {
		return year;
	}
	public void setYear(int year) {
		this.year = year;
	}
	public int getTim() {
		return tim;
	}
	public void setTim(int tim) {
		this.tim = tim;
	}
	
}

common.java

import java.io.Serializable;

public class common implements Serializable{
	
	    //编号、标题、作者、评级(一般、儿童、成人等)
		int id;
		String title;
		String name;
		String level;
		
		public common() {
			
		}

		common(int id,String title,String name,String level)
		{
			this.id = id;
			this.title = title;
			this.name = name;
			this.level = level;
		}
		
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
		public String getTitle() {
			return title;
		}
		public void setTitle(String title) {
			this.title = title;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getLevel() {
			return level;
		}
		public void setLevel(String level) {
			this.level = level;
		}
		
	

}

demo.java

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;







public class demo {
	 public static void menu() {
	        System.out.println("=========图书管理系统==========");
	        System.out.println("          1.增 加");
	        System.out.println("          2.删 除");
	        System.out.println("          3.修 改");
	        System.out.println("          4.查 看");
	        System.out.println("          5.统 计");
	        System.out.println("          6.退 出");
	        System.out.println("==============================");
	        System.out.print("请选择: ");
	    }
	 public static void menu1() {
		    System.out.println("==============================");
	        System.out.println("          1.图书");
	        System.out.println("          2.光盘");
	        System.out.println("          3.图画");
	        System.out.println("==============================");
	        System.out.println("请选择操作对象:   ");
     }

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		ArrayList<book> books = new ArrayList<>();
		File file1 = new File("D://xxx.txt" );
		if(file1.exists()) 
		   books = testReader1();
		
		File file2 = new File("D://xx.txt" );
		ArrayList<cd> cds = new ArrayList<>();
		if(file2.exists()) 
			 cds = testReader2();
		
		File file3 = new File("D://x.txt" );
		ArrayList<pictrue> pic = new ArrayList<>();
		if(file3.exists()) 
			 pic = testReader3();
		
        boolean flag = true;
		do {
        	 menu();
        	 Scanner input = new Scanner(System.in);
        	 int choice = input.nextInt();
        	 switch (choice) {
             case 1:
                 System.out.println("--->新增");
                 menu1();
                 int n1 = input.nextInt();
                 if(n1 == 1) add1(books);
                 else if(n1 == 2) add2(cds);
                 else if(n1 == 3) add3(pic);
                 else System.out.println("输入错误,请重新输入");
                 break;
             case 2:
                 System.out.println("--->删除");
                 menu1();
                 int n2 = input.nextInt();
                 if(n2 == 1) del1(books);
                 else if(n2 == 2) del2(cds);
                 else if(n2 == 3) del3(pic);
                 else System.out.println("输入错误,请重新输入");
                 
                 break;
             case 3:
                 System.out.println("--->修改");
                 menu1();
                 int n3 = input.nextInt();
                 if(n3 == 1) change1(books);
                 else if(n3 == 2) change2(cds);
                 else if(n3 == 3) change3(pic);
                 else System.out.println("输入错误,请重新输入");
          
                 break;
             case 4:
                 System.out.println("--->查看");
                 check(books,cds,pic);
                 break;
             case 5:
                 System.out.println("--->统计");
                 stat(books,cds,pic);
                 break;
             case 6:
                 System.out.println("--->您已退出");
                 break;
             default:
            	 System.out.println("输入序号错误,请重新输入");
            	 
         }
        	  if(choice == 6) flag = false;
        }while(flag == true);
		writeIntoFile1(books);
		writeIntoFile2(cds);
		writeIntoFile3(pic);
	}
  
	public static void add1(ArrayList<book> array)
   {
		 //编号、标题、作者、评级(一般、儿童、成人等) 出版社、ISBN、页数、年份
		Scanner input = new Scanner(System.in);
		System.out.print("请输入编号:");
		int sid = input.nextInt();
		System.out.print("请输入标题:");
		String st = input.next();
		System.out.print("请输入作者:");
		String sa = input.next();
		System.out.print("请输入评级(一般、儿童、成人等):");
		String sl = input.next();
		System.out.print("请输入出版社:");
		String sp = input.next();
		System.out.print("请输入ISBN:");
		String si = input.next();
		System.out.print("请输入页数:");
		int spage = input.nextInt();
		System.out.print("请输入年份:");
		int sy = input.nextInt();
		
		book b = new book();
		b.setId(sid);
		b.setTitle(st);
		b.setName(sa);
		b.setLevel(sl);
		b.setPress(sp);
		b.setIsbn(si);
		b.setPage(spage);
		b.setYear(sy);
		
		array.add(b);
		
	   System.out.println("***********添加成功***********\n");
   }
	public static void add2(ArrayList<cd> array)
	   {
			
			Scanner input = new Scanner(System.in);
			System.out.print("请输入编号:");
			int sid = input.nextInt();
			System.out.print("请输入标题:");
			String st = input.next();
			System.out.print("请输入作者:");
			String sa = input.next();
			System.out.print("请输入评级(一般、儿童、成人等):");
			String sl = input.next();
			System.out.print("请输入出品者:");
			String sp = input.next();
			System.out.print("请输入出品年份:");
			int sy = input.nextInt();
			System.out.print("请输入视频时长:");
			int stim = input.nextInt();
	
			
			cd d = new cd();
			d.setId(sid);
			d.setTitle(st);
			d.setName(sa);
			d.setLevel(sl);
			d.setOut(sp);
			d.setTim(stim);
			d.setYear(sy);
			array.add(d);
			
		   System.out.println("***********添加成功***********\n");
	   }
	public static void add3(ArrayList<pictrue> array)
	   {
		
			Scanner input = new Scanner(System.in);
			System.out.print("请输入编号:");
			int sid = input.nextInt();
			System.out.print("请输入标题:");
			String st = input.next();
			System.out.print("请输入作者:");
			String sa = input.next();
			System.out.print("请输入评级(一般、儿童、成人等):");
			String sl = input.next();
			System.out.print("请输入国籍:");
			String nat = input.next();
			System.out.print("请输入作品尺寸:");
			String ssiz = input.next();
	
			pictrue p = new pictrue();
			p.setId(sid);
			p.setTitle(st);
			p.setName(sa);
			p.setLevel(sl);
			p.setNation(nat);
			p.setSiz(ssiz);
			array.add(p);
			
		   System.out.println("***********添加成功***********\n");
	   }
	public static void check(ArrayList<book> array1,ArrayList<cd> array2,ArrayList<pictrue> array3)
	{
		System.out.println("图书:");
		for(int i = 0;i < array1.size();i ++)
		{
			book b = array1.get(i);
			System.out.println("编号为:"+b.getId());
			System.out.println("标题为:"+b.getTitle());
			System.out.println("作者为:"+b.getName());
			System.out.println("评级为:"+b.getLevel());
			System.out.println("出版社为:"+b.getPress());
			System.out.println("ISBN为:"+b.getIsbn());
			System.out.println("页数为:"+b.getPage());
			System.out.print("年份为:"+b.getYear());
			System.out.println("\n");	
		}
		System.out.println("*********************************");
		System.out.println("光盘:");
		for(int i = 0;i < array2.size();i ++)
		{
			cd b = array2.get(i);
			System.out.println("编号为:"+b.getId());
			System.out.println("标题为:"+b.getTitle());
			System.out.println("作者为:"+b.getName());
			System.out.println("评级为:"+b.getLevel());
			System.out.println("出品者为:"+b.getOut());
			System.out.println("出品年份为:"+b.getYear());
			System.out.println("视频时长为:"+b.getTim());
			System.out.println("\n");	
		}
		System.out.println("*********************************");
		System.out.println("图画:");
		for(int i = 0;i < array3.size();i ++)
		{
			pictrue b = array3.get(i);
			System.out.println("编号为:"+b.getId());
			System.out.println("标题为:"+b.getTitle());
			System.out.println("作者为:"+b.getName());
			System.out.println("评级为:"+b.getLevel());
			System.out.println("国籍为:"+b.getNation());
			System.out.println("尺寸为:"+b.getSiz());
			System.out.println("\n");	
		}
		System.out.println("*********************************");
	}
	
	public static void del1(ArrayList<book> array)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入要删除的对象编号:");
		int num = input.nextInt();
		boolean f = false;
		for(int i = 0;i < array.size();i ++)
		{
			book b = array.get(i);
			if(b.getId() == num)
			{
			   array.remove(i);
			   f = true;
			}
		}
	    if(f) System.out.println("***********删除成功!***********\n");
	    else System.out.println("失败,编号不存在");
	}
	
	public static void del2(ArrayList<cd> array)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入要删除的对象编号:");
		int num = input.nextInt();
		boolean f = false;
		for(int i = 0;i < array.size();i ++)
		{
			cd b = array.get(i);
			if(b.getId() == num)
			{
				   array.remove(i);
				   f = true;
			}
		}
		 if(f) System.out.println("***********删除成功!***********\n");
		 else System.out.println("失败,编号不存在");
	}

	public static void del3(ArrayList<pictrue> array)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入要删除的对象编号:");
		int num = input.nextInt();
		boolean f = false;
		for(int i = 0;i < array.size();i ++)
		{
			pictrue b = array.get(i);
			if(b.getId() == num)
			{
				   array.remove(i);
				   f = true;
			}
		}
		 if(f) System.out.println("***********删除成功!***********\n");
		 else System.out.println("失败,编号不存在");
	}
	
	public static void change1(ArrayList<book> array)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入要修改的对象编号:");
		int x = input.nextInt();
		
		System.out.print("请输入新编号:");
		int sid = input.nextInt();
		System.out.print("请输入新标题:");
		String st = input.next();
		System.out.print("请输入新作者:");
		String sa = input.next();
		System.out.print("请输入新评级(一般、儿童、成人等):");
		String sl = input.next();
		System.out.print("请输入新出版社:");
		String sp = input.next();
		System.out.print("请输入新ISBN:");
		String si = input.next();
		System.out.print("请输入新页数:");
		int spage = input.nextInt();
		System.out.print("请输入新年份:");
		int sy = input.nextInt();
		
		book b = new book();
		b.setId(sid);
		b.setTitle(st);
		b.setName(sa);
		b.setLevel(sl);
		b.setPress(sp);
		b.setIsbn(si);
		b.setPage(spage);
		b.setYear(sy);
		
		boolean f = false;
		for(int i = 0;i < array.size();i ++)
		{
			book t = array.get(i);
			if(t.getId() == x)
			{
			   array.set(i, b);
			   f = true;
			   break;
			}
		}
		if(f)System.out.println("***********修改成功!***********\n");
		else System.out.println("失败,编号不存在");
	}
	
	public static void change2(ArrayList<cd> array)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入要修改的对象编号:");
		int x = input.nextInt();
		
		System.out.print("请输入新编号:");
		int sid = input.nextInt();
		System.out.print("请输入新标题:");
		String st = input.next();
		System.out.print("请输入新作者:");
		String sa = input.next();
		System.out.print("请输入新评级(一般、儿童、成人等):");
		String sl = input.next();
		System.out.print("请输入新出品者:");
		String sp = input.next();
		System.out.print("请输入新出品年份:");
		int sy = input.nextInt();
		System.out.print("请输入新视频时长:");
		int stim = input.nextInt();

		
		cd d = new cd();
		d.setId(sid);
		d.setTitle(st);
		d.setName(sa);
		d.setLevel(sl);
		d.setOut(sp);
		d.setTim(stim);
		d.setYear(sy);
		
		boolean f = false;
		for(int i = 0;i < array.size();i ++)
		{
			cd t = array.get(i);
			if(t.getId() == x)
			{
				array.set(i, d);
				f = true;
				break;
			}
			 
		}
		if(f)System.out.println("***********修改成功!***********\n");
		else System.out.println("失败,编号不存在");
	}
	public static void change3(ArrayList<pictrue> array)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入要修改的对象编号:");
		int x = input.nextInt();
		
		System.out.print("请输入新编号:");
		int sid = input.nextInt();
		System.out.print("请输入新标题:");
		String st = input.next();
		System.out.print("请输入新作者:");
		String sa = input.next();
		System.out.print("请输入新评级(一般、儿童、成人等):");
		String sl = input.next();
		System.out.print("请输入国籍:");
		String nat = input.next();
		System.out.print("请输入作品尺寸:");
		String ssiz = input.next();

		pictrue p = new pictrue();
		p.setId(sid);
		p.setTitle(st);
		p.setName(sa);
		p.setLevel(sl);
		p.setNation(nat);
		p.setSiz(ssiz);
		
		boolean f = false;
		for(int i = 0;i < array.size();i ++)
		{
			pictrue t = array.get(i);
			if(t.getId() == x)
			{
				 array.set(i, p);
			 	 f = true;
			     break;
			}
			
		}
		if(f)System.out.println("***********修改成功!***********\n");
		else System.out.println("失败,编号不存在");
	}
	public static void stat(ArrayList<book> array1,ArrayList<cd> array2,ArrayList<pictrue> array3)
	{
		    System.out.println("==============================");
	        System.out.println("          1.资源类别");
	        System.out.println("          2.年份");
	        System.out.println("==============================");
	        System.out.println("请选择:   ");
	        Scanner input = new Scanner(System.in);
	        int num = input.nextInt();
	        if(num == 1)
	        {
	        	System.out.println("图书共计:"+array1.size());
	        	System.out.println("光碟共计:"+array2.size());
	        	System.out.println("图画共计:"+array3.size());
	        }else
	        {
	        	System.out.println("请输入要统计的年份:");
				int x = input.nextInt();
				int cnt1 = 0,cnt2 = 0;
				for(int i = 0;i < array1.size();i ++)
				{
					book b = array1.get(i);
					if(b.getYear() == x)
					   cnt1 ++;
				}
				  for(int i = 0;i < array2.size();i ++)
				{
					cd d = array2.get(i);
					if(d.getYear() == x)
					   cnt2 ++;
				}
				
				System.out.println("该年份图书共计:"+cnt1);
				System.out.println("该年份光盘共计:"+cnt2);

	        }
			
	}
	


    public static void writeIntoFile1(ArrayList<book> array ){
	     ObjectOutputStream oos ;
	     try {
	           oos = new ObjectOutputStream( new BufferedOutputStream(new FileOutputStream( "D://xxx.txt" )));
	          
	           oos .writeObject(array);
	          
	           oos .flush();
	           oos .close();      
	    } catch (IOException e ) {
	           // TODO Auto-generated catch block
	           e .printStackTrace();
	    } finally {
	          System. out .println( "图书文件写入完成!" );
	    }
	}
    
    public static ArrayList<book> testReader1(){
    	 ArrayList<book> b = null ;
         try {
              ObjectInputStream ois = new ObjectInputStream( new BufferedInputStream( new FileInputStream( "D://xxx.txt" )));
               b =(ArrayList<book>) ois.readObject();
               ois .close();
        } catch (IOException e ) {
               // TODO Auto-generated catch block
               e .printStackTrace();
        } catch (ClassNotFoundException e ) {
               // TODO Auto-generated catch block
               e .printStackTrace();
        } finally {
              System. out .println( "图书文件读取成功!" );
        }
         return b ;
  }

    public static void writeIntoFile2(ArrayList<cd> array ){
	     ObjectOutputStream oos ;
	     try {
	           oos = new ObjectOutputStream( new BufferedOutputStream(new FileOutputStream( "D://xx.txt" )));
	          
	           oos .writeObject(array);
	          
	           oos .flush();
	           oos .close();      
	    } catch (IOException e ) {
	           // TODO Auto-generated catch block
	           e .printStackTrace();
	    } finally {
	          System. out .println( "光盘文件写入完成!" );
	    }
	}
    
    public static ArrayList<cd> testReader2(){
   	 ArrayList<cd> b = null ;
        try {
             ObjectInputStream ois = new ObjectInputStream( new BufferedInputStream( new FileInputStream( "D://xx.txt" )));
              b =(ArrayList<cd>) ois.readObject();
              ois .close();
       } catch (IOException e ) {
              // TODO Auto-generated catch block
              e .printStackTrace();
       } catch (ClassNotFoundException e ) {
              // TODO Auto-generated catch block
              e .printStackTrace();
       } finally {
             System. out .println( "光盘文件读取成功!" );
       }
        return b ;
 } 
      
    public static void writeIntoFile3(ArrayList<pictrue> array ){
	     ObjectOutputStream oos ;
	     try {
	           oos = new ObjectOutputStream( new BufferedOutputStream(new FileOutputStream( "D://x.txt" )));
	          
	           oos .writeObject(array);
	          
	           oos .flush();
	           oos .close();      
	    } catch (IOException e ) {
	           // TODO Auto-generated catch block
	           e .printStackTrace();
	    } finally {
	          System. out .println( "图画文件写入完成!" );
	    }
	}
   
   public static ArrayList<pictrue> testReader3(){
  	 ArrayList<pictrue> b = null ;
       try {
            ObjectInputStream ois = new ObjectInputStream( new BufferedInputStream( new FileInputStream( "D://x.txt" )));
             b =(ArrayList<pictrue>) ois.readObject();
             ois .close();
      } catch (IOException e ) {
             // TODO Auto-generated catch block
             e .printStackTrace();
      } catch (ClassNotFoundException e ) {
             // TODO Auto-generated catch block
             e .printStackTrace();
      } finally {
            System. out .println( "图画文件读取成功!" );
      }
       return b ;
}
    
}

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
目 录 摘 要 ……………………………………………………………………………… I 第一章 绪 论 …………………………………………………………………… 1 '1.1 数据库应用系统开发简介 ……………………………………………… 1 '1.2 图书管理系统 ……………………………………………………… 4 '1.3 本文所做的主要工作 …………………………………………………… 6 第二章 数据库理论基础 ………………………………………………………… 7 '2.1 数据库系统设计及范式分析 …………………………………………… 7 '2.2 SQL语言介绍………………………………………………………………… 11 2.2.1 SQL基础 ………………………………………………………………… 11 2.2.2 SQL语句 ………………………………………………………………… 12 第三章 应用系统开发工具………………………………………………… 16 '3.1 Delphi6.0 VCL组件的体系结构……………………………………… 16 '3.2 数据库组件介绍 …………………………………………………………… 17 '3.3 SQL语言在Delphi中的应用 …………………………………………… 18 '3.4 MS SQL Server简述 …………………………………………………… 22 第四章 图书管理系统设计分析 ………………………………………… 24 '4.1 应用需求分析 …………………………………………………………… 24 '4.2 系统功能模块划分 ……………………………………………………… 29 '4.3 系统数据库设计 ………………………………………………………… 29 第五章 图书管理系统应用程序设计 …………………………………… 37 '5.1 系统窗体模块组成 ………………………………………………………… 37 '5.2 数据模块窗体的设置 ……………………………………………………… 37 '5.3启动画面的实现…………………………………………………………… 38 '5.4用户登录窗体的的实现……………………………………………………… 39 '5.5用户密码认证窗体的的实现………………………………………………… 39 '5.6借阅者服务模块的实现…………………………………………………… 40 5.6.1图书查询功能的实现………………………………………………… 41 5.6.2借阅者登录功能的实现………………………………………………… 42 5.6.3借阅者借阅情况功能的实现…………………………………………… 43 5.6.4借阅者个人资料维护功能的实现……………………………………… 47 '5.7工作人员-图书借阅/归还模块的实现……………………………………… 49 5.7.1工作人员进行图书借阅功能实现……………………………………… 50 5.7.2工作人员进行图书归还功能实现……………………………………… 53 '5.8图书馆管理员模块的实现…………………………………………… 54 5.8.1图书馆管理员图书管理功能的实现…………………………………… 55 5.8.2图书馆管理员工作人员和管理员管理功能的实现…………………… 58 5.8.3图书馆管理员修改图书类别及统记功能的实现……………………… 60 5.8.4图书馆管理员借阅者管理功能的实现………………………………… 62 5.8.5图书馆维护借阅者管理功能的实现………………………………… 62 5.8.6图书馆身份维护功能的实现……………………………………… 64 5.8.7图书馆借阅者统计功能的实现………………………………… 65 5.8.8图书馆统计借阅过期记录功能的实现………………………… 67 '5.9系统信息显示的实现………………………………………………… 68 第六章 结束语 ……………………………………………………………… 69 致 谢 ………………………………………………………………………………70 参考书目 …………………………………………………………………………… 70
概念模型设计是一种用于描述和表示系统中实体及其之间关系的方法。图书管理系统是一个用于管理图书馆藏书、借还书以及查询相关信息的系统。为了设计图书管理系统的概念模型,我会采用实体-关系(E-R)图的方式来进行表示。 在图书管理系统中,我将识别出以下实体: 1. 读者:代表借阅图书的用户。该实体有属性如读者ID、姓名和联系方式。 2. 图书:代表馆内藏书。该实体有属性如书名、ISBN、作者和出版社。 3. 借阅记录:代表读者借阅图书的记录。该实体有属性如借阅日期和归还日期。 4. 图书馆:代表一个图书馆。该实体有属性如馆名和地址。 接下来,我将描述实体之间的关系: 1. 借阅记录与读者之间的关系是一对多的关系,表示一个读者可以有多个借阅记录,而每个借阅记录只属于一个读者。 2. 借阅记录与图书之间的关系也是一对多的关系,表示一本图书可以有多个借阅记录,而每个借阅记录只对应一本图书。 3. 借阅记录与图书馆之间的关系是多对一的关系,表示一个借阅记录属于一个图书馆,而一个图书馆可以有多个借阅记录。 根据上述描述,我可以使用E-R图来表示概念模型。具体的E-R图如下所示: ![概念模型设计E-R图](https://example.com/image.png) 在该E-R图中,读者、图书、借阅记录和图书馆分别表示为矩形框,而实体之间的关系则由菱形框和箭头表示。例如,箭头从借阅记录指向读者,表示借阅记录是属于读者的。 通过该E-R图,我们可以清晰地了解图书管理系统中的实体和其之间的关系,这将有助于进一步的系统设计和开发

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nycSerendipity

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

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

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

打赏作者

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

抵扣说明:

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

余额充值