java学生管理系统源码

2023-06-19

第一篇:java学生管理系统源码

java项目源码_新闻发布系统项目设计方案

1、需求概述

随着互联网时代的发展,如今的Internet的迅速发展给人们带来了很多的方便,无论是手机还是PC端都给人们带来了极大的便利,使人们的生活得到了翻天覆地的变化,获得新闻资讯的途径不仅仅只是通过电视、广播或者报纸,这样获得新闻资讯的途径显然不是最快的,而且人们获得的新闻不是实时更新的,这些途径已经不能满足人们了解最新新闻资讯的要求,看过时的新闻让人们对新闻的了解显得很落后。

所以新闻发布系统是面向大众用户开发的一款实时更新新闻资讯,每天第一时间发布最新发生的新闻头条、动态,人们可以通过手机或PC端在任何时间任何地点,打开新闻发布系统就能实时观看最新新闻,让你身临其境,真正感受到各地的新闻变化,人文习俗,还能更快的了解各地的文化和人们的生活习惯,让每一个人都能更快的学习到更多的知识,丰富人们的日常生活。

柚子皮新闻发布系统可以提供基于互联网的新闻服务,主要包括新闻显示模块,用户可以查看各类型的新闻信息,管理员登录后可以进行对新闻的添加,删除,查看和修改等操作

该系统主要包括主页,新闻查看页面,添加新闻页面,管理员和一般用户登录页面,已经登录成功和失败的页面,新闻管理页面等组成

通过以上需求分析,可以得知该系统主要包括以下两类 网站访问人员:可以查看各个模块的新闻信息 管理员:可以对新闻进行增删改查的管理工作

功能图如下:

2、页面需求设计

2.1、网站主页设计

主要实现网站的总体信息显示,在网站中主要显示各个新闻模块中的最新发布的几条信息

2.2、新闻显示页面

主要包括社会,娱乐,军事,体育,财经等新闻的显示,在本页中可以实现各个新闻模块的显示,显示的顺序为发布日期顺序 2.3、登录页面

主要用户给管理员输入用户名和密码的,当输入的口令正确时,可以跳转到新闻管理页面,

当输入错误时,跳转到指定页面并且给出提示信息 2.4、管理员管理页面

主要实现管理员对新闻的添加,删除及修改等功能,管理员还可以对每一条新闻进行查看。

3、程序概要设计

本系统要求实现新闻发布系统的各项基本功能,所以从安全性和易维护性考虑,选择了Web实现技术。简单的说就是将系统做成一种B/S模式,可以让用户通过浏览器直接访问位于服务器上的试题以及对系统进行远程维护。服务器端程序的实现技术也很多,本人选用了当前比较流行的网络编程技术——JSP作为主要实现手段(配合JavaServlet、JavaBean、HTML等)。JSP作为一种Web实现技术,它的效率是很高的。这一点正好符合了新闻发布系统所要求的实时性。JSP自身的安全性,再加上实现模式的特点,完全能够达到新闻发布系统的保密性要求。除此之外,作为Java平台的一部分,JSP拥有Java语言“一次编写,各处运行”的特点。又随着越来越多的服务器供货商将JSP支持添加到他们的产品中,这样一来用JSP做成的这套系统可以轻松移植到其它平台来运行。所以JSP是实现本系统的最佳技术,它是完全可行的。

系统所涉及的核心技术点:jsp,servlet,mysql,tomcat,jstl,EL,IO,jdbc,MVC设计模式

一个好的系统当然需要一个好的设计思路,MVC设计模式就很好的应用了这一点,使得一个WEB应用可以同时支持多个不同类型的客户端,比如通过PC端可以浏览多种页面,同时通过手机端也可以浏览多种页面,这就要求开发人员在设计系统时要同时支持PC端和手机端的界面,MVC模式中一个Model可以回应多个请求,同时处理多个请求,这样使得代码得到重复使用。MVC模型图如下图 4. 、数据库概要设计;

该系统使用的是mysql数据库

在内部主要是建了2张数据表:分别是新闻表和用户表

新闻表主要是用来存储新闻的一些基本信息,如:标题,图片,内容,作者,发布时间,类型,如下图:

用户表主要是用来存储用户基本信息包括用户名和密码还有标记(1为普通用户,2为管理员)

5. 、系统详细设计和部分源代码; 5.1、主页设计

在index.jsp页面有普通用户登录窗口,用户可以在主页面浏览新闻,和查看热点新闻列表和每条新闻的详情,用户点击“登录”后在窗口输入账号密码后,登入成功

主要代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %>

4.01

body{font-family: "Microsoft Yahei", "冬青黑体简体中文 w3";} #top{ width:1024px; height:255px; margin:0 auto; background-color:#f8f8f8; background-image:url(logo.png); background-position:50% 0; background-repeat:no-repeat;} #type{ width:1024px; height:30px; margin-top:90px;} #type ul{ list-style-type:none;} #type ul li{float:left;} #type ul li a:link{color:#000000; display:block; text-decoration:none; width:130px; text-align:center; text-align:center; padding:12px;} #type ul li a:visited{ color:#000000;} #type ul li a:hover{ background-image:url(blank.png); background-repeat:no-repeat; background-position:bottom;} #search{ width:1024px; height:50px; margin-top:45px;}

.search .text {

margin-left:170px;

width: 500px;

height: 28px;

font-size: 16px;

padding: 3px 0px;

float: left;

text-indent: 15px;

color: #949494;

border: 1px solid #ececec;

border-radius: 3px;

display: block;

letter-spacing: 1.5px; }

.search .text:focus {

color: #656565; }

.search .button {

height: 34px;

width: 150px;

margin-left: 10px;

border: none;

cursor: pointer;

display: block;

float: left;

color: #fff;

font-size: 15px;

background: #d6623d;

border-radius: 2px; }

#list{ width:1024px; margin:0 auto;} #list .new{ width:1024px; height:195px; background-image:url(down.png); background-repeat:no-repeat; background-position:bottom;} #list .new .content{ width:944px; height:139px; margin-left:40px; margin-top:8px;} #list .new .content .text{ width:680px; height:138px; float:right;} #list .new .content .text a:link{display:block; text-decoration:none; color:#000000; text-align:left; height:20px;} #list .new .content .text a:visited{color:#FFFFFF;} #list .new .content .text a:hover{color:#0066FF;} #list .new .content .text h4{ height:40px; margin-top:0px; font-weight:100; font-size:16px; } #list .new .content .text .p1{ margin-top:10px; height:15px; font-size:14px;} #list .new .content .text .p2{ margin-top:0; font-size:14px;letter-spacing:2px; color:#62615f;} #list .new .content .text a:visited{ color:#000000;} #list .new .content a img {width:227px; height:139px;}

#buttom1{ width:1024px; height:100px; margin-top:-1px; margin-left:auto; margin-right:auto; background-color:#f8f8f8;} #buttom2{ width:1024px; height:30px; margin:0 auto; background-color:#000000; line-height:30px; color:#FFFFFF; text-align:center; }

欢迎来到柚子皮新闻发布系统:登录

第二篇:ASP学生信息管理系统论文+源码

222.240.89.* 1楼

1绪论 1

1.1 国内外应用与开发现状 1

1.1.1 应用现状 1

1.1.2 系统开发现状 1

1.2 教师专用学生信息管理系统开发背景及目标 1

1.2.1 系统开发背景 1

1.2.2 系统开发目标 2

1.3 课题研究方法 2

1.4 论文构成及研究内容 3

2 教师专用学生信息管理系统开发工具的选择 4

2.1 开发平台的选择 4

2.1.1ASP简介 4

2.2 数据库的选择 5

3教师专用学生信息管理系统可行性分析和需求分析 6

3.1 可行性分析 6

3.1.1 技术可行性 6

3.1.2 经济可行性 6

3.1.3 操作可行性 6

3.2 数据库需求分析 6

3.2.1 学生基本信息 6

3.2.2 课程基本信息 6

3.2.3 学生成绩信息 6

3.2.4 教师信息 7

3.2.5 班级信息 7

3.3 系统功能需求分析 7

4教师专用学生信息管理系统设计 8

4.1 系统总体功能模块图 8

4.2 数据库设计 9

4.2.1数据库概念结构设计 9

4.2.2 逻辑结构设计 11

5学生信息管理系统模块设计与实现 13

5.1 系统注册模块 13

5.2 用户登录模块 14

5.3 密码修改 17

5.4 信息管理 19

5.5 成绩管理 23

5.6 班级管理 26

5.7 课程管理模块 28

5.8 教师管理模块 30

6教师专用学生信息管理系统测试 34

6.1 系统注册模块测试 34

6.2 系统登录模块测试 34

6.3 密码修改模块测试 37

6.4 信息管理模块测试 38

6.5 成绩管理模块测试 41

6.6 班级管理模块测试 41

6.7 课程管理模块测试 46

6.8 教师管理模块测试 46

6.9 系统评估与展望 49

6.9.1 系统的优点 49

6.9.2 系统的缺点 49

6.9.3 将来可能提出的需求 507 结束语 51

参考文献 52

致谢 53

附录 主要模块源程序 54

第三篇:大学JAVA课程设计——学生信息管理系统

沈阳理工大学课程设计

沈阳理工大学课程设计

摘要

Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。本设计可以帮助同学掌握和应运所学的面向对象程序设计学生学籍信息管理系统的编程内容,培养同学们建立对象模型,处理对象和对象集关系和对图形用回界面设计编程以及文件和流的编程问题的能力,训练同学为解决实际问题而创建较完整的简单面向对象和管理系统编程应运程序的独立编程能力.本设计是一个常见的学生学籍管理系统应运程序.

系统实现的功能: 界面操作实现学生学籍信息的添加、删除、查询、修改功能,在文本文件中的的信息的动态处理。

关键词:

学生学籍管理系统;图形用户界面设计;文件和流;java

I

沈阳理工大学课程设计

目 录

一、课程设计的目的与意义 .......................................................................................... 1

1.目的 .......................................................... 1 2.意义 .......................................................... 1

二、需求分析 .......................................................................................................................... 1

1. 学生学籍管理系统主界面模块 ................................ 1 2. 录入学生基本信息模块 ...................................... 1 3. 修改学生基本信息模板 ...................................... 1 3. 查询学生基本信息模板 ...................................... 1 4. 删除学生基本信息模板 ...................................... 1

三、分案设计 .......................................................................................................................... 3

1. 定义四个Panel面板 ...................................... 3

四、方案的实施 ...................................................................................................... 3

五、心得体会 ......................................................................................................... 15

六、参考文献 ......................................................................................................... 16

II

沈阳理工大学课程设计

一、课程设计的目的与意义

目的:深入理解java语言的语法规则及其优势,掌握类与方法的构造方法,掌 握基于java的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和解决问题的作风和能力。

意义:熟练运用java语言、基本构造方法和算法的基础知识,独立编制一个具有中等难度的、解决实际应用问题的应用程序。通过题意分析、选择类结构、算法设计、编制程序、调试程序、软件测试、结果分析、撰写课程设计报告等环节完成软件设计的全过程,不断地完善程序以提高程序的性能。

二、需求分析

该学生学籍管理系统的所有功能均在一个Frame窗体中实现。 1.学生学籍管理系统主界面模块:

采用Frame窗体来设置欢迎界面包括背景图片及字幕(可以设计成滚动字幕效果),左上方的菜单条设计成下拉式。包括“录入学生基本信息”、“修改学生基本信息”、“删除学生基本信息”、“查询学生基本信息”和“退出系统”五项菜单项。 2.录入学生基本信息模块:

采用Panel面板来设置该部分内容信息并采用方位布局(边缘布局)和Box轻量级组件来设置“学号”、“姓名”、“性别”、“专业”、“年级”、“出生”,并在该面板中添加了“录入”和“重置”两个按钮进行监听,最后将该面板加入到Frame窗体中去。 3.修改学生基本信息模板:

采用Panel面板来设置该部分内容信息,同样是采用方位布局及Box组件来设置相关信息,并在学号旁设置了“开始修改”按钮。在面板南部方位添加了“确定修改”和“重置”两按钮进行监听。 4.查询学生基本信息模板:

采用Panel面板来设置该部分内容信息,并将该面板加入到主窗体中去,采用边缘布局进行方位设置,在上方加入“查询”按钮进行监听。

5.删除学生基本信息模板:

也是采用Panel面板进行设置相关内容,并用边缘布局进行布局,并在上方添加“确定”按钮,在下方添加“确定删除”按钮实现监听。

三、模块设计

定义四个Panel面板

1.定义Reg(录入学生基本信息)面板

采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“录入学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,并将其加入到用

1

沈阳理工大学课程设计

createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后在面板的South方位设置“录入”与“重置”两按钮。最后实现与数据库的桥接,能够将从文本框获得的信息存储到数据库中去。

2.定义Search(查询学生基本信息)面板

该部分同样采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“查询学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,在学号这一文本框后再添加一个“查询”按钮。并将其加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去。

3.定义Modify(修改学生基本信息)面板

该部分同样也是采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“修改学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,并将其加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。并在 “学号”该文本框后添加一个“开始修改”按钮用来监听。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去,并将修改后的信息存储到数据库中去。

4.定义Delete(删除学生基本信息)面板

该部分还是采用BorderLayout(构造一个组件之间没有间距的新边界布)和Box轻量级组件进行布局,在面板的Nother方位添加一个“修改学生基本信息”的标签,并更改字体,颜色等。接着用JTextField轻量级组件来设置单行文本编辑,在学号这一文本框后再添加一“确定”按钮实现监听。并将其所有文本框和标签加入到用createHorizontalBox()方法创建具有一个从左到右显示其组件的Box和用createHorizontalStrut()创建一个不可见的、固定宽度的组件,使其在一个横向 box 中,通常使用此方法强行使两个组件之间

2

沈阳理工大学课程设计

具有某一空间量。并在 “学号”该文本框后添加一个“开始修改”按钮用来监听。然后Box与Box之间用createVerticalBox()创建一个从上到下显示其组件的 Box,并用createVerticalStrut()方法创建一个不可见的、固定高度的组件,使其在一个纵向 box 中,通常使用此方法强行使两个组件之间具有某一空间量,还在本面板的South方位添加“确定删除”按钮。最后实现与数据库的桥接,能够将从数据库中获取信息并显示到文本框中去,删除后同时在数据库中也删除该信息并保存该操作。

四、方案的实施

1、学生信息管理系统的登录

学生信息管理系统可由管理员和学生两种身份的人使用。管理员和学生身份登录所能操作的功能有很大的区别。系统初始化一个系统管理员,登录名:admin 密码:admin 学生登录系统的登录名为学号,密码也为学号(如:10001),登录后可以修改密码。

登录界面

登录系统后的界面

3

沈阳理工大学课程设计

注册学生信息界面

4

沈阳理工大学课程设计

修改学生信息界面

查询学生信息界面

5

沈阳理工大学课程设计

删除学生信息界面

6

沈阳理工大学课程设计

1 程序类的设计

DeleteListener.java:删除监听 JTMouseListener.java:树状视图 LoginListener.java:登陆监听 ResetListener.java:重置监听 SaveListener.java:保存监听

SearchAllListener.java:搜索所有学生信息 SearchDListener.java:搜索一个学生信息 SearchListener.java:搜索一个学生信息 SearchRListener.java:搜索一个学生信息 SubmitListener.java:提交信息监听

2 系统的使用说明及环境配置

学生信息管理系统提供了管理员和学生这两个角色登录系统,管理员通过用户名:admin 密码:admin 登录系统后可以进行相应的操作。学生通过以自己的学号(如10001)作为用户名和密码登录系统后进行相应的学生权限范围内的操作。 数据库:Mysql 连接数据库的登录名:root 密码:zfz 代码:

DeleteListener.java:删除监听 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton; import javax.swing.JOptionPane;

import manager.dao.JdbcIcpCURD; import manager.ui.conponent.DeletePanel;

public class DeleteListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

JButton jb=(JButton) e.getSource();

DeletePanel dp=(DeletePanel) jb.getParent();

String xuehao=dp.xuehaoFd.getText();

String msg= "你确定要删除学号为"+xuehao+"的学生信息么?";

int i=JOptionPane.showConfirmDialog(dp,msg,"提",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);

if(i==0){

JdbcIcpCURD curd=new JdbcIcpCURD();

boolean b=curd.deleteByXuehao(Integer.parseInt(xuehao));

if(b){

dp.errorLb.setText("删除成功");

}

else{

dp.errorLb.setText("删除失败");

}

}

return; }

7

示信息

沈阳理工大学课程设计

} JTMouseListener.java:树状视图 package manager.ui.listener;

import java.awt.CardLayout; import java.awt.Component; import java.awt.event.MouseEvent; import java.awt.event.MouseListener;

import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath;

import manager.ui.conponent.MainFrame; import manager.ui.conponent.PLeft;

public class JTMouseListener implements MouseListener {

@Override public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub JTree jt=(JTree) e.getSource(); PLeft p=(PLeft) jt.getParent(); MainFrame f=(MainFrame) p.getParent().getParent().getParent().getParent(); TreePath path = jt.getPathForLocation(e.getX(), e.getY()); if(path==null){ return; } DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent(); String s=node.toString(); CardLayout cl=f.getPright().getLayout(); if(s.equals("注册学生")){ cl.show(f.getPright(), "register"); } if(s.equals("修改学生信息")){ cl.show(f.getPright(), "modify"); } if(s.equals("查询学生信息")){ cl.show(f.getPright(), "search"); } if(s.equals("删除学生信息")){ cl.show(f.getPright(), "delete"); } if(s.equals("学生信息管理")){ cl.show(f.getPright(), "welcom"); } }

@Override public void mouseEntered(MouseEvent e) {

8

沈阳理工大学课程设计

} } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } // TODO Auto-generated method stub LoginListener.java:登陆监听

package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton; import javax.swing.JOptionPane;

import manager.ui.conponent.Login; import manager.ui.conponent.MainFrame;

public class LoginListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) {

JButton bt=(JButton) e.getSource();

Login frame=(Login) bt.getParent().getParent().getParent().getParent();

String username=frame.usernameTa.getText().trim();

String password=frame.passwordTa.getText().trim();

if(username!=null||password!=null){

if("admin".equals(username)&&"123".equals(password)){

new MainFrame().setVisible(true);

frame.dispose();

}

else{

frame.messageLb.setText("用户名或密码错误");

}

}

9

沈阳理工大学课程设计

else{

frame.messageLb.setText("用户名或密码错误");

} } } ResetListener.java:重置监听 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.ui.conponent.RegPanel;

public class ResetListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) { JButton jb=(JButton) e.getSource(); RegPanel jp=(RegPanel) jb.getParent(); jp.xuehaoFd.setText(""); jp.nameFd.setText(""); jp.addressFd.setText(""); } } SaveListener.java:保存监听 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.ModifyPanel;

public class SaveListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) {

JButton jb=(JButton) e.getSource();

ModifyPanel mp=(ModifyPanel) jb.getParent();

String xuehao=mp.xuehaoTf.getText().trim();

String name=mp.nameTf.getText().trim();

String gender=mp.genderTf.getText().trim();

String address=mp.addressTf.getText().trim();

String oldXuehao=mp.xuehaoFd.getText().trim();

if(oldXuehao==null||xuehao.equals("")){

10

沈阳理工大学课程设计

}

} oldXuehao=xuehao; } if(xuehao==null||xuehao.equals("")){ mp.errorLb.setText("请输入修改后的学号..."); return; } if(name==null||name.equals("")){ mp.errorLb.setText("请输入修改后的姓名..."); return; } if(gender==null||gender.equals("")){ mp.errorLb.setText("请输入修改后的性别..."); return; } if(address==null||address.equals("")){ mp.errorLb.setText("请输入修改后的地址..."); return; } Student stu=new Student(); stu.setXuehao(Integer.parseInt(xuehao)); stu.setName(name); stu.setGender(gender); stu.setAddress(address); int old=Integer.parseInt(oldXuehao); JdbcIcpCURD curd=new JdbcIcpCURD(); if(curd.modify(stu, old)){ mp.errorLb.setText("修改成功..."); }

SearchAllListener.java:搜索所有学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector;

import javax.swing.JButton; import javax.swing.JTextArea;

import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.SearchPanel;

public class SearchAllListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) {

JButton jb=(JButton) e.getSource();

SearchPanel sp=(SearchPanel) jb.getParent();

11

沈阳理工大学课程设计

}

} JTextArea jt=sp.resultTa; JdbcIcpCURD curd=new JdbcIcpCURD(); Vector students=curd.getAllStudent(); StringBuilder sb=new StringBuilder(); for(Student s:students){ sb.append(" "); sb.append(s.getXuehao()); sb.append(" "); sb.append(s.getName()); sb.append(" "); sb.append(s.getGender()); sb.append(" "); sb.append(s.getAddress()); sb.append(" "); sb.append(s.getRegTime().toString()); sb.append(" "); } jt.setText(sb.toString()); SearchDListener.java:搜索一个学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.DeletePanel; import manager.ui.conponent.ModifyPanel; import manager.ui.conponent.SearchPanel;

public class SearchDListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) {

JButton jb=(JButton) e.getSource();

DeletePanel dp=(DeletePanel) jb.getParent();

JdbcIcpCURD curd=new JdbcIcpCURD();

String s=dp.xuehaoFd.getText().trim();

Student stu=curd.searchByXuehao(Integer.parseInt(s));

if(stu==null){

dp.errorLb.setText("没有查询到此学生");

return;

}

dp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());

dp.nameTf.setText(stu.getName());

dp.genderTf.setText(stu.getGender());

dp.addressTf.setText(stu.getAddress());

12

沈阳理工大学课程设计

} } SearchListener.java:搜索一个学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.ModifyPanel;

public class SearchListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) {

JButton jb=(JButton) e.getSource();

ModifyPanel mp=(ModifyPanel) jb.getParent();

String s=mp.xuehaoFd.getText().trim();

if(s==null||s.equals("")){

mp.errorLb.setText("请输入学号..");

return;

}

JdbcIcpCURD curd=new JdbcIcpCURD();

Student stu=curd.searchByXuehao(Integer.parseInt(s));

mp.xuehaoTf.setText(new Integer(stu.getXuehao()).toString());

mp.nameTf.setText(stu.getName());

mp.genderTf.setText(stu.getGender());

mp.addressTf.setText(stu.getAddress()); } } SearchRListener.java:搜索一个学生信息 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton;

import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.ModifyPanel; import manager.ui.conponent.SearchPanel;

public class SearchRListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) {

13

沈阳理工大学课程设计

}

} JButton jb=(JButton) e.getSource(); SearchPanel sp=(SearchPanel) jb.getParent(); JdbcIcpCURD curd=new JdbcIcpCURD(); String s=sp.xuehaoTf.getText().trim(); Student stu=curd.searchByXuehao(Integer.parseInt(s)); if(stu==null){ return; } StringBuilder sb=new StringBuilder(); sb.append(" "); sb.append(stu.getXuehao()); sb.append(" "); sb.append(stu.getName()); sb.append(" "); sb.append(stu.getGender()); sb.append(" "); sb.append(stu.getAddress()); sb.append(" "); sb.append(stu.getRegTime().toString()); sb.append(" "); sp.resultTa.setText(sb.toString());

SubmitListener.java:提交信息监听 package manager.ui.listener;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date;

import javax.swing.JButton; import javax.swing.JLabel;

import manager.dao.JdbcIcpCURD; import manager.domain.Student; import manager.ui.conponent.RegPanel;

public class SubmitListener implements ActionListener {

@Override public void actionPerformed(ActionEvent e) { JButton jb=(JButton) e.getSource(); RegPanel jp=(RegPanel) jb.getParent(); String xuehao=jp.xuehaoFd.getText(); String name=jp.nameFd.getText(); String address=jp.addressFd.getText(); String gender=""; boolean b1=jp.maleRB.isSelected(); boolean b2=jp.femaleRB.isSelected();

14

沈阳理工大学课程设计

if(b1){ } JLabel errorLabel=jp.errorLabel; if(xuehao==null||xuehao.trim().equals("")){ errorLabel.setText("没有填写学号.."); return; } if(name==null||name.trim().equals("")){ errorLabel.setText("没有填写姓名.."); return; } if(address==null|address.trim().equals("")){ errorLabel.setText("没有填写地址.."); return; } if(!(b1||b2)){ errorLabel.setText("请选择性别..."); return; } if(b1){ gender="男"; } if(b2){ gender="女"; } Student stu=new Student(Integer.parseInt(xuehao),name,gender,new Date(System.currentTimeMillis()),address); JdbcIcpCURD curd=new JdbcIcpCURD(); boolean b=curd.insert(stu); if(b){ errorLabel.setText("注册成功!!"); jp.xuehaoFd.setText(""); jp.nameFd.setText(""); jp.addressFd.setText(""); } } }

五、心得体会

我们刚学习java这门课程,对专业的java编程知识并未有深入的学习和探索。但是当我们查找过一些书籍资料后,在不断努力下我们还是把课程设计题目顺利的完成了。通过此次学生学籍管理系统的设计,使我们对java编程语言有了更深层次的了解。不过在编写的过程中也存在一些问题,例如在选择适宜的方法实现修改和删除功能的时候,由于对

15

沈阳理工大学课程设计

数组的理解还不能满足当前的编程需要,并未选择更加简单的数组来处理数据,以至于当删除指定内容后在文本文件中留有空行,从而导致了在接下来的查询异常和再次修改和删除功能无法正常实现,还需人工删除掉文本文件中的空行以保证程序的正常运行。我们也可以选用其他的更加方便的处理方法使得程序更加优化和简洁。

“书山有路勤为径,学海无涯苦作舟”,我们现今所学的知识还远远不够,在今后的学习过程中我们要进一步学习java的更多的知识,此次课程设计不仅锻炼了我们独立思考和团队合作的能力,而且提高了我们动手的能力,我会继续努力学习此课程的。

六、参考文献

1 郑阿奇 编著《Java实用教程(第二版)》电子工业出版社 2 良葛格 编著《Java学习笔记》清华大学出版

16

第四篇:Java_web学生成绩管理系统_论文

基于Java web学生成绩管理系统设计及开发

佟佰健

北华大学 计算机科学与技术学院 网络工程12-1 43号 摘 要:一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。

本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可以完成有关成绩的录入,更新,管理,查询和删除。本系统将会改变以前靠手工管理学生成绩的状况,提高工作效率。希望能为老师和学校的工作带来便利。 关键词:Javaweb 学生管理系统

1绪论

1.1 项目开发背景

一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。

本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可以完成有关成绩的录入,更新,管理,查询和删除。本系统将会改变以前靠手工管理学生成绩的状况,提高工作效率。希望能为老师和学校的工作带来便利。

1.2 项目开发的目标

建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩维护工作流程的系统化、规范化和自动化。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:

(1)系统应具有实用性、可靠性和适用性,同时注意到先进性。

(2)对各个数据库进行动态管理,防止混乱。

(3)不同用户有不同的查询和修改权限,防止非法查询,非法修改。

(4)能够对查询结果进行分类汇总,实现报表打印和下载。

(5)方便用户的操作,尽量减少用户的操作。

1 1.3 项目提出的意义

随着高校办学规模的扩大和招生人数的增加,学生成绩管理维护是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,介于它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。

运用学生成绩管理维护系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够节省时间,学生也能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。

1.4 系统开发所用的技术准备 1.4.1 数据库技术的现状与发展

数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都已经趋于成熟,使我们能够方便的使用。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。

MySQL作为一种开放源码数据库,以其简单易用的特点广泛被广大用户采用,MySQL虽然是免费的,但同Oracle, Sybase, Informix, Db2等商业数据库一样,具有数据库系统的通用性

1.4.2 JAVA语言的概述

Java是一种简单的,面象对象的,分布式的,解释的,键壮的,安全的,结构的,中立的,可移植的,性能很优异的多线程的,动态的语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。 2 系统需求分析 2.1系统调查

21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。

为了适应现代社会人们高度强烈的时间观念,我对河南科技学院新科学院的原有的学生成绩管理系统进行了调查研究,并对一些教师和学生进行了调查,听取他们对学生成绩管理的一些建议和要求以及他们对这方面的一些需求,根据我所具有的知识,决定开发的这个系统采用当前较为流行的编程软件Java作为实现语言,以数据库MySql作为系统的后台操作. 2.2系统构架

系统采用的是B/S结构,即浏览器和服务器架构,示意图如图2-1所示。浏览器端提供用户操作界面,接受用户输入的各种操作信息,向服务器发出各种操作命令或数据请求,并接收执行操作命令后返回的数据结果,根据业务逻辑进行相关的运算,向用户显示相应的信息。服务器端接收浏览器端的数据或命令请求,并请求数据库服务器执行数据库操作得到相应的数据集,对数据集进行相应的处理,然后将数据集或处理后的数据集返回给浏览器端。

2 2.3 用户需求

2.3.1学生的需求

(1) 在第一时间查询自己所有的成绩(自己的平均成绩,总成绩) (2) 查询某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩 (3) 打印和下载自己的成绩

2.3.2老师的需求

(1) 查询某一学生的所有成绩(平均成绩,总成绩)

(2) 查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩

(3) 查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科目的所有成绩)

(4) 对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率,优秀人数,优秀率,某一分数段的人数)

(5) 录入成绩和修改更新成绩(自己所教授的那一科成绩) (6) 打印和下载所查询或统计出的结果 2.3.3管理员的需求

(1) 查询某一学生的所有成绩(平均成绩,总成绩)

(2) 查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩

(3) 查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科目的所有成绩)

(4) 对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率,优秀人数,优秀率,某一分数段的人数)

(5) 录入成绩和修改成绩

(6) 打印和下载所查询或统计出的结果 (7) 用户管理 (8) 数据库管理 2.4系统设计思想

(1)采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。

(2)系统就满足学校的需求,例如学生成绩的录入、查询、更新,学生成绩录入与排名等等。

(3)系统具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。 2.5系统设计分析

本系统使用Struts开源框架实现MVC三层模式进行开发,使模型,视图和控制分开,业务逻辑和显示分开,这样有利于错误的查找和系统的升级。

该系统适用于各个学校,其功能主要为:

成绩管理:用于对成绩的录入、修改、汇总、排名以及查询等操作。 3 数据库设计 3.1 数据库表的设计

3 本系统将数据存储在六个表中,这六个表分别是:

学生表:保存学生的基本信息,包括学生的姓名,登录系统时的密码,学生的学号,所在的班级以及一些备注信息。

教师表:保存教师的基本信息,包括教师的姓名,登录系统时的密码,教师号,备注,其中备注默认为“0”,当为“1”的时候教师可以录入和修改学生的成绩,为空或者是其他值的时候,录入功能将被锁定。

班级表:保存班机的基本信息,包括班级名称和备注。 教师所担任课程的表:保存教师所教的课程信息。 教务管理员表:保存管理员的基本信息。

成绩表:主要保存关于学生成绩的一些信息,本系统主要是对该表的操作。 3.2 数据库所使用的技术

本系统所使用的数据库是MySQL数据库,使用Hibernate开源框架对数据库进行操作。 Hibernate对JDBC进行轻量级的封装,他给我们提供了许多对数据的操作方法,方便我们的编程,提高开发效率。Hibernate使用的是HQL查询语言,里面封装了许多数据库方言,根据Hibernate的配置文件来转换为相应数据库的SQL语句。可以很方便的实现对数据库的移植,不需要修改代码,或只是需要修改少量代码就可以了。 4功能介绍

启动服务器,在浏览器里输入相应的地址( 在本机上输入:http://127.0.0.1:8080/StudentScoreManage/),进入系统主界面,也就是登录界面, 此界面使用了表格进行排版,使用了一组单选按钮来区分不同的角色,

该登录模块,使用到了Struts+Hibernate技术,使用Struts的Actionform进行判断,看输入的各项是否为空,是否符合要求。Action进行登录验证处理,验证成功则跳转到相应的登录成功界面,否则给出相应的错误信息。 4.1学生功能

在登录页面,选择学生角色,输入用户名也就是学号,输入登录密码,然后进入学生登录成功界面:此界面上可以进行修改密码,查询自己的某一科成绩,以及该科成绩的平均成绩,自己所在名次,最高成绩,最低成绩等,还可以按学期查询所选学期的所有成绩以及该学期的总成绩,平均成绩,修改自己的登录密码或是注销本次登录,退出该系统。 4.2教师功能

在登录页面,选择教师角色,输入用户名也就是教师号,输入登录密码,然后登录。登录成功后将跳转到教师功能选择页面:教师有六种功能可选择分别是:查询学生的成绩,录入学生的成绩,修改更新成绩,统计成绩,修改密码和注销。 4.3教务管理员功能

在登录页面,选择管理员角色,输入用户名,输入登录密码,然后,点击登录按钮进行登录,登录成功后将跳转到教务管理员功能选择页面 教务管理员有以下九种功能可选择:

(1)查询学生成绩的功能 此功能同教师的功能一样,这里不再赘述。

(2)录入学生成绩的功能 此功能同教师的基本一样,只是管理员的此功能没有被限制,其他都和教师的该功能一样,这里不再赘述。

(3)修改更新成绩的功能 此功能同教师的基本一样,只是管理员的此功能没有被限4 制,其他都和教师的该功能一样,这里不再赘述。

(4)添加/删除人员的功能,此功能对教务管理员来说非常重要,在该功能页面上,教务管理员可以添加或者是删除一个学生,添加或是删除一个教师,添加或是删除一个教师所教的科目,添加或是删除一个班级,添加或是删除一个管理员。注意:删除或是添加一个管理员的功能,只能是admin管理员有此功能,其余管理员则没有此功能。当进行破坏性的删除操作时,系统会有相应的提示,以免出现误操作。

(5)修改更新人员的功能 您若想修改更新已经存在的人员,此功能将非常有用,并且操作也比较简单。

(6) 统计成绩 此功能和教师的该功能完全一样,这里不再赘述。

(7)解除/锁定教师录入成绩权限的功能 为了保证数据的安全和一致,对不同的用户给予不同的权限是很好的办法。考试过后,管理员可以把录入成绩的功能赋予给教师,当成绩录入结束后,管理员应立即把该功能给琐定,可以一次解除或是锁定一个教师的权限,也可以一次解除或是锁定所有教师录入成绩的权限,选择相应的单选按钮即可。

(8)修改密码和注销功能比较简单,这里就不再述说了。 5 系统测试 5.1 测试目的

测试是为了发现程序中的错误而执行程序的过程,测试的目的就是在软件投入生产运行之前,尽可能的发现软件中的错误。成功的测试是发现了至今为止尚未发现的错误的测试。 5.2 测试环境的搭建

(1) 系统要求数据库使用MySQL5.0版本。数据库编码要求要支持中文,推荐使用gb2312编码。数据库安装好后,建立一个名为ssmange的数据库,创建脚本为:

create database ssmange; 然后依次创建学生表,教师表,班级表,教师所担任课程的表,管理员表,成绩表。 (2) 运行环境jdk 5.0 及以上的版本,并设置好相应的环境变量。 (3) JDK的安装成功与否可采用以下方法测试

在cmd下输入:java -version 看输出情况

(4)服务器的安装,本系统使用的服务器是Apache 的Tomcat,版本是5.5,按提示安装好后,设定其TOMCAT_HOME的路径。一切准备好之后,启动服务器,在浏览器地址栏里面输入:http://localhost:8080/ 。若出现如图4-2所示界面就说明服务器安装成功。 5.3 测试方法

为了提高测试效率,降低测试成本,本测试方案采用黑盒法设计基本的测试方案,再用白盒法补充一些方案。在黑盒法测试方案中,采用等价划分技术,把所有可能的数据划分成几个等价类。 5.4 测试项目

(1)登录测试

(2)数据输入和输出测试 (3)权限测试 (4)学生功能测试 (5)教师功能测试

(6)教务管理员的功能测试 5.5 测试结果

5 各模块的测试结果如下:

(1) 登录测试中,没有发现什么错误。

(2) 输入和输出测试中,对所有相同的输入都可以得出相同的输出。 (3) 权限测试过程中,发现教师录入成绩权限存在问题。 (4) 学生功能测试中,发现下载成绩存在问题。 (5) 教师功能测试中,所有功能都正常。

(6) 教务管理员测试中,发现在级联下拉列表不能正常显示,异步访问服务器可能存在问题。

6

参考文献

[1] 陈天河等.Struts,Hibernate,Spring 集成开发宝典[M].北京:电子工业出版社,2007 [2] 李君芳,赵艳杰.电脑知识与技术[J],2007(9) [3] 马朝晖等.Java教程.(第4版)[M].北京:人民邮电出版社.2006 [4] 岳阳,王杰,孙红梅.MySQL5 管理员标准指南及语言参考(第二版)[M].北京:电子工业出版社,2005 [5] 吴明晖,吴超.Struts+Hibernate开发Web应用——从基础到实践[M].北京:人民邮电出版社,2007 [6] 付京周.精通Hibernate3.0——Java数据库持久层开发实践[M].北京:人民邮电出版,2007 [7] 王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006 [8] 张白一,崔尚森.面向对象程序设计——Java[M].西安:电子科技大学出版社,2004 [9] 叶齐炼,申华. 学校教务工作实用手册[M]. 北京:开明出版社,2002 [10] 袁世鹰.微机教务管理系统的设计与实现[P].北京:开明出版社,2001 [11] 高宇翔.java电子杂志第二期[J].J2SE 5.0专题之语言特性,2005 [12] 王毅. Internet与Java[J]. 电子与电脑,1997(3) [13] 张光业. Java与Javascript[J]. 微电脑世界,1996(5) [14] Keys Botzum,Albert Wong.IBM开发人员技术期刊第三期[J],2007 [15] 谷庆华等.基于java语言实现数据库访问[J].计算机技术与发展,2008

第五篇:软件源码移交保密协议

系统源码授权使用保密协议

╳╳系统

源码授权使用保密协议

甲方:珠海市联进高技术有限公司乙方:

签订地点:

一、协议背景 ╳╳系统是珠海市联进高技术有限公司(以下简称甲方)为╳╳(以下简称乙方)承建的。兹双方确认甲方拥有╳╳系统全部源代码的版权,为了便于乙方更好的进行系统维护工作,并考虑到今后的业务需求变更后,对业务系统可能提出的修改要求,甲方把与业务系统相关的源代码授权乙方使用,同时双方达成以下协议。协议条款标的内容:

甲方提供给乙方的源代码,是现行╳╳系统的应用程序部分。甲方保证所提供的部分源代码与系统当前正在运行的前台程序是同一版本,利用所提供的源代码及相关资源可以直接编译生成当前系统的应用程序部分。

二、用途限定

甲方授权乙方使用源代码的方式仅限于对现行系统的程序改进之用途;乙方有义务对源代码进行保密,在任何情况下,未经甲方同意,乙方不得将此源代码提供给任何第三方。乙方并应限制有关源代码的具体使用范围,使之仅限于现行系统的维护/升级等系统开发用途,仅为直接开发人员所了解和使用,不应在同行业其他项目使用,不得用于其他用途。

三、知识产权归属 甲方拥有╳╳系统全部源代码的版权。

乙方可以对源代码进行改变,由此衍生的有关程序及源代码的知识产权由双方共同拥有。未经甲方许可,乙方不得将修改后的源代码提供给任何第三方。甲方原则上没有义务向乙方提供对源代码及其相关资讯的技术支持和培训,但双方另有协议除外。

对于由乙方使用修改后程序所引起的故障和损失,根据是初始程序内BUG引起的还是由于乙方的不当修改造成,分清责任,并视责任情况承担各自的责任。对于假若不修改程序就不会出现的故障,甲方不承担责任。在乙方使用有关源代

系统源码授权使用保密协议

码的过程中,确需甲方技术支持的,可以通过协商解决。

四、生效条件与协议终止

有关协议一旦签署,立即生效;并将长期有效,除非以下条件之一成立:

4.1、双方另有协议,并一致同意废止此协议;

4.2、乙方不再使用现行系统;

4.3、乙方主动提出终止此协议;

4.4、由于乙方过错导致系统源代码泄密,甲方有权解除此协议。

协议终止时,乙方有责任向甲方提交或立即销毁所持有、保管或控制的包含所有该源代码信息的所有文档,软件及相关资料(不含由接收方开发的后续版本所属的文档,软件及相关资料),并向甲方提供书面确认,作为法律上认可的凭据。

五、违约责任

乙方如果违反本协议第二条及第四条条款,在未经甲方许可的情况下,将甲方授权其使用的源代码或修改后的衍生源代码提供给任何第三方,均应承担对甲方的赔偿责任,方式为向甲方支付违约金人民币20万元(大写:贰拾万元整)。

六、争议解决条款

本合同一式两份,甲乙双方各执一份,具有同等法律效力。

在履行本协议中出现任何争议,双方均应首先协商解决,协商没有结果的。甲方有权向乙方所在地司法机关提起上诉。

甲方(盖章):╳╳乙方(盖章):╳╳╳╳╳╳

代表人(签字):代表人(签字):电话:╳╳╳╳

2011年 3月 15 日

电话:╳╳╳╳ 2011年 3月 15 日

上一篇:精选20xx劳动合同范本下一篇:人感染h7n9禽流感知识