国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了Android實(shí)訓(xùn)——圖書管理系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在大學(xué)課程實(shí)訓(xùn)課程中,通過(guò)開(kāi)發(fā)實(shí)現(xiàn)一個(gè)完整的系統(tǒng)作業(yè)是基本操作吧,本次描述的是一個(gè)基于Android studio開(kāi)發(fā)的圖書管理系統(tǒng),大學(xué)階段學(xué)習(xí)的基本知識(shí)不牢固,很多地方也沒(méi)有完全優(yōu)化完善,單單實(shí)現(xiàn)了一個(gè)數(shù)據(jù)的增刪改查以及各個(gè)界面的跳轉(zhuǎn)關(guān)系。

涉及到的只是對(duì)于剛接觸開(kāi)發(fā)的人來(lái)說(shuō)比較難的有,數(shù)據(jù)庫(kù)的增、刪、改、查以及列表(List)適配器以及列表item響應(yīng)事件處理等。以下請(qǐng)看流程:

一、結(jié)構(gòu)圖如以下:

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

二、系統(tǒng)分為兩個(gè)模塊:

(1)、管理員模塊:添加用戶的登錄信息(賦予用戶初始登錄賬號(hào)密碼) && (增刪改查)書籍信息 && (增刪改查)用戶基本數(shù)據(jù)(學(xué)號(hào)、名稱、等等)&&? 查看已借書籍

(2)、用戶模塊:登錄賬號(hào)密碼、借書、還書、顯示用戶所借的書籍

三、主要代碼:

(1)、設(shè)置管理員特定賬號(hào)密碼:

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

//設(shè)置登錄的賬號(hào)密碼為admin、123456
/**
*name = 賬號(hào)輸入框數(shù)據(jù)
*pass = 密碼輸入框數(shù)據(jù)
*/
if(name.equals("admin") && pass.equals("123456")){
    Intent intent=new Intent(MainActivity.this,AdminActivity.class);
    startActivity(intent);
    Toast.makeText(getApplicationContext(), "跳轉(zhuǎn)到管理員界面", Toast.LENGTH_LONG).show();
}

(2)、管理員的管理界面(這里簡(jiǎn)單介紹對(duì)第一個(gè)功能:對(duì)學(xué)生登錄信息的操作)

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

?2-1、對(duì)學(xué)生登錄信息的操作界面(這里設(shè)計(jì)到數(shù)據(jù)庫(kù)的內(nèi)容、后面單獨(dú)介紹數(shù)據(jù)庫(kù)創(chuàng)建以及數(shù)據(jù)庫(kù)列表創(chuàng)建)

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

//插入數(shù)據(jù)庫(kù)的方法
public void operate(User user){
	   SQLiteDatabase db=help.getWritableDatabase();
	   if(db.isOpen()){
			  String name=user.getUsername();
			  String pass=user.getPassword();
			  db.execSQL("insert into user (name,password) values (?,?)",new Object[]{name,pass});
			  Log.d("數(shù)據(jù)庫(kù)操作", "成功");
			  db.close();
	   }
	   else{
	   	     Toast.makeText(this.context,"error",Toast.LENGTH_LONG).show();
	}
}

2-2、查看錄入的數(shù)據(jù)(這里就涉及到列表、數(shù)據(jù)適配器的內(nèi)容了)

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

//從數(shù)據(jù)庫(kù)查找數(shù)據(jù)并返回
//User是一個(gè)數(shù)據(jù)的實(shí)體類,里面包含username,password以及它們的get和set方法以及構(gòu)造器
public List<User> findAll(){
		List<User> users =null;
		SQLiteDatabase db=help.getReadableDatabase();
		if(db.isOpen()){
		Cursor cursor=db.query("user",null,null,null,null,null,null);
		users=new ArrayList<User>();
		while(cursor.moveToNext()){
			User user=new User();
			String name=cursor.getString(cursor.getColumnIndex("name"));
			user.setUsername(name);
			String pass=cursor.getString(cursor.getColumnIndex("password"));
			user.setPassword(pass);
			users.add(user);
		}
		cursor.close();
		db.close();
	}
	return users;
	}

//調(diào)用此方法,userlist為全局變量,這里需要注意
//聲明一個(gè)List userlist = new ArrayList();
private void getData() {
	userdao=new UserBean(this);
	userlist=userdao.findAll();
}

/**
* R.layout.userlist:新建的一個(gè)布局
* userlist:上面提到的全局變量
* setOnItemClickListener:列表的item的響應(yīng)事件
* 響應(yīng)事件為:創(chuàng)建一個(gè)對(duì)話框,對(duì)話框有兩個(gè)操作:修改、刪除
*/
public void actionFindAllInfo(){
    getData();
	  UserAdapter myAdapter=new UserAdapter(this,R.layout.userlist,userlist);
	  listview.setAdapter(myAdapter);
	  listview.setOnItemClickListener(new OnItemClickListener(){
		  @Override
		  public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3) {
				User user=(User)arg0.getItemAtPosition(arg2);
				final String name=user.getUsername();
				final String pass=user.getPassword();
				AlertDialog.Builder builder=new         AlertDialog.Builder(UserViewActivity.this);
				builder.setTitle("確定以下操作???");
				builder.setPositiveButton("修改", new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int whichButton) {
						Intent intent=new Intent();
						Bundle bundel=new Bundle();
						bundel.putString("name", name);
						bundel.putString("pass", pass);
						intent.setClass(getApplicationContext(),UpdateUserActivity.class);
						intent.putExtras(bundel);
						startActivity(intent);
					}});
				
				builder.setNegativeButton("刪除", new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int whichButton) {
						User user=new User(name,pass);
						if(user.getUsername()==null){
							UserBean del=new UserBean(UserViewActivity.this);
							del.delete();
							Toast.makeText(getApplicationContext(), "用戶名不能為空", Toast.LENGTH_LONG).show();
						}
						UserBean del=new UserBean(UserViewActivity.this);
						del.delete(user);
						Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_LONG).show();
						onStart();
					}});
				builder.show();
			}});
)

補(bǔ)充說(shuō)明:適配器使用

//對(duì)數(shù)據(jù)進(jìn)行列表適配以及展示
public class UserAdapter extends ArrayAdapter{
	User list;
	public void setList(User list){
		this.list=list;
	}
	@Override
	public long getItemId(int position){
		return position;
		
	}
		public UserAdapter(Context context, int resource,List<User>userlist) {
			super(context, resource,userlist);
		}
		@Override
		public View getView(int position,View convertView,ViewGroup parent){
			list=(User)getItem(position);
			View view=LayoutInflater.from(getContext()).inflate(R.layout.userlist, null);
			TextView name =(TextView)view.findViewById(R.id.textView1);
			TextView pass =(TextView)view.findViewById(R.id.textView2);
			name.setText(list.getUsername());
			pass.setText(list.getPassword());
			return view;
			
		}
}

2-2-1、刪除功能:上面我們提到了修改了刪除功能,結(jié)合前面我們有貼了一個(gè)數(shù)據(jù)庫(kù)添加數(shù)據(jù)的方法以及查看并返回一個(gè)實(shí)體類的方法、現(xiàn)在我們我們簡(jiǎn)單說(shuō)一下刪除方法:

//刪除數(shù)據(jù)庫(kù)數(shù)據(jù)的方法,將獲得用戶的數(shù)據(jù)傳進(jìn)來(lái)作為條件刪除用戶數(shù)據(jù)
public void delete(User user){
	  SQLiteDatabase db=help.getWritableDatabase();
	  if(db.isOpen()){
	  String name=user.getUsername();
	  String pass=user.getPassword();
	  db.delete("user", "name=?", new String[]{name});
	}
}

2-2-2、修改功能

Android實(shí)訓(xùn)——圖書管理系統(tǒng)

//更新用戶數(shù)據(jù)方法
public void update(User user){
	  SQLiteDatabase db=help.getWritableDatabase();
	  if(db.isOpen()){
	  String name=user.getUsername();
	  String pass=user.getPassword();
	  ContentValues cv=new ContentValues();
	  cv.put("name", name);
	  cv.put("password", pass);
	  //String sql="update user set name=? password=? where name=?,new Object[]{name,pass??name}";
	  db.update("user", cv,"name=?", new String[]{name});
	  Log.v("???????", "????????");
	  db.close();
		   }
}

四、數(shù)據(jù)庫(kù)的創(chuàng)建

//單獨(dú)封裝的一個(gè)數(shù)據(jù)庫(kù)創(chuàng)建類
public class User_SQliteHelp extends SQLiteOpenHelper{
	private Context mContext;
	public User_SQliteHelp(Context context) {
		super(context, "xxx.db", null, 1);//數(shù)據(jù)庫(kù)創(chuàng)建
	}

	public User_SQliteHelp(Context context, String name, CursorFactory cursorFactory, int version) {
		super(context, name,cursorFactory, version);
		mContext = context;
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("CREATE TABLE IF NOT EXISTS user(name varchar(20)primary key,password varchar(20))");
	}
	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
		
	}
}

五、對(duì)數(shù)據(jù)庫(kù)操作的方法

//把所有對(duì)數(shù)據(jù)庫(kù)操作的方法封裝成一個(gè)類
public class UserBean {
	private Context context;
	private User_SQliteHelp help;
	public UserBean(Context context){
	this.context=context;
	help=new User_SQliteHelp(context);
	}
	
	//檢查
	public boolean ischeck(User use){
		boolean flage=false;
		if(findone(use).getUsername()!=null)flage=true;
		return flage;
	}

	public User findone(User user){
		SQLiteDatabase db=help.getReadableDatabase();
		User use=new User();
		String name=user.getUsername();
		String pass=user.getPassword();
		if(db.isOpen()){
		Cursor cursor=db.query("user",null,"name=?",new String[]{name},null,null,null);
		while(cursor.moveToNext()){
			String username=cursor.getString(cursor.getColumnIndex("name"));
			use.setUsername(username);
			String password=cursor.getString(cursor.getColumnIndex("password"));
			use.setPassword(password);
		}
	}
		return use;
	}


	public List<User> findAll(){
		List<User> users =null;
		SQLiteDatabase db=help.getReadableDatabase();
		if(db.isOpen()){
		Cursor cursor=db.query("user",null,null,null,null,null,null);
		users=new ArrayList<User>();
		while(cursor.moveToNext()){
			User user=new User();
			String name=cursor.getString(cursor.getColumnIndex("name"));
			user.setUsername(name);
			String pass=cursor.getString(cursor.getColumnIndex("password"));
			user.setPassword(pass);
			users.add(user);
		}
		cursor.close();
		db.close();
	}
	return users;
	}
	
	
	
   public void operate(User user){
	   SQLiteDatabase db=help.getWritableDatabase();
	   if(db.isOpen()){
			  String name=user.getUsername();
			  String pass=user.getPassword();
			  db.execSQL("insert into user (name,password) values (?,?)",new Object[]{name,pass});
			  Log.d("數(shù)據(jù)庫(kù)操作", "成功");
			  db.close();
	   }
	   else{
	   	     Toast.makeText(this.context,"error",Toast.LENGTH_LONG).show();
	}
}
   
   public void update(User user){
	  SQLiteDatabase db=help.getWritableDatabase();
	  if(db.isOpen()){
	  String name=user.getUsername();
	  String pass=user.getPassword();
	  ContentValues cv=new ContentValues();
	  cv.put("name", name);
	  cv.put("password", pass);
	  db.update("user", cv,"name=?", new String[]{name});
	  db.close();
		   }
	}
   
   public void delete(User user){
	  SQLiteDatabase db=help.getWritableDatabase();
	  if(db.isOpen()){
	  String name=user.getUsername();
	  String pass=user.getPassword();
	  db.delete("user", "name=?", new String[]{name});
	}
}
   public void delete(){
	   SQLiteDatabase db=help.getWritableDatabase();
	   if(db.isOpen()){
		   String sql="delet from user where name is null";
		   db.execSQL(sql);
	   }
   }
   
   public boolean login(String username,String password){
		SQLiteDatabase db=help.getReadableDatabase();
		String sql="select * from user where username=? and password=?";
		Cursor cursor=db.rawQuery(sql, new String[]{username,password});
		if(cursor.moveToFirst()){
			cursor.close();
			return true;
		}
		return false;
	}
}

六、上文提到的用戶實(shí)體類User

public class User {
	
	String username,password;
	
	public  User(String username,String password){
		this.username=username;
		this.password=password;
	}
	public  User(){ }
	
	public String getUsername() {
		return username;
	}
	
	public void setUsername(String username) {
		this.username = username;
	}
	
	public String getPassword() {
		return password;
	}
	
	public void setPassword(String password) {
		this.password = password;
	}

}

總結(jié):這里只簡(jiǎn)單介紹了系統(tǒng)其中一個(gè)單獨(dú)的功能,里面還有很多重復(fù)的對(duì)數(shù)據(jù)庫(kù)增刪改查功能以及界面的跳轉(zhuǎn),就不一一列舉了,學(xué)完之后你會(huì)發(fā)現(xiàn)都是類似的東西。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-461114.html

如需要源碼可私聊。

到了這里,關(guān)于Android實(shí)訓(xùn)——圖書管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【C語(yǔ)言課程設(shè)計(jì)】圖書管理系統(tǒng)

    【C語(yǔ)言課程設(shè)計(jì)】圖書管理系統(tǒng)

    引言 : 圖書管理系統(tǒng)是一個(gè)重要的信息管理系統(tǒng),對(duì)于圖書館和書店等機(jī)構(gòu)來(lái)說(shuō),它能夠方便地管理圖書的錄入、顯示、查詢、修改和刪除等操作。本實(shí)驗(yàn)基于C語(yǔ)言開(kāi)發(fā)了一個(gè)簡(jiǎn)單的圖書管理系統(tǒng),通過(guò)賬戶名和密碼進(jìn)行系統(tǒng)訪問(wèn)和權(quán)限控制,并實(shí)現(xiàn)了上述功能。在本實(shí)驗(yàn)

    2024年02月15日
    瀏覽(23)
  • MYSQL課程設(shè)計(jì)——圖書管理系統(tǒng)(一)

    MYSQL課程設(shè)計(jì)——圖書管理系統(tǒng)(一)

    ? 圖書借閱管理是學(xué)校工作中的一項(xiàng)重要內(nèi)容,學(xué)校圖書館,書目繁多,用戶的信息冗雜,且信息數(shù)據(jù)在每天變化,如果采用人工方式進(jìn)行管理控制,不僅工作量龐大,而且容易出錯(cuò)。浪費(fèi)了許多的人力和物力,已不能適應(yīng)時(shí)代的發(fā)展。在當(dāng)今信息時(shí)代,這種傳統(tǒng)的管理方法

    2024年02月04日
    瀏覽(23)
  • C++課程設(shè)計(jì):圖書管理系統(tǒng)【附源碼】

    課程設(shè)計(jì)目的 ??作為軟件工程和計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的基本課程,課程設(shè)計(jì)不僅涵蓋了C++語(yǔ)言的知識(shí)體系,又與工程的實(shí)際需要切實(shí)相關(guān)。通過(guò)課程設(shè)計(jì)的綜合性訓(xùn)練,對(duì)開(kāi)發(fā)者解決實(shí)際問(wèn)題能力,編程能力,動(dòng)手能力有很大的提升,更有助于樣成良好的編程習(xí)慣。 圖

    2024年02月07日
    瀏覽(18)
  • c語(yǔ)言課程設(shè)計(jì)(圖書館管理系統(tǒng))

    c語(yǔ)言課程設(shè)計(jì)(圖書館管理系統(tǒng))

    大一c語(yǔ)言課程設(shè)計(jì):圖書館管理系統(tǒng)。 圖書管理系統(tǒng),功能齊全拿來(lái)就能用 1.主界面 ? 代碼段 ?2.圖書錄入界面 運(yùn)用文件錄入多次使用 ? 代碼段 ?3.圖書查詢界面 根據(jù)輸入書的數(shù)據(jù)與文件中數(shù)據(jù)進(jìn)行比對(duì) ,查找后輸出。 代碼段 4.圖書修改 輸入修改圖書數(shù)據(jù)并在文件中查找

    2024年02月11日
    瀏覽(23)
  • RFID課程設(shè)計(jì)-圖書管理系統(tǒng)用戶端設(shè)計(jì)

    RFID課程設(shè)計(jì)-圖書管理系統(tǒng)用戶端設(shè)計(jì)

    RFID課程設(shè)計(jì)-圖書管理系統(tǒng)用戶端設(shè)計(jì) 課程設(shè)計(jì)題目課程設(shè)計(jì)任務(wù)內(nèi)容題目設(shè)計(jì)基本原理NFC開(kāi)發(fā)概述標(biāo)簽調(diào)度系統(tǒng)如何將 NFC 標(biāo)簽映射到 MIME 類型和 URI如何將 NFC 標(biāo)簽分發(fā)到應(yīng)用在 Android 清單中請(qǐng)求 NFC 訪問(wèn)權(quán)限過(guò)濾 NFC IntentACTION_NDEF_DISCOVEREDACTION_TAG_DISCOVERED從 Intent 中獲取信息

    2024年02月08日
    瀏覽(25)
  • 【Java課程設(shè)計(jì)】基于Java Swing 的圖書管理系統(tǒng)

    【Java課程設(shè)計(jì)】基于Java Swing 的圖書管理系統(tǒng)

    ?? 作者簡(jiǎn)介 :在校大學(xué)生一枚,Java領(lǐng)域新星創(chuàng)作者,Java、Python正在學(xué)習(xí)中。 ?? 個(gè)人主頁(yè): 我是一棵卷心菜的個(gè)人主頁(yè) ?? 日常學(xué)習(xí)網(wǎng)站: 牛客網(wǎng),可以用來(lái)刷算法題、工作內(nèi)推、面經(jīng)復(fù)習(xí)、練習(xí)SQL等等,很不錯(cuò)的多功能網(wǎng)站。點(diǎn)擊注冊(cè)學(xué)習(xí)刷題吧! ?? 自我提醒: 多

    2024年02月07日
    瀏覽(32)
  • 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-圖書館管理系統(tǒng)(3. 用戶軟件,基于QT)

    數(shù)據(jù)庫(kù)課程設(shè)計(jì)-圖書館管理系統(tǒng)(3. 用戶軟件,基于QT)

    如果對(duì)你有幫助,可以給卑微的博主留個(gè)贊、關(guān)注、收藏? ?(不是)? (騙一下數(shù)據(jù),說(shuō)不定以后面試就過(guò)了,拜謝) 用戶軟件的實(shí)現(xiàn)根據(jù)自己所用語(yǔ)言選擇對(duì)應(yīng)開(kāi)發(fā)工具,c++ 較常用的是QT或者M(jìn)FC。這里使用QT做個(gè)示例,但博主前端屬實(shí)現(xiàn)學(xué)現(xiàn)賣,也就是能用級(jí)別,可以參考一下

    2024年02月09日
    瀏覽(25)
  • 南京航空航天大學(xué)民航管理系統(tǒng)課程設(shè)計(jì)

    趁著最近備戰(zhàn)c++實(shí)習(xí),通過(guò)以前幫朋友寫的課設(shè)復(fù)習(xí)一下c++,后面附有各個(gè)模塊的功能實(shí)現(xiàn)。 建議通過(guò)多文件封裝各個(gè)類的功能。 1.總體描述 : 本程序?qū)崿F(xiàn)對(duì)民航飛行與地圖管理系統(tǒng)的簡(jiǎn)單操作。 2.程序菜單功能: 地圖記錄是一個(gè)數(shù)據(jù)庫(kù)列表,每一個(gè)記錄包含一個(gè)城市的信

    2024年02月08日
    瀏覽(21)
  • 學(xué)校圖書借閱管理系統(tǒng),Mysql數(shù)據(jù)庫(kù)課程設(shè)計(jì)期末作品或練手項(xiàng)目

    學(xué)校圖書借閱管理系統(tǒng),Mysql數(shù)據(jù)庫(kù)課程設(shè)計(jì)期末作品或練手項(xiàng)目

    使用Navicat操作,未包含Java代碼。 目錄 一、課程設(shè)計(jì)的目的1 二、課程設(shè)計(jì)內(nèi)容1 2.1課程設(shè)計(jì)功能分析說(shuō)明1 2.2數(shù)據(jù)庫(kù)需求分析1 2.2.1系統(tǒng)功能分析說(shuō)明1 (1)信息需求分析1 (2)功能需求2 2.3數(shù)據(jù)字典2 2.3.1數(shù)據(jù)項(xiàng)2 2.3.2數(shù)據(jù)結(jié)構(gòu)3 2.3.3系統(tǒng)功能圖6 2.3.4數(shù)據(jù)流圖6 2.4數(shù)據(jù)庫(kù)概念結(jié)構(gòu)

    2024年02月09日
    瀏覽(28)
  • 【JAVA】 圖書管理系統(tǒng)(javaSE簡(jiǎn)易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設(shè)計(jì)

    【JAVA】 圖書管理系統(tǒng)(javaSE簡(jiǎn)易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設(shè)計(jì)

    作者主頁(yè):paper jie 的博客 本文作者:大家好,我是paper jie,感謝你閱讀本文,歡迎一建三連哦。 本文錄入于《JAVA》專欄,本專欄是針對(duì)于大學(xué)生,編程小白精心打造的。筆者用重金(時(shí)間和精力)打造,將javaSE基礎(chǔ)知識(shí)一網(wǎng)打盡,希望可以幫到讀者們哦。 其他專欄:《算法詳

    2024年02月09日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包