学生成绩管理课设报告.docx
- 文档编号:3774260
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:22
- 大小:168.45KB
学生成绩管理课设报告.docx
《学生成绩管理课设报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理课设报告.docx(22页珍藏版)》请在冰豆网上搜索。
学生成绩管理课设报告
题目:
学生成绩管理系统
学号:
姓名:
班级:
指导教师:
日期:
2010年1月1日
一、 实验内容
1、 完成学生成绩管理系统的编写。
2、 完成实验报告的写作,并通过本机房网络提交,或课后email提交(cylincylin@)
二、 实验要求
1、理解并掌握图形界面的设计。
2、理解整体算法的思路,即actionPerformed()的算法。
3、输入学生姓名、成绩,完成信息的录入,并将数据存储到文件中。
4、输入学生姓名,从文件中查询该姓名的学生的成绩,找到一个成绩后可以选择是否继续查询。
5、输入学生姓名和新的成绩,修改文件中该姓名的学生的所有成绩为新的成绩。
6、输入学生姓名,删除文件中该姓名的学生的所有成绩。
7、输入学生姓名和成绩,删除文件中该姓名的学生的单次成绩。
8、进一步学习JAVA的编程思想。
9、理解并掌握文件的操作。
三、 实验目的
1、理解并掌握图形界面的设计。
2、理解整体算法的思路,即actionPerformed()的算法。
3、进一步学习JAVA的编程思想。
4、理解并掌握文件的操作。
四、 实验条件
编译器:
eclipse
Java环境:
JDK6.0
操作系统:
WindowsXPSP2
五、 思路分析
1、 为使程序美观,使用了多个JPanel和不同的LayoutManager(比如FlowLayout、BorderLayout)进行布局设计,同时限定了窗体的大小;
2、 为避免数据错误,每次操作前检查姓名和成绩是否为空、成绩是否为整数;
3、 增删改操作时,使用布尔型变量标记操作是否完成,并弹出相应提示;
4、 修改和删除操作,先将文件中的内容暂存到内存中,再重新写入符合条件的信息;
5、 查询操作,每次查询到结果时更新成绩,并询问是否需要继续查询;
6、 删除操作,分为删除指定姓名所有成绩和删除指定姓名单次成绩两种状况。
六、 程序代码
【StudentManager.java】
1.importjavax.swing.*;
2.importjava.awt.*;
3.importjava.awt.event.*;
4.importjava.io.*;
5.
6./**
7.*学生成绩管理系统类
8.*
9.*@authorCyin
10.*@authorLee
11.*@authorYOYO
12.*@authorSkittles
13.*@since2008-12-6
14.*@version1.0
15.*/
16.publicclassStudentManagerextendsJFrame{
17.
18. /**
19. *当前容器
20. */
21. ContainercurrentContainer=this;
22.
23. /**
24. *存储的文件名
25. */
26. StringfileName=newString("data.txt");
27.
28. /**
29. *显示标题文本
30. */
31. JLabeltitleLabel=newJLabel("学生成绩管理系统");
32.
33. /**
34. *标题面板
35. */
36. JPaneltitlePanel=newJPanel();
37.
38. /**
39. *显示姓名文本
40. */
41. JLabelnameLabel=newJLabel("姓名");
42.
43. /**
44. *显示成绩文本
45. */
46. JLabelscoreLabel=newJLabel("成绩");
47.
48. /**
49. *姓名文本框
50. */
51. JTextFieldnameTextField=newJTextField(15);
52.
53. /**
54. *成绩文本框
55. */
56. JTextFieldscoreTextField=newJTextField(15);
57.
58. /**
59. *输入面板
60. */
61. JPanelinputPanel=newJPanel();
62.
63. /**
64. *添加按钮
65. */
66. JButtoninsertBtn=newJButton("录入");
67.
68. /**
69. *查询按钮
70. */
71. JButtonsearchBtn=newJButton("查询");
72.
73. /**
74. *修改按钮
75. */
76. JButtonmodifyBtn=newJButton("修改");
77.
78. /**
79. *删除按钮
80. */
81. JButtondeleteBtn=newJButton("删除");
82.
83. /**
84. *管理面板
85. */
86. JPanelmanagePanel=newJPanel();
87.
88. /**
89. *按钮监听器
90. */
91. ButtonActionListenerbtnAction=newButtonActionListener();
92.
93. /**
94. *构造器:
初始化窗体
95. */
96. publicStudentManager(){
97. this.setSize(280,200);
98. this.setLocation(300,300);
99. this.setResizable(false);
100. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
101. this.setTitle("学生成绩管理系统");
102.
103. /*
104. *将窗体划分为上中下三个块
105. */
106. this.setLayout(newBorderLayout());
107. this.add(titlePanel,"North");
108. this.add(inputPanel,"Center");
109. this.add(managePanel,"South");
110.
111. /*
112. *第一块用来放标题面板==
113. */
114. titlePanel.setLayout(newFlowLayout(FlowLayout.CENTER,0,10));
115. titlePanel.add(titleLabel);
116. titleLabel.setFont(newFont("黑体",Font.PLAIN,16));
117.
118. /*
119. *第二块放输入面板
120. */
121. inputPanel.setLayout(newFlowLayout(FlowLayout.CENTER,20,10));
122. inputPanel.add(nameLabel);
123. inputPanel.add(nameTextField);
124.
125. inputPanel.add(scoreLabel);
126. inputPanel.add(scoreTextField);
127.
128. /*
129. *第三块是管理面板
130. */
131. managePanel.setLayout(newFlowLayout(FlowLayout.CENTER,5,10));
132. managePanel.add(insertBtn);
133. managePanel.add(searchBtn);
134. managePanel.add(modifyBtn);
135. managePanel.add(deleteBtn);
136.
137. /*
138. *为按钮注册按钮监听器
139. */
140. insertBtn.addActionListener(btnAction);
141. searchBtn.addActionListener(btnAction);
142. modifyBtn.addActionListener(btnAction);
143. deleteBtn.addActionListener(btnAction);
144.
145. /*
146. *显示窗体
147. */
148. this.setVisible(true);
149. }
150.
151. /**
152. *按钮监听类
153. */
154. classButtonActionListenerimplementsActionListener{
155.
156. publicvoidactionPerformed(ActionEvente){
157. /*
158. *检查是否输入了姓名
159. */
160. Stringname=nameTextField.getText().trim();
161. if(name.length()==0){
162. JOptionPane.showMessageDialog(currentContainer,"输入的姓名为空!
","操作失败",JOptionPane.ERROR_MESSAGE);
163. return;
164. }
165.
166. /*
167. *是否要求查询
168. */
169. if(e.getSource()==searchBtn){
170. search(name); // 执行查询方法,进行查询操作
171. return;
172. }
173.
174. intscore=0;
175.
176. /*
177. *是否要求删除
178. */
179. if(e.getSource()==deleteBtn){
180. try{
181. score=Integer.parseInt(scoreTextField.getText().trim());
182. intchoose=JOptionPane.showConfirmDialog(currentContainer,"确定要删除该同学的这次成绩吗?
","确认删除",JOptionPane.YES_NO_CANCEL_OPTION);
183. if(choose==JOptionPane.YES_OPTION){
184. booleanflag=delete(name,score); // 当确定时删除名字为name的同学成绩为score的成绩一次
185.
186. if(flag){
187. nameTextField.setText(""); // 清空姓名框
188. scoreTextField.setText(""); // 清空成绩框
189.
190. JOptionPane.showMessageDialog(currentContainer,"已删除该同学的这次成绩!
","删除成功!
",JOptionPane.PLAIN_MESSAGE);
191. }else{
192. JOptionPane.showMessageDialog(currentContainer,"该同学并没有这个成绩!
","删除失败!
",JOptionPane.PLAIN_MESSAGE);
193. }
194. }
195. }catch(NumberFormatExceptione1){
196. // 当catch到NumberFormatException时说明parseInt失败:
没有输入成绩,此时应删除所有成绩
197.
198. intchoose=JOptionPane.showConfirmDialog(currentContainer,"确定要删除该同学的所有成绩吗?
","确认删除",JOptionPane.YES_NO_CANCEL_OPTION);
199. if(choose==JOptionPane.YES_OPTION){
200. booleanflag=delete(name); // 当确定时删除名字为name的同学的所有成绩
201.
202. if(flag){
203. nameTextField.setText(""); // 清空姓名框
204. scoreTextField.setText(""); // 清空成绩框
205.
206. JOptionPane.showMessageDialog(currentContainer,"已删除该同学的所有成绩!
","删除成功!
",JOptionPane.PLAIN_MESSAGE);
207. }else{
208. JOptionPane.showMessageDialog(currentContainer,"该同学没有成绩!
","删除失败!
",JOptionPane.PLAIN_MESSAGE);
209. }
210. }
211. }
212. return;
213. }
214.
215. /*
216. *检查是否输入了成绩
217. */
218. try{
219. score=Integer.parseInt(scoreTextField.getText().trim());
220. }catch(Exceptione1){
221.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 管理 报告