版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Android無線點餐系統(tǒng)院系:計算機與信息工程學院班級:10級軟件技術一班姓名:學號:目錄TOC\o"1-2"\h\u32207一、無線點餐系統(tǒng)需求分析 3189831.系統(tǒng)的背景分析和構建必要性 3231412.該系統(tǒng)在性能功能上應達到如下需求: 325035二、更新模塊服務器端實現(xiàn) 370161.UpdateDao接口 3221642.UpdateDaoImpl類 499123.名稱“UpdateServlet”的Servlet類 517476三、轉(zhuǎn)臺模塊Android客戶端實現(xiàn) 7186651.名稱為“change_table.xml”的布局文件 7198582.changeTable()方法 8185573.調(diào)用changeTable方法 9150954.添加轉(zhuǎn)臺監(jiān)聽器 95四、轉(zhuǎn)臺模塊服務器端實現(xiàn) 10186471.ChanggeTableDao接口 1077152.ChanggeTableDaoImpl類 10266013.名稱為“ChangeTableServlet”的Servlet類 1125284五、并臺模塊Android客戶端實現(xiàn) 1225871.名稱為union_table.xml的布局文件 12110232.名稱為unionTable()的方法 13100413.調(diào)用unionTable方法 1527095六、并臺模塊服務器端實現(xiàn) 15164151.名稱為“UnionTableDao”的接口 15226742.UnionTableDaoImpl類 1672403.存儲過程 17
無線點餐系統(tǒng)需求分析系統(tǒng)的背景分析和構建必要性數(shù)字化餐飲管理系統(tǒng)是處于導入市場的階段。無線點餐系統(tǒng)管理軟件供應商在餐飲行業(yè)市場滿地找餐飲老板,希望出售自己產(chǎn)品。而餐飲老板在這個信息化滿天飛的時代,總要受到影響,也希望通過這種數(shù)字化管理軟件使得自己經(jīng)營的餐飲能更有效的得到管理,能更多的盈利?;贏ndroid平臺開發(fā)無線訂餐系統(tǒng)。Android平臺給我們提供了巨大的自由空間,再運用JAVA面向?qū)ο笳Z言,是系統(tǒng)功能更加強大。MySQL是一個杰出的數(shù)據(jù)庫平臺,具有功能強大,安全可靠等特點,可用于中小型聯(lián)機事務處理、數(shù)據(jù)倉庫及電子商務等。首先,我們得確定使用這個系統(tǒng)的用戶應該有顧客、廚師、管理員(包括收銀員,只是其權限有限制)。顧客和管理員應該是系統(tǒng)數(shù)據(jù)的起點,由他們做出相應的操作,然后系統(tǒng)進行處理;廚師則為系統(tǒng)數(shù)據(jù)的終點,因為最終的任務分配情況是反映到廚師身上的。整個系統(tǒng)的關鍵任務就是保證顧客所點菜品能夠由廚師完成,系統(tǒng)保證能將做菜任務準確無誤地傳達給廚師。該系統(tǒng)在性能功能上應達到如下需求:(1)操作簡單、界面友好:完全控件式的頁面布局,使得菜品,資訊,座位等信息的錄入工作更簡便,許多選項包括餐廳信息,桌位,包房信息等只需要點擊鼠標就可以完成;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時清楚自己的操作情況。對常見的類似網(wǎng)站的管理的各個方面:基本信息錄入、瀏覽、刪除、修改、搜索等方面都大體實現(xiàn),顧客對菜品的預定及支付方式;(2)即時可見:對客戶預定餐飲信息的處理(包括錄入、刪除)將立即在另一應用端及服務器的對應欄目顯示出來,達到“即時點擊、即時見效”的功能;(3)系統(tǒng)運行應該快速、穩(wěn)定、高效和可靠;(4)在結構上應具有很好的可擴展性,便于將來的功能擴展和維護。更新模塊服務器端實現(xiàn) 更新模塊服務器的實現(xiàn)主要是:創(chuàng)建DAO查詢數(shù)據(jù)列表;創(chuàng)建Servlet,拼成XML格式數(shù)據(jù)輸出,響應客戶端請求。具體步驟說明如下。UpdateDao接口在工程的“com.amaker.dao”包中定義一個UpdateDao接口,在該接口中聲明兩個方法,分別用來獲得菜譜數(shù)據(jù)列表和桌位數(shù)據(jù)列表。packagecom.amaker.dao;importjava.util.List;publicinterfaceUpdateDao{ //獲得菜單列表 publicListgetMenuList(); //獲得餐桌列表 publicListgetTableList();}UpdateDaoImpl類在工程的“com.amaker.dao.impl”包中定義一個UpdateDaoImpl類實現(xiàn)UpdateDao接口中的方法。packagecom.amaker.dao.impl;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importcom.amaker.dao.UpdateDao;importcom.amaker.entity.Menu;importcom.amaker.util.DBUtil;publicclassUpdateDaoImplimplementsUpdateDao{ //獲得菜單列表 publicListgetMenuList(){ //查詢SQL語句 Stringsql="selectid,typeId,price,name,pic,remarkfromMenuTbl"; //數(shù)據(jù)庫連接工具類 DBUtilutil=newDBUtil(); //獲得連接 Connectionconn=util.openConnection(); try{ //獲得預定義語句 Statementpstmt=conn.createStatement(); //執(zhí)行查詢 ResultSetrs=pstmt.executeQuery(sql); //判斷訂單詳細 Listlist=newArrayList(); while(rs.next()){ //獲得菜單信息 intid=rs.getInt(1); inttypeId=rs.getInt(2); intprice=rs.getInt(3); Stringname=rs.getString(4); Stringpic=rs.getString(5); Stringremark=rs.getString(6); Menum=newMenu(); m.setId(id); m.setName(name); m.setPic(pic); m.setPrice(price); m.setRemark(remark); m.setTypeId(typeId); list.add(m); } returnlist; }catch(SQLExceptione){ e.printStackTrace(); }finally{ util.closeConn(conn); } returnnull; } //獲得餐桌列表 publicListgetTableList(){ returnnull;}}名稱“UpdateServlet”的Servlet類在工程的“com.amaker.servlet”包中定義一個名稱“UpdateServlet”的Servlet類響應客戶端請求,將數(shù)據(jù)列表拼成XML格式數(shù)據(jù),發(fā)送到客戶端。packagecom.amaker.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.amaker.dao.UpdateDao;importcom.amaker.dao.impl.UpdateDaoImpl;importcom.amaker.entity.Menu;publicclassUpdateServletextendsHttpServlet{ //構造方法 publicUpdateServlet(){ super();} //銷毀方法 publicvoiddestroy(){ super.destroy();}//響應Get請求 publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/xml"); PrintWriterout=response.getWriter(); //實例化daoUpdateDaodao=newUpdateDaoImpl(); //獲得菜譜列表 Listlist=dao.getMenuList(); //拼XML格式數(shù)據(jù) out.println("<?xmlversion='1.0'encoding='UTF-8'?>"); //根節(jié)點 out.println("<menulist>"); for(inti=0;i<list.size();i++){ Menum=(Menu)list.get(i); out.println("<menu>"); //菜譜編號 out.print("<id>"); out.print(m.getId()); out.println("</id>"); //分類 out.print("<typeId>"); out.print(m.getTypeId()); out.println("</typeId>"); //名稱 out.print("<name>"); out.print(m.getName()); out.println("</name>"); //圖片路徑 out.print("<pic>"); out.print(m.getPic()); out.println("</pic>"); //價格 out.print("<price>"); out.print(m.getPrice()); out.println("</price>"); //備注 out.print("<remark>"); out.print(m.getRemark()); out.println("</remark>"); out.println("</menu>");} out.println("</menulist>"); out.flush(); out.close();} //響應Post請求 publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doGet(request,response); } //初始化方法 publicvoidinit()throwsServletException{}}轉(zhuǎn)臺模塊Android客戶端實現(xiàn)轉(zhuǎn)臺模塊要實現(xiàn)的功能是:當顧客開桌或下單后要求更換桌位的過程。這一過程需要更新保存在服務器數(shù)據(jù)庫中的數(shù)據(jù),具體更新的是OrderTbl表中該訂單對應的桌號以及更換桌位的狀態(tài)。具體實現(xiàn)步驟說明如下。名稱為“change_table.xml”的布局文件在該工程的目錄下定義一個名稱為“change_table.xml”的布局文件,該布局文件外層使用LinearLayout布局,內(nèi)層嵌套TableLayout,該布局作為自定義試圖添加到彈出對話框中提示用戶輸入信息。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <TextView android:text="訂單編號:" android:id="@+id/TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:text="" android:id="@+id/change_table_order_number_EditText" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </TableRow> <TableRow> <TextView android:text="更換桌號:" android:id="@+id/TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:text="" android:id="@+id/change_table_no_EditText" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </TableRow> </TableLayout></LinearLayout>changeTable()方法在工程的“MainMenuActivity”類中定義一個changeTable()方法該方法首先實現(xiàn)定義的布局文件,將其添加到AlertDialog中,在對話框的確定方法中獲得訂單編號和更換桌號,條調(diào)用服務器Servlet,更新數(shù)據(jù),并顯示更新結果。//換臺系統(tǒng) privatevoidchangeTable(){ //獲得LayoutInflater實例 LayoutInflaterinflater=LayoutInflater.from(this); //獲得LinearLayout視圖實例 Viewv=inflater.inflate(R.layout.change_table,null); //從LinearLayout中獲得EditText實例 finalEditTextet1=(EditText)v.findViewById(R.id.change_table_order_number_EditText); finalEditTextet2=(EditText)v.findViewById(R.id.change_table_no_EditText); AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setMessage("真的要換桌位嗎?") .setCancelable(false) .setView(v) .setPositiveButton("確定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ //獲得訂單號 StringorderId=et1.getText().toString(); //獲得桌號 StringtableId=et2.getText().toString(); //查詢參數(shù) StringqueryString="orderId="+orderId+"&tableId="+tableId; //url Stringurl=HttpUtil.BASE_URL+"servlet/ChangeTableServlet?"+queryString; //查詢返回結果 Stringresult=HttpUtil.queryStringForPost(url); //顯示結果 Toast.makeText(MainMenuActivity.this,result,Toast.LENGTH_LONG).show(); } }) .setNegativeButton("取消",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ dialog.cancel(); } }); AlertDialogalert=builder.create(); alert.show(); } 調(diào)用changeTable方法定義轉(zhuǎn)臺監(jiān)聽器,調(diào)用changeTable方法。//轉(zhuǎn)臺監(jiān)聽器OnClickListenerchangeTableLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ changeTable(); } };添加轉(zhuǎn)臺監(jiān)聽器主菜單GridView添加監(jiān)聽器。case2: //添加轉(zhuǎn)臺監(jiān)聽器 imageView.setOnClickListener(changeTableLinstener); break;轉(zhuǎn)臺模塊服務器端實現(xiàn)為了響應Android客戶端的請求需要定義Servlet,為了更新數(shù)據(jù)庫需要定義DAO接口來操作數(shù)據(jù)庫。具體步驟說明如下。ChanggeTableDao接口在工程的“com.amaker.dao”包中定義一個ChanggeTableDao接口,在該接口中定義一個轉(zhuǎn)臺方法changeTable().packagecom.amaker.dao;//轉(zhuǎn)臺DAO接口publicinterfaceChangeTableDao{ //轉(zhuǎn)臺方法 publicvoidchangeTable(intorderId,inttableId);}ChanggeTableDaoImpl類在工程的“com.amaker.dao”包中定義一個ChanggeTableDaoImpl類實現(xiàn)上述接口。該類需要更新訂單表以及更換桌位的狀態(tài),為此本代碼的實現(xiàn)使用了事務控制。packagecom.amaker.dao.impl;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;importcom.amaker.dao.ChangeTableDao;importcom.amaker.util.DBUtil;/***@author郭宏志*完成轉(zhuǎn)臺功能*/publicclassChangeTableDaoImplimplementsChangeTableDao{ publicvoidchangeTable(intorderId,inttableId){ //更新SQL語句 Stringsql="updateTableTblsetflag=0whereid="+ "(selecttableIdfromOrderTblasotwhereot.id=?)"; Stringsql2="updateOrderTblsettableId=?whereid=?"; Stringsql3="updateTableTblsetflag=1whereid=?"; //數(shù)據(jù)庫連接工具類 DBUtilutil=newDBUtil(); //獲得連接 Connectionconn=util.openConnection(); try{ conn.setAutoCommit(false); //獲得預定義語句 PreparedStatementpstmt=conn.prepareStatement(sql); pstmt.setInt(1,orderId); //更新桌位狀態(tài) pstmt.executeUpdate(); pstmt=conn.prepareStatement(sql2); //設置參數(shù) pstmt.setInt(1,tableId); pstmt.setInt(2,orderId); //更新訂單表 pstmt.executeUpdate(); pstmt=conn.prepareStatement(sql3); pstmt.setInt(1,tableId); //更新桌位狀態(tài) pstmt.executeUpdate(); mit(); }catch(SQLExceptione){ e.printStackTrace(); try{ conn.rollback(); }catch(SQLExceptione1){ e1.printStackTrace(); } }finally{ util.closeConn(conn); } }}名稱為“ChangeTableServlet”的Servlet類在工程的“com.amaker.servlet”包中定義一個名稱為“ChangeTableServlet”的Servlet類,該類響應客戶端請求,調(diào)用DAO更新數(shù)據(jù)庫數(shù)據(jù),返回信息給客戶端。packagecom.amaker.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.amaker.dao.ChangeTableDao;importcom.amaker.dao.impl.ChangeTableDaoImpl;/***@author郭宏志*完成轉(zhuǎn)臺功能*/publicclassChangeTableServletextendsHttpServlet{ //構造方法 publicChangeTableServlet(){ super(); } //銷毀方法 publicvoiddestroy(){ super.destroy(); } //響應Get請求 publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html"); PrintWriterout=response.getWriter(); //獲得請求參數(shù) StringorderId=request.getParameter("orderId"); StringtableId=request.getParameter("tableId"); //實例化ChangeTableDao ChangeTableDaodao=newChangeTableDaoImpl(); //調(diào)用轉(zhuǎn)臺方法 dao.changeTable(Integer.parseInt(orderId),Integer.parseInt(tableId)); //返回客戶端信息 out.println("更換成功!"); out.flush(); out.close(); } //響應Post請求 publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doGet(request,response); } //初始化方法 publicvoidinit()throwsServletException{ }}并臺模塊Android客戶端實現(xiàn)名稱為union_table.xml的布局文件該布局文件外層使用LinearLayout布局,內(nèi)層嵌套TableLayout,TableLayout中有兩行,每行通過一個Spinner提示用戶選擇桌號。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TableLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:stretchColumns="1"><TableRow><TextViewandroid:text="被并桌位:"android:id="@+id/TextView"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Spinnerandroid:id="@+id/union_table_Spinner1"android:layout_width="fill_parent"android:layout_height="wrap_content"/></TableRow><TableRow><TextViewandroid:text="目標桌位:"android:id="@+id/TextView"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Spinnerandroid:id="@+id/union_table_Spinner2"android:layout_width="fill_parent"android:layout_height="wrap_content"/></TableRow></TableLayout></LinearLayout>名稱為unionTable()的方法在MainMenuActivity類中創(chuàng)建一個名稱為unionTable()的方法,該方法定義了一個對話框提示用戶選擇合并桌號,在對話框中添加了自定義視圖,訪問服務器獲得桌位信息并綁定到Spinner,然后在確定方法中提交合并請求。//并臺系統(tǒng) privatevoidunionTable(){ //實例化LayoutInflater LayoutInflaterinflater=LayoutInflater.from(this); //獲得自定義視圖 Viewv=inflater.inflate(R.layout.union_table,null); //獲得Spinner finalSpinnerspinner1=(Spinner)v.findViewById(R.id.union_table_Spinner1); finalSpinnerspinner2=(Spinner)v.findViewById(R.id.union_table_Spinner2); //訪問服務器的URL StringurlStr=HttpUtil.BASE_URL+"servlet/UnionTableServlet"; try{ //實例化URL URLurl=newURL(urlStr); //URLConnection實例 URLConnectionconn=url.openConnection(); //獲得輸入流 InputStreamin=conn.getInputStream(); //獲得DocumentBuilderFactory對象 DocumentBuilderFactoryfactory=DocumentBuilderFactory .newInstance(); //獲得DocumentBuilder對象 DocumentBuilderbuilder=factory.newDocumentBuilder(); //獲得Document對象 Documentdoc=builder.parse(in); //獲得節(jié)點列表 NodeListnl=doc.getElementsByTagName("table"); //Spinner數(shù)據(jù) Listitems=newArrayList(); //獲得XML數(shù)據(jù) for(inti=0;i<nl.getLength();i++){ //桌位編號 Stringid=doc.getElementsByTagName("id") .item(i).getFirstChild().getNodeValue(); //桌號 intnum=Integer.parseInt(doc.getElementsByTagName("num") .item(i).getFirstChild().getNodeValue()); Mapdata=newHashMap(); data.put("id",id); items.add(data); } //獲得SpinnerAdapter SpinnerAdapteras=new SimpleAdapter(this,items, android.R.layout.simple_spinner_item, newString[]{"id"},newint[]{android.R.id.text1}); //綁定數(shù)據(jù) spinner1.setAdapter(as); spinner2.setAdapter(as); }catch(Exceptione){ e.printStackTrace(); } AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setMessage("真的要并桌嗎?") .setCancelable(false) .setView(v) .setPositiveButton("確定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ TextViewtv1=(TextView)spinner1.getSelectedView(); TextViewtv2=(TextView)spinner2.getSelectedView(); StringtableId1=tv1.getText().toString(); StringtableId2=tv2.getText().toString(); //查詢參數(shù) StringqueryString="tableId1="+tableId1+"&tableId2="+tableId2; //url Stringurl=HttpUtil.BASE_URL+"servlet/UnionTableServlet2?"+queryString; //查詢返回結果 Stringresult=HttpUtil.queryStringForPost(url); } }) .setNegativeButton("取消",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ dialog.cancel(); } }); AlertDialogalert=builder.create(); alert.show(); }調(diào)用unionTable方法創(chuàng)建一個并臺監(jiān)聽器,調(diào)用unionTable方法。 //并臺監(jiān)聽器OnClickListenerunionTableLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ unionTable(); } };并臺模塊服務器端實現(xiàn)名稱為“UnionTableDao”的接口在工程的“com.amaker.dao”包中定義一個名稱為“UnionTableDao”的接口。該接口中有兩個方法,分別用來獲得桌位列表和更新合并后的數(shù)據(jù)。packagecom.amaker.dao;importjava.util.List;//并臺功能接口publicinterfaceUnionTableDao{ //獲得桌位列表 publicListgetTableList(); //更新合并后的數(shù)據(jù) publicvoidupdateStatus(inttableId1,inttableId2);}UnionTableDaoImpl類在工程的“com.amaker.dao.impl”包中定義一個UnionTableDaoImpl類實現(xiàn)UnionTableDao。packagecom.amaker.dao.impl;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importcom.amaker.dao.UnionTableDao;importcom.amaker.entity.UnionTable;importcom.amaker.util.DBUtil;/***@author郭宏志*實現(xiàn)并臺功能*/publicclassUnionTableDaoImplimplementsUnionTableDao{ publicListgetTableList(){ //查詢SQL語句 Stringsql="selectid,numfromTableTblwhereflag=1"; //數(shù)據(jù)庫連接工具類 DBUtilutil=newDBUtil(); //獲得連接 Connectionconn=util.openConnection(); try{ //獲得預定義語句 Statementpstmt=conn.createStatement(); //執(zhí)行查詢 ResultSetrs=pstmt.executeQuery(sql); //判斷訂單詳細 Listlist=newArrayList(); while(rs.next()){ //獲得菜單信息 intid=rs.getInt(1); intnum=rs.getInt(2); UnionTableut=newUnionTable(); ut.setId(id); ut.setNum(num); list.add(ut); } returnlist; }catch(SQLExceptione){ e.printStackTrace(); }finally{ util.closeConn(conn); } returnnull; } publicvoidupdateStatus(inttableId1,inttableId2){ //數(shù)據(jù)庫連接工具類 DBUtilutil=newDBUtil(); //獲得連接 Connectionconn=util.openConnection(); CallableStatementcstmt; try{ cstmt=conn.prepareCall("{callnew_proc(?,?)}"); cstmt.setInt(1,tableId1); cstmt.setInt(2,tableId2); cstmt.execute(); }catch(SQLExceptione){ e.printStackTrace(); } }}存儲過程UnionTableDaoImpl類中的第二個方法是通過存儲過程來實現(xiàn)的,存儲過程代碼如下:CREATEPROCEDURE`new_proc`(INtableId1INTEGER(11),INtableId2INTEGER(11))NOTDETERMINISTICSQLSECURITYDEFINERCOMMENT''BEGINdeclareperNum,oId1,oId2integer;selectpersonNumintoperNumfromOrderTblasotwhereot.tableId=tableId2andot.isPay=0;selectidintooId1fromOrderTblasotwhereot.tableId=tableId1andot.isPay=0;selectidintooId2fromOrderTblasotwhereot.tableId=tableId2andot.isPay=0;updateOrderTblsetpersonNum=personNum+perNumwhereid=oId2;updateOrderDetailTblsetorderId=oId2whereorderId=oId1;updateTableTblsetflag=0whereid=tableId1;deletefromOrderTblwhereid=oId1;END;
論大學生寫作能力寫作能力是對自己所積累的信息進行選擇、提取、加工、改造并將之形成為書面文字的能力。積累是寫作的基礎,積累越厚實,寫作就越有基礎,文章就能根深葉茂開奇葩。沒有積累,胸無點墨,怎么也不會寫出作文來的。寫作能力是每個大學生必須具備的能力。從目前高校整體情況上看,大學生的寫作能力較為欠缺。一、大學生應用文寫作能力的定義那么,大學生的寫作能力究竟是指什么呢?葉圣陶先生曾經(jīng)說過,“大學畢業(yè)生不一定能寫小說詩歌,但是一定要寫工作和生活中實用的文章,而且非寫得既通順又扎實不可?!睂τ诖髮W生的寫作能力應包含什么,可能有多種理解,但從葉圣陶先生的談話中,我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024實習合同書范本參考
- 2024裝修工程協(xié)議合同
- 個人借款合同法律解讀
- 2024個人門面房屋租賃合同書常用版
- 經(jīng)典代理合同參考
- 企業(yè)租車協(xié)議書樣式
- 2024年度環(huán)保工程設計與施工合同
- 2024房屋抵款合同書
- 2024解除勞動合同的賠償
- 成都市古建筑工程施工合同
- 16J914-1 公用建筑衛(wèi)生間
- 物業(yè)工程維修使用工具清單
- 普羅米修斯盜火(多幕劇)
- 煤油滲漏試驗要求
- yy娛樂頻道設計方案模板(簡約版)
- 六爻必背口訣
- 多重耐藥菌病例分析ppt課件
- 六十四卦圖文詳解
- 要事第一(課堂PPT)
- 對排球大力跳發(fā)球失誤的技術原因分析
- 中藥飲片甲類
評論
0/150
提交評論