重庆科技学院《Web应用程序设计》课程设计报告
摘要
随着社会信息化程序不断提高,越来越多的软件开发人员需要开发Web应用程序。目前网络编程主要有两大技术体系:基于JavaEE的网络开发和基于.NET的网络开发。JavaEE技术以其开放性,灵活性的技术成熟度,赢得了广大编程爱好者的青睐,并且在目前企业级信息系统开发领域也占领了很大的市场,取得了许多成功的案例。
此次课程设计我使用JavaEE编程技术,利用MyEclipse开发工具设计了一个学生信息管理系统。用户的身份分为学生和管理员,用户登陆系统时系统根据用户身份提供相应的功能。学生的功能包括:学生信息的查询,个人信息的修改,密码修改和留言。当用户登陆时若有新留言,系统提示用户查看新留言。管理员在此基础上还有添加学生信息和删除学生信息的功能,修改的权限也大于学生。
本系统采用JSP 和Servlet 结合,JSP和JavaBean结合的技术。通过JDBC连接到数据库,实现数据库的操作。
关键词:JavaEE编程技术 Servlet JavaBean 数据库
目录
一、需求分析 (1)
1.1功能需求 (1)
1.2环境需求 (1)
二、概要设计 (2)
2.1系统总体结构 (2)
2.2开发环境的配置 (2)
三、详细设计 (3)
3.1数据库设计 (3)
3.1.1数据字典 (3)
3.1.2逻辑设计 (4)
3.1.3物理设计 (4)
3.1.4数据库实施 (5)
3.1.5 JAVAEE数据库连接 (6)
3.2功能设计 (7)
3.2.1登陆功能 (7)
3.2.2查询功能 (9)
3.2.3添加功能 (11)
3.2.4 删除功能 (13)
3.2.5修改功能 (15)
3.2.6留言功能 (17)
四、调试与测试 (20)
4.1学生登陆测试 (20)
4.2管理员登陆测试 (22)
五、总结 (25)
参考文献: (26)
致谢 (27)
一、需求分析
1.1功能需求
前台功能:
1)学生信息浏览功能:学生和管理员都可进行查询和浏览,学生可以按学号、姓名查询和查询全部学生信息,管理员可以按班级,专业查询。查询时先要选择查询方式,再输入查询的关键词。查询全部学生信息时不需要输入关键词。
2)学生个人信息维护功能:学生能对自己部分信息(年龄、email、电话)的修改功能,而部分信息(学号、姓名、性别、专业、班级)不能做修改。修改时先读取个人信息到文本框中,学生可以在文本框中对个人信息修改。不能修改的信息对应的文本框为只读。修改完成后保存即可。
3)留言版:学生可以有针对性的向其他同学进行信息留言,留言时需要输入收信人的学号和内容即可,留言时获取系统时间,留言人为登陆时系统记录的学号对应的姓名。对方登陆后,若有新留言可以自动提示,并设有查询新留言的超链接。
后台功能:
1) 管理员可按照班级对学生个人信息进行管理,班级信息管理包括按班级查询学生信息,修改班级信息,删除班级信息,添加班级信息。
2)管理员可对学生基本信息进行录入,查询、添加、修改、删除。管理员查询是在学生查询的基础上新增加按班级,按专业对学生进行查询。添加学生信息时只需将要添加的学生信息输入对应的文本框中。修改学生信息时先查询出修改学生的信息查询显示在文本框中,修改时只需要将信息输入到对应的文本框中,不能修改的信息对应的文本框设为为只读,管理员可以修改除了学号以外的其它信息。删除时先查询出要删除的学生信息,再确认删除。
3)管理员可动态添加班级信息,对班级信息进行管理和设置
1.2环境需求
根据系统的基本功能需求,以及客户的信息系统环境,计划采用浏览器/服务器模式来
构建管理系统,这样方便维护和使用。同时,根据客户对技术的具体建议,计划采用 J2EE 技术来开发。具体的软硬件环境要求如下:
(1)硬件环境:采用普通办公用个人计算机作为服务器即可。
(2)操作系统:可以采用 Windows XP 以上系统。
(3)数据库系统:采用Mysql数据库
(4)Web服务器:采用Tomcat5以上系统。
(5)Java运行环境:采用 JRE 1.5以上中文版本。
(6)客户端:采用浏览器工具即可。
二、概要设计
2.1系统总体结构
按照系统的需求要求,可以把系统功能进行分解,以便按照每个功能模块的要求分别实现对应的功能。系统总体结构如下图2.1所示:
图2.1系统结构图
用户的身份分为学生和管理员,用户登陆系统时系统根据用户身份提供相应的功能。系统提供给学生的查询方式有按学号查询、按姓名查询和查询全部学生信息;学生可以修改部分个人信息,对于像学号、班级、专业这样的信息学生不能作修改;学生可以给任何用户留言,留言时系统会获取留言人和留言时间。系统提供给管理员的查询方式在学生的基础上增加了按班级查询、按专业查询和查询管理员信息;管理员可以向学生库中添加学生信息和从学生库中删除学生信息;管理员可以修改除学号以外的所有学生信息;管理员在留言时系统会在获取到的管理员姓名前加入“管理员”的字样,以提醒收信人,此信息是来自于管理员。
2.2开发环境的配置
由于采用了J2EE模型2的方式,因此只要安装好需求分析中提出的软件、硬件环境要求就可以了。另外,为了便于开发,还要安装一套开发工具,推荐使用 Eclipse或者MyEclipse,其中提供了方便的编程界面。
本系统没有其他的插件或者 API,当安装好这些软件后,就可以进行开发了。其中要注意的就是版本一致性问题,强烈建议采用最新版本的开发工具。
本系统采用了Mysql数据库系统,建议安装 5.0以上版本。最新版本可以到网站(https://www.wendangku.net/doc/e412511058.html,)上去下载。
三、详细设计
3.1数据库设计
3.1.1数据字典
本系统中所用到的数据库数据信息如下表如示:
3.1.2逻辑设计
根据系统需求和设计的规划,可以建立一个数据库,并在其中建立几个表格,分别用来存储各个功能模块的数据信息。E-R图如图3.1所示
图3.1E-R图
3.1.3物理设计
E-R图中实体与实体之间的关系,可以进一步转化为相应的数据模型,目前很多的DBMS 只支持关系、网状、层次三种数据模型,尤其是关系模型,以其优越的性能赢得了很大的市场。对某一种数据模型,各个机器又有不同的限制。
图3.2物理模型
3.1.4数据库实施
按上述步骤建立数据库,如图3.3所示,表中学生表属性如图3.4所示,管理员表录图3.5所示,留言表如图3.6所示。
图3.3数据库表
图3.4学生表属性
图3.5管理员表属性
图3.6留言表属性
3.1.5 JAVAEE数据库连接
连接类如下,连接到本地IP下的mysql数据库的student数据库中,连接身份为“root”连接密码为“413622”
public class DB {
public static Connection getConn() {
Connection conn = null;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/stude nt", "root", "413622");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static Statement createStmt(Connection conn) {
Statement stmt = null;
try {
stmt = conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return stmt;
}
public static ResultSet executeQuery(Statement stmt, String sql) { ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static ResultSet executeQuery(PreparedStatement preparedstmt)
{
ResultSet rs = null;
try {
rs = preparedstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static PreparedStatement prepareStmt(Connection conn, String sql) { PreparedStatement pstmt = null;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
}catch (SQLException e) {
e.printStackTrace();
}
return pstmt;
}
public static void close(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Statement stmt) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}否
3.2功能设计
3.2.1登陆功能
先获取主界面文本框中输入的用户名、密码和登陆方式。登陆身份若是管理员则
administrator.checkManUser(conn, username,password)函数对比数据库中管理员表的内容,登陆成功则跳到管理员主页面。若是学生则利用student.checkStuUser(conn, username,password)函数对比数据库中学生表中的内容,登陆成功则跳到学生主页面,程序流程如图3.7所示
否
否
图3.7登陆流程图
登陆功能关键代码如下:
username=request.getParameter("username");
password=request.getParameter("password");
radio = request.getParameter("radio");
if(radio.equals("1"))
{
try {
if (administrator.checkStuUser(conn, username,password)) {
rd =
this.getServletContext().getRequestDispatcher("/StuMain.jsp");
rd.forward(request,response);
}else {
rd=this.getServletContext().getRequestDispatcher("/login.jsp");
rd.forward(request,response);
}
} catch (Exception e) {
rd = this.getServletContext().getRequestDispatcher("/login.jsp");
rd.forward(request,response);
}
}else
{
try {
if (student.checkManUser(conn, username,password)) { rd=this.getServletContext().getRequestDispatcher("/AdmMain.jsp");
rd.forward(request,response);
}else {
rd =
this.getServletContext().getRequestDispatcher("/login.jsp");
rd.forward(request,response);
}
} catch (Exception e) {
rd = this.getServletContext().getRequestDispatcher("/login.jsp");
rd.forward(request,response); }
}
checkManUser(conn, username,passwo)函数与checkStuUser(conn, username,password)类似,下面以管理员登陆为例说明:当用户名和密码与数据库中相同时返回值为TURE,否则返回值为FALSE
public static boolean checkManUser(Connection conn, String username,String password) throws Exception {
String strSql;
Statement stmt;
ResultSet rs;
strSql = "select * from administrator where number='" + username
+ "' and password='" + password + "'";
stmt = DB.createStmt(conn);
rs = DB.executeQuery(stmt, strSql);
if (rs.next()) {
return true;
} else {
return false;
}
}
3.2.2查询功能
先获取下拉框的值,赋值给S。S的作用是记录查询方式用的,学生查询方式有学号、姓名和全部学生信息。再获取输入的关键词,赋值给keyword,keyword记录查询关键词。再利用前面提到的student.findstudent(conn, s, keyword)函数处理。查询成功将查询到的信息显示出来,查询失败则显示提示信息。查询程序流程如图3.8所示。
图3.8查询流程图
程序关键代码如下:
java.sql.Connection conn=null;
java.sql.ResultSet rs=null;
conn = DB.getConn();
String s = request.getParameter("combobox1");
String keyword = (String)request.getParameter("search");
try {
rs = student.findstudent(conn, s, keyword);
}catch(java.sql.SQLException e){
out.println(e.toString());
}finally{
if(conn!=null) conn.close();
}
findstudent(conn, s, keyword)函数位于student类中,s的值为“1”为按学号查询,“2”为按姓名查询,“3”为查询全部学生信息,“4”为按班级查询,“5”为按专业查询,“6”为查询管理员信息。学生查询权限为1、2、3,管理员可以是1、2、3、4、5、6关键代码如下:
public static ResultSet findstudent(Connection conn,String s,String keyword) throws SQLException
{
ResultSet rs = null;
java.sql.PreparedStatement preparedStmt = null;
if(s.equals("1"))
{
preparedStmt = conn.prepareStatement("select * from studentinfor where sno = '"+keyword+"'");
}
else if(s.equals("2"))
{
preparedStmt = conn.prepareStatement("select * from studentinfor where sname = '"+keyword+"'");
}
else if(s.equals("3"))
{
preparedStmt = conn.prepareStatement("select * from studentinfor");
}
else if(s.equals("4"))
{
preparedStmt = conn.prepareStatement("select * from studentinfor where classname = '"+keyword+"'");
}
else if(s.equals("5"))
{
preparedStmt = conn.prepareStatement("select * from studentinfor where department = '"+keyword+"'");
}
else{
preparedStmt = conn.prepareStatement("select * from administrator");
}
rs = preparedStmt.executeQuery();
return rs;
}
3.2.3添加功能
先获取文本框的值,再将获取到的值为学生的实例stu的属性赋值,再利用student.Insertstu(conn,stu)将信息添加到数据库中去。获取学生实例的属性写入数据库属性。添加成功则产生成功提示信息,再返回添中页面,失败则产生失败信息,再返回添加页面,添加流程如图3.9所示
图3.9添加学生信息流程图
添加学生信息的关键代码如下:
String sno = request.getParameter("snoa");
String sname = request.getParameter("snamea");
String ssex = request.getParameter("ssexa");
int sage = Integer.parseInt(request.getParameter("sagea"));
String classname = request.getParameter("classnamea");
String department = request.getParameter("departmenta");
String email = request.getParameter("emaila");
String phone = request.getParameter("phonea");
student stu = new student();
stu.setSno(sno);
stu.setSname(sname);
stu.setSsex(ssex);
stu.setSage(sage);
stu.setClassname(classname);
stu.setDepartment(department);
stu.setEmail(email);
stu.setPhone(phone);
Connection conn = DB.getConn();
try {
student.InsertStu(conn,stu);
out.println("添加成功返回");
} catch (Exception e) {
e.printStackTrace();
out.println("添加失败返回");
} finally {
DB.close(conn);
}
InsertStu(conn,stu)函数位于student类中,此函数先获取学生实例stu的属性,再将其属性写入相应的数据库字段中。添加信息权限仅限管理员,关键代码如下:
public static boolean InsertStu(Connection conn, student stu)
throws Exception {
PreparedStatement stmt = null;
String s = "123456";
String a=stu.getSno();
String b=stu.getSname();
String c=stu.getSsex();
int d= stu.getSage();
String e= stu.getClassname();
String f=stu.getDepartment();
String g= stu.getEmail();
String h= stu.getPhone();
String strSql = "INSERT INTO
studentinfor(sno,sname,ssex,sage,classname,department,email,phone,password) VALUES('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+s+"'); stmt = conn.prepareStatement(strSql);
try {
stmt.executeUpdate();
} catch (Exception e1) {
System.out.println("添加失败!");
return false;
} finally {
DB.close(stmt);
}
return true;
}
3.2.4 删除功能
删除时,选择删除方式,可以按学号删除和按班级删除,根据选择方式和关键词,先通过前面提到的student.findstudent(conn, s, keyword)函数将要删除学生的信息查询显示出来,“s”为删除方式,也为查询方式,“s”的值可以是“1”按学号删除,“4”按班级删除,“keyword”为查询关键字。用户点击“确认删除”,则删除当前学生信息,删除流程如图3.10
图3.10删除学生信息流程图
删除流程关键代码如下:
String s = (String)session.getAttribute("s1");
String keyword = (String)session.getAttribute("keyword1");
try {
student.DelStu(conn,s,keyword);
out.println("删除成功返回");
} catch (Exception e) {
e.printStackTrace();
out.println("删除失败返回");
} finally {
DB.close(conn);
}
DelStu(conn,s,keyword)函数位于student类中,此函数作用是将学号或班级为keyword 的学生信息删除。关键代码如下如示
public static boolean DelStu(Connection conn, String s,String keyword) throws Exception {
PreparedStatement stmt = null;
i f(s.equals("1"))
{
String strSql = "DELETE FROM studentinfor where sno = ?";
stmt = conn.prepareStatement(strSql);
stmt.setString(1, keyword);
}else
{
String strSql = "DELETE FROM studentinfor where classname = ?";
stmt = conn.prepareStatement(strSql);
stmt.setString(1, keyword);
}
try {
stmt.executeUpdate();
} catch (Exception e1) {
System.out.println("删除成功!");
return false;
} finally {
DB.close(stmt);
}
return true;
}
3.2.5修改功能
修改时,先输入要修改学生的学号,赋值为keyword,再通过student.findstudent(conn, "1", keyword)函数将此学生的信息查询出来显示在页面上对应的文本框中。用户修改时将修改信息写入对应的文本框中,不能修改的信息对应的文本框为只读。后台先获取文本框的值,再将获取到的值为学生实例stu的属性赋值,再利用前面提到的student.UpdateStu(conn,stu)修改数据库中内容去。修改成功则产生成功提示信息,再返回修改页面,修改失败则产生失败提示信息,再返回修改页面。修改流程图如图3.11所示。
图3.11修改学生信息流程图
修改流程关键代码如下:
java.sql.Connection conn = null;
java.sql.ResultSet rs = null;
conn = DB.getConn();
sno = request.getParameter("snou");
sname = request.getParameter("snameu");
ssex = request.getParameter("ssexu");
sage = Integer.parseInt(request.getParameter("sageu")); classname = request.getParameter("classnameu"); department = request.getParameter("departmentu");
email = request.getParameter("emailu");
phone = request.getParameter("phoneu");
student stu = new student();
stu.setSno(sno);
stu.setSname(sname);
stu.setSsex(ssex);
stu.setSage(sage);
stu.setClassname(classname);
stu.setDepartment(department);
stu.setEmail(email);
stu.setPhone(phone);
try {
student.UpdateStu(conn, stu);
out.println("添加成功返回");
} catch (Exception e) {
e.printStackTrace();
out.println("添加失败返回");
}finally{
DB.close(conn);
DB.close(rs);
}
UpdateStu(conn, stu)类位于student类中.此函数先获取学生实stu的属性,再根据获取到的值修改当前学生的数据相应数据库字段,其关键代码如下:
public static boolean UpdateStu(Connection conn, student stu)
throws Exception {
PreparedStatement stmt = null;
String b=stu.getSname();
String c=stu.getSsex();
int d = stu.getSage();
String e=stu.getEmail();
String f=stu.getPhone();
String g=stu.getClassname();
String h=stu.getDepartment();
String strSql = "UPDATE studentinfor SET sname='"+b+"',ssex='"+c+"', sage ='"+d+"',email = '"+e+"',phone = '"+f+"',classname='"+g+"',department='"+h+"' WHERE sno = ?";
stmt = conn.prepareStatement(strSql);
stmt.setString(1, stu.getSno());
try {
stmt.executeUpdate();
} catch (Exception e1) {
System.out.println("修改失败!");
return false;
} finally {
DB.close(stmt);
}
return true;
}
3.2.6留言功能
先获取文本框中输入信息,消息编号是利用前面提到的massage.getNum(conn)获取消息库中最大留言编号的值加上1作为新留言编号,再实例化一个消息类mas,将获取到的信息
为mas的属性赋值,再获取留言实例的属性,最后利用前面提到的Massage.InsertMas (conn,mas)函数将新留言添加到数据库,添加成成则产生成功提示信息,再返回留言界面,失败则产生失败提示信息,再返回留言界面,留言流程如图3.12
图3.12留言流程图
留言流程的关键代码如下如示:
java.sql.ResultSet rs = null;
int numberm=0;
String sno = request.getParameter("snoam");
String massageinfor = request.getParameter("massageam");
String date= request.getParameter("dataam");
String givename = request.getParameter("nameag");
String read ="";
massage mas = new massage();
mas.setSno(sno);
mas.setMassageinfor(massageinfor);
mas.setDate(date);
mas.setGivename(givename);
mas.setRead(read);
Connection conn = DB.getConn();
try{
学生信息管理系统需求分析报告
目录 1.序言 (3) 2.项目简介 (3) 2.1.系统标识 (3) 2.2.系统功能 (3) 2.3.用户选择 (3) 2.4.系统功能 (3) 2.4.1 (4) 2.4.2 (4) 2.4.3. (4) 2.4.4. (4) 2.4.5 (4) 2.4.6 (4) 2.4.7 (4) 2.4.8 (4) 3.模块划分 (4) 3.1.登入模块 (4) 3.2.学生信息管理 (4) 3.3.课程管理 (4) 3.4.成绩管理 (4) 3.5.管理员管理 (5) 3.6.退出 (5) 4.模块图 (5) 5.流程图 (8) 6.性能要求 (8)
1.序言 随着学校的规模不断过大,学生数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。 本系统主要应用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生选课、针对这些要求设计了学生信息管理系统。 2.项目简介 2.1.系统标识 系统名称:学生信息管理系统 2.2.系统功能 本系统主要功能是实现学校学生的信息管理、课程管理、成绩管理、学籍管理以及使用该系统的用户管理。 2.3.用户选择 本系统面向的用户有:学校的系统人员、管理人员、教师、学生。所以对计算机的人性化和易用性比较高,应用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生选课,做到看界面简单易懂,容易操作,提高了学校管理效率以及提升了学生信息的安全性和完整性。 2.4.系统功能 本系统主要应用于学生学籍管理、信息查询、教务信息维护和学生选课、学生奖惩安排几部分,又因为用户的不同,例如学生、教师、系统管理员的身份不
Jsp课程设计 题目:学生管理系统 学号:1041011109 姓名:何琴 指导老师:姜俊坡
目录 一.概述 (3) 二.系统的结构分析与设计 (3) 2.1 整体设计 (3) 2.2 模块设计 (4) 三.系统的实现 (5) 3.1 登录界面 (5) 3.2 学生信息界面 (6) 3.3 学生信息查询,编辑,新增界面 (7) 3.4 连接数据库 (11) 四.总结................................................................................................. .16
一概述 一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为课程设计的课题。 本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可 二系统的结构分析与设计 2.1 整体结构设计 基于系统的使用对象是管理员,系统根据功能需要分为三个模块,即学生基本信息管理、新增学生信息管理和查询学生信息管理。采用B/S模式,jsp+SQL JavaBean 的技术形式实现。 2.1.1 用户角色设计及权限分配 管理员:拥有管理系统所有功能的权限,同时负责系统的用户的增删,服务功能的起停,数据的备份、还原等维护操作; 2.1.2 系统模块设计 学生信息管理系统包括三个基本模块:学生基本信息管理、新增学生信息管理和查询学生信息管理。三个模块管理功能不一,同时相互之间又有联系。 图1 2.1.3 系统运行模式设计 系统采用B/S(Browser/Server)模式,使管理更加方便和简单,B/S结构中各个客户
<< endl << endl; cout << "按下1:进入学生信息管理系统." << endl; cout << "按下0:退出." << endl; cout << "-----------------------------------------------------" << endl<
实验1 网页程序设计-JavaScript 一、实验目的 1. 掌握JavaScript技术,基本掌握JavaScript的开发技巧; 2. 利用文本编辑器建立JavaScript脚本语言进行简单编程。 二、实验要求: 1. 根据以下实验内容书写实验准备报告。 2. 独立完成实验。 三、实验内容 1.显示一个动态的时钟 在文本编辑器“记事本”中输入如下代码程序,请仔细阅读下列程序语句,理解每条语句的作用。源程序清单如下:
运行结果:销售信息统计管理系统
一.任务描述 某公司有4个销售员,负责销售5种产品。每个销售员都将当日销售的每种产品各写一张便条提交给公司。每张便条内容有: 1、销售员的编号 2、销售产品的代号产品 3、产品销售量 根据需求,此系统提供以下功能: 1、以菜单界面呈现。 2、信息录入功能。 3、信息查询功能。(包括查询某销售员的各产品销售量,某种产品的销售总量,某销售员的总销售额) 4、销量排序功能。 5、生成统计报表功能。 本系统采用结构体数组以及数据文件的技术,将输入的数据用结构体数组保存,并提供文件的保存与读取。在程序中要进行统计工作,所以提供显示、排序等操作,另外应提供键盘式选择菜单实现功能选择 本程序使用C语言。 此程序在vc++6.0上调试通过。 二.功能实现设计 1.总体设计 根据上面的分析,将这个程序分为四大模块。——1.销售信息录入。2.查询信息3.文件的保存。4.文件的读取 查询系统包括1.各个销售员销售额。2.销售总额以及排序。3各产品销售总额及热度。4.总信息统计生成报表。
2.流程图 3.详细设计 ①【数据结构】typedef struct { int name; int a1; int a2; int a3; int a4;
int a5; } SYS;/*定义数组*/ ②【功能函数声明】 int menu();/*选择菜单函数声明*/ int menu_1();/*子菜单函数声明*/ int enter(SYS t[]);/*进入函数声明*/ void salor(SYS t[],int n);/*声明函数*/ int sum(SYS t[],int n,int m);/*统计函数声明*/ void list1(SYS t[],int n);/*菜单1函数声明*/ void list2(SYS t[],int n);/*菜单2函数声明*/ void list3(SYS t[],int n);/*菜单3函数声明*/ void save(SYS t[],int n);/*保存文件函数声明*/ int load(SYS t[]);/*读取函数声明*/ SYS ste[100]; int len;/*全局变量定义*/ ③【主函数】 void main() { system("cls"); for( ; ; ) { switch(menu())/*根据用户的选择判断该调用哪个功能函数*/ { case 1:len=enter(ste);break; case 2:menu_1();break;
学生信息管理系统JSP版(Eclipse)1、新建new->Dynamic Web Project->名字为StudentJSP。 2、准备工作 1)编写JSP测试文件,名称为hello.jsp 修改hello.jsp的charset为UTF-8 加入代码:
Hello!代码: <%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding=" UTF-8"%>
2)右击项目->Properties->Resurce->修改字符集为UTF-8.
3)右击项目->Properties->Java Build Path改为如图(需先在WEB-INF下新建classes)
4)将MySQL中一个jar包复制到/WEB-INF/lib下,如图: 3、在/WebContent下new一个JSPfile,名字为display0.jsp 代码如下: <%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.sql.*"%> //(注意要引入sql的包)
——综合性程序设计 题目:简单学生信息管理系统(序列化版)班级: : 学号:
实验目的: 1.综合运用输入、输出的知识,用序列化方法保存、读入数组容。 2.设计实现一个简单的信息管理系统。 实验容: 编写能够满足如下条件的程序,分两次四个课时完成 1.声明Student类,该类实现Serializable接口以表明该类可 以进行序列化。该类有、学号、math、os、java用来存放 对应的成绩,在构造方法中进行、学号、课程成绩的赋值。 Override有Object继承来的tostring方法已便友好格式显 示自己的属性; 2.建立一个类,利用数组来存储多个Student,写完一个方法, 在main中写一段测试代码,运行以保证目前所做工作的 正确性,正确后再写其他代码。有以下方法: 1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制到新 数组 2)dispAll():可以显示所有的学生信息(测试add是否正确) 3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 4)findByName(string name):可以按照来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。 (判断是否相等使用string类的equalsIgnoreCase方 法) 5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。 6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。 7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的容,注意要考虑以前未保存容的情况, 可返回错误信息。 3.在控制台显示一个菜单,并实现相应的功能。菜单如下: 1显示所有学生信息2按学号查找 3 按查找 4 按学号删除 5 保存 6 读入7 退出 请输入数字(1-7): 程序代码
Jsp实验报告 课程设计名称:兼职网站 系:交通运输管理学院学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013学年第2 学期
一.设计题目 兼职网站 二.主要内容 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。 (1)用户的登录判定 (2)录入兼职的信息,并保存到数据库中 (3)根据用户的需求选择查询方式,查询相关兼职信息 (4)将信息从数据库中删除 三.具体要求 (1)建立数据库表格存储用户数据(用户名及密码)。 (2)建立数据库表格存储兼职信息,主要包括ID、兼职名称、地点、工资和联系方式。 (3)编写jsp 语句连接数据库 (4)利用request函数提交表单,获取输入信息 (5)以SQL语句对数据库进行操作,完成信息的添加,查询及删除等功能。四.进度安排 五.成绩评定 正文 1、系统的需求分析和功能设计 随着电子信息在人们生活中的的使用比重不断增加,人们越来越习惯在网站上查找自己所需
要的信息不仅仅只是因其快捷,更因其接触的面更加广泛,信息的基础量足够大,足以满足人们更加细化的需求。在寻找兼职体验工作生活或赚取生活费用时,可以减少时间的浪费及其他不必要的消耗。 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。用户登录后可以根据自己的需要对信息进行添加、查询和删除的操作 2、源程序及注释 主页:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>