糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 知识付费源码|知识付费网站搭建|知识付费小程序源码

知识付费源码|知识付费网站搭建|知识付费小程序源码

时间:2023-11-08 13:43:13

相关推荐

知识付费源码|知识付费网站搭建|知识付费小程序源码

设计一个在线教育知识付费源码系统(面向对象设计)。

解决方案:假设我们想要设计一个基本的内容付费阅读系统并带小程序,提供以下功能:

•查找知识数据库并阅读付费内容;

•用户成员的创建和扩展;

•基于用户分级权限管理,并且这个用户只能获权后阅读。

仓库完整源码:zs.xcxyms.top

类OnlineReaderSystem代表程序的主体。我们可以实现这个类,让它存储有关所有涉及用户管理的权限分级的信息,并刷新显示,但这会使这个类变得相当庞大。相反,我们选择将这些组件拆分成Library、UserManager和Display类。

类:

1、用户

2、知识

3、UserManager

4、OnlineReaderSystem

代码如下:

import java.util.HashMap;/** This class represents the system*/class OnlineReaderSystem {private Library library;private UserManager userManager;private Display display;private Book activeBook;private User activeUser;public OnlineReaderSystem(){userManager = new UserManager();library = new Library();display = new Display();}public Library getLibrary(){return library;}public UserManager getUserManager(){return userManager;}public Display getDisplay(){return display;}public Book getActiveBook(){return activeBook;}public void setActiveBook(Book book){activeBook = book;display.displayBook(book);}public User getActiveUser(){return activeUser;}public void setActiveUser(User user){activeUser = user;display.displayUser(user);}}/** We then implement separate classes to handle the user* manager, the library, and the display components*//** This class represents the Library which is responsible* for storing and searching the books.*/class Library {private HashMap<Integer, Book> books;public Library(){books = new HashMap<Integer, Book>();}public Boolean addBook(int id, String details, String title){if (books.containsKey(id)) {return false;}Book book = new Book(id, details, title);books.put(id, book);return true;}public Boolean addBook(Book book){if (books.containsKey(book.getId())) {return false;}books.put(book.getId(), book);return true;}public boolean remove(Book b){return remove(b.getId());}public boolean remove(int id){if (!books.containsKey(id)) {return false;}books.remove(id);return true;}public Book find(int id){return books.get(id);}}/** This class represents the UserManager which is responsible* for managing the users, their membership etc.*/class UserManager {private HashMap<Integer, User> users;public UserManager(){users = new HashMap<Integer, User>();}public Boolean addUser(int id, String details, String name){if (users.containsKey(id)) {return false;}User user = new User(id, details, name);users.put(id, user);return true;}public Boolean addUser(User user){if (users.containsKey(user.getId())) {return false;}users.put(user.getId(), user);return true;}public boolean remove(User u){return remove(u.getId());}public boolean remove(int id){if (users.containsKey(id)) {return false;}users.remove(id);return true;}public User find(int id){return users.get(id);}}/** This class represents the Display, which is responsible* for displaying the book, it's pages and contents. It also* shows the current user. * It provides the method* turnPageForward, turnPageBackward, refreshPage etc.*/class Display {private Book activeBook;private User activeUser;private int pageNumber = 0;public void displayUser(User user){activeUser = user;refreshUsername();}public void displayBook(Book book){pageNumber = 0;activeBook = book;refreshTitle();refreshDetails();refreshPage();}public void turnPageForward(){pageNumber++;System.out.println("Turning forward to page no " +pageNumber + " of book having title " +activeBook.getTitle());refreshPage();}public void turnPageBackward(){pageNumber--;System.out.println("Turning backward to page no " +pageNumber + " of book having title " +activeBook.getTitle());refreshPage();}public void refreshUsername(){/* updates username display */System.out.println("User name " + activeUser.getName() +" is refreshed");}public void refreshTitle(){/* updates title display */System.out.println("Title of the book " +activeBook.getTitle() + " refreshed");}public void refreshDetails(){/* updates details display */System.out.println("Details of the book " +activeBook.getTitle() + " refreshed");}public void refreshPage(){/* updated page display */System.out.println("Page no " + pageNumber + " refreshed");}}/** The classes for User and Book simply hold data and* provide little functionality.* This class represents the Book which is a simple POJO*/class Book {private int bookId;private String details;private String title;public Book(int id, String details, String title){bookId = id;this.details = details;this.title = title;}public int getId(){return bookId;}public void setId(int id){bookId = id;}public String getDetails(){return details;}public void setDetails(String details){this.details = details;}public String getTitle(){return title;}public void setTitle(String title){this.title = title;}}/** This class represents the User which is a simple POJO*/class User {private int userId;private String name;private String details;public void renewMembership(){}public User(int id, String details, String name){this.userId = id;this.details = details;this.name = name;}public int getId(){return userId;}public void setId(int id){userId = id;}public String getDetails(){return details;}public void setDetails(String details){this.details = details;}public String getName(){return name;}public void setName(String name){this.name = name;}}// This class is used to test the Applicationpublic class AppTest {public static void main(String[] args){OnlineReaderSystem onlineReaderSystem = new OnlineReaderSystem();Book dsBook = new Book(1, "It contains Data Structures", "Ds");Book algoBook = new Book(2, "It contains Algorithms", "Algo");onlineReaderSystem.getLibrary().addBook(dsBook);onlineReaderSystem.getLibrary().addBook(algoBook);User user1 = new User(1, " ", "Ram");User user2 = new User(2, " ", "Gopal");onlineReaderSystem.getUserManager().addUser(user1);onlineReaderSystem.getUserManager().addUser(user2);onlineReaderSystem.setActiveBook(algoBook);onlineReaderSystem.setActiveUser(user1);onlineReaderSystem.getDisplay().turnPageForward();onlineReaderSystem.getDisplay().turnPageForward();onlineReaderSystem.getDisplay().turnPageBackward();}}

知识付费源码系统类图:聚合和多重性是设计类图时需要考虑的两个重要问题。让我们来详细了解一下。

聚合,

聚合只是表示一种关系,其中一件事可以独立于其他事存在。它意味着在定义类时创建或组合不同的抽象。聚合表示为类图中关系的一部分。在下面的图中,我们可以看到聚合是由一个指向超类的菱形末端的边表示的。“图书管理系统”是由各种类组成的超类。

这些类是User、Book和Librarian。此外,对于“Account”类,“User”是一个超类。所有这些,共享一种关系,这些关系被称为聚合关系。

多重性,

多重性意味着一个类的元素数量与另一个类相关联。这些关系可以是一对一、多对多、多对一或一对多。用来表示我们使用的一个元素1,表示我们使用的零元素0,以及我们使用的许多元素*. 我们可以从图表中看到;许多用户与表示的许多书相关联*这表示多对多类型的关系。一个用户只有一个用1表示的帐户,这表示a一对一的类型的关系。

知识付费系统类图简单地描述了知识管理系统类的结构、属性、方法或操作、对象之间的关系。

如果觉得《知识付费源码|知识付费网站搭建|知识付费小程序源码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。