基于Android平台的图书管理系统的制作(4)

讲解完学生、职员、书籍这些基础层之后,我们可以来了解一些应用层的活动。

新书上架、借阅排行、黑名单、图书馆介绍、图书馆新闻。

新书上架是查询数据库里的Book表,将最近注册的五本书的基本信息(若图书馆所有书籍少于5,则所有)通过listview展示出来。

源代码贴出:

 1 package com.example.administrator.library1;
 2
 3 import android.content.Intent;
 4 import android.support.v7.app.AppCompatActivity;
 5 import android.os.Bundle;
 6 import android.widget.ArrayAdapter;
 7 import android.widget.ListView;
 8
 9 import org.litepal.LitePal;
10
11 import java.util.ArrayList;
12 import java.util.List;
13
14 public class New_Books extends AppCompatActivity {
15
16     ListView listView;
17     List<Book> bookList=new ArrayList<>();
18     List<String> books=new ArrayList<>();
19     @Override
20     protected void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.activity_new__books);
23
24         listView=findViewById(R.id.books_new_list_id);
25         bookList= LitePal.findAll(Book.class);
26         if(bookList.size()>8)
27         {
28             for(int i=0;i<8;++i)
29             {
30                 books.add("书名:"+bookList.get(bookList.size()-i-1).getName()+"    "+"作者:"+bookList.get(bookList.size()-i-1).getWriter());
31             }
32         }
33         else
34         {
35             for(int i=bookList.size()-1;i>=0;--i)
36             {
37                 books.add("书名:"+bookList.get(i).getName()+"    "+"作者:"+bookList.get(i).getWriter());
38             }
39         }
40         ArrayAdapter adapter=new ArrayAdapter<String>(New_Books.this,android.R.layout.simple_list_item_1,books);
41         listView.setAdapter(adapter);
42     }
43
44     @Override
45     protected void onPause() {
46         Intent intent=new Intent(New_Books.this,MainActivity.class);
47         startActivity(intent);
48         super.onPause();
49     }
50 }

NewBooks

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:orientation="vertical"
 6     android:layout_width="match_parent"
 7     android:layout_height="match_parent"
 8     tools:context=".New_Books">
 9     <TextView
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content"
12         android:textSize="30sp"
13         android:textColor="#091"
14         android:gravity="center"
15         android:text="新书上架"/>
16     <ListView
17         android:id="@+id/books_new_list_id"
18         android:layout_width="match_parent"
19         android:layout_height="match_parent">
20     </ListView>
21
22 </LinearLayout>

Newbooks_xml

接着是借阅排行榜。

搜索出借阅数量最多的五个学生,被借阅量最多的五本书,通过listview展示出来。

代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:orientation="vertical"
 6     android:layout_width="match_parent"
 7     android:layout_height="match_parent"
 8     tools:context=".Ranking">
 9
10     <ImageView
11         android:layout_width="wrap_content"
12         android:layout_height="150dp"
13         android:layout_gravity="center"
14         android:src="@drawable/ranking" />
15
16     <TextView
17         android:layout_width="match_parent"
18         android:layout_height="wrap_content"
19         android:gravity="center"
20         android:textSize="30sp"
21         android:text="人物榜" />
22
23     <ListView
24         android:id="@+id/rank_list1_id"
25         android:layout_width="match_parent"
26         android:layout_height="wrap_content"></ListView>
27     <TextView
28         android:layout_width="match_parent"
29         android:layout_height="wrap_content"
30         android:gravity="center"
31         android:textSize="30sp"
32         android:text="书榜"/>
33     <ListView
34         android:id="@+id/rank_list2_id"
35         android:layout_width="match_parent"
36         android:layout_height="wrap_content"></ListView>
37
38 </LinearLayout>

Ranking_xml

  1 package com.example.administrator.library1;
  2
  3 import android.content.Intent;
  4 import android.support.v7.app.AppCompatActivity;
  5 import android.os.Bundle;
  6 import android.widget.ArrayAdapter;
  7 import android.widget.ListView;
  8
  9 import org.litepal.LitePal;
 10
 11 import java.util.ArrayList;
 12 import java.util.List;
 13
 14 public class Ranking extends AppCompatActivity {
 15
 16     ListView listView1,listView2;
 17     List<Student> students=new ArrayList<>();
 18     List<Book> books=new ArrayList<>();
 19     List<String> stu=new ArrayList<>();
 20     List<String> bo=new ArrayList<>();
 21     @Override
 22     protected void onCreate(Bundle savedInstanceState) {
 23         super.onCreate(savedInstanceState);
 24         setContentView(R.layout.activity_ranking);
 25
 26         listView1=findViewById(R.id.rank_list1_id);
 27         listView2=findViewById(R.id.rank_list2_id);
 28
 29         students= LitePal.findAll(Student.class);
 30         books=LitePal.findAll(Book.class);
 31
 32         if(students.size()>5)
 33         {
 34             for(int i=0;i<5;++i)
 35             {
 36                 for(int j=students.size()-1;j>0;--j)
 37                 {
 38                     if(students.get(j).getBookAmount()>students.get(j-1).getBookAmount())
 39                     {
 40                         Student student_temp;
 41                         student_temp=students.get(j);
 42                         students.set(j,students.get(j-1));
 43                         students.set(j-1,student_temp);
 44                     }
 45                 }
 46             }
 47             for(int i=0;i<5;++i)
 48             {
 49                 stu.add("学生:"+students.get(i).getName()+"    "+"借阅量:"+String.valueOf(students.get(i).getBookAmount()));
 50             }
 51         }
 52         else
 53         {
 54             for(int i=0;i<students.size()-1;++i)
 55             {
 56                 for(int j=i+1;j<students.size();++j)
 57                 {
 58                     if(students.get(i).getBookAmount()<students.get(j).getBookAmount())
 59                     {
 60                         Student student_temp;
 61                         student_temp=students.get(i);
 62                         students.set(i,students.get(j));
 63                         students.set(j,student_temp);
 64                     }
 65                 }
 66             }
 67             for(int i=0;i<students.size();++i)
 68             {
 69                 stu.add("姓名:"+students.get(i).getName()+"    "+"借阅量:"+String.valueOf(students.get(i).getBookAmount()));
 70             }
 71         }
 72         ArrayAdapter<String> adapter1=new ArrayAdapter<String>(Ranking.this,android.R.layout.simple_list_item_1,stu);
 73         listView1.setAdapter(adapter1);
 74
 75         if(books.size()>5)
 76         {
 77             for(int i=0;i<5;++i)
 78             {
 79                 for(int j=books.size()-1;j>0;--j)
 80                 {
 81                     if(books.get(j).getAmount()-books.get(j).getIn_shelf()>books.get(j-1).getAmount()-books.get(j-1).getIn_shelf())
 82                     {
 83                         Book book_temp;
 84                         book_temp=books.get(j);
 85                         books.set(j,books.get(j-1));
 86                         books.set(j-1,book_temp);
 87                     }
 88                 }
 89             }
 90             for(int i=0;i<5;++i)
 91             {
 92                 bo.add("书名:"+books.get(i).getName()+"    "+"被借阅量:"+String.valueOf(books.get(i).getAmount()-books.get(i).getIn_shelf()));
 93             }
 94         }
 95         else
 96         {
 97             for(int i=0;i<books.size()-1;++i)
 98             {
 99                 for(int j=i+1;j<books.size();++j)
100                 {
101                     if(books.get(i).getAmount()-books.get(i).getIn_shelf()<books.get(j).getAmount()-books.get(i).getIn_shelf())
102                     {
103                         Book book_temp;
104                         book_temp=books.get(i);
105                         books.set(i,books.get(j));
106                         books.set(j,book_temp);
107                     }
108                 }
109             }
110             for(int i=0;i<books.size();++i)
111             {
112                 bo.add("书名:"+books.get(i).getName()+"    "+"被借阅量:"+String.valueOf(books.get(i).getAmount()-books.get(i).getIn_shelf()));
113             }
114         }
115         ArrayAdapter<String> adapter2=new ArrayAdapter<String>(Ranking.this,android.R.layout.simple_list_item_1,bo);
116         listView2.setAdapter(adapter2);
117     }
118
119     @Override
120     protected void onPause() {
121         Intent intent=new Intent(Ranking.this,MainActivity.class);
122         startActivity(intent);
123         super.onPause();
124     }
125 }

Ranking_List

效果图:

关于图书馆介绍,图书馆新闻这两个的实现比较简单,可以在Github上查看。

至此 我的第一个系统性的Android应用程序讲解完毕,中间有一些不足之处,希望之后我能够将它们进行修正。

原文地址:https://www.cnblogs.com/Gzxjt/p/9648932.html

时间: 2024-07-31 01:47:45

基于Android平台的图书管理系统的制作(4)的相关文章

基于Android平台的图书管理系统的制作(2)

上一篇讲解了制作图书管理系统的初衷与要求,和app首页的代码. 下面来介绍图书管理系统的服务对象:学生 学生类的设计: 个人信息:账号.密码.姓名.学号.邮箱.年龄. 借阅信息:借阅总数(不超过十本).借阅书籍的ID(数组).借阅书籍的日期(数组). 源码在此: 1 package com.example.administrator.library1; 2 3 import org.litepal.LitePal; 4 import org.litepal.crud.DataSupport; 5

基于Android平台的图书管理系统的制作(3)

前两篇介绍了主页面和Student,这一篇来讲Book类和工作人员. Book是图书管理系统的核心,查书,借书,还书,增加书都与Book类息息相关.Book类的设计很简单:包含信息:名称.作者.页数.价钱.出版日期.数量.在架数量. Book类的代码: 1 package com.example.administrator.library1; 2 3 import org.litepal.annotation.Column; 4 import org.litepal.crud.LitePalSu

基于Android平台的会议室管理系统具体设计说明书

会议室管理系统具体设计说明书 第一部分  引言 1.编写目的 本说明对会议室管理系统项目的各模块.页面.脚本分别进行了实现层面上的要求和说明. 软件开发小组的产品实现成员应该阅读和參考本说明进行代码的编写.測试. 1.2 背景 说明: A.软件系统的名称:会议室管理系统 B. 任务提出者:内蒙古大学计算机学院 开发人员:魏晓蕾 本项目将实现基于Android平台的会议室管理系统的原型部分,而且在该原型的基础上进行功能的扩展和需求的界定,终于完毕的版本号将在全国范围内推广使用. 提供会议室管理功能

基于Android平台的汽车租赁平台项目的数据库设计心得

我们团队的项目是基于Android平台的汽车租赁平台,其分为手机客户端与web后台管理系统,用以满足租车公司的业务需求,故数据库设计对于本项目显得尤为重要,我们团队数据库设计最开始用的是最原始的方式:Word手动输入,但随后随着数据库课程以及实验的学习,我们最后使用的PowerDesigner设计的数据库并生成了SQL文件,导入数据库完成的数据库最终设计与搭建,我们团队于第8周完成了数据库的搭建. 数据库设计中,数据库要严格与项目需求相联系,同时保证数据库数据完整.正确.安全以及数据处理的高效与

基于Android平台的i-jetty网站智能农业监控系统

基于android平台i-jetty网站的智能农业监控系统 摘要:传统的监控系统,一般是基于PC的有线通信传输,其有很多不足之处,如功耗较高.布线成本高.难度大,适应性差,可扩展性不强,增加新的通信线路需要再次布线施工,而且维护起来也比较麻烦,一旦线路出问题,需要繁琐的检查.而嵌入式Web监控系统是基于物联网技术,其无线通信技术具有成本低廉.适应性强.扩展性强.信息安全.使用维护简单等优点. 智能农业中,种植大棚是通过大棚内安装温湿度以及光照传感器,来对农作物的环境参数进行实时采集,由Web监控

基于Android 平台简易即时通讯的研究与设计[转]

摘要:论文简单介绍Android 平台的特性,主要阐述了基于Android 平台简易即时通讯(IM)的作用和功能以及实现方法.(复杂的通讯如引入视频音频等可以考虑AnyChat SDK~)关键词:Android 平台:即时通讯 (本文中图表点击附件即可见) 1 Android 平台简介Android 是Google 公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40 多家移动通信领域的领军企业组成开放手机联盟(

cocos2dx-2.X前后台切换分析,基于android平台

摘自网上的android生命周期图: cocos2dx-2.X前后台切换分析,基于android平台: 1.从后台进入前台 项目的activity一般继承自Cocos2dxActivity,看过activity生命周期的 都知道onCreate,onResume等方法,这些函数是activity生命周期中 最重要的函数,具体什么时候调用,可以查看相关资料. //刚进入游戏和游戏从后台回到前台会调用 @Override protected void onResume() { super.onRes

基于Android平台简易即时通讯的研究与设计

1 Android平台简介 Android是Google公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40多家移动通信领域的领军企业组成开放手机联盟(OHA).Google与运营商.设备制造商.开发商和其他第三方结成深层次的合作伙伴关系,希望通过建立标准化.开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统.正因如此,Android正在被越来越多的开发者和使用者所接受.近日,Google发言人Ant

基于Android平台开发的手电筒Light

基于Android平台开发的手电筒Light 1.     需求分析: 在现代社会中,手机的功能越来越完善,手电筒就是这些功能中必不可少的一种.当行走在漆黑的道路上,当你在黑暗狭小的地方寻找物品,当你在家中停电之时,如果你的手机拥有了手电筒的功能,那将为你带来莫大的方便.当然,它的用处不仅仅只是这样,有了这样一个方便携带的手电筒,在许多时候都是大有益处,因此,开发出了手电筒这一应用程序. 2.     开发环境: 1. JDK Ver: jdk-7u4-windows-x64.exe 2. My