public class Items {
????private ?int img_id;
????private ?String name;
????public int getImg_id() {
????????return img_id;
????}
????public void setImg_id(int img_id) {
????????this.img_id = img_id;
????}
????public String getName() {
????????return name;
????}
????public void setName(String name) {
????????this.name = name;
????}
????public String getExplain() {
????????return explain;
????}
????public void setExplain(String explain) {
????????this.explain = explain;
????}
????private ?String explain;
}
二所意、
[if !supportLists]1.?[endif]編寫一個程序德澈,可以顯示實時時間,按返回時有彈出對話框提示是否退出程序劫流,按確認(rèn)后退出程序踪危。
[if !supportLists]2.?[endif]編寫一個程序憋活,按下按鈕后間隔10秒自動彈出一個Toast顯示當(dāng)前時間堕虹,按返回時有彈出對話框提示是否退出程序卧晓,按確認(rèn)后退出程序。
public?class?MainActivity extends?Activity implements?OnClickListener{
private?AnalogClock clock;
private?Button btn,btn2;
private?DateFormat df;
public?void?onClick(View v) {
// TODO?Auto-generated method stub
switch?(v.getId()) {
case?R.id.button1:
new?AlertDialog.Builder(MainActivity.this)
.setTitle("退出提醒").setMessage("是否退出程序赴捞!")
.setNegativeButton("否", null)
.setPositiveButton("確定", new?DialogInterface.OnClickListener() { ?
????????????????public?void?onClick(DialogInterface dialog, int?whichButton) { ?
????????????????????finish(); ???????????} ????}).show(); break;
case?R.id.button2:
Date curDate = ?new?Date(System.currentTimeMillis());
df?= new?SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dfs = ?df.format(curDate);
new?AlertDialog.Builder(MainActivity.this)
.setTitle("時間").setMessage(dfs)
.setPositiveButton("返回", new?DialogInterface.OnClickListener() { ?
????????????????public?void?onClick(DialogInterface dialog, int?whichButton) { ?
???????????????? new?AlertDialog.Builder(MainActivity.this)
???????? .setTitle("退出提醒").setMessage("是否退出程序逼裆!")
???????? .setNegativeButton("否", null)
???????? .setPositiveButton("確定", new?DialogInterface.OnClickListener() { ?
????????????????????????public?void?onClick(DialogInterface dialog, int?whichButton) { ?
????????????????????????????finish(); ?
????????????????????????} ?????}).show(); ?} ??}).show(); break;
default:
break;}}
[if !supportLists]3.?[endif]編寫一個程序,實現(xiàn)一個登錄界面赦政,在登錄界面中包含一個復(fù)選按鈕“記住我”胜宇,選擇時保存用戶名和密碼,否則不保存恢着,打開登錄界面時桐愉,如果有保存的用戶名和密碼,則將保存的用戶名和密碼顯示到對應(yīng)控件中掰派。
public?void?onClick(View v) {
// TODO?Auto-generated method stub
boolean?chk = ck.isChecked();
if(chk){
namet.setText("用戶名:"+String.valueOf(name.getText().toString()));
pwdt.setText("密碼:"+String.valueOf(pwd.getText().toString()));
new?AlertDialog.Builder(MainActivity.this)
.setMessage("登陸記住密碼 ").setPositiveButton("確認(rèn) ", null).show();
}
else{
new?AlertDialog.Builder(MainActivity.this)
.setMessage("登陸未記住密碼").setPositiveButton("確認(rèn)", null).show(); }
[if !supportLists]4.?[endif]編寫一個程序从诲,實現(xiàn)一個日記功能,將寫好的日記保存到文件Diary中靡羡,點擊瀏覽的時候查看日記內(nèi)容系洛。
public?void?onClick(View v) {
// TODO?Auto-generated method stub
String neirong = et.getText().toString();
String dizi = "riji.text";
switch?(v.getId()) {
case?R.id.button1:
?FileOutputStream out = null;
try?{
out = context.openFileOutput(dizi, Context.MODE_PRIVATE);
out.write(neirong.getBytes("UTF-8"));
} catch?(Exception e) {
// TODO?Auto-generated catch block
e.printStackTrace();
}
finally{ ?
????????????????try?{ ?
????????????????????out.close(); ?
????????????????} catch?(Exception e) { ?
????????????????????e.printStackTrace(); ?
????????????????} ?
????????????}
break;
?????????case?R.id.button2:
?????????????FileInputStream in = null; ?
?????????????ByteArrayOutputStream bout = null; ?
?????????????byte[]buf = new?byte[1024]; ?
?????????????bout = new?ByteArrayOutputStream(); ?
?????????????int?length = 0; ?
?????????????try?{ ?
?????????????????in = context.openFileInput(dizi); //獲得輸入流 ?
?????????????????while((length=in.read(buf))!=-1){ ?
?????????????????????bout.write(buf,0,length); ?
?????????????????} ?
?????????????????byte[] content = bout.toByteArray(); ?
?????????????????tv.setText(new?String(content,"UTF-8")); //設(shè)置文本框為讀取的內(nèi)容 ?
?????????????} catch?(Exception e) { ?
?????????????????e.printStackTrace(); ?
?????????????} ?
?????????????tv.invalidate(); //刷新屏幕 ?
?????????????try{ ?
?????????????????in.close(); ?
?????????????????bout.close(); ?
?????????????} ?
?????????????catch(Exception e){} ?
break;
[if !supportLists]5.?[endif]編寫一個程序,實現(xiàn)圖片的瀏覽略步,向左滑動顯示下一張圖片描扯,向右滑動顯示上一張圖片。
package com.example.img;
?
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
?
public class MainActivity extends Activity implements OnTouchListener{
???int caozuo = 0;
???float x1 = 0;
???float x2 = 0;
???public ImageView image;
????@Override
????protected void onCreate(Bundle savedInstanceState) {
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????????image = (ImageView)findViewById(R.id.imageView1);
????}
?
?
????@Override
????public boolean onCreateOptionsMenu(Menu menu) {
????????// Inflate the menu; this adds items to the action bar if it is present.
????????getMenuInflater().inflate(R.menu.main, menu);
????????return true;
????}
?
?
?
?
?
?
?
@Override
public boolean onTouch(View v, MotionEvent event) {
????
if(event.getAction() == MotionEvent.ACTION_DOWN)
x1 = event.getX();
if(event.getAction() == MotionEvent.ACTION_UP){
x2 = event.getX();
if(x1-x2>=5){
caozuo =caozuo+1;
caozuo = caozuo%8;
if(caozuo==0)
{
caozuo ++;
}
image.setImageResource(R.drawable.a_1+caozuo);
}
if(x2-x1>=5){
caozuo =caozuo-1;
if(caozuo<=0){
caozuo = 7;
}
image.setImageResource(R.drawable.a_1+caozuo);
}
}
return false;
}
????
}//注意要添加照片進(jìn)入文件中
[if !supportLists]6.?[endif]編寫一個程序趟薄,通過Handler和Thread或Runnable實現(xiàn)以10秒時間顯示完進(jìn)度條進(jìn)度绽诚。
private?ProgressBar progress;
private?int?max?= 100,current?= 0,step?= 0;
????@Override
????protected?void?onCreate(Bundle savedInstanceState) {
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????????progress?= (ProgressBar)findViewById(R.id.progressBar3);
????????progress.setMax(max);
????????progress.setProgress(0);
????????step?= max/10;
????????new?Thread(new?Runnable() {
???????? int?i?=1;
@Override
public?void?run() {
// TODO?Auto-generated method stub
try?{
while?(max!=progress.getProgress()) {
???Log.i("次數(shù)", i?+ ""); ?
???????????????????????i++; ?
???????????????????????progress.setProgress(current?+ step); ?
???????????????????????current?= progress.getProgress(); ?
???????????????????????Thread.sleep(1000);
}
} catch?(Exception e) {
// TODO: handle exception
}}
}).start();
????}
[if !supportLists]7.?[endif]編寫一個程序,通過AsyncTask實現(xiàn)以20秒時間顯示完進(jìn)度條進(jìn)度杭煎。
package com.example.jindutiao20s;
import android.os.AsyncTask;
import android.os.Bundle;
. import android.app.Activity;. import android.view.Menu;
import android.widget.ProgressBar;
import android.widget.TextView;.
. public class MainActivity extends Activity {.
private ProgressBar myBar;
private TextView textView;
????@Override
. ????protected void onCreate(Bundle savedInstanceState) {
. ????????super.onCreate(savedInstanceState); ?????????setContentView(R.layout.activity_main);
????????myBar = (ProgressBar)findViewById(R.id.progressBar1);
???????????textView = (TextView)findViewById(R.id.textView1);
???????????MyAsync my = new MyAsync();
????????my.execute();
????}
????class MyAsync extends AsyncTask{
???? int index = 0;
???? @Override
. ???? protected void onPreExecute() {
. ???? // TODO Auto-generated method stub
???? super.onPreExecute();
. ???? textView.setText("0%");
??? }
protected Integer doInBackground(Void... params) {. ????????????
try {
for(int i =0;i<=20;i++){
Thread.sleep(1000);
index ++;
publishProgress(index);
}
. } catch (Exception e) {
// TODO: handle exception
}
return null;
}
. @Override
. protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
. super.onProgressUpdate(values);
. textView.setText(values[0]*5+"%");
. myBar.setProgress(index*5);
. }
. ???? @Override
. ???? protected void onPostExecute(Integer result) {
. ???? // TODO Auto-generated method stub
. ???? super.onPostExecute(result);
. ???? }
. ????
. ????
. ????}
.
.
. ????@Override. ????public boolean onCreateOptionsMenu(Menu menu) {
????????// Inflate the menu; this adds items to the action bar if it is present.
????????getMenuInflater().inflate(R.menu.main, menu);
????????return true;. ????}
}
[if !supportLists]8.?[endif]編寫一個程序恩够,手動綁定列表控件ListView,每條記錄中包含圖片岔帽,名稱和描述玫鸟。
兩個布局布局1 ?listview布局二 對一個item進(jìn)行布局 圖片文字
三類主類調(diào)用該
package com.example.bangding;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;
public class MainActivity extends Activity {
private List list;
private ListView listview;
????private ?MyAdapter adapter;
????@Override
????protected void onCreate(Bundle savedInstanceState) {
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????????list = new ArrayList();
????????listview = (ListView)findViewById(R.id.listView1);
????????init();
????}
????private void init()
????{
????????for (int i =1;i<=10;i++)
????????{
???????? Items items = new Items();
????????????items.setImg_id(R.drawable.a_1+i);
items.setName("名字:" + i);
items.setExplain("解釋: "+ i);
????????????list.add(items);
????????????adapter = new MyAdapter(MainActivity.this,list);
????????????listview.setAdapter(adapter);
????????}
????}
????@Override
????public boolean onCreateOptionsMenu(Menu menu) {
????????// Inflate the menu; this adds items to the action bar if it is present.
????????getMenuInflater().inflate(R.menu.main, menu);
????????return true;
????}
}
Items類 聲明 ??
package?com.example.bangding;
public?class?Items {
???public?int?getImg_id() {
return?img_id;
}
public?void?setImg_id(int?img_id) {
this.img_id?= img_id;
}
public?String getExplain() {
return?explain;
}
public?void?setExplain(String explain) {
this.explain?= explain;
}
public?String getName() {
return?name;
}
public?void?setName(String name) {
this.name?= name;
}
???private?int?img_id;
???private?String name;
???private??String explain;
}
Myadapter進(jìn)行布局 ???線程
package?com.example.bangding;
import?android.content.Context;
import?android.view.LayoutInflater;
import?android.view.View;
import?android.view.ViewGroup;
import?android.widget.BaseAdapter;
import?android.widget.ImageView;
import?android.widget.TextView;
import?java.util.List;
public?class?MyAdapter extends?BaseAdapter {
????private?List list?;
????private?LayoutInflater inflater;
????public??MyAdapter(Context context,List list)
????{
????????this.list?= list;
????????inflater?= LayoutInflater.from(context);
????}
????@Override
????public?int?getCount() {
????????return?list.size();
????}
????@Override
????public?Object getItem(int?position) {
????????return?list.get(position);
????}
????@Override
????public?long?getItemId(int?position) {
????????return?position;
????}
????@Override
????public?View getView(int?position, View convertView, ViewGroup parent) {
????????View view;
????????ViewHolder holder;
????????if(convertView==null)
????????{
????????????view = inflater.inflate(R.layout.myactivity,null);
????????????holder = new?ViewHolder(view);
????????????view.setTag(holder);
????????}
????????else
????????{
????????????view = convertView;
????????????holder = (ViewHolder) view.getTag();
????????}
????????Items items = ?list.get(position);
????????holder.img.setImageResource(items.getImg_id());
????????holder.name.setText(items.getName());
????????holder.explain.setText(items.getExplain());
????????return?view;
????}
????class??ViewHolder
????{
????????private?ImageView img;
????????private?TextView name;
????????private??TextView explain;
????????public?ViewHolder(View view)
????????{
????????????img?= (ImageView)view.findViewById(R.id.imageView1);
????????????name?= (TextView)view.findViewById(R.id.textView1);
????????????explain?= (TextView)view.findViewById(R.id.textView2);
????????}
????}
}
[if !supportLists]9.?[endif]編寫一個程序,通過使用Service來實現(xiàn)簡單的播放器犀勒。
public class Myservice extends Service {
???private MediaPlayer player;
????private boolean ispaused = false;
????private ?int position =0;
????@Override
public void onCreate() {//最一開始會執(zhí)性這個方法 如果服務(wù)在啟動之中就不會啟動這個方法直接調(diào)用onStartCommand 方法
????????super.onCreate();
Log.i("TAG","開始播放");
????????player = MediaPlayer.create(this,R.raw.qiyueshang);}
public void onDestroy() {//停止服務(wù)
????????super.onDestroy();
????????if(player != null)
????????????player.stop(); ???}
public ?void Play(int pos)//播放
????{
????????if(player!=null) ??????{
????????????player.start();
Log.i("TAG","開始播放");
????????????player.seekTo(pos); ?????} ??}
public void Pause()//暫停
????{
????????if(player != null && player.isPlaying()) ??{
position = player.getCurrentPosition();//獲取播放位置
player.pause();//暫停音樂
????????????ispaused = true; ???}
????????else if(ispaused) ??{
????????????Play(position); ??}??}
public ?void Rest()//重放
{??if(player!=null)
????????????Play(0); ?}
????@Override
public int onStartCommand(Intent intent, int flags, int startId) {//開始服務(wù)
????????int flag = intent.getIntExtra("MSG",0);
????????if(flag==1)
????????{Play(0);}
????????else if(flag==2)
????????{Pause();}
????????else if(flag==3)
????????{Rest();}
????????Log.i("MSG",flag+"");
????????return super.onStartCommand(intent, flags, startId);
}
????public IBinder onBind(Intent intent) {
????????return null;
????}
}
[if !supportLists]10.?[endif]編寫一個程序屎飘,實現(xiàn)在狀態(tài)欄提示有新短消息,展開狀態(tài)欄點擊消息時彈出詳細(xì)信息界面贾费。
public class NotifaicationActivity extends AppCompatActivity ?implements View.OnClickListener{
????private ?Notification notification;
????private Button send_notifiaction,stop_notification;
????private ??NotificationManager manager;
????@Override
????protected void onCreate(Bundle savedInstanceState) {
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????????send_notifiaction = (Button)findViewById(R.id.send_notification);
????????stop_notification = (Button)findViewById(R.id.stop_notification);
????????send_notifiaction.setOnClickListener(this);
????????stop_notification.setOnClickListener(this);
//第一步首先獲取Notification管理對象
????????manager ??= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//第二步獲取Notification.Builder對象
????????Notification.Builder builder = new Notification.Builder(this);
//設(shè)置小圖標(biāo)
????????builder.setSmallIcon(R.mipmap.ic_launcher);
//提示音 振動 閃爍都是默認(rèn)
????????builder.setDefaults(Notification.DEFAULT_ALL);
builder.setTicker("短信");
builder.setContentTitle("有短信");
builder.setContentText("短信來了");
????????Intent intent = new Intent(this,NotifaicationActivity.class);
//生成PendingIntene對象
????????PendingIntent pendingIntent = PendingIntent.getActivity(this,1,intent,0);
//設(shè)置跳轉(zhuǎn)頁面
????????builder.setContentIntent(pendingIntent);
//獲得Notifaication對象
????????notification = builder.build();
????}
????@Override
????public void onClick(View v) {
????????switch (v.getId())
????????{
????????????case R.id.send_notification:
manager.notify(1,notification);//第一個時標(biāo)識號 第二個是對象
????????????????break;
????????????case R.id.stop_notification:
????????????????manager.cancel(1);
????????????????break;
????????}
????}
}
[if !supportLists]11.?[endif]編寫一個程序钦购,實現(xiàn)ListView顯示好友列表信息,要求使用BaseAdapter褂萧。
public class MyAdapter extends BaseAdapter {
????private List list ;
????private LayoutInflater inflater;
????public ?MyAdapter(Context context,List list)
????{
????????this.list = list;
????????inflater = LayoutInflater.from(context);
????}
????@Override
????public int getCount() {
????????return list.size();
????}
????@Override
????public Object getItem(int position) {
????????return list.get(position);
????}
????@Override
????public long getItemId(int position) {
????????return position;
????}
????@Override
????public View getView(int position, View convertView, ViewGroup parent) {
????????View view;
????????ViewHolder holder;
????????if(convertView==null)
????????{
????????????view = inflater.inflate(R.layout.item,null);
????????????holder = new ViewHolder(view);
????????????view.setTag(holder);
????????}
????????else
????????{
????????????view = convertView;
????????????holder = (ViewHolder) view.getTag();
????????}
????????Items items = ?list.get(position);
????????holder.img.setImageResource(items.getImg_id());
????????holder.name.setText(items.getName());
????????holder.explain.setText(items.getExplain());
????????return view;
????}
????class ?ViewHolder
????{
????????private ImageView img;
????????private TextView name;
????????private ?TextView explain;
????????public ViewHolder(View view)
????????{
????????????img = (ImageView)view.findViewById(R.id.imageView);
????????????name = (TextView)view.findViewById(R.id.name);
????????????explain = (TextView)view.findViewById(R.id.explain);
????????}
????}
}
[if !supportLists]12.?[endif]編寫一個程序押桃,實現(xiàn)點擊一個按鈕,打開一個新的Activity并傳遞“hello”导犹,在新的Activity唱凯,接收傳遞過來的“hello”羡忘,將“hello”改成“hello world”,結(jié)束當(dāng)前Activity并將需要修改后的值返回并關(guān)閉當(dāng)前窗體磕昼。
public class IntentFirstActivity extends AppCompatActivity {
????private Button send;
????private EditText edit;
????@Override
????protected void onCreate(Bundle savedInstanceState) {
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_intent_first);
????????send = (Button)findViewById(R.id.send_message);
????????edit = (EditText)findViewById(R.id.input);
????????send.setOnClickListener(new View.OnClickListener() {
????????????@Override
????????????public void onClick(View v) {
????????????????Intent intent = new Intent(IntentFirstActivity.this,IntentSecondActivity.class);
????????????????intent.putExtra("MSG",edit.getText().toString());
????????????????startActivityForResult(intent,2);
????????????}
????????});
????}
????@Override
????protected void onActivityResult(int requestCode, int resultCode, Intent data) {
???????edit.setText(data.getStringExtra("MSG"));
Toast.makeText(this,"收到新的值了",Toast.LENGTH_SHORT).show();
????}
}
??protected void onCreate(Bundle savedInstanceState) {
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_intent_second);
????????send = (Button)findViewById(R.id.transition_msg);
????????Msg = (EditText)findViewById(R.id.return_msg);
????????receive_msg = (TextView)findViewById(R.id.receive);
receive_msg.setText("收到的信息為:" + getIntent().getStringExtra("MSG"));
????????send.setOnClickListener(new View.OnClickListener() {
????????????@Override
????????????public void onClick(View v) {
????????????????Intent intent = new Intent();
????????????????intent.putExtra("MSG",Msg.getText().toString());
//將修改的結(jié)果返回給上一個intent
????????????????setResult(1,intent);
????????????????finish();
????????????}
????????});
????}
}
三卷雕、
1.實現(xiàn)個人通訊錄管理,主界面中包含添加按鈕和ListView票从,能實現(xiàn)通訊錄的添加和管理漫雕;所有通訊錄信息通過ListView控件顯示,長按ListView中的一項峰鄙,出現(xiàn)以下功能選項:
呼叫浸间、編輯聯(lián)系人、刪除聯(lián)系人吟榴,分別實現(xiàn)這幾個功能魁蒜。
2.實現(xiàn)個人通訊錄管理,主界面中包含添加按鈕和ListView煤墙,能實現(xiàn)通訊錄的添加和管理梅惯;所有通訊錄信息通過ListView控件顯示,長按ListView中的一項仿野,出現(xiàn)以下功能選項:
復(fù)制铣减、瀏覽聯(lián)系人、刪除聯(lián)系人脚作,分別實現(xiàn)這幾個功能葫哗。
3.實現(xiàn)個人備忘錄管理,主界面中包含添加按鈕和ListView球涛,能實現(xiàn)對備忘錄的添加和管理劣针;所有備忘錄信息通過ListView控件顯示,長按ListView中的一項亿扁,出現(xiàn)以下功能選項:
復(fù)制捺典、編輯、刪除从祝,分別實現(xiàn)這幾個功能襟己。
4.實現(xiàn)個人備忘錄管理,主界面中包含添加按鈕和ListView牍陌,能實現(xiàn)對備忘錄的添加和管理擎浴;所有備忘錄信息通過ListView控件顯示,長按ListView中的一項毒涧,出現(xiàn)以下功能選項:
復(fù)制贮预、瀏覽、刪除,分別實現(xiàn)這幾個功能仿吞。
5.實現(xiàn)學(xué)生管理滑频,登錄界面,實現(xiàn)用戶的登錄茫藏,登錄成功后误趴,顯示添加學(xué)生信息界面,學(xué)生信息包括學(xué)號务傲、姓名、學(xué)院枣申、專業(yè)和性別售葡,輸入完成后點擊添加按鈕添加到數(shù)據(jù)庫中。要求:選擇學(xué)院時專業(yè)發(fā)生相應(yīng)的變化忠藤,性別采用單選按鈕挟伙。
6.實現(xiàn)收貨管理,包括以下功能:
1)用戶登錄功能模孩;
2)貨物管理功能尖阔,長按某條記錄進(jìn)行編輯和刪除,或點擊全部刪除榨咐,清空所有收到的貨物列表介却;
3)收貨功能,貨物信息:貨物名稱块茁、件數(shù)齿坷、運費、目的地数焊、收貨人永淌、電話等信息。
7.實現(xiàn)掛號預(yù)約系統(tǒng)佩耳,包括以下功能:
1)掛號預(yù)約遂蛀,包括姓名、性別干厚、年齡李滴、地址、所掛科室等萍诱;
2)掛號預(yù)約管理悬嗓,使用ListView實現(xiàn),可刪除或重新預(yù)約裕坊。
8.個人理財系統(tǒng)包竹,包括以下功能:
1)支出錄入:日期、金額、項目
2)收入錄入:日期周瞎、金額苗缩、項目
3)支出收入列表,查詢一個時間段的收入或支出情況并匯總声诸。
9.日記系統(tǒng)酱讶,包括以下功能:
1)寫日記,包括日期彼乌、天氣泻肯、標(biāo)題、內(nèi)容等慰照;
2)日記列表灶挟,根據(jù)條件查詢?nèi)沼洠軐崿F(xiàn)對日記信息的顯示毒租,點擊一條日記信息稚铣,顯示日記詳細(xì)內(nèi)容,長按每條記錄墅垮,能彈出對日記信息的修改惕医、刪除。
10.作業(yè)系統(tǒng)算色,包括以下功能:
1)記錄作業(yè)抬伺,包括日期、作業(yè)類型(語文或數(shù)學(xué)等)剃允、作業(yè)內(nèi)容
2)顯示作業(yè)列表沛简,點擊某項作業(yè),轉(zhuǎn)到作業(yè)詳細(xì)信息界面斥废,在該界面椒楣,可設(shè)置作業(yè)已完成、未做牡肉、不會等標(biāo)識捧灰。
11.考勤系統(tǒng),包括以下功能:
1)記錄考勤统锤,包括日期毛俏,年級,班級饲窿,總?cè)藬?shù)煌寇,曠課人數(shù),請假人數(shù)逾雄;
2)記錄曠課人具體信息阀溶,包括日期腻脏,年級,班級银锻,曠課人姓名
3)顯示考勤列表