課程設(shè)計--基于java的學(xué)生成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  一.緒論</b></p><p><b>  1.1引言</b></p><p>  課程設(shè)計是實踐性教學(xué)中的一個重要環(huán)節(jié),它以某一課程為基礎(chǔ),可以涉及和課程相關(guān)的各個方面,是一門獨立于課程之外的特殊課程。課程設(shè)計是讓同學(xué)們對所學(xué)的課程更全面的學(xué)習(xí)和應(yīng)用,理解和掌握課程的相關(guān)知識?!睹嫦?qū)ο笳n程設(shè)計》是一門重要的專業(yè)

2、基礎(chǔ)課,是計算機(jī)理論和應(yīng)用的核心基礎(chǔ)課程。</p><p><b>  1.2設(shè)計要求</b></p><p>  1.組隊時只能1-3位同學(xué)為一組,要求有數(shù)據(jù)庫連接操作。1.只能1-3個一組,要求有數(shù)據(jù)庫連接操作。</p><p>  2.同組之間的文檔要分開,每個人的文檔只寫自己做的功能模塊。</p><p>  3

3、.每組程序必須保證運行通過,程序和文檔均在老師檢查通過以后方可打印上交!(源程序不需要打?。?lt;/p><p>  注意:老師沒有檢查的小組程序均視不合格。</p><p>  4.倘若需要提前交程序的同學(xué),請上交一個輔導(dǎo)員簽字的請假條。</p><p>  5.最后的上交材料是:a.一份程序說明書打印版,b. 將源程序和文檔的電子版一起放在一個文件夾下,文件夾命名為

4、學(xué)號+姓名</p><p><b>  1.3開發(fā)環(huán)境</b></p><p>  系統(tǒng)平臺:Windows XP</p><p>  數(shù)據(jù)庫服務(wù)器:Mysql</p><p>  開發(fā)工具:Eclipsedk7</p><p>  1.4 開發(fā)人員 </p><p>

5、;  張眾一、胡先洋和樊曙光同學(xué)共同完成</p><p>  二.系統(tǒng)功能介紹

6、

7、 </p><p>  本次課程設(shè)計完成一個基于java的學(xué)生成績管理系統(tǒng)模型,采用c/s結(jié)構(gòu),它的基本功能是學(xué)生通過客戶端連接服務(wù)器登陸,實現(xiàn)成績的查詢以,成績統(tǒng)計查詢;實現(xiàn)老師通過客戶端登陸查詢授課情況,學(xué)生

8、名單,及進(jìn)行賬戶管理。添加學(xué)生成績以及進(jìn)行賬戶管理。(根據(jù)自己的系統(tǒng)詳細(xì)展開敘述)。</p><p>  詳細(xì)的功能描述如下:</p><p> ?。?)用戶登錄驗證:對登錄用戶進(jìn)行登錄驗證。(假設(shè)用戶信息已經(jīng)由數(shù)據(jù)庫管理員設(shè)置)</p><p> ?。?)賬戶管理:學(xué)生可以查看自給的賬戶信息(假設(shè)已由數(shù)據(jù)管理員給出)并可修改密碼。</p><p

9、>  學(xué)生成績查詢:學(xué)生可以通過輸入學(xué)期查詢自己某學(xué)期的選修課程成績(假設(shè)學(xué)修課程表已經(jīng)給出),同時,學(xué)生也可以查詢自己地歷史選課成績清單。</p><p>  學(xué)生成績統(tǒng)計查詢:學(xué)生用戶可以查詢自己各學(xué)期成績統(tǒng)計指數(shù),各學(xué)年成績統(tǒng)計指數(shù)以及歷史成績的指數(shù)。</p><p>  (3)老師賬戶管理;管理員可以查看自給的賬戶信息(假設(shè)已由數(shù)據(jù)管理員給出)并可修改密碼。</p>

10、;<p>  授課查詢:老師可以查詢自己的授課情況(假設(shè)已給出)。</p><p>  學(xué)生名單查詢:老師可以查詢選修該老師課程的所有學(xué)生名單。</p><p>  添加學(xué)生成績:老師可以天加學(xué)生的學(xué)生成績。</p><p><b>  三.系統(tǒng)功能模板圖</b></p><p><b>  四.

11、數(shù)據(jù)庫設(shè)計</b></p><p><b>  4.1需求分析</b></p><p><b>  信息錯誤 </b></p><p><b>  信息正確</b></p><p><b>  外部存儲</b></p><p

12、><b>  查詢添加數(shù)據(jù)</b></p><p>  登錄信息 數(shù)據(jù)存儲</p><p><b>  4.2需求要求:</b></p><p>  (1)學(xué)生基本信息管理(不由管理系統(tǒng)添加和修改)</p><p> ?。?)學(xué)生登

13、錄信息修改:學(xué)生登錄后可進(jìn)行且僅能修改登錄密碼。</p><p> ?。?)課程信息管理:假設(shè)信息已經(jīng)存在 (不由管理系統(tǒng)添加和修改)</p><p>  (4)教職工信息管理:假設(shè)選課表已經(jīng)給出(不由管理系統(tǒng)添加和修改)</p><p>  教師登錄信息修改:教師登錄后可進(jìn)行且僅能修改登錄密碼。</p><p> ?。?)選課管理: 假設(shè)

14、選課表已經(jīng)給出(不由管理系統(tǒng)添加和修改)</p><p>  其中:學(xué)生可以同時選修一門或多門課程。 </p><p>  可以同時為多個學(xué)生選修某一門或某幾門課程。</p><p> ?。?)學(xué)生成績信息管理:老師登陸后,可以按課程添加選學(xué)該老師學(xué)生成績;</p><p>  學(xué)生登錄后按學(xué)期號查詢學(xué)期成績信息,直接查詢歷史成績信息,按學(xué)期

15、(學(xué)年)查詢成績的平均成績,平均績點,總成績,以及歷史平均績點,</p><p> ?。?)用戶注冊信息管理:不同權(quán)限用戶登錄的賬號為學(xué)號或是教工號由,數(shù)據(jù)庫管理員已經(jīng)創(chuàng)建,密碼信息用戶課以自行更改</p><p>  (8) 信息查詢:學(xué)生只能查詢該學(xué)生自己基本信息、查詢成績信息及統(tǒng)計信息,老師登錄能查詢該老師自己基本信息教職工基本信息,可以查詢自己的授課情況,可以查詢選修自己課程的學(xué)

16、生名單。</p><p>  按課程號、課程名稱、教師姓名輸出對應(yīng)課程的成績登記表。</p><p><b>  4.3需求總數(shù)</b></p><p>  以上的用戶請求經(jīng)應(yīng)用程序的轉(zhuǎn)化,化為對數(shù)據(jù)庫中的相應(yīng)的表或視圖的操作,數(shù)據(jù)庫再把處理的結(jié)果(或都是錯誤信息)返回結(jié)應(yīng)用程序。應(yīng)用程序把結(jié)果返回給用戶,該結(jié)果可能為一個對表操作的結(jié)果(如插入

17、,刪除等),也可能為一個查詢的結(jié)果,甚至可能為一個錯誤的信息。</p><p><b>  4.5邏輯結(jié)構(gòu)設(shè)計</b></p><p>  由e-r圖經(jīng)過數(shù)據(jù)模型優(yōu)化可得數(shù)據(jù)結(jié)構(gòu), </p><p>  Course(course_name,course_i,num)</p><p>  Student(student_

18、,student_name,student_faccty,age)Teacher(teacher_id,teacher_name,age)</p><p>  Register(num,register_number,register_id,register_type)</p><p>  Faculty(faculty_id,faculty_name,facuty_principal)&

19、lt;/p><p>  Seleccourse(course_id,student_id,garde,teacher_id,term)</p><p>  Teaching_table( teacher_id,course_id)</p><p>  采用mysql數(shù)據(jù)庫建立如下表結(jié)構(gòu):</p><p><b>  Register:&

20、lt;/b></p><p><b>  Register:</b></p><p><b>  Course:</b></p><p><b>  Student:</b></p><p><b>  Teachaer:</b></p>

21、<p>  Selecourse:</p><p>  T eaching_table:</p><p>  Student_facuty:</p><p><b>  五.系統(tǒng)設(shè)計</b></p><p><b>  5.1設(shè)計介紹</b></p><p> 

22、 本設(shè)計模型采用c/s結(jié)構(gòu),通過shocket進(jìn)行傳輸數(shù)據(jù)??蛻舳酥饕獙崿F(xiàn)用戶任務(wù)的識別和分發(fā),服務(wù)端主要實現(xiàn)接受任務(wù)處理業(yè)務(wù)返回結(jié)果通過序列化對象實現(xiàn)數(shù)據(jù)的封裝傳輸。設(shè)計模式采用mvc結(jié)構(gòu),實現(xiàn)數(shù)據(jù)分層。</p><p>  5.2系統(tǒng)設(shè)計的幾個主要類</p><p>  1.登錄類,loginFrame 主要有登陸賬戶,密碼 ,權(quán)限。</p><p>  權(quán)

23、限分為學(xué)生和老師兩種。主要行為是在用戶確認(rèn)之后,判斷用戶類型,封裝用戶信息,后臺驗證成功后,建立用戶服務(wù)類,開啟管理界面。</p><p>  2.學(xué)生管成績理類 StudentFrame,該類主要顯示學(xué)生成績管理系統(tǒng)的主界面,和相關(guān)時間的響應(yīng)。主要行為時判斷用戶的操作(界面事件),并將行為轉(zhuǎn)交給服務(wù)類,實現(xiàn)與用戶的交互。</p><p>  3.教師管成績理類teacherFrame,該

24、類主要顯示教師成績管理系統(tǒng)的主界面,和相關(guān)時間的響應(yīng)。主要行為時判斷用戶的操作(界面事件),并將行為轉(zhuǎn)交給服務(wù)類,實現(xiàn)與用戶的交互。</p><p>  4.服務(wù)類 客戶端服務(wù)類StudentService ,服務(wù)器StudentService</p><p>  前者主要處理前端用戶發(fā)出任務(wù)的業(yè)務(wù)邏輯,并將指令和數(shù)據(jù)發(fā)給服務(wù)器StudentService,接受服務(wù)器送回結(jié)果。后者主要

25、接受前者的數(shù)據(jù)和指令,并分發(fā)業(yè)務(wù),通過model層處理數(shù)據(jù)庫信息用戶信息并得出業(yè)務(wù)結(jié)果,將結(jié)果返回前端。</p><p>  5.數(shù)據(jù)庫處理類 dao 主要實現(xiàn)對數(shù)據(jù)庫的查詢刪除操作。 </p><p>  6 .bean數(shù)據(jù)類 Grade ,Student,Teacher,serialvector</p><p>  Grade主要用于前后端傳輸成績實現(xiàn)了序

26、列化。</p><p>  Student,teacher主要用于傳輸和封裝用戶信息。</p><p>  serialVector主要用于封裝和批量傳輸數(shù)據(jù)。</p><p>  7.服務(wù)器框架類 serverFrame 主要用于開啟服務(wù)器,發(fā)出關(guān)閉服務(wù)器請求,設(shè)置監(jiān)聽客戶端連接,并開啟新線程。</p><p>  8.線程類 ser

27、verthread類 主要用于處理用戶業(yè)務(wù),接受命令,接收數(shù)據(jù),分發(fā)任務(wù),到service層并將結(jié)果傳給客戶端。</p><p><b>  六.系統(tǒng)實現(xiàn)</b></p><p>  本模型系統(tǒng)采用的MVC設(shè)計模式,分為service模塊,model模塊,view模塊。本人負(fù)責(zé)view模塊和bean中g(shù)rade serialVector student tea

28、cher client的封裝數(shù)據(jù)類的實現(xiàn)</p><p>  主要由客戶端的界面,服務(wù)器端界面(bean中之一grade 和serialVector為例)。以下為主要代碼(非主要方法略及實現(xiàn)代碼相似函數(shù)省略):</p><p><b>  服務(wù)器端框架代碼:</b></p><p>  package serverFrame;</p&g

29、t;<p>  public class MainFrame extends JFrame implements ActionListener{</p><p>  JButton start =null;</p><p>  JButton end = null;</p><p>  JLabel startTime = null;</p&

30、gt;<p>  JLabel currentTime = null;</p><p>  static JTextArea jta = null;</p><p>  StartServerThread sst = null;//處理監(jiān)聽程序</p><p>  public MainFrame(){</p><p>  su

31、per("成績管理服務(wù)器");</p><p>  this.setLayout(new FlowLayout());</p><p>  start = new JButton("開啟服務(wù)器");</p><p>  start.addActionListener(this);</p><p>  e

32、nd = new JButton("結(jié)束服務(wù)器");</p><p>  end.addActionListener(this);</p><p>  jta = new JTextArea(10,40);</p><p>  jta.disable();</p><p>  JScrollPane jsp = new J

33、ScrollPane(jta);</p><p>  currentTime = new JLabel("未開啟");</p><p>  startTime = new JLabel("現(xiàn)在時間是:");</p><p>  this.add(end);</p><p>  this.add(star

34、t);</p><p>  this.add(jsp);</p><p>  this.add(startTime);</p><p>  this.add(currentTime);</p><p>  //this.add(jta);</p><p><b>  }</b></p&g

35、t;<p>  public static void main(String agrgs[]) {</p><p>  MainFrame mainFrame = new MainFrame();</p><p>  mainFrame.setVisible(true);</p><p>  mainFrame.setBounds(100, 100,

36、500, 500);</p><p>  mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  public void a

37、ctionPerformed(ActionEvent e) {</p><p>  if(e.getSource() == this.start)</p><p>  startActionDealing();</p><p>  if(e.getSource() == this.end)</p><p>  endActionDealing

38、();</p><p><b>  }</b></p><p>  //處理結(jié)束按鈕事件</p><p>  private void endActionDealing() {</p><p>  if(sst==null) </p><p>  jta.append("服務(wù)器尚未開始服

39、務(wù)。\n");</p><p><b>  else{</b></p><p>  sst.setStartSign(false);</p><p>  // sst.destroy(); wrong</p><p>  jta.append("服務(wù)器結(jié)束請求已處理,等待中.....\n&q

40、uot;);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //處理開始服務(wù)器按鈕事件</p><p>  private void startActionDealing() {</p><p>  //開啟新線程處理監(jiān)聽

41、</p><p>  sst= new StartServerThread();</p><p>  sst.start();</p><p><b>  }</b></p><p>  public static JTextArea getJta() {………</p><p>  public

42、static void setJta(JTextArea jta) {………</p><p>  public static void setJta(JTextArea jta) {………</p><p><b>  }</b></p><p><b>  登陸界面 </b></p><p>  p

43、ackage Frames;</p><p>  public class LogInFrame extends JFrame {</p><p>  public String getClientType;</p><p>  public LogInFrame() {</p><p>  super("登陸");<

44、;/p><p>  this.setLayout(new FlowLayout());</p><p>  LoginPanel loginPanel = new LoginPanel(this);</p><p>  loginPanel.setPreferredSize(new Dimension(300,300));</p><p>  t

45、his.add(loginPanel,BorderLayout.CENTER);</p><p>  this.setVisible(true);</p><p>  this.setResizable(false);</p><p>  this.setBounds(500, 200, 400, 400);</p><p>  this.s

46、etDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  客戶端學(xué)生管理界面</b></p><p>  package Frames

47、;</p><p>  public class StudentManager extends JFrame{</p><p>  Icon icon =null;</p><p>  Client client = null;</p><p>  StudentService ss = null;</p><p>

48、  JPanel jp =null;</p><p>  public StudentManager(Client client, StudentService ss){</p><p>  super("學(xué)生成績管理系統(tǒng)");</p><p>  this.ss = ss;</p><p>  imageIcon();&

49、lt;/p><p>  this.client = client;</p><p>  addcompoents();</p><p>  this.setVisible(true);</p><p>  this.setBounds(400, 100, 500, 500);</p><p>  this.setDefau

50、ltCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p>  private void addcompoents() {</p><p>  setLayout(new BorderLayout());</p><p>  Container

51、con = getContentPane();</p><p>  StudentManagerHeadPanel smhp = new StudentManagerHeadPanel(client);</p><p>  con.add(smhp,BorderLayout.NORTH);</p><p>  StudentManBody smb = new Stu

52、dentManBody(client,ss,this);</p><p>  con.add(smb,BorderLayout.CENTER);</p><p>  JLabel lb = new JLabel("");</p><p>  lb.setIcon(icon);</p><p>  con.add(lb,Bo

53、rderLayout.SOUTH);</p><p><b>  }</b></p><p>  void imageIcon(){………</p><p>  public void setJp(JPanel jp) {………</p><p><b>  }</b></p><p

54、>  客戶端教師管理界面:</p><p>  package Frames;</p><p>  public class StudentManager extends JFrame{</p><p>  Icon icon =null;</p><p>  Client client = null;</p><

55、p>  StudentService ss = null;</p><p>  JPanel jp =null;</p><p>  public StudentManager(Client client, StudentService ss){</p><p>  super("學(xué)生成績管理系統(tǒng)");</p><p&g

56、t;  this.ss = ss;</p><p>  imageIcon();</p><p>  this.client = client;</p><p>  addcompoents();</p><p>  this.setVisible(true);</p><p>  this.setBounds(400

57、, 100, 500, 500);</p><p>  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p>  private void addcompoents() {</p><p>  setLayout(

58、new BorderLayout());</p><p>  Container con = getContentPane();</p><p>  StudentManagerHeadPanel smhp = new StudentManagerHeadPanel(client);</p><p>  con.add(smhp,BorderLayout.NORTH

59、);</p><p>  StudentManBody smb = new StudentManBody(client,ss,this);</p><p>  con.add(smb,BorderLayout.CENTER);</p><p>  JLabel lb = new JLabel("");</p><p>  

60、lb.setIcon(icon);</p><p>  con.add(lb,BorderLayout.SOUTH);</p><p><b>  }</b></p><p>  void imageIcon(){………</p><p><b>  }</b></p><p>

61、;<b>  添加學(xué)生信息類</b></p><p>  package Frames;</p><p>  public class AddStudentGrade extends JFrame implements ActionListener{</p><p>  Label prompt=new Label("請 輸 入 各

62、項 添 加 信 息");</p><p>  Label lbId,lbName,lbAge,TS;</p><p>  TextField txtId,txtName,txtAge,txtTs;</p><p>  Button btnAdd,btnQuit,btnreAdd;</p><p>  TeacherService t

63、ss =null;</p><p>  public AddStudentGrade(TeacherService ts){</p><p>  super("添加學(xué)生信息");</p><p>  this.tss= ts;</p><p>  setResizable(false);</p><p&

64、gt;  TS=new Label("學(xué)期:");</p><p>  lbId=new Label("學(xué)號:");</p><p>  lbName=new Label("課程:");</p><p>  lbAge=new Label("成績:");</p><p

65、>  txtTs=new TextField(8);</p><p>  txtId=new TextField(10);</p><p>  txtName=new TextField(10);</p><p>  txtAge=new TextField(10);</p><p>  btnAdd=new Button("

66、添加到數(shù)據(jù)庫");</p><p>  btnQuit=new Button("退出");</p><p>  btnreAdd=new Button("繼續(xù)添加");</p><p>  btnAdd.addActionListener(this);</p><p>  btnQuit.ad

67、dActionListener(this);</p><p>  btnreAdd.addActionListener(this);</p><p>  this.setLayout(new FlowLayout());</p><p>  add(prompt);</p><p>  this.add(lbId);</p>

68、<p>  this.add(txtId);</p><p>  this.add(lbName);</p><p>  this.add(txtName);</p><p>  this.add(lbAge);</p><p>  this.add(txtAge);</p><p>  this.add(T

69、S);</p><p>  this.add(txtTs);</p><p>  this.add(btnAdd);</p><p>  this.add(btnreAdd);</p><p>  his.add(btnQuit);</p><p>  this.setSize(170, 400);</p>

70、<p>  this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);</p><p>  this.setVisible(true);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e

71、){</p><p>  if(e.getSource()==btnQuit){dispose();}</p><p>  if(e.getSource()==btnAdd){</p><p>  String id=txtId.getText();</p><p>  String name=txtName.getText();</p

72、><p>  String age=txtAge.getText();</p><p>  String ts=txtTs.getText();</p><p>  if(id.equals("")||name.equals("")||age.equals("")||ts.equals(""

73、)) {</p><p>  JOptionPane.showMessageDialog(this, "不允許有選項為空!");</p><p><b>  return;}</b></p><p>  Grade grade = new Grade();</p><p>  grade.setCou

74、rseName(name);</p><p>  grade.setGrade(Integer.parseInt(age));</p><p>  grade.setTerm(Integer.parseInt(age));</p><p>  boolean b = tss.addGrade(grade);</p><p><b>

75、  if(b)</b></p><p>  JOptionPane.showMessageDialog(this, "添加成功!");}</p><p>  //清空各選項,以便下次輸入學(xué)生信息</p><p>  if(e.getSource()==btnreAdd)</p><p>  {txtId.set

76、Text("");</p><p>  txtName.setText("");</p><p>  txtAge.setText("");</p><p>  txtTs.setText("");}</p><p><b>  }</b>&

77、lt;/p><p>  //列表時間監(jiān)聽以及做出的反應(yīng)</p><p><b>  }</b></p><p><b>  Grade 類</b></p><p>  package Bean;</p><p>  import java.io.Serializable;<

78、;/p><p>  public class Grade implements Serializable{</p><p><b>  /**</b></p><p><b>  * </b></p><p><b>  */</b></p><p>  p

79、rivate static final long serialVersionUID = 1L;</p><p>  String courseName = null ;</p><p>  String studentName = null ;</p><p>  String studentFaculty =null;</p><p>  

80、public String getStudentFaculty() {</p><p>  return studentFaculty;</p><p><b>  }</b></p><p>  public void setStudentFaculty(String studentFaculty) {</p><p>

81、;  this.studentFaculty = studentFaculty;</p><p><b>  }</b></p><p>  int grade = 0;</p><p>  int term = 0;</p><p>  public String getCourseName() {</p>

82、<p>  return courseName;</p><p><b>  }</b></p><p>  public String getStudentName() {</p><p>  return studentName;</p><p><b>  }</b></p

83、><p>  public int getGrade() {</p><p>  return grade;</p><p><b>  }</b></p><p>  public int getTerm() {</p><p>  return term;</p><p>

84、<b>  }</b></p><p>  public void setCourseName(String courseName) {</p><p>  this.courseName = courseName;</p><p><b>  }</b></p><p>  public void

85、 setStudentName(String studentName) {</p><p>  this.studentName = studentName;</p><p><b>  }</b></p><p>  public void setGrade(int grade) {</p><p>  this.gr

86、ade = grade;</p><p><b>  }</b></p><p>  public void setTerm(int term) {</p><p>  this.term = term;</p><p><b>  }</b></p><p><b&g

87、t;  }</b></p><p>  Serialvector類</p><p>  package Bean;</p><p>  import java.util.*;</p><p>  public class SerialVector implements java.io.Serializable{</p>

88、<p><b>  /**</b></p><p><b>  * </b></p><p><b>  */</b></p><p>  private static final long serialVersionUID = 1L;</p><p>  pri

89、vate Vector<Grade> vect=new Vector<Grade>();</p><p>  public void add(Object obj){</p><p>  this.vect.add((Grade) obj);</p><p><b>  }</b></p><p>

90、;  public Grade get(int arg0){</p><p>  if(vect.isEmpty())</p><p>  return null;</p><p>  Grade g= this.vect.get(arg0);</p><p>  vect.remove(arg0);</p><p>

91、;  return g;</p><p><b>  }</b></p><p>  public Vector<Grade> getVect() {</p><p>  return vect;</p><p><b>  }</b></p><p>  p

92、ublic void setVect(Vector<Grade> vect) {</p><p>  this.vect = vect;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  2.系統(tǒng)運行截圖</b&g

93、t;</p><p><b>  七.總結(jié):</b></p><p>  本管理系統(tǒng)作為管理系統(tǒng)的縮影,對模型進(jìn)行了簡化,代表性的實現(xiàn)了c/s結(jié)構(gòu)的成績管理系統(tǒng)。實現(xiàn)用戶封閉信息查詢(只準(zhǔn)許查個人信息),由于時間和能了問題,對老師,課程,學(xué)生等實體屬性以及管理系統(tǒng)功能進(jìn)行簡化處理,代表性的給出一些查詢,統(tǒng)計,報表功能,對數(shù)據(jù)表分表實現(xiàn)一定的優(yōu)化,因此可進(jìn)行屬性擴(kuò)展,有

94、一定的擴(kuò)展能力。此系統(tǒng)不是封閉系統(tǒng),需要在選課表,授課表,注冊表給定的條件下運行。</p><p>  在開發(fā)的過程中遇到困主要集中在于如何保持socket握手連接傳送數(shù)據(jù)的統(tǒng)一,如何保持代碼的調(diào)試的效率,對于軟件的良好分層及上下層數(shù)據(jù)的傳輸定義和代碼的重用以實現(xiàn)邏輯的清晰,對視圖的組件的動態(tài)控制。如何減少組件之間的耦合,實現(xiàn)邏輯的清晰。</p><p>  通過這次課程設(shè)計學(xué)會如何處理自

95、己遇到的問題,理解到獨立思考的能力的重要性以及合理利用優(yōu)秀設(shè)計模式的必要性;學(xué)會如何進(jìn)行代碼的跟蹤調(diào)試,實現(xiàn)junit測試,跟好的掌握了java開發(fā)軟件的的基本操作,以及面向?qū)ο笤O(shè)計的分析和思想;熟悉了eclipse的開發(fā)環(huán)境,用優(yōu)秀的框架減少自己寫代碼的工作量;懂得了團(tuán)隊開發(fā)的力量及良好交流的重大意義。更好的理解了復(fù)雜系統(tǒng)良好分層和良好耦合度帶來的代碼重用的必要性;明白軟件需求分析,軟件架構(gòu)的重要性。在實戰(zhàn)中鍛煉自己的開發(fā)能力,在技術(shù)

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論