课程设计-猜数字游戏 用户管理系统-课外兴趣小组管理
目录
课程设计任务书一...................................................................................................................... 1 课程设计任务书二...................................................................................................................... 2 课程设计任务书三...................................................................................................................... 3 题目 一 猜数字游戏.................................................................................................................. 4
一、 问题描述.................................................................................................................... 4
二、基本要求...................................................................................................................... 4
三、 类定义........................................................................................................................ 4
四、 主要成员方法描述.................................................................................................... 4
五、 测试数据及情况........................................................................................................ 5
六、 代码附录.................................................................................................................... 5
题目二 用户管理........................................................................................................................ 7
一、 问题描述.................................................................................................................... 7
二、基本要求...................................................................................................................... 7
三、类定义.......................................................................................................................... 7
五、测试数据及情况.......................................................................................................... 9
六、关键代码附录............................................................................................................ 10 题目三 课外兴趣小组管理...................................................................................................... 14
一、问题描述.................................................................................................................... 14
二、基本要求.................................................................................................................... 14
三、类定义........................................................................................................................ 14
四、主要成员方法描述.................................................................................................... 16
五、测试数据及情况........................................................................................................ 17
六、关键代码附录............................................................................................................ 20 结 论.......................................................................................................................................... 25 参考文献.................................................................................................................................... 26
山东建筑大学计算机科学与技术学院
课程设计任务书一
设计题目 猜数字游戏
从控制台获取玩家输入的数字(0到99之间的整数),如果不是数字,已知技术参则抛出异常。
数和设计要
求
1、首先定义了一个counter变量来
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
玩家猜测的次数,并直接初始化为0。
在打印一行游戏提示以后,便开始一个do-while语句。
2、在do-while语句中,首先用异常处理语句获取玩家的输入,如果玩家输入
不合法,提示以后用continue语句从头重新执行循环语句,等待玩家的输入。设计内容从而,guess变量一定包含一个合法的整数。之后要对玩家的输入进行判断。与步骤 如果玩家的猜测太大或者太小,都做出提示。接着把计数器增加1,
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示玩家
做过一次猜测。最后便是do-while语句的判断:当玩家猜测的数字和随机产生
的答案不同,则再次进入循环,否则便结束循环
3、程序设计、实现、调试
4、完成课程设计说明书
1、设计工作4学时
设计工作计
2、实现与调试12学时
划与进度安
3、课程设计说明书4学时 排
1、考勤20%
设计考核要
2、课程设计说明书50%。
求
3、答辩30%
指导教师(签字): 教研室主任(签字)
1
山东建筑大学计算机科学与技术学院
课程设计任务书二 设计题目 用户管理系统
1、该系统主要处理用户的相关信息。
2、用户信息主要包括:编号、用户名、用户类型、联系方式等内容。 已知技术参
3、用户类型信息主要包括:编号、类型名称、权限等级等内容 数和设计要
求 4、完成以下的操作:用户信息、用户类型信息的录入、修改、删除和查
询
1、建立用户类、用户类型类
2、用户、用户类型信息的初始化
3、用户、用户类型信息的添加、修改、删除、查找
4、用户、用户类型信息的输出 设计内容
5、对用户信息按权限排序 与步骤
6、将用户信息保存为文件
7、程序设计、实现、调试
8、完成课程设计说明书
1、设计工作4学时
设计工作计
2、实现与调试12学时
划与进度安
3、课程设计说明书4学时 排
1、考勤20%
2、课程设计说明书50% 设计考核要
3、答辩30% 求
指导教师(签字): 教研室主任(签字):
2
山东建筑大学计算机科学与技术学院
课程设计任务书三 设计题目 课外兴趣小组管理
1、 该系统主要处理课外兴趣小组的相关信息。 已知技术参
2、 学生信息主要包括:学号、姓名、性别、兴趣爱好等内容。
数和设计要
3、 兴趣主要包括:兴趣编号、兴趣类型等内容。 求
4、 完成以下的操作:实现学生兴趣信息的添加、修改、删除和查询。
1、建立学生类、兴趣类、兴趣类型类
2、学生、兴趣、兴趣类型信息的初始化
3、学生、兴趣、兴趣类型信息的添加、修改、删除、查找 设计内容
4、学生兴趣信息的输出
与步骤
5、将学生兴趣信息保存为文件
6、程序设计、实现、调试
7、完成课程设计说明书
1、设计工作4学时
设计工作计
2、实现与调试12学时
划与进度安
3、课程设计说明书4学时 排
1、考勤20%
设计考核要2、课程设计说明书50%
求 3、答辩30%
指导教师(签字): 教研室主任(签字):
3
题目 一 猜数字游戏
一、问题描述
运用Java语言实现猜数字游戏相关信息,利用do-while语句实现。 二、基本要求
从控制台获取玩家输入的数字(0到99之间的整数),如果不是数字,则抛出异常。
三、类定义
GuessNumber.java
该类负责产生随机数,提示用户输入,判断用户输入的数字是否正确,计数器+1的功
能并给输入者100分,猜错一次减十分,输出玩家所得分数。
四、主要成员方法描述
GuessNumber.java
方法名称 方法功能 方法备注
Main()方法 程序运行 主方法
createNumber()方法 系统产生随机数 构造方法
GuessNumber()方法 对玩家的输入进行判断,计数方法
器+1
4
五、测试数据及情况
六、代码附录
public void GuessNumber() throws IOException{
Scanner reader=new Scanner(System.in);
do {
userInt=reader.nextInt();//获取玩家的输入
if(userInt<0||userInt>99){
System.out.println("您输入的数超出范围,请您输入0到99之间的整数!");
}
// 对玩家的输入进行判断
if (userInt> randInt){
System.out.println("猜大啦,往小点猜");
}
if (userInt < randInt){
System.out.println("猜小啦,往大点猜");
5
}
// 计数器增加一
counter++;
num=num-10;
if(counter<0) break;
System.out.println("这是第 次"+counter+"猜数~");
System.out.println("你此时的得分是:"+num+"\n");
}while (userInt!=randInt &&counter!=10);
System.out.println("猜对了~");
}
6
题目二 用户管理
一、问题描述
编写系统处理用户信息。
二、基本要求
完成用户信息、用户类型信息的录入、修改、删除和查询及完成用户类型信息主要包括:
编号、类型名称、权限等级等内容。
三、类定义
定义了User来继承WindowAdapter类,通过各种方法来实现程序。
7
程序流程图:
开始
用户登录
密码错误
判断登 用户不存在 用户注册 录状态
添加用户 修改用户 删除用户 查询用户
输入对象 输入信息 输入对象 输入信息
否 否 否 否 检查信息是检查信息是判断信息输判断信息输
否存在 否存在 入是否正确 入是否正确
是 是 是 是
查询到信息 成功删除信息 成功添加信息成功添加信息 成功修改信息
结束
8
四、主要成员方法描述
方法名称 方法功能 方法备注 User()方法 完成系统主界面的设计 构造方法 Add()方法 添加用户的界面设计 方法 Xiu()方法 修改用户的界面设计 方法 Dele()方法 删除用户的界面设计 方法 Refer()方法 查询用户的界面设计 方法 actionPerformed(ActionEvent e)
五、测试数据及情况
图1用户添加及主界面
9
图2用户查询等
六、关键代码附录
public Register() {
frame = new JFrame("用户登录");
frame.setLayout(new GridLayout(2, 1));
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
jp1.add(label[0]);
jp1.add(numJtf);
jp2.add(label[1]);
jp2.add(pass);
jp3.add(button[0]);
jp3.add(button[1]);
jp3.add(button[2]);
numJtf.addActionListener(this);
pass.addActionListener(this);
button[0].addActionListener(this);
button[1].addActionListener(this);
button[2].addActionListener(this);
frame.add(jp1);
frame.add(jp2);
frame.add(jp3);
frame.setBounds(300, 300, 300, 300);
frame.setVisible(true);
frame.validate();
10
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public User() {
frame = new JFrame("usemanagesystem");
JPanel jp = new JPanel();
JButton Frame_add = new JButton("添加用户");
JButton Frame_xiu = new JButton("修改用户");
JButton Frame_dele = new JButton("删除用户");
JButton Frame_refer = new JButton("查询用户");
JButton Frame_exit = new JButton("退出系统");
jp.add(Frame_add);
jp.add(Frame_xiu);
jp.add(Frame_dele);
jp.add(Frame_refer);
jp.add(Frame_exit);
Frame_add.addActionListener(this);
Frame_xiu.addActionListener(this);
Frame_dele.addActionListener(this);
Frame_refer.addActionListener(this);
Frame_exit.addActionListener(this);
result.setEditable(false);
JScrollPane jsp = new JScrollPane(result);
frame.add(BorderLayout.NORTH, jp);
frame.add(BorderLayout.CENTER, jsp);
frame.setSize(500, 330);
frame.setLocation(300, 330);
frame.setVisible(true);
frame.setResizable(false);
frame.addWindowListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}//主界面
public void Add() {
frame1 = new JFrame("添加用户");
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
JPanel jp4 = new JPanel();
JPanel jp5 = new JPanel();
JPanel jp6 = new JPanel();
frame1.setLayout(new GridLayout(6, 1));
jp1.add(label[0]);
jp1.add(id);
jp2.add(label[1]);
jp2.add(name);
11
jp3.add(label[2]);
jp3.add(type);
jp4.add(label[3]);
jp4.add(grade);
jp5.add(label[4]);
jp5.add(phone);
JButton add = new JButton("添加");
JButton clear = new JButton("清空");
jp6.add(add);
jp6.add(clear);
id.addActionListener(this);
name.addActionListener(this);
type.addActionListener(this);
grade.addActionListener(this);
phone.addActionListener(this);
add.addActionListener(this);
clear.addActionListener(this);
frame1.add(jp1);
frame1.add(jp2);
frame1.add(jp3);
frame1.add(jp4);
frame1.add(jp5);
frame1.add(jp6);
frame1.setBounds(300, 280, 210, 230);
frame1.setVisible(true);
frame1.setResizable(false);
}//添加用户的方法
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String str;
str = e.getActionCommand();// 记录按钮的名称
if (str.equals("添加用户")) {
id.setText("");
Add();
} else if (str.equals("修改用户")) {
id.setText("");
Xiu();
} else if (str.equals("删除用户")) {
id.setText("");
Dele();
} else if (str.equals("查询用户")) {
id.setText("");
Refer();
12
} else if (str.equals("添加")) {
try {
try {
Class.forName(DBDriver);// 加载驱动器
} catch (ClassNotFoundException el) {
el.printStackTrace();
}
try {
con = DriverManager.getConnection(connectionStr, "root",
"139931");// 建立数据库连接
pstmt1 = con.prepareStatement(sqlExpression1);
pstmt2 = con.prepareStatement(sqlExpression3);
13
题目三 课外兴趣小组管理 一、问题描述
编程处理课外兴趣小组的相关信息,。
二、基本要求
实现学生兴趣信息的添加、修改、删除和查询等。
三、类定义
1、主类:Students 此类中定义了JFrame图形界面对学生姓名,学号,性别,兴趣等信息的操作
2、Habits类:此类定义图形界面,对兴趣的编号,名称,类型等信息操作
14
程序流程图:
开始
学生类添加学兴趣类添加兴
生信息 趣信息
输入信息 输入信息
否 否 判断信息输判断信息输
入是否正确 入是否正确
成功添加信息 成功添加信息
是 是 是否继续是否继续
输入 输入
回到主界面 回到主界面
是
是
显示兴趣信息 查学生信息
删除(修改)信息
信息是否存 信息是否存在 查询兴趣信息 在 删除(修
改)信息
否 否
没有学生信息 兴趣信息不存 15 删除(修改)成功 在
四、主要成员方法描述
1、学生类:
方法名称 方法作用 方法备注 Students()方法 主要定义图形界面的各种组构造方法
件
Main()方法 实例化一个对象显示图形界主方法
面,并建立与数据库的链接 actionPerformed()方法 事件监听器,对应各种操作 方法 changeSure()方法 执行保存修改后的信息的方方法
法,将新数据存入数据库;
Add()方法 点击后更改界面为输入新信方法
息的界面
Exist()方法 利用文本框得到的学生学号方法
判断数据库中是否存在文本
框得到的学号的信息;
Sure()方法 添加新信息的保存操作,将信方法
息存入数据库
Back()方法 返回到主界面,设置图形界面方法
为初始界面的形式
2、兴趣类
方法名称 方法作用 方法备注 Delete()方法 点击删除信息后执行,删除本方法
条信息
Update()方法 点击修改信息按钮后执行的方法
方法,将文本框设置为可编辑 updateSure()方法 执行保存修改后的信息,将新方法
16
数据存入数据库
Habits()方法 定义图形界面的各种组件及构造方法
链接数据库等操作
addSure()方法 添加新信息的保存操作,将信方法
息存入数据库
Find()方法 使用文本框得到的学号从数方法
据库搜索出信息,并显示到界
面
五、测试数据及情况
17
图2 显示信息
18
图3 兴趣信息
图4 添加学生信息
19
六、关键代码附录
Habits() {
// TODO Auto-generated constructor stub
f2 = new JFrame("学生兴趣信息");
north = new JPanel(new FlowLayout());
center = new JPanel(new GridLayout(5, 1));
south = new JPanel(new FlowLayout());
c1 = new JPanel(new FlowLayout());
c2 = new JPanel(new FlowLayout());
c3 = new JPanel(new FlowLayout());
c4 = new JPanel(new FlowLayout());
center.add(new JLabel());
center.add(c1);
center.add(c2);
center.add(c3);
center.add(c4);
kong = new JLabel("学生兴趣信息");
north.add(kong);
nameLabel = new JLabel("兴趣名称:");
numberLabel = new JLabel("兴趣编号:");
habitLabel = new JLabel("兴趣类型:");
nameText = new JTextField(10);
numberText = new JTextField(18);
habitText = new JTextField(12);
c2.add(nameLabel);
c2.add(nameText);
20
c1.add(numberLabel);
c1.add(numberText);
c3.add(habitLabel);
c3.add(habitText);
c4.add(new JLabel());
addSure = new JButton("确定");
addSure.addActionListener(this);
updateSure = new JButton("确定");
updateSure.addActionListener(this);
delete = new JButton("删除信息");
delete.addActionListener(this);
update = new JButton("修改信息");
update.addActionListener(this);
south.add(addSure);
south.add(update);
south.add(updateSure);
south.add(delete);
f2.add(north, BorderLayout.NORTH);
f2.add(center, BorderLayout.CENTER);
f2.add(south, BorderLayout.SOUTH);
f2.setSize(350, 300);
f2.setVisible(true);
f2.validate();
String DBDriver = "com.mysql.jdbc.Driver";
String connectionStr1 = "jdbc:mysql://localhost:3306/test";
Connection con;
try {
Class.forName(DBDriver);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
try {
con=(Connection) DriverManager.getConnection(connectionStr1,
"root", "139931");
stmt = (Statement) con.createStatement();
} catch (SQLException e2) {
e2.printStackTrace();
}
}
21
Students() {
f1 = new JFrame("学生兴趣管理系统");
north = new JPanel(new FlowLayout());
center = new JPanel(new GridLayout(6, 1));
south = new JPanel(new FlowLayout());
c1 = new JPanel(new FlowLayout());
c2 = new JPanel(new FlowLayout());
c3 = new JPanel(new FlowLayout());
c4 = new JPanel(new FlowLayout());
c5 = new JPanel(new FlowLayout());
center.add(new JLabel());
center.add(c1);
center.add(c2);
center.add(c3);
center.add(c4);
center.add(c5);
numLabel = new JLabel("学号:");
nameLabel = new JLabel("姓名:");
sexLabel = new JLabel("性别:");
kong = new JLabel();
kong.setVisible(false);
habitLabel = new JLabel("兴趣名称:");
numText = new JTextField(10);
numText.addActionListener(this);
nameText = new JTextField(10);
sexText = new JTextField(10);
habitText = new JTextField(10);
addp = new JButton("兴趣信息");
addp.setVisible(false);
addp.addActionListener(this);
snamel = new JLabel("姓名");
snamet = new JTextField(10);
snamet.addActionListener(this);
nameS = new JButton("确定");
nameS.addActionListener(this);
numSearch = new JButton("确定");
numSearch.addActionListener(this);
add = new JButton("添加");
add.addActionListener(this);
delete = new JButton("删除信息");
delete.setVisible(false);
delete.addActionListener(this);
22
update = new JButton("修改");
update.setVisible(false);
update.addActionListener(this);
toHabit = new JButton("兴趣信息");
toHabit.addActionListener(this);
toHabit.setVisible(false);
back = new JButton("返回");
back.setVisible(false);
back.addActionListener(this);
addSure = new JButton("确定");
addSure.setVisible(false);
addSure.addActionListener(this);
changeSure = new JButton("确定");
changeSure.addActionListener(this);
changeSure.setVisible(false);
north.add(numLabel);
north.add(numText);
north.add(numSearch);
c1.add(nameLabel);
c1.add(nameText);
c2.add(sexLabel);
c2.add(sexText);
c3.add(habitLabel);
c3.add(habitText);
c4.add(snamel);
c4.add(snamet);
c4.add(nameS);
c5.add(addp);
c1.setVisible(false);
c2.setVisible(false);
c3.setVisible(false);
c4.setVisible(true);
c5.setVisible(false);
south.add(add);
south.add(delete);
south.add(update);
south.add(toHabit);
south.add(addSure);
south.add(back);
south.add(changeSure);
f1.add(north, BorderLayout.NORTH);
f1.add(center, BorderLayout.CENTER);
f1.add(south, BorderLayout.SOUTH);
23
f1.setSize(350, 300);
f1.setVisible(true);
f1.validate();
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Students();
String DBDriver = "com.mysql.jdbc.Driver";
String connectionStr = "jdbc:mysql://localhost:3306/test";
Connection con;
try {
Class.forName(DBDriver);
(ClassNotFoundException e1) { } catch
e1.printStackTrace();
}
try {
con = (Connection) DriverManager.getConnection(connectionStr,
"root", "139931");
stmt = (Statement) con.createStatement();
} catch (SQLException e2) {
e2.printStackTrace();
}
}
24
结 论
在本次课程设计中遇到很多困难,如数据库的搭建,一开始都不知道这是什么东西,还有图形界面的组件有点多老是记不住,通过看平时上课时的材料和询问同学才慢慢解决编程中也遇到很多不知道不会用的方法,通过书籍的查阅网上的浏览循序渐进的解决所不会的,通过这次课程设计加强了自己自学钻研能力也增进了和同学之间的交流,尽管java的学习路还很漫长,但经过这次比较困难的课程设计,懂的了平时学习的积累过程很重要,与同学们的交流老师的交流也很重要,以后的生活中我会多花时间在学习上,争取能够把java学得更好。
25
参考文献
[1] 刘宝林. Java程序设计与案例. 高等教育出版社,2004。
[2]RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
[3]RFC 1866 - Hypertext Markup Language - 2.0
[4]刘勇.《Java实例入门》 中国青年出版社, 2002-01-01。
[5]李刚.《疯狂java讲义》电子工业出版社,2012-01
[6](美)卡尔弗特,周恒译.《Java TCP/IP Socket编程(原书第2版)机械工业》。
26