学生证信息管理(数据库课程设计报告)
- 格式:docx
- 大小:66.27 KB
- 文档页数:9
学生信息管理系统课程设计报告1. 项目简介该项目旨在开发一个学生信息管理系统,为学校管理学生信息提供便捷的解决方案,满足管理部门的日常管理需求,能够对学生成绩、个人信息进行细致的管理和追踪。
本系统将用户权限划分为普通用户和管理员,管理员可以查看所有学生信息,添加新用户,编辑学生成绩等,普通用户可以查看自己的学生信息。
2. 项目所涉及的技术本项目使用的技术包括:(1)数据库:SQLite,用于存储系统用户和学生信息;(2)编程语言:Python,用于编写系统后端。
(3)前端技术:HTML、CSS、JS,用于创建系统前端页面。
3. 系统设计(1)用户登录系统设计系统登录部分使用HTML表单,可以分为3部分:(1)登录表单:用户可以输入用户名和密码进行登录;(2)验证码:用户需要输入验证码进行人机验证;(3)登录按钮:点击按钮可以提交表单,实现登录。
(2)成绩管理系统设计(1)登录权限管理:为用户设置不同的访问权限。
(2)添加学生:允许管理员添加新学生,输入学生信息;(3)编辑学生信息:允许管理员编辑学生信息;(4)录入学生成绩:允许管理员在数据库中录入学生成绩;(5)查看成绩:允许普通用户查看自己的学生成绩。
4. 实现(1)登录部分本部分使用HTML表单进行登录页面的设计,表单的各属性依次为:用户名、密码、验证码以及登录按钮。
(2)成绩管理系统本部分实现了登录权限管理、添加学生、编辑学生信息和成绩查询功能,登录权限使用cookie储存,添加学生、编辑学生信息利用数据库储存,成绩查询功能实现了从数据库中检索学生成绩的功能,成绩信息以表格形式呈现出来。
5. 总结本项目旨在开发一个学生信息管理系统,用于学校管理学生信息。
本文对本项目的功能进行了简要的概括介绍,以及使用的技术,并根据需求设计出系统的大体结构,着重介绍了用户登录和成绩管理系统设计,并介绍了本项目的实现,总结了本次项目所取得的成果。
目录读书笔记 .............................................................................................. 错误!未定义书签。
1. 学生信息管理系统概述............................................................................................... 21.1 研究背景 ................................................................................................................... 2开发意义 ......................................................................................................................... 22. 系统需求分析 ............................................................................................................... 32.1 开发环境和软件 ....................................................................................................... 32.2 系统设计与功能分析 ............................................................................................... 33数据库设计 .................................................................................................................. 43.1 系统概念结构设计 ................................................................................................... 43.2 系统逻辑结构设计 ................................................................................................... 53.3 数据库实现 ............................................................................................................... 63.3.1 数据库关系图 ....................................................................................................... 6SQL语句实现................................................................................................................. 74. 系统模块详细设计....................................................................................................... 9用户登录模块.................................................................................................................. 94.2 各用户操作模块 ................................................................................................... 104.2.1 管理员操作模块 ............................................................................................... 104.2.2 教师操作模块 ................................................................................................... 104.2.3 学生操作模块 ................................................................................................... 105. 系统运行与测试....................................................................................................... 115.1 管理员登录 ............................................................................................................. 115.2 教师登录 ................................................................................................................. 135.3 学生登录 ................................................................................................................. 196.课程设计总结 ........................................................................................................... 22学生信息管理系统1. 学生信息管理系统概述1.1 研究背景学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。
学生信息管理系统数据库设计报告一、前言学生信息管理系统是一种非常重要的教务管理工具,它可以帮助学校管理学生的个人信息、课程信息以及成绩信息等。
在本报告中,我们将详细介绍一个学生信息管理系统的数据库设计方案。
二、需求分析在设计学生信息管理系统数据库之前,我们需要进行需求分析。
根据实际需求,该系统需要包含以下功能:1. 学生个人信息管理:包括学生姓名、性别、出生日期、身份证号码、联系电话等;2. 课程信息管理:包括课程名称、授课教师、上课时间、上课地点等;3. 成绩信息管理:包括学生姓名、课程名称、成绩等;4. 用户权限管理:包括管理员和普通用户两种角色,管理员可以对系统进行操作和管理,普通用户只能查看自己的个人信息和成绩。
三、数据库设计根据以上需求,我们可以设计出以下数据库结构:1. 学生表(student)字段名数据类型字段描述id int 主键IDname varchar(20) 姓名sex varchar(2) 性别birthday date 出生日期id_card varchar(18) 身份证号码phone varchar(20) 联系电话2. 课程表(course)字段名数据类型字段描述id int 主键IDname varchar(50) 课程名称teacher varchar(20) 授课教师time varchar(20) 上课时间place v archar(50) 上课地点3. 成绩表(score)字段名数据类型字段描述id int 主键IDstudent_id int 学生ID(外键)course_id int 课程ID(外键)score f loat 成绩4. 用户表(user)字段名数据类型字段描述id int 主键IDusername varchar(20) 用户名password varchar(50) 密码role int 角色(1:管理员,2:普通用户)四、数据库关系图根据以上数据库设计,我们可以画出以下的数据库关系图:五、总结通过本报告的介绍,我们了解了一个学生信息管理系统的数据库设计方案。
数据库课程设计报告题目:学生信息管理系统学号:姓名:指导老师:完成时间:1 系统需求分析学校每年都有新生入学,老生毕业,有各种奖惩更新,学籍的变动,以及班级学院的更换。
面对着一系列数据,如何高效地管理学生信息,实现信息的正确存储和利用,帮助老师掌握学生的基本情况,对于系统的总体设计尤为重要。
1.1系统功能分析本系统为解决学生信息的管理,实现信息的更新和删除,特针对于需求分析,设计出具有如下功能的学生管理系统:(1) 学生信息输入,包括学生信息的添加,修改,显示等。
(2) 学生信息查询,包括学生信息的查找和删除。
(3) 学生处罚信息管理,包括添加,查找,删除等。
(4) 学生学籍信息管理,包括添加,修改,查询等。
(5) 学生奖励信息管理,包括添加,查找,删除等。
(6) 学生班级信息管理,包括添加,查找,删除等。
(7) 学院部门信息管理,包括添加,查找,删除等。
(8) 系统帐户管理,包括添加帐户,更改密码等。
1.2系统功能模块设计根据系统需求分析,以及需要实现的功能分析,需要对整个系统分成八个模块,来实现其所要求的功能,本系统功能模块设计如图1所示。
图1 学生管理系统功能模块图1.3与其它系统的关系学生信息管理系统是校园信息管理系统的一个重要组成部分,是实现对学生有效管理的工具。
它所提供的功能,如学籍管理,学生奖励管理和学生处罚管理,对财务系统,成绩管理系统等其他系统的使用提供了支持,数据库内容亦可共享,从而实现资源的重利用。
1.4数据流程图数据流程图是根据数据的流向,规划整个数据库和管理整个系统,从而高效地开发数据库管理系统。
本系统的数据流程图如图2所示。
学生信息管理系统学生信息输入学生处罚,奖励,学籍管理 学生班级,学院部门处罚管理 奖励管理 学籍管理 班级管理 学院管理添加帐户 学生基本信息管理 系统\其他学生信息查询修改密码图2 学生管理系统数据流程图2.数据库设计2.1数据库需求设计根据系统功能分析和功能模块设计,可以得出数据库中需要建立的数据项和数据结构:学生基本信息:学号,姓名,性别,班级,学院,生日,籍贯等 学生学籍信息:记录号,学号,变更代号,记录时间以及变更描述。
数据库学生管理系统课程设计报告一、引言学生管理系统是一种能够有效管理学校教育信息的软件系统。
本报告旨在设计一个基于数据库的学生管理系统,以便学校能够更好地管理学生信息、课程信息和成绩信息。
二、系统需求分析1. 学生信息管理学生信息包括学生的基本信息(如学号、姓名、性别、年龄、专业等)和联系方式。
系统应能够实现学生信息的录入、修改、查询和删除操作。
2. 课程信息管理课程信息包括课程编号、课程名称、授课教师和学分。
系统应能够实现课程信息的录入、修改、查询和删除操作。
3. 成绩信息管理成绩信息包括学生学号、课程编号、成绩和考试时间等。
系统应能够实现成绩信息的录入、修改、查询和删除操作,并能够计算学生的平均成绩和排名情况。
三、系统设计1. 数据库设计设计一个关系型数据库,包括学生表(Student)、课程表(Course)和成绩表(Score)。
学生表包含学号、姓名、性别、年龄、专业等字段;课程表包含课程编号、课程名称、教师等字段;成绩表包含学号、课程编号、成绩、考试时间等字段。
2. 界面设计设计一个简洁直观的用户界面,包括学生信息管理、课程信息管理和成绩信息管理等功能模块,为用户提供友好的交互体验。
四、系统实现基于数据库设计和界面设计,利用编程语言(如Java)实现学生管理系统功能。
通过编码和调试,确保系统功能正常运行。
五、系统测试对学生管理系统进行全面测试,包括功能测试、性能测试和安全测试等,保证系统的稳定性和可靠性。
六、系统优化根据测试结果和用户反馈,不断优化学生管理系统,提高系统的效率和用户体验。
七、总结通过学生管理系统课程设计,我对数据库设计、界面设计和系统实现有了更深入的理解。
希望这一设计能够为学校的教育信息管理提供一定的参考和帮助。
《数据库》期末课程设计报告学生信息管理系统1课程设计题目:学生信息管理系统随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增加。
面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
现在的时代是网络普及是时代,学生有条件通过网络方便快捷的查询自己的个人信息。
所以,学生信息管理系统既能方便学校管理部门的管理,又能方便学生及时查询个人信息。
2需求分析需求分析阶段的目标和任务2.1.1处理对象学生个人信息:学号,姓名,性别,年龄,院系学生课程信息:学号,选修课程号,课程成绩课程信息:课程号,课程名称,课程信息教师信息:教师名字,教师编号,教师年龄,教师工资,教师所属院系任课教师信息:教师编号,课程号院系信息:院系编号,院系名称2.1.2处理功能及要求开发学生信息管理系统,主要为减轻教师人员的负担,使学生信息的存入记录与取出记录相对方便,便于学生个人信息的增加与减少,降低出错率,使管理更加合理、科学,也为老师节省开支。
在系统中的新生信息的录入、教师信息的查询,由于在学生信息管理的过程中会涉及到大量的数据操作,如数据的添加、删除、修改和保存等。
这主要包括:1.能够对学生个人信息进行一定的操作处理:1)学生个人信息的增加、删除以及修改。
2)学生个人信息的多关键字检索查询。
2 .能够对学生个人信息,教师信息的查询相关资料,这其中包括:1)学生个人信息的增加、删除及修改。
2 )教师个人信息的增加,删除及修改3.对查询、统计的结果能够列表显示。
2.1.3安全性和完整性要求1)安全性要求系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,教务员可以设置密码来限制别人访问系统的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
学生信息管理系统数据库设计目录一、需求分析 (3)组合的业务处理流程图: (8)二、概念分析 (9)三、逻辑设计 (16)四.物理设计阶段 (25)五、系统实现 (26)六、主要代码 (33)七、课程设计总结 (57)一、需求分析1.1功能需求分析总体任务的实现是建立在对系统正确的需求分析基础之上的。
需求分析分是数据库系统开发的第一步,也是最重要的一步。
在大学的学习生活中学生的活动范围很广,信息量相对于以前增加,学生在学习生活中不仅仅与寝室和同班同系的同学联系有时候还要与自己所学学科的任课老师交流联系,还要与本系的辅导员以及自己所在寝室的宿舍管理员等进行联系,这些信息分布比较散乱,难于集合起来。
所以创建该数据库尽可能的将与学生相关的信息集合起来,将一些数据结构化,方便用户查询。
学生信息系统的基本情况由于整个系统是由多个部分组成,所以各个信息如下:(1)学生信息:记录在学校中学生的基本信息,包括姓名,学号,出生年月,所属院系,所在班级,联系电话等等;(2)教师信息:记录与学生相关的教师的基本信息,包括教师姓名,联系电话,教授课程等等;(3)导师信息:记录学生所在院系的导师的相关信息,包括导师姓名,联系电话,领导院系等等;(4)宿舍信息:记录学生所住寝室的相关信息,包括寝室号和寝室宿管联系电话等等。
1.2需求分析阶段的目标(1)信息要求:用户能够查找到有关学生的所有相关信息包括学生基本信息还有相关老师的信息(2)处理要求:当信息发生变化时,一些信息能够自行修改而不造成插入删除错误。
(3)完整性要求:①.各种信息记录的完整性,信息记录内容不能为空;②.各种数据间相互的联系的正确性;③相同的数据在不同记录中的一致性。
1.3信息需求分析①院系的基本信息院系编号、院系名称、联系电话、院系主任②班级的基本信息班级编号、院系编号、班级名称、班长、学生数③学生的基本信息学号、班级编号、姓名、性别、出生日期、家庭住址④课程的基本信息课程编号、课程名称、学分、讲师⑤成绩的基本信息学号、课程编号、成绩、学分⑥讲师的基本信息讲师编号、讲师姓名、教授班级、联系电话⑦宿舍的基本信息宿舍编号、宿舍地址、联系电话、所属院系⑧导师的基本信息导师编号、导师姓名、联系电话、所属院系1.4需求分析阶段成果根据实际业务处理过程,绘制业务流程图如图所示:(a)验证模块(b)查询模块(c)选课模块(d)维护模块组合的业务处理流程图:数据流程图顶层数据流程图:二层数据流程图:二、概念分析2.1对数据进行抽象概念结构是对现实的一种抽象。
管理学生信息-数据库应用课程设计报告数据库应用课程设计报告一,系统需求分析本课题根据学生信息管理综合分析,便出于方便管理考虑,将学生信息管理系统的功能总结起来,根据不同的用户实现相应的功能:1.管理员①管理学生信息管理所有学生的基本信息,对学生信息的操作包括添加、修改、删除等;可以根据学号查询出需要的信息,比如修改,可以通过学生学号查询出学生的基本信息,然后通过对需要修改项进行修改并保存修改后的结果存入数据库的学生表中。
②管理课程信息管理所有课程的基本信息,包括对课程信息的添加、修改、删除等操作;可以根据各种条件查询出需要的信息,并对相应的信息进行操作。
比如修改和删除,可以通过学生的学号查询出学生的相应课程信息,对相应的课程进行修改、删除操作。
③登分根据学生的学号和所选的课程号,登记所选课程的成绩;可以根据学号查询出选课信息与成绩。
④修改密码提高用户的安全性,初次登录时密码和用户名相同,用户可以根据自己的需要来更改密码,提高自己账户的安全性。
⑤退出点击退出系统。
2.学生①学生选课学生登入后可以根据课程信息选择相应的课程号实现选课功能。
②学生查询成绩显示学生所选的课程的成绩。
③修改密码提高用户的安全性,初次登录时密码和用户名相同,用户可以根据自己的需要来更改密码,提高自己账户的安全性。
④退出点击退出系统。
通过以上功能的设计与实现,并实现学生信息管理系统的基本功能。
二,系统界面1,登录界面2,学生用户界面3,管理员用户界面4,学生选课界面5,学生成绩查询6,修改密码7,学生信息管理8,课程信息管理9,成绩管理10,综合查询三,详细代码package sms;public class Userdata { public static int type=1;public static String Id="";public static String password =""; public static String stitle="学生"; public static String smessage="学号"; public static String ctitle="课程"; public static String cmessage="课程号";}package sms;import java.sql.*;public class Conmysql {private static String driver = "com.mysql.jdbc.Driver";private static String url = "jdbc:mysql://127.0.0.1/test";// URL指向要访问的数据库名scutcsprivate static String user= "root";// MySQL配置时的用户名private static String password = "123456";public static Connection cn; public static void conn(){try{Class.forName(driver);cn =DriverManager.getConnection(url, user,password);}catch(SQLException e){}catch(Exception e1){}}}package sms;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Welcome extends JFrame implements ActionListener{JLabel lb1,lb2,lb3;JTextField tf1,tf2;JButton denglu;JRadioButton jb1,jb2;int type=1;boolean isValidUser=false; // 标识是否为合法用户Welcome(){super("学生管理系统");setSize(400,400);setLocation(500,200);lb1=new JLabel("欢迎使用学生管理系统,请先登录!");lb1.setFont(newjava.awt.Font("Dialog",1,20));lb2=new JLabel("ID号:");lb3=new JLabel("密码:");t f1=new JTextField(15);t f2=new JPasswordField(15);denglu=new JButton("登录");jb1 = new JRadioButton("学生",true);jb2 = new JRadioButton("管理员");ButtonGroup bg = newButtonGroup();bg.add(jb1);bg.add(jb2);jb1.setContentAreaFilled(false);jb2.setContentAreaFilled(false);denglu.setContentAreaFilled(false); //将按钮设置为透明的Container cp=getContentPane();cp.setLayout(null);cp.setBackground(Color.pink);lb1.setBounds(40,40,400,50);lb2.setBounds(40,125,75,35); //前两个是组件左上角在容器中的坐标后两个是组件的宽度和高度tf1.setBounds(100,125,150,35);lb3.setBounds(40,180,75,35);tf2.setBounds(100,180,150,35);denglu.setBounds(120,300,100,30);jb1.setBounds(80,250,80,30);j b2.setBounds(180,250,100,30);cp.add(lb1);cp.add(lb2);cp.add(tf1); cp.add(lb3); cp.add(tf2);cp.add(denglu);cp.add(jb1);cp.add(j b2);setVisible(true);denglu.addActionListener(this);jb1.addActionListener(this);jb2.addActionListener(this);}public voidactionPerformed(ActionEvent e){if(jb1 == e.getSource()) type = 1;if(jb2 == e.getSource()) type =2;if(denglu == e.getSource()){if (ValidateInput()){ValidateUser(tf1.getText(),tf2.getT ext());if(isValidUser){Userdata.Id =tf1.getText();Userdata.password =tf2.getText();ShowForm(); // 显示相应用户的主窗体setVisible(false);}}}}public voidactionPerformed(ActionEvent e){if(jb1 == e.getSource()) type = 1;if(jb2 == e.getSource()) type =2;if(denglu == e.getSource()){if (ValidateInput()){ValidateUser(tf1.getText(),tf2.getT ext());if(isValidUser){Userdata.Id =tf1.getText();Userdata.password =tf2.getText();ShowForm(); // 显示相应用户的主窗体setVisible(false);}}}}private boolean ValidateInput(){if(tf1.getText().length()==0) {JOptionPane.showMessageDialog( null ,"请输入用户名!", "输入提示",JOptionPane.WARNING_MESSAGE) ;tf1.requestFocusInWindow();return false;}else if(tf2.getText().length()==0){JOptionPane.showMessageDialog( null ,"请输入密码!", "输入提示",JOptionPane.WARNING_MESSAGE) ;tf2.requestFocusInWindow();return false;}else{return true;}}public void ValidateUser(StringId,String password){if(type==2){String sqlstr1 = "select * from administrant where ID ='"+Id+"'";String sqlstr2 = "select * from account where ID='"+Id+"' and Password='"+password+"' ";confirm(sqlstr1,sqlstr2);}else if(type ==1){String sqlstr1 = "select * from student where Sno ='"+Id+"'";String sqlstr2 = "select * from account where ID='"+Id+"' and Password='"+password+"' ";confirm(sqlstr1,sqlstr2);}}public void confirm(Stringsql1,String sql2){try{Conmysql.conn();Statement sta=.createStatement();ResultSet rs1 =sta.executeQuery(sql1);if(rs1.next()) {ResultSet rs =sta.executeQuery(sql2);if(rs.next()) isValidUser = true;else{isValidUser = false;JOptionPane.showMessageDialog( null ,"密码错误!", "输入提示",JOptionPane.WARNING_MESSAGE) ;}}else{isValidUser = false;JOptionPane.showMessageDialog( null ,"用户名错误!", "输入提示",JOptionPane.WARNING_MESSAGE) ;}.close();}catch(Exception e){JOptionPane.showMessageDialog( null , "ERROR!");}}public void ShowForm(){if(type == 1) {Usermenu user = new Usermenu();}else if(type ==2){Managermenu manger = new Managermenu();}}public static void main(Stringargs[]){Welcome app=new Welcome();}}package sms;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Usermenu extends JFrame implements ActionListener{JButton bt1,bt2,bt3,bt4;Usermenu(){super("学生管理系统欢迎您");setSize(800,520);setVisible(true);setResizable(false);setLocation(300,80); //将当前窗口的左上角定位Container cp=getContentPane();cp.setLayout(null);JTextPane tp = new JTextPane();tp.setBounds(0,0,800,130);Icon image = newImageIcon("src/01.jpg");try{tp.insertIcon(image);}catch(Exception e){}bt1 = new JButton("选课");bt2 = new JButton("查询");bt3 = new JButton("修改密码");bt4 = new JButton("退出");bt1.setBounds(60, 160, 120, 40);bt2.setBounds(60,240,120,40);bt3.setBounds(60, 320, 120, 40);bt4.setBounds(60,400,120,40);cp.add(tp);cp.add(bt1);cp.add(bt2); cp.add(bt3);cp.add(bt4);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);bt4.addActionListener(this);}public voidactionPerformed(ActionEvent e){if(e.getSource() == bt1){StChoosecno choose = new StChoosecno();}if(e.getSource() == bt2){StSelect ();}if(e.getSource() == bt3){UpdatePassword up = new UpdatePassword();}if(e.getSource() == bt4){System.exit(0);}}public void StSelect(){try{Conmysql.conn();Statement sta=.createStatement();String sqlstr1 = "Select count(*) from grade whereSno='"+Userdata.Id+"'";String sqlstr2 = "Select * from grade where Sno='"+Userdata.Id+"'";ResultSet rs =sta.executeQuery(sqlstr2);if(rs.next()) //会取出一条记录{Playshow s= new Playshow();String title="选课成绩信息";s.play(sqlstr1,sqlstr2,title,sta);}else{JOptionPane.showMessageDialog(null, "您还没有选课,请先选课!");}.close();}catch(Exception g){}}}package sms;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Managermenu extends JFrame implements ActionListener{JButton bt1,bt2,bt3,bt4,bt5,bt6; Managermenu(){super("学生管理系统欢迎您");setSize(800,600);setVisible(true);setResizable(false);setLocation(300,80); //将当前窗口的左上角定位Container cp=getContentPane();cp.setLayout(null);JTextPane tp = new JTextPane();tp.setBounds(0,0,800,130);Icon image = newImageIcon("src/01.jpg");try{tp.insertIcon(image);}catch(Exception e){}bt1 = new JButton("学生信息管理");bt2 = new JButton("课程信息管理");bt3 = new JButton(" 登分");bt4 = new JButton(" 综合查询 ");bt5 = new JButton(" 修改密码 ");bt6 = new JButton(" 退出");bt1.setBounds(60, 150, 120, 40);bt2.setBounds(60, 220, 120, 40);bt3.setBounds(60, 290, 120, 40);bt4.setBounds(60, 360, 120, 40);bt5.setBounds(60, 430, 120, 40);bt6.setBounds(60, 500, 120, 40); cp.add(tp);cp.add(bt1);cp.add(bt2); cp.add(bt3);cp.add(bt4);cp.add(bt5);cp.add(bt6);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);bt4.addActionListener(this);bt5.addActionListener(this);bt6.addActionListener(this); }public voidactionPerformed(ActionEvent e) {if(e.getSource() == bt1){StManage stManage = new StManage();}if(e.getSource() == bt2){CourseManage crManage = new CourseManage();}if(e.getSource() == bt3){Register reg = new Register();}if(e.getSource() == bt4){Search search = new Search();}if(e.getSource() == bt5){UpdatePassword up = new UpdatePassword();}if(e.getSource() == bt6){System.exit(0);}}}package sms;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class StChoosecno extends JFrame implements ActionListener{JTextField tf1;JButton bt1,bt2;String str1="课程信息";Statement sta;Playshow p;String cno;StChoosecno(){super("选课");setSize(530,180);setLocation(525,150);Container cp=getContentPane();cp.setLayout(null);JLabel lb1 = new JLabel("选的课程号");tf1 = new JTextField(15);bt1 = new JButton("添加");bt2 = new JButton("取消");lb1.setBounds(150, 20, 75, 35);tf1.setBounds(250, 20, 75, 35);bt1.setBounds(115, 80, 75, 30);bt2.setBounds(270, 80, 75, 30);cp.add(tf1);cp.add(lb1);cp.add(bt1) ;cp.add(bt2);bt1.addActionListener(this);bt2.addActionListener(this);setResizable(false);setVisible(true);try{Conmysql.conn();sta=.createStatement();String sqlstr1,sqlstr2;sqlstr1="select count(*) fromcourse"; //取得数据表的元组sqlstr2="select * from course";p = new Playshow();p.play(sqlstr1, sqlstr2, str1, sta);}catch(Exception e){}}public voidactionPerformed(ActionEvent e){if(e.getSource()==bt1){cno= tf1.getText();if(cno.length()==0) JOptionPane.showMessageDialog(null, "请输入课程号");else{String sql1 ="Select * from course where Cno='"+cno+"'";String sql2 = "Insert intograde(Sno,Cno)Values('"+Userdata.Id+"','"+cno+"')";OptionCourse(sql1,sql2);}}if(e.getSource()== bt2){p.f.dispose();dispose();}}public void OptionCourse(Stringsql1,String sql2){try{Conmysql.conn();Statement sta =.createStatement();ResultSet rs =sta.executeQuery(sql1);if(rs.next()){sta.executeUpdate(sql2);JOptionPane.showMessageDialog(null, "选课成功!","提示",RMATION_MESSAGE);}elseJOptionPane.showMessageDialog(null,"选课失败!","提示",JOptionPane.ERROR_MESSAGE);.close();}catch(Exception e){JOptionPane.showMessageDialog(null, "该课已经选了,不能再选!","提示",JOptionPane.WARNING_MESSAGE);}}}package sms;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class StManage extends JFrame implements ActionListener{JButton bt1,bt2,bt3,bt4; StManage(){super("学生信息管理");setSize(500,360);setLocation(560,255);Container cp = getContentPane();cp.setLayout(null);JLabel lb = new JLabel("学生信息管理");lb.setFont(newFont("true",Font.TRUETYPE_FONT,32));bt1 = new JButton("增加学生信息");bt2 = new JButton("修改学生信息");bt3 = new JButton("删除学生信息");bt4 = new JButton("查询学生信息"); lb.setBounds(130,20,300,40);bt1.setBounds(60, 90, 120, 35);bt2.setBounds(60, 150, 120, 35);bt3.setBounds(60, 210, 120, 35);bt4.setBounds(60, 270, 120, 35);cp.add(lb);cp.add(bt1);cp.add(bt2); cp.add(bt3);cp.add(bt4);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);bt4.addActionListener(this);setVisible(true);}public voidactionPerformed(ActionEvent e){if(e.getSource()==bt1){AddSt addSt = new AddSt();}if(e.getSource()==bt2){UpdateSt updateSt = new UpdateSt();}if(e.getSource()==bt3){DeleteSt deleteSt = new DeleteSt();}if(e.getSource()==bt4){SelectSt selectSt = new SelectSt();}}}package sms;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class AddSt extends JFrame implements ActionListener{Statement sta;JButton bt1,bt2;String sno,sname,sex,clno;int sage;StInformation stinfor= new StInformation();AddSt(){bt1 = new JButton("添加");bt2 = new JButton("取消");bt1.setBounds(60,340,60,30);bt2.setBounds(160,340,60,30);stinfor.c.add(bt1);stinfor.c.add(bt 2);bt1.addActionListener(this);bt2.addActionListener(this);}public voidactionPerformed(ActionEvent e){if(e.getSource()==bt1){sno = stinfor.tfsno.getText();sname=stinfor.tfsname.getText();sex =stinfor.tfsex.getText();clno = stinfor.tfclno.getText();if(sno.length()==0||sname.length()= =0 )//||tfsage.getText().length()==0)JOptionPane.showMessageDialog(null, "请添加必要信息");else{try{Conmysql.conn();sta =.createStatement();if(stinfor.tfsage.getText().length( )==0){String sql1 ="insert into student(Sno,Sname,Ssex,Clno)values('"+sno+"','"+sname+"','"+sex+" ','"+clno+"')";sta.executeUpdate(sql1);JOptionPane.showMessageDialog(null, "添加成功!");}else{sage =Integer.parseInt(stinfor.tfsage.getText());String sql1 ="insert into studentvalues('"+sno+"','"+sname+"','"+sex+" ','"+sage+"','"+clno+"')";sta.executeUpdate(sql1);JOptionPane.showMessageDialog(null, "添加成功!");}}catch(SQLExceptione2){JOptionPane.showMessageDialog(nul l,"该学生已存在,请重新输入!");}catch(Exception e2){}}}if(e.getSource()==bt2){stinfor.dispose();}}}class StInformation extends JFrame {JTextFieldtfsno,tfsname,tfsage,tfsex,tfclno; //JButton bt1,bt2;Container c ;StInformation(){super("学生信息");setSize(300,430);setLocation(780,200);JTextField tf1,tf2,tf3,tf4,tf5;c = getContentPane();c.setLayout(null);JLabel lb = new JLabel("学生信息",SwingConstants.CENTER);lb.setFont(newFont("TRUE",Font.ITALIC,30));JLabel lb1 = new JLabel("学号");JLabel lb2 = new JLabel("名字");JLabel lb3 = new JLabel("性别");JLabel lb4 = new JLabel("年龄");JLabel lb5 = new JLabel("班级号");tfsno = new JTextField(10);tfsname = new JTextField(10);tfsex = new JTextField(10);tfsage = new JTextField(10);tfclno = new JTextField(10);lb.setBounds(40,25,200,40);lb1.setBounds(70,90,60,30);tfsno.setBounds(130, 90, 80, 30);lb2.setBounds(70,140,60,30);tfsname.setBounds(130, 140, 80, 30);lb3.setBounds(70,190,60,30);tfsex.setBounds(130, 190, 80, 30);lb4.setBounds(70,240,60,30);tfsage.setBounds(130, 240, 80, 30);lb5.setBounds(70,290,60,30);tfclno.setBounds(130,290, 80, 30);/*bt1 = new JButton("添加");bt2 = new JButton("取消");bt1.setBounds(60,340,60,30);bt2.setBounds(160,340,60,30);*/c.add(lb);c.add(lb1);c.add(tfsno);c .add(lb2);c.add(lb3);c.add(lb4);c.add (lb5);c.add(tfsname);c.add(tfsex);c.add(t fsage);c.add(tfclno);// c.add(bt1);c.add(bt2);setVisible(true);}}package sms;import java.awt.*;import java.awt.event.*;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.*;public class UpdateSt{public static String title="学生"; public static String message="学号"; UpdateForm updateform = new UpdateForm(title,message);}class UpdateForm extends JFrame implements ActionListener{JTextField tf1;JButton bt1,bt2;String id;UpdateForm(String str1,String str2) {super("修改"+str1+"信息");setSize(300,200);setLocation(800,380);setLayout( null);JLabel lb1 = new JLabel("请输入"+str2);lb1.setFont(newFont("true",Font.TRUETYPE_FONT,18));tf1 = new JTextField(10);bt1 = new JButton("确定");bt2 = new JButton("取消");lb1.setBounds(40,40,200,30);tf1.setBounds(160,40,80,30);bt1.setBounds(60,90,60,30);bt2.setBounds(170,90,60,30);Container cp = getContentPane();cp.setBackground(newColor(195,255,250));cp.add(lb1); cp.add(tf1);cp.add(bt1);cp.add(bt2);bt1.addActionListener(this);bt2.addActionListener(this);setVisible(true);}public voidactionPerformed(ActionEvent e){id = tf1.getText();if(e.getSource()==bt1){if(id.length()==0) JOptionPane.showMessageDialog(null, "请先输入学号或课程号");else{ShowFillForm();setVisible(false);}}if(e.getSource()==bt2){dispose();}}public void ShowFillForm(){if(Userdata.type==1) {FillSt fs= new FillSt(id);}else if(Userdata.type==2){FillCourse fc= newFillCourse(id);}}}class FillSt extends JFrame implements ActionListener{Statement sta;JButton bt1,bt2;String sno,sname,sex,clno;int sage;StInformation stinfor= new StInformation();FillSt(String str){bt1 = new JButton("修改");bt2 = new JButton("取消");bt1.setBounds(60,340,60,30);bt2.setBounds(160,340,60,30);stinfor.tfsno.setText(str);stinfor.c.add(bt1);stinfor.c.add(bt 2);bt1.addActionListener(this);bt2.addActionListener(this);try{Conmysql.conn();String sql1 ="select * from student where Sno ='"+str+"' ";sta =.createStatement();ResultSet rs1 =sta.executeQuery(sql1);if( rs1.next()==false) JOptionPane.showMessageDialog(null,"。
数据库学生信息管理系统实验报告一、实验目的本次实验的目的是设计并实现一个基于数据库的学生信息管理系统,通过该系统可以对学生的基本信息进行增删改查等操作,方便高效地管理学生信息。
二、实验内容1. 创建数据库:首先,在MySQL中创建一个名为"student_info"的数据库,用于存储学生信息的表。
2. 创建表结构:在数据库中创建一个名为"student"的表,用于存储学生的基本信息,包括学号、姓名、性别、年龄、班级等字段。
3. 实现增加学生信息的功能:设计一个界面,在界面上输入学生的基本信息,然后将这些信息插入到数据库的"student"表中。
4. 实现删除学生信息的功能:设计一个界面,在界面上输入要删除的学生的学号,然后根据学号将该学生的信息从数据库的"student"表中删除。
5. 实现修改学生信息的功能:设计一个界面,在界面上输入要修改的学生的学号和需要修改的字段信息,然后根据学号将该学生的相应字段信息更新到数据库的"student"表中。
6. 实现查询学生信息的功能:设计一个界面,在界面上输入要查询的学生的学号,然后根据学号从数据库的"student"表中查询相应学生的信息并显示在界面上。
三、实验过程1. 创建数据库:在MySQL中执行以下指令创建名为"student_info"的数据库:CREATE DATABASE student_info;2. 创建表结构:在"student_info"数据库中执行以下指令创建名为"student"的表:CREATE TABLE studentid INT PRIMARY KEY AUTO_INCREMENT,student_id VARCHAR(20) NOT NULL,name VARCHAR(20) NOT NULL,gender VARCHAR(4) NOT NULL,age INT NOT NULL,class VARCHAR(20) NOT NULL3. 实现增加学生信息的功能:使用Java编写一个程序,通过JDBC 连接到MySQL数据库,然后通过用户界面输入学生的基本信息,将这些信息插入到"student"表中。
C语言课程设计实验报告课程设计题目:学生证管理系统姓名:学号:班级:专业:指导教师:2014年 1 月 2 日学生证管理系统课程设计报告1。
需求分析。
根据学生证管理的需要,建一个“学生证管理系统”,以方便对学生证信息的各项管理操作。
要求完成:1。
能对学生证信息进行录入和修改2。
能按照学号和班级号显示学生证信息和更改、删除信息。
2。
总体设计。
根据以上分析,本系统主要包括:从键盘输入学生证信息、从指定的文件中读入学生证信息、按照学号和班号查询学生证信息、删除和修改学生证信息。
(1)主函数main():定义学生结构体数组,输出操作对话框,调用录入、查询、删除、输出等函数对学生证信息进行处理。
(2)录入函数enter():从键盘输入学生证信息。
(3)录入函数load():从文件输入学生证信息.(4)查询函数search():按学号查找记录信息。
(5)查询函数display():按班级查找记录信息。
(6)删除函数del():删除指定学号的学生记录。
(7)修改函数modify():按照指定学号修改记录。
程序功能机构图如下:3.详细设计。
本功能一共有16个函数,其中一个主函数,15个功能模块,每个功能模块都是由于主函数或其他功能模块调用,分别说明如下:图1.2 主程序流程图(2)键盘输入函数.键盘输入函数主要完成学生信息从屏幕输入数据,并将数据保存到文本文件中,以备后用。
流程图:Y(3)文件输入函数。
文件输入函数主要完成学生信息从文件中读入数据.Y(4)学号查询函数。
学号查询函数是完成由用户输入需要查询的学号,在现有学生信息中查询是否有此学生信息存在,查到输出学生全部信息,没查到则输出“此学生部存在”信息。
流程图如下:图1。
5 学号查询流程图(5)班级查询函数.班级查询函数是完成由用户输入需要查询的班级,在现有学生信息中查询此班级的全部学生信息,查到输出全部信息,没差到则输出“此班级学生不存在"信息。
学生证信息管理系统时间、地点:第十三周,软件楼501.实验目的:通过这次课程设计让我们能够综合运用自己在课堂上所学的数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程。
进一步提高我们的分析问题和解决问题的能力以及动手能力。
试验要求:设计一个学生证管理系统,需要实现以下功能:1、录入某位学生的学生证信息;2、给定学号,查询某位学生的学生证信息;3、给定班号,显示该班所有学生的学生证信息;4、给定学号,修改该学生的学生证信息;5、给定学号,删除该学生的学生证信息。
思路:E-R图:需求分析:处理对象:系统要处理对象包括学生的基本信息、学生证的管理日期、学生证的注册时间等三个方面,各个对象包括的具体信息为:1、学生基本信息:学院,学号,专业,学制,性别,班级,姓名,民族,籍贯,这可以有效的去查询学生的个人基本信息情况。
2、学生证注册表:学号,注册学期,注册时间,可以较好的了解学生每学期报到及学习情况3、学生证的管理日期:学号,入学时间,发证日期,有效日期,能够知道学生在校的时间以及学生证的有效管理。
该系统的处理功能:1、录入某位学生的学生证信息。
2、给定学号,查询某位学生的学生证信息。
3、给定班号,显示该班所有学生的学生证信息。
4、给定学号,修改该学生的学生证信息。
5、给定学号,删除该学生的学生证信息。
安全性和完整性要求:安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可满足系统数据一定程度上的安全性,再通过用户授权机制,用用户登录来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。
完整性要求用于描述学生的基本信息、学生证的注册的时间、学生证得管理等基本信息中的数据项能否为null,以及完整性是否符合实际的要求。
过程(代码):/* 创建数据库*/create database 学生证信息管理on(name=学生证信息管理_data,filename='d:\学生证信息管理.mdf',size=20,maxsize=50,filegrowth=5)log on(name=学生证信息管理_log,filename='d:\学生证信息管理.ldf',size=20,maxsize=50,filegrowth=5)/* 创建表*/create table s_info /* 建表s_info */ (学号char(10) primary key,姓名char(10),班号char(10),学院varchar(20),系别varchar(20),学制char(4),性别char(4),民族char(4),出生日期datetime,籍贯varchar(30))create table s_time /* 建表s_time */ (学号char(10) primary key,入学时间datetime,发证时间datetime,有效期限datetime)create table chck /* 建表chck */(学号char(10) primary key,注册时间datetime,注册学院varchar(30))/* 表内容*/insert into s_info values('09114101', '张一','091141','软件学院','网络工程','4','男','汉','1990-4-1','江西省南昌市')insert into s_info values('09114102', '张二','091141','软件学院','网络工程','4','男','汉','1990-4-2','江西省南昌市')insert into s_info values('09114103', '张三','091141','软件学院','网络工程','4','女','汉','1990-4-3','江西省南昌市')insert into s_info values('09114104', '张四','091141','软件学院','网络工程','4','男','汉','1990-4-4','江西省南昌市')insert into s_info values('09114105', '张五','091141','软件学院','网络工程','4','女','汉','1990-4-5','江西省南昌市')insert into s_time values ('09114101','2009-8-30','2009-9-1','2013-9-1')insert into s_time values ('09114102','2009-8-30','2009-9-1','2013-9-1')insert into s_time values ('09114103','2009-8-30','2009-9-1','2013-9-1')insert into s_time values ('09114104','2009-8-30','2009-9-1','2013-9-1')insert into s_time values ('09114105','2009-8-30','2009-9-1','2013-9-1')insert into chck values('09114101','2010-9-1','软件学院')insert into chck values('09114102','2010-9-1','软件学院')insert into chck values('09114103','2010-9-1','软件学院')insert into chck values('09114104','2010-9-1','软件学院')insert into chck values('09114105','2010-9-1','软件学院')/* 创建视图*/create view xinxi(学号,姓名,性别,学院,系别,出生日期,民族,学制,班号,籍贯,入学时间,发证时间,有效期限,注册时间,注册学院)asselect chck.学号,姓名,性别,学院,系别,出生日期,民族,学制,班号,籍贯,入学时间,发证时间,有效期限,注册时间,注册学院from s_info,s_time,chckwhere chck .学号=s_time.学号and s_info.学号=chck.学号/* 录入存储过程*/create procedure insert_s_info /* 表s_info的存储过程*/ (@学号char(10),@姓名char(10),@性别char(10),@学院varchar(20),@系别varchar(20),@出生日期datetime,@民族char(4),@学制char(4),@班号char(4),@籍贯varchar(30))asinsert into s_info values(@学号,@姓名,@性别,@学院,@系别,@出生日期,@民族,@学制,@班号,@籍贯)create procedure insert_s_time /* 表s_time的存储过程*/ (@学号char(10),@入学时间datetime,@发证时间datetime,@有效期限datetime)asinsert into s_time values (@学号,@入学时间,@发证时间,@有效期限)create procedure insert_chck / * 表chck的存储过程*/ (@学号char(10),@注册时间datetime,@注册学院varchar(30))asinsert into chck values (@学号,@注册时间,@注册学院)/* 执行录入数据的存储过程*/exec insert_s_info '09114107','王兰','男','软件学院','网络工程','1991-01-01','汉','4','091141','江西南昌'exec insert_s_time ‘09114107’,’2010-02-01’,’2010--10-20’,’2010-10-20’exec insert_chck '09114107','2010-02-03','软件学院'/* 查询学生证信息*/create procedure s_sno /*给定学号查询学生证信息*/ (@学号char(10))asselect *from xinxiwhere 学号=@学号exec s_sno @学号='09114103' /*给定学号查询*/create procedure c_cno /*给定班号查询学生证信息*/ (@班号char(10))asselect *from xinxiwhere 班号=@班号exec c_cno @班号='091141' /* 给定班号查询*//* 修改学生在信息*/create procedure xiugai(@学号char(10),@姓名char(10),@性别char(4),@学院char(20),@系别char(20),@出生日期datetime,@民族char(4),@学制char(4),@班号char(10),@籍贯char(30))asupdate s_infoset 学号=@学号,性别=@性别,学院=@学院,系别=@系别,出生日期= @出生日期,民族=@民族,学制=@学制,班号=@班号,籍贯=@籍贯where 学号=@学号exec xiugai '09114101','张三','男','软件学院','网络工程','19910101','汉','4','091141','江西南昌'/* 删除学生证信息*/create procedure shanchu(@学号char(10))asdeletefrom s_infowhere 学号=@学号create trigger sc1 /* 触发器sc1, sc2 */on s_infofor deleteasdeletefrom s_timewhere 学号=(select 学号from deleted)create trigger sc2on s_infofor deleteasdeletefrom chckwhere 学号=(select 学号from deleted)exec shanchu @学号='09114101'总结:程序实现功能设计不够人性化,也不够简洁、方便。