学生成绩管理课设报告.docx

上传人:b****4 文档编号:3774260 上传时间:2022-11-25 格式:DOCX 页数:22 大小:168.45KB
下载 相关 举报
学生成绩管理课设报告.docx_第1页
第1页 / 共22页
学生成绩管理课设报告.docx_第2页
第2页 / 共22页
学生成绩管理课设报告.docx_第3页
第3页 / 共22页
学生成绩管理课设报告.docx_第4页
第4页 / 共22页
学生成绩管理课设报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

学生成绩管理课设报告.docx

《学生成绩管理课设报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理课设报告.docx(22页珍藏版)》请在冰豆网上搜索。

学生成绩管理课设报告.docx

学生成绩管理课设报告

 

题目:

学生成绩管理系统

学号:

姓名:

班级:

指导教师:

日期:

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.   

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1