




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計II -J2ME課程設(shè)計論文題 目:手機個人通訊錄學(xué) 院:計算機與信息工程學(xué)院專 業(yè):計算機科學(xué)與技術(shù)班 級:計算機06-6班姓 名:羅 溪學(xué) 號:07起止時間:2010.07.06-2010.07.16 成績: 課程設(shè)計成績評定表質(zhì)量評價指標(在相應(yīng)欄目打)評 價 項 目評 價 質(zhì) 量優(yōu)秀良好一般及格不及格工作量和態(tài)度實驗、計算可靠性文字和圖表質(zhì)量程序完成情況總體評價評定成績評定人員簽名IV課程設(shè)計任務(wù)書一、設(shè)計題目:手機個人通訊錄二、設(shè)計內(nèi)容:個人通信錄是在移動電話中常用的程序,它可以用來理解在持久存儲中進行添加、查找和刪除的過程.它可以清楚地演示每個界面切換的過程,以及響應(yīng)用戶輸入命令的方法。介紹自己程序的總體功能三、設(shè)計要求:1開始顯示初始化歡迎界面,主界面顯示用戶可操作的基本功能,如添加聯(lián)系人,查看聯(lián)系人,刪除聯(lián)系人,查找聯(lián)系人等。2添加聯(lián)系人存儲時,如果沒有添加姓名,就直接按了SELECT,那么界面將會顯示:姓名不能為空。3聯(lián)系人姓名、移動電話、固定電話和電子郵件信息錄入完之后,單擊保存按紐,這就完成了聯(lián)系人的添加,界面并顯示:添加聯(lián)系人完成。概要介紹一下程序的具體功能四、工作計劃:時間完成內(nèi)容提交文檔備注第1天查找資料,確定題目,選擇方案課程設(shè)計任務(wù)書設(shè)計準備階段第2天第3天題目分析,設(shè)計算法算法描述設(shè)計階段第4天功能模塊的劃分和設(shè)計結(jié)構(gòu)流程圖等第5天第6天實現(xiàn)具體數(shù)據(jù)結(jié)構(gòu)和模塊無第7天程序設(shè)計與調(diào)試無運行并驗證程序功能第8天第9天檢查程序第10天整理材料,撰寫論文課程設(shè)計論文指導(dǎo)教師: 王艷濤 陳偉 高輝 教研室主任: 2008 年 12月31 日II 本科課程設(shè)計論文摘 要本文利用J2ME語言編程的思想來完成系統(tǒng)的設(shè)計,進行突出數(shù)據(jù)庫的特征,然后編寫出程序設(shè)計代碼進行界面設(shè)計,實現(xiàn)友好的界面交互,具有清晰的程序流程圖,最后編程實現(xiàn)了全過程。關(guān)鍵詞:J2ME 面向?qū)ο?通訊錄7目 錄課程設(shè)計成績評定表II課程設(shè)計任務(wù)書III摘 要II目 錄III1 設(shè)計內(nèi)容12 設(shè)計過程12.1設(shè)計方案的論證12.2概要設(shè)計12.3界面設(shè)計圖22.4代碼實現(xiàn)63 設(shè)計總結(jié)6參考文獻7附錄:程序源代碼71 設(shè)計內(nèi)容個人通信錄是在移動電話中常用的程序,它可以用來理解在持久存儲中進行添加、查找和刪除的過程.它可以清楚地演示每個界面切換的過程,以及響應(yīng)用戶輸入命令的方法。介紹自己程序或系統(tǒng)的總體功能。2 設(shè)計過程2.1設(shè)計方案的論證Eclipse是當今最流行的Java開發(fā)IDE之一,它是一個開發(fā)源代碼的、基于Java的可擴展開發(fā)平臺,因為它具有良好的可擴展性。 它是一個開發(fā)源代碼的、基于Java的可擴展開發(fā)平臺,因為它具有良好的可擴展性.J2ME開發(fā)可以繼承在Eclipse中完成,利用Eclipse界面友好的優(yōu)勢,提高J2ME應(yīng)用程序的開發(fā)效率。Eclipse框架的這種靈活性來源于其擴展點。它們是在XML中定義的已知接口,并充當插件的耦合點。擴展點的范圍包括從用在常規(guī)表述過濾器中的簡單字符串,到一個Java類的描述。任何Eclipse插件定義的擴展點都能夠被其它插件使用,反之,任何Eclipse插件也可以遵從其它插件定義的擴展點。除了解由擴展點定義的接口外,插件不知道它們通過擴展點提供的服務(wù)將如何被使用。Eclipse的最大特點是它能接受由Java開發(fā)者自己編寫的開放源代碼插件,這類似于微軟公司的VisualStudio和Sun微系統(tǒng)公司的NetBeans平臺。Eclipse為工具開發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。結(jié)合軟件工程課程所學(xué)知識,用結(jié)構(gòu)化方法或面向?qū)ο蠓椒?,論述自己設(shè)計題目的需求分析結(jié)果。文字+一些必須的圖、表。2.2概要設(shè)計功能模塊的劃分與總體設(shè)計,可以借助類圖和模塊圖等來表示,如果使用數(shù)據(jù)庫,還要有數(shù)據(jù)庫的概要設(shè)計介紹,可使用E-R圖等來表示。本程序共有8個java源文件:Address.java:該文件負責(zé)寫入數(shù)據(jù)記錄集。.AddressbookMIDlet.java:該文件是MIDlet父類。Data.java:該文件負責(zé)載入通訊錄的全部內(nèi)容。FlashUI.java:該文件負責(zé)創(chuàng)建歡迎界面。ListUI.java:該文件負責(zé)創(chuàng)建通訊錄條目界面。MainUI.java:該文件負責(zé)創(chuàng)建主界面。NewUI.java:該文件負責(zé)創(chuàng)建添加聯(lián)系人界面。WaitUI.java:該文件負責(zé)創(chuàng)建提示界面。2.3界面設(shè)計圖介紹具體的各個界面的圖,并對相應(yīng)的圖做詳細的描述。經(jīng)過進一步的分析設(shè)計,得到系統(tǒng)的框圖如圖1所示。(1)初始化歡迎界面(如圖2所示)歡迎界面停止三秒后進入主程序界面。初始歡迎界面即閃屏顯示了程序初始的第一個屏幕,一般用于顯示版權(quán)信息.程序中使用FlashUI實現(xiàn)。(2)主界面(如圖3所示)進入主程序界面后選擇主菜單里的選項,它是由MainUI類實現(xiàn),它包含了用戶可操作的基本功能,如添加聯(lián)系人,查看聯(lián)系人,刪除聯(lián)系人,查找聯(lián)系人。(3)添加聯(lián)系人初始狀態(tài)(如圖4所示)添加聯(lián)系人界面由NewUI類實現(xiàn),它包含了聯(lián)系人信息的所有內(nèi)容,包括聯(lián)系人姓名、移動電話、固定電話和電子郵件信息。要求用戶從鍵盤輸入。(4)添加聯(lián)系人輸入狀態(tài)(如圖5所示)添加聯(lián)系人的信息。進行輸入。包括聯(lián)系人信息的所有內(nèi)容,包括聯(lián)系人姓名、移動電話、固定電話和電子郵件信息。(5)添加聯(lián)系人存儲時,姓名不能為空(如圖6所示)添加聯(lián)系人存儲時,如果沒有添加姓名,就直接按了SELECT,那么界面將會顯示:姓名不能為空。(6)添加聯(lián)系人完成時提示界面(如圖7所示) 聯(lián)系人姓名、移動電話、固定電話和電子郵件信息錄入完之后,單擊保存按紐,這就完成了聯(lián)系人的添加,界面并顯示:添加聯(lián)系人完成。(7)查看聯(lián)系人界面(如圖8所示)因為此界面是一個List界面,所以在完成了聯(lián)系人的添加之后,彈出一個主菜單,上面分別顯示了:添加聯(lián)系人,查看聯(lián)系人,刪除聯(lián)系人,查找聯(lián)系人的信息。在List界面中,選中查看聯(lián)系人信息,按SELECT鍵進入。(8)查看聯(lián)系人基本信息界面(如圖9所示) 選中了查看聯(lián)系人選項之后,彈出了所有的聯(lián)系人界面,例如:張三,李四,趙錢。選中聯(lián)系人張三。(9)查看聯(lián)系人界面(菜單)(如圖10所示)選中聯(lián)系人張三之后,按手機的菜單鍵,彈出了兩項菜單,分別是:詳細信息和退出選項,選中詳細信息選項,按SELECT按紐進入。圖 1系統(tǒng)結(jié)構(gòu)框圖圖 2初始化歡迎界面圖 圖 3主界面圖圖 4添加聯(lián)系人初始狀態(tài) 圖5添加聯(lián)系人輸入狀態(tài)圖 6添加聯(lián)系人存儲時提示界面 圖 7 添加聯(lián)系人完成時提示界面圖8查看聯(lián)系人界面 圖 9查看聯(lián)系人基本信息界面(10)查看聯(lián)系人詳細信息界面(如圖11所示) 這樣就進入了聯(lián)系人張三的詳細信息菜單,界面就顯示聯(lián)系人張三的詳細信息,包括聯(lián)系人張三的姓名、移動電話、固定電話和電子郵件信息。圖 10查看聯(lián)系人界面 圖11查看聯(lián)系人詳細信息界面2.4代碼實現(xiàn)介紹程序的編碼實現(xiàn),如果程序代碼量不是很大,直接把代碼粘到這里,如果代碼量非常大(可以把代碼放到最后面),在這里可以粘一些主要核心功能代碼。還可以介紹一下,如何設(shè)計和測試的。經(jīng)過前面的工作,最后在集成編輯環(huán)境中,編寫的程序代碼見附錄程序所示。3 設(shè)計總結(jié)結(jié)合程序最終運行效果,總結(jié)一下,程序是否達到了預(yù)期目的,有哪些不足地方,還可以進一步做哪些方面的改進。結(jié)合自己兩周課程設(shè)計的過程,總結(jié)一下,自己有哪些收獲,哪些不足,今年怎樣去做。在本次編程過程中,使我收益非淺、收益良多,在同學(xué)的幫助下才能夠順利的編程工作才得以如期完成,我以后會好好學(xué)習(xí)的,讓今天所學(xué)的深深印在腦海中,會更加的使自己更完善的理解知識,謝謝老師!參考文獻附自己課程設(shè)計參考的圖書、文章信息。1 崔忠折.金屬學(xué)及熱處理.機械工業(yè)出版社,1989:60-982 張安風(fēng),陸文華.高鑄鐵的氧化行為.金屬學(xué)報.1993,29(6):263-2683 王穎.敦促新理論的研究.哈爾濱工業(yè)大學(xué)碩士論文.1992:8-134 J.R.McDnonell, D.Wagen.Evolving Recurrent Percepptions Time Modeling. IEEETrans.on Neural Netwoks.1994,5(1):24-38附錄:程序源代碼/Address.javaimport java.io.*;public class Address private String userName=;private String mobilePhone=;private String email=;private String phone=;public Address(String userName,String mobilePhone,String email,String phone)this.userName=userName;this.mobilePhone=mobilePhone;this.email=email;this.phone=phone;public String getEmail()return email;public void setEmail(String email)this.email=email;public String getMobilePhone()return mobilePhone;public void setMobilePhone(String mobilePhone)this.mobilePhone=mobilePhone;public String getPhone()return phone;public void setPhone(String phone)this.phone=phone;public String getUserName()return userName;public void setUserName(String userName)this.userName=userName;public static boolean matches(byte data1,String userName) throws IOExceptionByteArrayInputStream bais=new ByteArrayInputStream(data1);DataInputStream dis=new DataInputStream(bais);tryreturn(dis.readUTF().equals(userName);catch(IOException e)e.printStackTrace();return false;public byte serialize() ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); try dos.writeUTF(userName); dos.writeUTF(mobilePhone); dos.writeUTF(phone); dos.writeUTF(email); /wsvPersonName.writeObject(dos); dos.flush(); baos.close(); dos.close(); catch(Exception exc) exc.printStackTrace(); return baos.toByteArray(); /AddressbookMIDlet.javaimport javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class AddressBookMIDlet extends MIDlet implements CommandListener/public class UIArrangement Display dis;Alert alert;AddressBookMIDlet addressBookMIDlet;/Command exitCommand;/Command okCommand;WaitUI waitUI;MainUI mainUI;FlashUI flashUI;NewUI newUI;ListUI listUI;/FindUI findUI;/ConfirmUI confirmUI;Data data;/Command exitCommand;/Command mainCommand; public static final byte EVENT_NEW_ADDRESS=1;public static final byte EVENT_SAVE_ADDRESS=2;public static final byte EVTNE_DELETE_ADDRESS=3;public static final byte EVENT_FIND_ADDRESS=4;public static final byte EVENT_LIST_ADDRESS=5;public static final byte EVENT_NEW_BACK_MAINUI=6;public static final byte EVENT_LIST_BACK_MAINUI=7;public static final byte EVENT_FIND_BACK_MAINUI=8;public static final byte EVENT_CLEAR_ADDRESS_YES=9;public static final byte EVENT_CLEAR_ADDRESS_NO=10;public static final byte EVENT_DELETE_ADDRESS_YES=11;public static final byte EVENT_DELETE_ADDRESS_NO=12;public static final byte EVENT_DELETE_ADDRESS=13;public AddressBookMIDlet()String listtype=添加聯(lián)系人,查看聯(lián)系人,刪除聯(lián)系人,查找聯(lián)系人;/this.addressBookMIDlet=abm;dis=Display.getDisplay(this);/exitCommand=new Command(退出,Command.SCREEN,1);/okCommand=new Command(確定,Command.SCREEN,1);waitUI=new WaitUI();mainUI=new MainUI(listtype,this);flashUI=new FlashUI();newUI=new NewUI(this);listUI=new ListUI(this);data=new Data();/findUI=new FindUI(this);/contentUI=new ContentUI(this);/confirmUI=new ConfirmUI(dis,null,);/exitCommand=new Command(退出,Command.SCREEN,1);/mainUI.addCommand(exitCommand);/mainUI.addCommand(okCommand);/mainUI.setCommandListener(this);public void handleEvent(int event,Object obj)switch(event)case EVENT_NEW_ADDRESS:newUI.clear();dis.setCurrent(newUI);break;/*case EventType.EVENT_CLEAR_ADDRESS_YES:ata.clearAllrecord();dis.setCurrent(mainUI);catch(ApplicationException e)break;*/case EVENT_CLEAR_ADDRESS_NO:break; case EVENT_LIST_ADDRESS:waitUI.setMessage(正在獲取聯(lián)系人列表);dis.setCurrent(waitUI);/Index index=data.listRecord();/listUI.init(); String userN=aa,bb,cc; String u=;userN=data.getuserData();for(int i=0;iuserN.length;i+)u=userNi;listUI.append(u,null);/*/this.append(張三,null);dis.setCurrent(listUI);break;/*case EventType.EVENT_FIND_ADDRESS:findUI.init();dis.setCurrent(findUI);break;*/case EVENT_NEW_BACK_MAINUI:case EVENT_LIST_BACK_MAINUI:case EVENT_FIND_BACK_MAINUI:dis.setCurrent(mainUI);break;case EVENT_SAVE_ADDRESS:tryAddress address=(Address)obj;/*if(data.isRecordExist(address.getUserName()/(該聯(lián)系人已經(jīng)存在,mainUI,AlertType.WARNING);alert=new Alert(警告,聯(lián)系人已經(jīng)存在,null,AlertType.WARNING);addressBookMIDlet.dis.setCurrent(alert,addressBookMIDlet.dis.getCurrent();else*/data.addRecord(address);/showAlert(聯(lián)系人添加完成,mainUI,AlertType.CONFIRMATION);alert=new Alert(報告,聯(lián)系人添加完成,null,AlertType.WARNING);addressBookMIDlet.dis.setCurrent(alert,addressBookMIDlet.dis.getCurrent();catch(Exception e)break; /*case EventType.EVENT_DELETE_ADDRESS_NO:String userName=(String)obj;setMessage(確定要刪除+userName+么?);break;case EventType.EVENT_DELETE_ADDRESS_YES:tryString userName=(String)obj;data.deleteRecord(userName);catch(ApplicationException e)break;default:break;*/ public void commandAction(Command c,Displayable d) /if(c=exitCommand) / notifyDestroyed(); / / if(c=okCommand) / protected void destroyApp(boolean arg0) throws MIDletStateChangeException / TODO 自動生成方法存根protected void pauseApp() / TODO 自動生成方法存根protected void startApp() throws MIDletStateChangeException / TODO 自動生成方法存根dis.setCurrent(flashUI);tryThread.sleep(3000);catch(InterruptedException e)dis.setCurrent(mainUI);/Data.javaimport java.io.*;import javax.microedition.lcdui.*;import javax.microedition.rms.*;public class Data static RecordStore addressRS=null;Address address;Alert alert;/RecordStore addressIndexRS=null;private static class AddressFilter implements RecordFilterString userName;public AddressFilter(String userName)this.userName=userName;public boolean matches(byte data)tryreturn Address.matches(data, userName);catch(IOException e)e.printStackTrace();return false;/*public static class IndexFilter implements RecordFilterString key;int type;public IndexFilter(String key)this.key=key;public IndexFilter(String key,int type)this.key=key;this.type=type;/*public boolean matches(byte data)try/return Index.matches(data,type);catch(IOException e)e.printStackTrace();return false;*/public Data()tryaddressRS=RecordStore.openRecordStore(myAddressBook, true);/addressIndexRS=RecordStore.openRecordStore(index, true);catch(RecordStoreException e)public void addRecord(Address address) throws Exception try byte data1=address.serialize(); int id=addressRS.addRecord(data1,0,data1.length); /Index index=new Index(address.getUserName(),id); /addIndex(index); catch(Exception Ee) /String userName;static byte byteComplexData=new byte1;public byte getRecordData()tryByteArrayInputStream complexStream=new ByteArrayInputStream(byteComplexData);DataInputStream complexDataStream=new DataInputStream(complexStream);for(int i=1;ibyteComplexData.length)byteComplexData=new byteaddressRS.getRecordSize(i);addressRS.getRecord(i,byteComplexData,0);/userName+=userName+n+complexDataStream.readUTF();complexStream.reset();complexStream.close();complexDataStream.close();/alert=new Alert(正在讀入記錄,userName,null,AlertType.WARNING);catch(Exception e)return byteComplexData;public static String userName=new String88;public static int j=0;static String u;public static void list(String sn)userNamej+=sn;/return userName;static byte byteComplexData1=new byte1;public static String getuserData()tryByteArrayInputStream complexStream=new ByteArrayInputStream(byteComplexData1);DataInputStream complexDataStream=new DataInputStream(complexStream);for(int i=1;ibyteComplexData.length)byteComplexData=new byteaddressRS.getRecordSize(i);addressRS.getRecord(i,byteComplexData,0);u=complexDataStream.readUTF();list(u);/complexStream.reset();/alert=new Alert(讀入記錄,u,null,AlertType.WARNING);complexStream.close();complexDataStream.close();/alert=new Alert(正在讀入記錄,userName,null,AlertType.WARNING);catch(Exception e)return userName;/*public void addIndex(Index index)trybyte index_data=index.serialize();if(rs_index.getNumRecords()0)RecordEnumeration records=addressIndexRS.enumerateRecords(new IndexFilter(index.getKey(),null,false);addressIndexRS.addRecord(index_data,0,index_data.length);catch(IOException e)public Index getIndex(String key)tryif(rs_index.getNumRecords()0)RecordEnumeration records=rs_index.enumerateRecords(new AddressFilter(key),null,false);index=Index.deserialize(rs_index.getRecord(records.nextRecordId();return index;catch(RecordStoreException e)public void deleteIndex(String key)tryRecordEnumeration records=rs_index.enumerateRecords(new IndexFilter(key),null,false);while(records.hasNextElement()rs_index.deleteRecord(records.nextRecordId();return;catch(RecordStroeException e)public boolean isRecordExist(String userName)tryif(rs_index.getNumRecords()0)RecordEnumeration records=rs_index.enumerateRecords(new IndexFilter(userName),null,false);if(records.numRecords()0)return true;else return false;catch(RecordStoreException e)e.printStackTrace();return true;*/ /* public void deleteRecord(String userName) try Index index=getIndex(userName); addressRS.deleteRecord(recordID); deleteIndex(userName); catch(RecordStoreException e)*/public void calearAllRecord()tryaddressRS.closeRecordStore();/addressRS_index.closeRecordStore();RecordStore.deleteRecordStore(myAddressBook);/RecordStore.deleteRecordStore(index);catch(RecordStoreException e)/*public Address getAddress(String userName)tryIndex index=getIndex(userName);Address address=null;if(index!=null)address=Address.deserialize(addressRS.getRecord(index.getRecordID();return;catch(RecordStoreException e)*/FlashUI.javaimport javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;import java.io.*;import javax.microedition.lcdui.*;public class FlashUI extends Canvas private int width;private int height;private Image image;public FlashUI()width=this.getWidth();height=this.getHeight();image=createImage(/res/Flash.png);public Image createImage(String name)Image image=null;tryimage=Image.createImage(name);catch(IOException e)return image;protected void paint(Graphics g) / TODO 自動生成方法存根if(image!=null)g.drawImage(image,(width-image.getWidth()/2,(height-image.getHeight()/2,Graphics.TOP|Graphics.LEFT);/ListUI.javaimport javax.microedition.lcdui.*;public class ListUI extends List implements CommandListener AddressBookMIDlet addressBookMIDlet;/Data data=new Data();Alert alert;public static final Command backCommand=new Command(返回,Command.BACK,2);public static final Command infoCommand=new Command(詳情,Command.ITEM,1);public static final Command deleCommand=new Command(刪除,Command.OK,3);public ListUI(AddressBookMIDlet addressBookMIDlet)super(查看聯(lián)系人,List.IMPLICIT);this.addressBookMIDlet=addressBookMIDlet;this.addCommand(backCommand);this.addCommand(deleCommand);this.addCommand(infoCommand);this.setCommandListener(this);/data=new Data();/*public void init()trydeleteAll();for(int i=0;i=0,i-)delete(i);*/byte getRecordData11=data.getRecordData();/*String userName=;int n=getRecordData11.length;for(int i=0;in;i+)userName+=ream.readUTF();*/public void commandAction(Command c, Displayable d1) try/int n=data.addressRS.getNumRecords();int n=2;/ TODO 自動生成方法存根if(c=backCommand)addressBookMIDlet.handleEvent(addressBookMIDlet.EVENT_LIST_BACK_MAINUI,null);else if(c=deleCommand)if(n=0)alert=new Alert(報告,無效操作,null,AlertType.WARNING);addressBookMIDlet.dis.setCurrent(alert);String record=getString(getSelectedIndex();int ind
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 272-2024 高磁導(dǎo)率低矯頑力FeNiMnSi 軟磁合金
- 二零二五年度養(yǎng)老公寓入住與心理咨詢服務(wù)合同
- 二零二五年度房屋買賣及家居升級借款協(xié)議
- 2025年度生鮮配送與電商渠道合作合同范本
- 二零二五年度互聯(lián)網(wǎng)公司業(yè)績對賭協(xié)議約定倍收益合同
- 2025年度退房合同租賃期滿通知協(xié)議
- 二零二五年度人工智能產(chǎn)業(yè)股東入股合同
- 2025年度新能源技術(shù)研發(fā)中心委托管理合同協(xié)議書
- 二零二五年度健身俱樂部合伙開店經(jīng)營協(xié)議
- 二零二五年度手機行業(yè)經(jīng)銷商返利管理細則
- 《汽車專業(yè)英語》2024年課程標準(含課程思政設(shè)計)
- 部編四年級道德與法治下冊全冊教案(含反思)
- JBT 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規(guī)程
- AutoCAD 2020中文版從入門到精通(標準版)
- 煙草栽培(二級)鑒定理論考試復(fù)習(xí)題庫-上(單選題匯總)
- DB32T 4353-2022 房屋建筑和市政基礎(chǔ)設(shè)施工程檔案資料管理規(guī)程
- 重量分析法實驗
- [合同協(xié)議]車輛掛靠協(xié)議書
- 2022年怎樣使用電器正常工作導(dǎo)學(xué)案
- 【工法】衛(wèi)生間聚乙烯丙綸防水和JS防水施工工藝
- 物品出入庫明細表格
評論
0/150
提交評論