学生信息管理系统程序设计报告
- 格式:doc
- 大小:586.50 KB
- 文档页数:61
学生信息管理系统设计报告引言学生管理是相对校园内部学员的管理。
集学生、考勤、成绩、课程等于一体的大型管理系统。
为学校在学生管理等方面提供极大的方便。
不但有利于学校的规范性管理,而且还大大提高了学校的全体教工的工作效率和方便性。
校园学生管理可以说是一项琐碎、繁杂而又必须十分细致的工作,是不能允许时常发生差错的。
数十年前的那种手工操作已远远跟不上近代教育普及、学生数量大增的的情况了,时代的进步决定了学校管理的智能化,而学校要管理到位必然要有完善的管理体系,所以说学生管理的自动化完全是时代进步和教育普及所推动的的必然结果。
合理的利用有助于教育管理的管理系统是校园管理得当的一种优越的体现。
利用计算机对学生管理不仅保证了资料准确度,还成倍的提高了工作效率,而且便于管理、查询、增添等操作。
本软件是主要以高等学校为背景而设计开发的,界面淳朴、使用方便。
本系统主要以班级管理为主,再配以成绩管理、课程管理、学籍管理,是高等院校学生管理必不可缺的好帮手。
本学生管理系统是在张波尔老师的指导下,由刘志强、蔡佳弟、方永福等五位同学合做编制而成的。
主要利用delphi工具开发完成的,系统根据软件工程的原理,采用面向对象的开发方法。
文档资料可分为以下几个部分:第一部分:问题定义报告;第二部分:项目计划任务书第三部分:总体设计说明书第四部分:详细设计说明书第五部分:项目开发总结报告第一章问题定义报告一、定义1. 背景1.1工程名称:学生管理系统1.2工程产品名称:学生管理系统2. 系统性质:概念性3. 定义4. 基本目标开发此学生管理系统软件,以供高等院校教工访问、查询,也为了自我提高软件开发的能力,学习编程的技巧,提高工作设计思想,通过本次的工程开发,以及与辅导老师的交流,使我能从中学习知识、吸取经验,在技术和软件设计思想上同时得到锻炼和提高,从而使总体水平升到一个新的境界。
5. 经济目标由于本系统开发的主要背景(毕业设计)在经济上不注重直接的经济收益,而是注重在开发过程中学习和认识如何开发软件,并且在设计过程当中清楚认识自身的不足之处,并加以弥补为今后从事此项工作打下基础。
C语言程序设计实习报告学生信息管理系统C 语言课程设计题目:学生信息管理系统设计者:梁天江专业:机械设计制造及其自动化班级学号: 072084-31所属院系:机电学院指导教师:吴湘宁7月17日1.题目和要求:1.1问题提出与要求:学生成绩管理系统[要求]设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。
每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。
(1)一个文件按以班为单位存储学生记录。
(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩(3)计算学生的总成绩(4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,因此应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。
2.2详细设计:1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择;其流程图如下:[程序]void main(){int a;do{printf("\t\t\t\t\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t作者:梁天江班级:072084-31 学号: 1004528\n"); printf("\t\t\t-------------------------------------------\n\n");printf("\t 1.插入新的学生记录\n");printf("\t 2.修改学生记录\n");printf("\t 3.删除学生记录\n");printf("\t 4.显示学生成绩和总分\n");printf("\t 5.浏览全班成绩\n");printf("\t 6.退出\n\n");。
WORD格式*********大学课程设计报告课程名称高级语言程序设计设计题目学生信息管理系统专业计算机科学与技术班级学号姓名完成日期课程设计任务书设计题目:学生信息管理系统设计设计内容与要求:内容:对学生信息进行管理,学生信息包括学号、姓名、性别、年龄、学历、学号、住址、电话等(学号不重复)。
要求:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)。
(3)输出学生信息、浏览学生信息功能。
(4)查询和排序功能:(至少一种查询方式),如按学号查询、按学历查询等。
(5)学生信息删除、修改功能(任选项)。
指导教师:_______________年月日课程设计评语成绩:指导教师:_______________年月日【问题描述】学生信息管理软件设计。
对学生信息进行管理,学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一个学生信息管理软件。
【基本要求】一、输入的形式和输入值的范围形式:用scanf输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。
输入一个学生信息一个回车。
用输入的学号p1->num来控制输入,当输入的学号为0时,用break跳出循环。
即if(p1->num==0)break。
输入值的范围:学号、年龄为整型longnum;intage;姓名为字符串型15个字节charname[15];性别为字符串型,10个字节charsex[10];出生为字符串型,20个字节charchushen[20];地址为字符串型,30个字节chardizhi[30];邮箱为字符串型,输入11位数字charemail[11]。
二、输出的形式输出是以表格的形式输出,即表格的每一行都能显示第一个学生的信息,第二行是显示第二个学生的信息。
三、程序所能达到的功能对学生信息进行管理,学生信息包括职学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。
一、实验目的1. 熟悉学生信息管理系统的基本功能和操作流程。
2. 掌握数据库设计的基本方法,能够根据需求设计合理的数据库结构。
3. 熟悉编程语言和开发工具,能够编写简单的数据库应用程序。
4. 提高团队合作能力和沟通能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 数据库:MySQL 5.74. 编程语言:C#三、实验内容1. 需求分析学生信息管理系统主要用于对学生信息进行管理,包括学生基本信息、成绩、课程、班级等。
系统应具备以下功能:(1)学生信息管理:增加、删除、修改、查询学生信息。
(2)成绩管理:录入、修改、查询学生成绩。
(3)课程管理:增加、删除、修改、查询课程信息。
(4)班级管理:增加、删除、修改、查询班级信息。
(5)统计分析:对学生成绩、课程等进行统计分析。
2. 数据库设计根据需求分析,设计如下数据库表:(1)学生信息表(student)字段名 | 数据类型 | 说明--- | --- | ---id | int | 学生编号(主键)name | varchar(50) | 学生姓名gender | varchar(10) | 性别age | int | 年龄class_id | int | 班级编号(外键)(2)成绩表(score)字段名 | 数据类型 | 说明--- | --- | ---id | int | 成绩编号(主键)student_id | int | 学生编号(外键)course_id | int | 课程编号(外键)score | float | 成绩(3)课程表(course)字段名 | 数据类型 | 说明--- | --- | ---id | int | 课程编号(主键)name | varchar(50) | 课程名称credit | int | 学分(4)班级表(class)字段名 | 数据类型 | 说明--- | --- | ---id | int | 班级编号(主键)name | varchar(50) | 班级名称3. 系统设计(1)界面设计采用Windows窗体应用程序,界面包括以下部分:- 主界面:展示系统功能菜单。
学生信息管理系统学生信息管理系统工程设计报告学生信息管理系统〔Student Information Management System〕,以下简称SIMS,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统〔Management Information System〕。
它是一个教育单位不可缺少的局部,它的容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和教师掌握学生的情况,为学生供成绩跟课程方面的查询。
在传统模式下利用人工进展学生信息管理,存在着较多的缺点,如:效率底,XX性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。
诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。
随着科学技术的不断提高,计算机科学日渐成熟, 使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一局部,使用计算机对学生信息进展管理,具有着手工管理所无法比较的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、XX性好、寿命长、本钱低、便于打印等。
这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。
用计算机制作的学生信息管理系统还可以通过功能强大的Internet网及时的向学生的家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定的促进作用。
因此,开发这样一套管理软件成为很有必要的事情。
一、需求分析该学生信息管理系统主要功能:学生通过输入学号和密码进入该系统后,可以进展一些根底维护〔学生信息维护、课程信息维护、选课信息维护〕。
全部都可以进展增加、修改、删除、模糊查询。
随着科学技术的开展和整个社会的进步,计算机技术也得到了很大的提高,特别是微型计算机的大围普及,是计算机的应用逐渐有科学计算、实时控制等方面向非数值处理的各个领域渗透并发挥着越来越重要的作用。
数据库学生信息管理系统实验报告一、实验目的本次实验的目的是设计并实现一个基于数据库的学生信息管理系统,通过该系统可以对学生的基本信息进行增删改查等操作,方便高效地管理学生信息。
二、实验内容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语言程序课程设计题目名称学生信息管理系统设计_____学生学院_自动化学院_______________专业班级__自动化X__________________ 学号__311100XXXX______________ 学生姓名_____________________指导教师2013年10月20日广东工业大学课程设计任务书题目名称学生信息管理系统设计____学生学院___自动化学院____________专业班级___自动化X_______________学号___3111000XXX____________学生姓名___谢XX_________________1.目的与要求:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。
试设计一学生信息管理系统,使之能提供以下功能:1.系统以菜单方式工作2.学生信息录入功能---输入3.学生信息浏览功能---输出4.查询、排序功能---算法按学号查询按姓名查询5.学生信息的删除与修改(可选项)2.总体设计:程序设计组成框图学生信息录入学生信息浏览3>参数说明editname(int n)、editage(int n)、editsex(int n) 、editbir(int n) 、editadd(int n) 、edittel(int n)、editemail(int n)、last(int n)、edit(int n)、del(int n)、editpr(int n) 函数中的n都为检索中确定的学生数组下标。
4.调试与测试:1>调用pr2()函数(检索界面)一闪而过。
解决方法:添加getchar()语句使程序暂停。
2>无法有效的控制输出函数循环终止。
解决方法:添加全局变量“stunum”,使用该全局变量来记录学生总数,从而控制输出循环的次数。
3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。
JA V A程序设计实验报告学号:姓名:班级:实验、Java课程设计--------学生信息管理系统一、实验目的1.掌握Java基本语法2.理解面向对象编程特点3.理解Java I/O编程4.掌握Java图形界面编程5.掌握Java与不同数据库进行连接二、预习内容Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作三、实验设备与环境通过局域网互联,安装Windows 2000/XP操作系统环境的JDK 1.6,my eclipse 或者EditPlus编程工具。
并安装MySQL数据库四、实验内容编写并调试运行Java程序,进行设计,掌握Java开发的基础。
五、实验任务设计学生信息管理系统。
要求包括1. 登陆模块:设立超级管理员权限,用户可以根据不同的权限登陆系统,超级管理员可以对学生信息进行增、删、改、查操作。
而普通用户只可以查找学生信息。
2. 包括学生添加信息模块、学生信息删除模块、学生信息修改模块和学生信息查询模块3.对于管理员,可以对管理员进行添加、删除以及修改密码等操作。
六、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1、程序清单:1.1程序模块清单package Pan;import java.awt.event.ItemListener;import javax.swing.*;import ponent;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.InputEvent;import java.awt.event.ItemListener;import java.awt.event.KeyEvent;import java.awt.event.ActionListener; import java.awt.event.ActionEvent;import java.util.*;import java.awt.Color;import java.text.DecimalFormat;import java.sql.*;import java.sql.Date;import java.awt.*;import java.util.Vector;public class Res{/*** @param args*/public static void main(String[] args) {FirstWindow win =new FirstWindow("学生信息管理系统");}}class FirstWindow extends JFrame implements ActionListener{JMenuBar menubar;JMenu menu1,menu2,menu3,menu4;public final JMenuItem a11,a12,a13,a14,a15,a16,a17;public final JMenuItem a21,a22,a23,a24;public final JMenuItem a3;public final JMenuItem a4;public final JButton btn;JPanel pnl;JLabel label;boolean flag;FirstWindow(String s){setTitle(s);setSize(400,400);setLocation(100,100);setVisible(true);setDefaultCloseOperation(3);pnl=new JPanel();this.getContentPane().add(pnl);pnl.setLayout(new BorderLayout());label=new JLabel("欢迎使用学生管理系统",JLabel.CENTER);label.setForeground(Color.red);pnl.add(label,BorderLayout.CENTER);menubar=new JMenuBar();menu1=new JMenu("使用");menu2=new JMenu("用户管理");menu3=new JMenu("帮助");menu4=new JMenu("退出");a11=new JMenuItem("管理员登录");a12=new JMenuItem("查询学生信息");a13=new JMenuItem("更改学生信息");a14=new JMenuItem("删除学生信息");a15=new JMenuItem("添加学生信息");a16=new JMenuItem("超级管理员登录");a17=new JMenuItem("普通学生登录");a11.setEnabled(true);a16.setEnabled(true);a17.setEnabled(true);a12.setVisible(false);a13.setVisible(false);a14.setVisible(false);a15.setVisible(false);a21=new JMenuItem("添加用户");a22=new JMenuItem("删除用户");a23=new JMenuItem("更改用户");a24=new JMenuItem("修改密码");a21.setEnabled(false);a22.setEnabled(false);a23.setEnabled(false);a24.setEnabled(false);a3=new JMenuItem("系统介绍");a3.setEnabled(true);a4=new JMenuItem("退出");a4.setEnabled(true);btn=new JButton("再次确认登陆");pnl.add(btn,BorderLayout.EAST);btn.setSize(10,10); menu1.add(a11);menu1.addSeparator(); menu1.add(a16);menu1.addSeparator(); menu1.add(a17);menu1.addSeparator(); menu1.add(a12);menu1.addSeparator(); menu1.add(a13);menu1.addSeparator(); menu1.add(a14);menu1.addSeparator(); menu1.add(a15);menu1.addSeparator();menu2.add(a21);menu2.addSeparator(); menu2.add(a22);menu2.addSeparator(); menu2.add(a23);menu2.addSeparator();menu2.add(a24);menu2.addSeparator();menu3.add(a3);menu3.addSeparator();menu4.add(a4);menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); setJMenuBar(menubar);a11.addActionListener(this); a12.addActionListener(this); a13.addActionListener(this); a14.addActionListener(this); a15.addActionListener(this); a16.addActionListener(this); a17.addActionListener(this); a21.addActionListener(this); a22.addActionListener(this); a23.addActionListener(this); a24.addActionListener(this); a3.addActionListener(this);a4.addActionListener(this);btn.addActionListener(this);}public void setColor(Color black) {// TODO Auto-generated method stub}public void actionPerformed(ActionEvent event) {Object temp=new Object();temp=event.getSource();if(temp==a11){Login login=new Login();login.Login();}if(temp==a12){ShowStu show=new ShowStu();show.ShowStu();}if(temp==a13){AlterStu alter=new AlterStu();alter.AlterStu();}if(temp==a14){DeleteStu delete=new DeleteStu();delete.DeleteStu();}if(temp==a15){AddStu add=new AddStu();add.AddStu();}if(temp==a16){superlog superlog=new superlog();superlog.superlog();}if(temp==a17){stuLogin stu=new stuLogin();stu.stuLogin();a12.setVisible(true);}if(temp==a21){AddUser add=new AddUser();add.AddUser();}if(temp==a22){DeleteUser delete=new DeleteUser();delete.DeleteUser();}if(temp==a23){AlterUser alter=new AlterUser();alter.AlterUser();}if(temp==a24){AlterPword pword=new AlterPword(); pword.AlterPword();}if(temp==a3){SystemHelp help=new SystemHelp();help.SystemHelp();}if(temp==a4){SystemExit exit1=new SystemExit();exit1.SystemExit();}if(temp==btn){Connection con;Statement st;Statement st1;ResultSet rs,rs1;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st1=con.createStatement();rs=st.executeQuery("SELECT * FROM Login");rs1=st1.executeQuery("SELECT * FROM superlog");if(rs.next()){a12.setVisible(true);a21.setEnabled(true);a22.setEnabled(true);a23.setEnabled(true);a24.setEnabled(true);Login login=new Login();login.Clear();}if(rs1.next()){a12.setVisible(true);a13.setVisible(true);a14.setVisible(true);a15.setVisible(true);superlog superlog=new superlog();lear();}con.close();}catch(SQLException e){System.out.println(e);}}}}主页面class Login{void Login(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(10);final JPasswordField text2=new JPasswordField(10);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel("用户名");JLabel label2=new JLabel("密码");loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 50, 50);label2.setBounds(80, 200, 50, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();String password=text2.getText();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql,st;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();st=con.createStatement();rs=sql.executeQuery("SELECT username,password FROM users where username='"+name+"'");if(!rs.next()){JOptionPane b=new JOptionPane();b.showMessageDialog(null,"账号有误" ,"消息对话框",RMATION_MESSAGE);}else{String username=rs.getString(1);String pass=rs.getString(2);if( Integer.parseInt(password)==Integer.parseInt(pass) ){st.executeUpdate("INSERT INTO Login VALUES('"+username+"','"+pass+"')");loginframe.dispose();JOptionPane b=new JOptionPane();b.showMessageDialog(null,"登录成功" ,"消息对话框",RMATION_MESSAGE);}else{text1.setText("");text2.setText("");JOptionPanea=new JOptionPane();a.showMessageDialog(null,"您的账户名或者密码有误","消息对话框" ,RMATION_MESSAGE);}}}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}void Clear(){Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st.executeUpdate("DELETE FROM Login");con.close();}catch(SQLException e){System.out.println(e);}}}管理员登陆与权限class superlog{superlog(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(10);final JPasswordField text2=new JPasswordField(10);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel("超级用户名",JLabel.CENTER);JLabel label2=new JLabel("密码",JLabel.CENTER);loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 100, 50);label2.setBounds(80, 200, 100, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();@SuppressWarnings("deprecation")String password=text2.getText();tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();rs=sql.executeQuery("SELECT Cusername,Cpassword FROM super where Cusername='"+name+"'");if(!rs.next())JOptionPane b=new JOptionPane();b.showMessageDialog(null,"超级账号错误" ,"消息对话框",RMATION_MESSAGE);}else{String username=null;String pass=null;username=rs.getString(1);pass=rs.getString(2);if( Integer.parseInt(password)==Integer.parseInt(pass) ){sql.executeUpdate("INSERT INTO superlog VALUES('"+username+"',"+"'"+pass+"')");JOptionPane b=new JOptionPane();b.showMessageDialog(null,"登录成功" ,"消息对话框",RMATION_MESSAGE);loginframe.dispose();}else{text1.setText("");text2.setText("");JOptionPane a=new JOptionPane();a.showMessageDialog(null,"您的账户名或者密码有误","消息对话框" ,RMATION_MESSAGE);}}}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}public void superlog() {// TODO Auto-generated method stub }void Cclear(){Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st.executeUpdate("DELETE FROM superlog");con.close();}catch(SQLException e){System.out.println(e);}}}超级管理员登陆界面与权限class stuLogin{void stuLogin(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(15);final JPasswordField text2=new JPasswordField(15);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel(" 学生姓名",JLabel.CENTER);JLabel label2=new JLabel("密码",JLabel.CENTER);loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 100, 50);label2.setBounds(80, 200, 100, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();String password=text2.getText();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();rs=sql.executeQuery("SELECTsname,sphone FROM student where sname='"+name+"' AND sphone='"+password+"'");if(rs.next()){JOptionPane a=new JOptionPane();a.showMessageDialog(null,"登陆成功","消息对话框" ,RMATION_MESSAGE);loginframe.dispose();}else{text1.setText("");text2.setText("");JOptionPane a=new JOptionPane();a.showMessageDialog(null,"您的账户名或密码有误","消息对话框" ,RMATION_MESSAGE);}con.close();}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}}普通学生登陆与权限class ShowStu{void ShowStu(){JFrame frame1=new JFrame("学生信息窗口");frame1.setBounds(300,300,500,400);frame1.setDefaultCloseOperation(2);JTable table;Object a[][]=null;Object name[]={"学号","姓名","年龄","性别","籍贯","电话"};Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan",""," ");st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITI VE,ResultSet.CONCUR_READ_ONLY);rs=st.executeQuery("SELECT * FROM student");st();int lastnumber=rs.getRow();a=new Object[lastnumber][6];int i=0;rs.beforeFirst();while(rs.next()){a[i][0]=rs.getString(1);a[i][1]=rs.getString(2);a[i][2]=rs.getString(3);a[i][3]=rs.getString(4);a[i][4]=rs.getString(5);a[i][5]=rs.getString(6);i++;}con.close();}catch(SQLException e){System.out.println(e);}table=new JTable(a,name);frame1.setLayout(new BorderLayout());frame1.add(newJScrollPane(table),BorderLayout.CENTER);frame1.setVisible(true);frame1.validate();}}class AlterStu{void AlterStu(){JFrame deleteframe=new JFrame("更改学生信息");deleteframe.setLayout(null);JLabel label=new JLabel("需要修改的学生学号",JLabel.CENTER);deleteframe.setVisible(true);deleteframe.setBounds(350,350,450,350);JButton btn=new JButton("确定");deleteframe.add(label);label.setForeground(Color.red);final JTextField text=new JTextField(10);text.setSize(100,60);deleteframe.add(text);deleteframe.add(btn);label.setBounds(150, 50, 150, 20);text.setBounds(150, 100, 100, 20);btn.setBounds(150, 150, 100, 20);btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String sno=text.getText();Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println(e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();rs=st.executeQuery("SELECT * FROM student WHERE sno=+'"+sno+"'");if(rs==null){JOptionPane b=new JOptionPane();b.showMessageDialog(null,"该学生不存在" ,"消息对话框",RMATION_MESSAGE);}else{rs.next();final String no1=rs.getString(1);final String name1=rs.getString(2);final String age1=rs.getString(3);final String sex1=rs.getString(4);final String address1=rs.getString(5);final String phone1=rs.getString(6);JFrame addframe=new JFrame("修改学生信息");addframe.setDefaultCloseOperation(2);addframe.setBounds(400,200,450,600);addframe.setVisible(true);addframe.setResizable(true);addframe.validate();addframe.setLayout(newBorderLayout());Box basebox,box1,box2,box3,box4;basebox=Box.createHorizontalBox();box1=Box.createVerticalBox();box2=Box.createVerticalBox();box3=Box.createVerticalBox();box4=Box.createVerticalBox();JLabel no=new JLabel("学号");JLabel name=new JLabel("姓名");JLabel age=new JLabel("年龄");box1.add(Box.createVerticalStrut(90));box1.add(no);box1.add(Box.createVerticalStrut(90));box1.add(name);box1.add(Box.createVerticalStrut(90));box1.add(age);JLabel sex=new JLabel("性别");JLabel address =new JLabel("籍贯");JLabel phone=new JLabel("电话");box3.add(Box.createVerticalStrut(90));box3.add(sex);box3.add(Box.createVerticalStrut(90));box3.add(address);box3.add(Box.createVerticalStrut(90));box3.add(phone);final JTextField notext=new JTextField(15);final JTextField nametext=new JTextField(15);final JTextField agetext=new JTextField(15);final JTextField sextext=new JTextField(15);final JTextField addresstext=new JTextField(15);final JTextField phonetext=new JTextField(15);box2.add(Box.createVerticalStrut(90));box2.add(notext);box2.add(Box.createVerticalStrut(90));box2.add(nametext);box2.add(Box.createVerticalStrut(90));box2.add(agetext);box4.add(Box.createVerticalStrut(90));box4.add(sextext);box4.add(Box.createVerticalStrut(90));box4.add(addresstext);box4.add(Box.createVerticalStrut(90));box4.add(phonetext);basebox.add(box1);basebox.add(box2);basebox.add(box3);basebox.add(box4);。
学生信息管理系统实验报告一、实验目的。
本实验旨在通过学生信息管理系统的设计与实现,加深对数据库管理系统的理解,提高数据库设计与编程的能力。
二、实验内容。
1. 设计学生信息管理系统的数据库结构,包括学生信息、课程信息、成绩信息等;2. 使用SQL语句创建数据库表,并插入测试数据;3. 利用编程语言(如Python、Java等)实现学生信息管理系统的增删改查功能;4. 进行系统功能测试,验证系统的稳定性和准确性。
三、实验步骤。
1. 数据库设计。
根据学生信息管理系统的需求,设计数据库结构,包括学生表(学号、姓名、性别、年龄等字段)、课程表(课程号、课程名称、学分等字段)、成绩表(学号、课程号、成绩等字段)等。
2. 数据库创建与数据插入。
使用SQL语句创建数据库表,并插入测试数据,以验证数据库结构的正确性和完整性。
3. 系统实现。
利用编程语言实现学生信息管理系统的增删改查功能,包括学生信息的录入、修改、删除,成绩的查询和统计等。
4. 系统测试。
对系统进行功能测试,验证系统的稳定性和准确性,包括对数据的增删改查操作进行测试,确保系统能够正确地处理各种情况。
四、实验结果与分析。
经过实验,我们成功设计并实现了学生信息管理系统,系统能够准确地记录学生信息、课程信息和成绩信息,能够进行各种操作,并且在测试中表现稳定可靠。
五、实验总结。
通过本次实验,我们深入理解了数据库设计与编程的重要性,掌握了数据库表的设计与创建、SQL语句的使用、编程语言的应用等技能。
同时,也提高了对学生信息管理系统的整体把握能力,为今后的数据库管理与系统开发打下了坚实的基础。
六、实验心得。
通过本次实验,我们不仅学到了知识,更重要的是提高了动手能力和解决问题的能力,这对我们未来的学习和工作都有着重要的意义。
七、参考文献。
[1] 《数据库系统概论》。
[2] 《Python编程从入门到实践》。
[3] 《Java程序设计》。
以上就是学生信息管理系统实验报告的全部内容,希望能对大家有所帮助。
学生信息管理系统的设计与实现共3篇学生信息管理系统的设计与实现1学生信息管理系统的设计与实现随着社会的不断发展和人民生活水平的提高,教育的重要性日益凸显,学生信息管理也成为了教育管理的重要组成部分。
传统的学生管理方式已经难以满足现代化、信息化的需求,因此,设计和实现一套高效的学生信息管理系统是很有必要的。
一、系统构架本系统采用C/S架构,即客户端和服务器端交互。
客户端采用Java开发,服务器端采用Tomcat应用服务器。
数据库管理采用MySQL。
系统分为管理员界面和学生界面。
二、功能模块1. 学生信息模块:该模块包括学生基本信息、成绩相关信息、考勤信息、奖惩信息等。
通过该模块,管理员可以对学生信息进行增删改查等操作。
2. 课程管理模块:该模块负责学生的选课、退课以及课程成绩的录入和查询等功能。
3. 教师信息管理模块:该模块包括教师的基本信息、授课情况等。
通过该模块,管理员可以对教师信息进行增删改查等操作。
4. 班级管理模块:该模块统计班级的各种信息,包括班级基本信息、学生名单等。
5. 考勤管理模块:该模块记录学生考勤情况,包括缺勤、迟到、早退等情况,并将情况记录到学生信息中。
6. 统计分析模块:该模块用于对学生成绩、考勤等信息进行统计分析,并提供相关报表输出。
三、技术实现1. 数据库设计:根据需求分析,设计相应的数据库表,通过MySQL数据库管理系统进行数据管理。
2. 系统框架搭建:采用SpringMVC框架进行模块开发。
3. 客户端开发:采用Java Swing进行开发,实现学生信息管理系统的图形化界面。
4. 服务器端开发:采用Java web技术,主要使用SpringMVC 和Hibernate。
5. 数据交互:采用TCP/IP协议进行数据交互,确保数据传输的安全和可靠。
四、系统特点1. 安全性高:本系统采用了数据加密和身份验证等技术,保障学生信息的安全性。
2. 功能丰富:本系统包括学生信息管理、课程管理、教师信息管理等多个功能模块,并支持多种查询方式。
面向对象程序设计大作业------学生信息管理系统学院名称信息科学与工程学院专业班级数学大类2011级2班学生姓名魏仿学号 201101051324指导教师孙红梅完成时间:2013年 5 月29 日ﻬ学生信息管理系统1、编程目的为方便学生信息的管理,特编写这个程序方便操作学生信息管理系统。
实现对学生姓名、学号、性别、成绩等信息的管理,可以实现学生的增加、删、查等多种功能的操作。
2、系统简介本系统实现学生信息的管理,以动态链表、结构体数据类型来实现数据的存储与加工,利用链表来实现学生信息的插入、删除、查找功能。
主要分7个模块:模块一:结构体的定义,定义struct student{};structdate{};结构体struct student{};数据成员包括:intstudentId; char name[20]; char sex[5];struct date birthday; int score; struct student *next; 其中 stru ct date birthday;又借用struct date{};结构体的成员:int year; int month; int day;以此来实现学生学号、姓名、性别、出生日期、成绩等信息的存储于处理。
模块二:ListCreate函数,函数类型为:struct student 形参:struct student *head struct student *p 返回值:head指针。
实现链表的建立功能。
模块三:ListInsert函数,函数类型为:struct student 形参:struct student *head structstudent *p返回值:head指针。
实现链表节点的插入功能。
模块四:ListDelete函数, 函数类型为:struct student 形参:struct student*head struct student *p 返回值:head指针。
一、课程设计目的1.通过C++课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。
2.用所学的C++语言知识及其编程方法,包括类和对象、继承与多态等面向对象的基本思想和方法以及文件流的基本操作等内容。
通过布置具有一定难度的实际程序设计项目,要求学生独立完成所布置项目。
在分析设计过程中,要求学生养成良好的编程习惯,学会分析解决简单的实际问题,学会C++编程环境(VC++)的实际调试技巧和方法,要求学生在教师的指导下逐步完成应用程序的分析与设计过程。
二、课程设计的内容(一)、题目:学生信息管理系统(二)、目的与要求1。
目的:(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C++语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2。
要求基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义三个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。
创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
3。
信息描述学生信息:学号、姓名、系别、班级和所选科目及各科成绩等。
4。
功能描述(1)使用继承的方法构造3个类(如人员类——-基类,普通学生类和管理员类—---派生类)使用相应的对象放置相应信息(2) 编写同名的display()成员函数,用来输出相应的内容(3)录入学生信息并保存(4)按不同类别输出学生信息(如按性别、年龄等)(5)查询学生信息(以一种或多种方式,如按名字、学号等检索)(6) 修改学生信息并保存(7) 删除学生信息(8) 计算学生的平均成绩三、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理.也可根据自己对题目的理解增加新的功能模块.系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
学生信息管理系统报告九江职业技术学院网络0901指导老师:胡志峰设计人员:段雪波陈诚尹小楠詹承喜王磊陈康王皓巍陈佳彬1 课题规划1.1软件功能通过对该系统的设计实现对用户登录信息的查看,对考生信息的管理:查看,添加,查找,修改,删除1.2 程序流程1.3 数据库设计数据库:demo表:login:2 程序实现2.1 登入模块(login.html)代码如下:<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"/><title>登录</title><style>html {margin: 0;padding: 0 !important;padding: 55px 0 16px;*padding: 55px 016px !important;height: 100%;overflow :hidden;}body {margin: 0;padding: 0 !important;*padding: 0 0 16px !important;padding: 0 0 16px;height: 100%;overflow: hidden;}.header{width:100%;height:55px;background-color:#FFC;position:absolute;top:0;} .middle{position: absolute !important;*position: relative !important;position: relative;top: 55px!important;*top: 0 !important;top: 0;left: 0;bottom:16px;width:100%;overflow: hidden;height: auto !important;*height:100% !important;height: 100%;}.left{width:170px;height:100%;background-color:#6FC;float:left;}.right{margin:0 0 0 170px;background-color:#fff;height:100%;}.footer{width:100%;height:16px;background-color:#3CF;position:absolute; bottom:0;}.bar{width:100%;height:20px;background-color:#eee;}p{margin:0;margin-bottom:15px;}.container{overflow:auto;padding:150px;}</style><script language="javascript">function checkSingle(){var oForm = document.forms["myForm1"];var oSelectBox = oForm.identityvar iChoice = oSelectBox.selectedIndex; //获取选中项//alert("您选中了" + oSelectBox.options[iChoice].text);var text = oSelectBox.options[iChoice].text;if(text == "管理员")document.getElementById("txt").innerHTML = "账号";myForm1.action="login?cond=student"elseif(text == "学生")document.getElementById("txt").innerHTML = "学号";}</script></head><body><div class="header"><p align="center"><font color="#1EAC8F"size="6">考试系统</font></p></div><div class="middle"><div class="left"></div><div class="right"><div class="bar"></div><div class="container"><form action="login?cond=student"method="post"name="myForm1"onclick="checkSingl e()"><table align="center"vspace="center"><tr><td><label for="constellation">身份:</label></td><td><select id="identity"name="identity"><option value="stedent"selected="selected">学生</option><option value="mannage">管理员</option></select></td></tr><tr><td id="txt">学号</td><td><input type="text"name="number"></tr><tr><td>密码</td><td><input type="password"name="password"></tr><tr><td><input type="submit"value="提交"></td><td><input type="reset"value="重写"></td></tr></table></form></div></div></div><div class="footer"></div></body></html>2.2(LoginServlet)代码package org.sunxin.ch02.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.*;public class LoginServlet extends HttpServlet{private static final long serialVersionUID = 1L;private String driverClass;private String url;private String user;private String password;public void init() throws ServletException{ServletContextsc = getServletContext(); //得到上下文对象driverClass = sc.getInitParameter("driverClass");//用来得到在web.xml中配置的driverClass参数url = sc.getInitParameter("url");//用来得到在web.xml中配置的url参数user = sc.getInitParameter("user");//用来得到在web.xml中配置的user参数password = sc.getInitParameter("password");//用来得到在web.xml中配置的password参数try{Class.forName(driverClass); //用Class.forName(drverClass);方法加载数据库驱动}catch(ClassNotFoundExceptionce){throw new ServletException("加载数据库失败!");}}protected void doGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException{Connection conn = null; //创建一个连接对象空引用Statement stmt = null; //创建一个语句对象空引用request.setCharacterEncoding("gb2312");response.setContentType("text/html;charset=gb2312");PrintWriter out = response.getWriter();//得到一个out对象String condition = request.getParameter("cond"); //用请求对象的getParameter得到login.html表单中传过来的请求参数String number = request.getParameter("number");String pwd = request.getParameter("password");try{conn =DriverManager.getConnection(url,user,password); //得到一个连接对象stmt= conn.createStatement(); //得到一个语句对象if(condition.equals("student")) //如果login.html中传过来的参数是student就执行下面的语句{//为了防止SQL语句注入攻击,所以用下面的方法来读取数据库中的数据out.println(number);out.println(password + "456");String sqlStr1 = "select * from login where number='"+number+"'and password='"+pwd+"'";//定义SQL语句//String sqlStr1 = "select * from login where number='20094077'and password='20094077'";//定义SQL语句//String sqlStr1 = "select * from login";//定义SQL语句//PreparedStatementpstmt = conn.prepareStatement(sqlStr1);//用prepareStatement可以有效的防范SQL 语句注入攻击//pstmt.setString(1, number); //传递参数number//pstmt.setString(2, password);//传递参数password//ResultSetrs = pstmt.executeQuery(); //执行查询ResultSetrs = stmt.executeQuery(sqlStr1);if(rs.next()) //用next()方法判断rs对象是否有下一行,如果有就说明查到了用户{out.println("123456");HttpSession session= request.getSession();session.setAttribute("user",number);response.sendRedirect("student.jsp");}else if(condition.equals("admin")){String sqlStr2 = "select name from login where username=? and password=?";PreparedStatementpstmts = conn.prepareStatement(sqlStr2);pstmts.setString(1, number);pstmts.setString(2, password);rs = pstmts.executeQuery();if(rs.next()){HttpSession session= request.getSession();session.setAttribute("user",number);response.sendRedirect("admin.jsp");}}}}catch(SQLException se){se.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException{doGet(request,response);}}Login.html Login.html到student.jsp的跳转①student.jsp代码如下<%@page contentType="text/html; charset=GB2312"%><%request.setCharacterEncoding("GB2312");%>登入成功!3 总结3.1 程序功能总结该系统仅仅完成了基本的信息的查看修改添加删除其中的(修改)查找不能很好的利用各个信息进行查找(修改) 该系统还有很多可以完善的地方可是我能力有限。
数据库系统概论实验报告代码:publicpartialclass Form1 : Form{public Form1(){InitializeComponent();}privatevoid button1_Click(object sender, EventArgs e) {SearchForm searchfrm = new SearchForm();searchfrm .ShowDialog ();}privatevoid button2_Click(object sender, EventArgs e) {ModifyForm modifyfrm = new ModifyForm();modifyfrm.ShowDialog();}privatevoid button3_Click(object sender, EventArgs e) {ScoreForm scorefrm = new ScoreForm();scorefrm.ShowDialog();}4.创建数据库和主程序的连接。
5.学生信息查询窗体创建。
主要功能:可以满足简单的查询的需要。
不输入任何条件,可以显示所有记录;输入条件可以进行简单的查询,各条件之间为“与”的关系。
在查询结果中选择一行双击可以查看这个学生的具体选课信息及成绩。
(1)学生信息界面创建过程:窗体上放入DataGridView命名为stuDGV。
再放入两个文本框,一个下拉列表和一个“查询”命令按钮。
代码:public SearchForm()_sql = "insert into XSBvalues('"+stuXH.Text+"','"+stuXM.Text+"','"+sex+"','"+stuCSSJ.Text+"','"+stuZY.Text+"',"+ int.Parse(stuZXF.Text)+",'"+stuBZ.Text+"',null)";}cmd = new SqlCommand(_sql,conn);cmd.ExecuteNonQuery();ModifyForm_Load(null,null);}finally{conn.Close();}}}7.学生成绩录入窗体创建。
程序设计综合实践报告一、实验目的本次程序设计综合实践旨在通过设计和实现一个实际项目,综合运用所学的软件开发技术和编程知识,提升学生的综合能力和实践能力。
二、实验内容本次实践项目为开发一个学生管理系统,实现对学生的信息管理、成绩管理和课程管理等功能。
具体内容包括:1.实现学生信息的录入、修改和删除功能。
2.实现学生成绩的录入、查询和统计功能。
3.实现课程信息的录入、修改和删除功能。
4.实现学生选课和退课功能。
三、实验过程1.确定系统需求:根据实际情况,确定系统的功能和具体需求。
2.数据库设计:设计数据库表结构,包括学生信息表、成绩表和课程表。
3.界面设计:设计系统的用户界面,包括登录界面、主界面和各个模块的界面。
4.编码实现:使用所学的编程语言和技术,实现系统的各个功能模块。
5.调试测试:对系统进行测试和调试,确保系统的稳定性和正确性。
6.文档编写:编写系统操作手册和用户说明文档,方便用户使用和了解系统的功能。
四、实验结果经过以上的设计和实现,我们成功开发了一个学生管理系统。
该系统具备以下功能:1.学生信息管理:包括录入、修改和删除学生信息的功能,方便管理学生的基本信息。
2.成绩管理:包括录入学生成绩、查询学生成绩和统计学生成绩的功能,方便了解学生的学习情况。
3.课程管理:包括课程信息的录入、修改和删除功能,方便管理课程的相关信息。
4.选课和退课:学生可以选择自己感兴趣的课程,并可以在规定时间内退选。
五、实验总结通过本次实践项目,我深入学习和掌握了软件开发的整个过程,提高了自己的编程技术和实践能力。
同时,我还了解到了实际项目的需求分析和数据库设计等重要环节,对于以后从事软件开发工作非常有帮助。
六、存在问题和改进措施在实践项目中,虽然我们顺利完成了开发工作,但仍存在一些问题。
比如系统的安全性和稳定性有待提高,用户界面的友好性还有进一步优化的空间。
为了解决这些问题,我们计划进一步学习和研究相关知识,并进行系统的改进和优化。
学生信息管理系统程序设计报告HUNAN UNIVERSITY程序设计训练报告学生姓名李乐平学生学号***********专业班级市场营销二班指导老师贺再红院长 (系主任) 马超群2012 年7 月 2 日目录一系统功能简介 (3)二本人完成的主要工作 (3)三实训分析 ............................... ..4四实训设计 ........... .. (5)五实训源程序代码和调试过程 (7)六实训总结 (11)附录1 (12)附录2 .................................12-22一系统功能简介.学生信息管理系统1, 进入主界面:要求输入密码,输入三次错误系统锁定。
2,输入记录:将学生的基本信息包括学号,姓名,性别,地区,分数等数据作为一个记录写入文件。
3,显示记录:显示学生的各项信息。
4,增加记录: 增加多个学生的基本信息,位于之前的学生后面。
5,删除记录: 删除学生信息。
6,修改记录:可以修改学生的任何一项基本信息。
7,查找记录:可以根据学生的学号查找并显示出学生的信息。
8,统计记录: 统计全班通过情况和不及格情况。
9,退出系统经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
二本人完成的主要工作学生信息管理系统由我和龚晨同学共同完成。
主程序的编写由我们两个共同完成。
我负责的是:1、修改记录:可以修改学生的任何一项基本信息。
2、查找记录:可以根据学生的学号查找并显示出学生的信息。
3、统计记录: 统计全班通过情况和不及格情况。
4、退出系统三实训分析1、用结构化程序设计思想进行 C环境下程序设计。
2、设计一个管理系统,上机编程、调试并通过该管理系统中的各功能模块。
3、设计完成后,每人必须提交程序清单及关于程序设计、维护和使用方面的图文材料即程序设计说明书各一份。
4、基于结构化程序设计思想和所使用的 C语言开发环境与开发工具,并运用“软件工程”和“数据结构”中的有关概念和方法,针对具体设计题目和要求,分析功能要求,划分功能模块,用链表结构设计功能模块函数,以菜单方式调用相应功能模块来实现信息和数据处理四实训设计1、系统功能模块结构图本图书管理系统理由输入记录,显示记录,增加记录,删除记录,修改记录,统计数据,查找记录,七个大模块组成,其总体结构图如下:2.核心数据结构设计:1.头文件说明如:#include<string.h>#include<stdio.h>#include<stdlib.h>#include<conio.h>2,函数的编写定义结构类型;定义全局变量;定义、编写记录(数据)输入函数;定义、编写记录(数据)显示函数;定义、编写记录(数据)增加函数;定义、编写记录(数据)删除函数;定义、编写记录(数据)修改函数;定义、编写记录(数据)统计函数;定义、编写记录(数据)查找函数;3. 核心算法描述(程序流程图)主函数结构流程五实训源程序代码和调试过程(包括截图)1.1进入界面图一输入密码进行身份验证,输入三次则系统锁定。
1.2选择菜单图二主菜单接界面,选择数字执行相应功能。
1.3输入信息图三依次输入学生的各项基本信息。
1.4 显示信息图四可以显示录入及增加的各项信息。
1.5 增加信息图五根据需要添加新的学生信息。
1.6 删除记录图六删除信息。
1.7修改记录图七可修改任何学生的任何一项纪录。
1.8 统计信息图八对所有的信息进行统计显示不及格人数。
1.9 查找信息图九根据学号查找出需要的学生信息。
六实训结论通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以较快看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,要从整体上把握。
不过通过实训我也知道了自己的不足,存在的很多问题。
希望能在以后的学习中,不断提高自己的能力,让问题越来越少。
附录1参考文献[1 ] 刘振安等.C程序设计课程设计.北京:机械工业出版社,2004.9[2] 谭浩强等.c语言程序设计.(第二版).清华大学出版社,2002,.8[3] 张引等著《C程序设计设计基础课程设计》浙江大学出版社2007[5] 曹哲等《C程序设计课程设计》机械工业出版社2010.7附录2源程序代码#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>#define N 20struct student /*定义学生结构体*/{long num;char name[20];char sex[2];char address[20];int score[3];int sum;int ave;};struct student stu[N];int t=1,pl=0;void enter();void input();void display();void add();void delet();void amend();void preside();void fint();void output();void main(){int password;int i;printf("\n\n\n\n\t\t\t欢迎进入学生信息管理系统\n"); /*初始界面输入验证密码*/for(i=1;i<=3;i++){printf("\n\n\t\t\t请输入密码:");scanf("%d",&password);if(password==000000){enter();break;}printf("error!please input again!");}printf("密码输入三次有误!系统锁定!");}void enter() /*进入主菜单函数*/{int choice,w;char k;system("cls");printf("\t\t\t学生信息管理系统\n\n");printf("\t\t1. 录入.\t2. 显示.\t3.增项.\t4.删项.\n\t\t5. 修改.\t6.统计.\t7.查找.\t8.退出.\n");printf("\n 输入序号执行相应功能:");scanf("%d",&choice);switch(choice){case 1: input();break;case 2: display(); break;case 3: add();break;case 4: delet();break;case 5: amend();break;case 6: preside(); break;case 7: fint(); break;case 8: output();break;default: w=1;}if(w==1){printf("输入有误,按任意键重新选怿.\n");k=getchar();getch();enter();}}void input() /*学生信息录入的函数*/{int x,count=0,i;char w,r[20],o;struct student *p;p=stu;system("cls");printf("\t\t\t 学生信息的录入.\n");do{pl++;printf("请输入第%d 个学生的信息.\n\n",t);printf("学号:\n");scanf("%ld",&p->num);printf("姓名:\n");scanf("%s",&p->name);printf("\n");printf("性别:\n");gets(r);gets(&p->sex);printf("\n");printf("地区:\n");scanf("%s",&p->address);printf("\n");p rintf("三门成绩:1.语文.2.数学.3.英语.\n");for(i=0;i<3;i++)scanf("%d",&p->score[i]);p->sum = p->score[0] + p->score[1] + p->score[2];p->ave = p->sum/3;printf("\n\n 是否要继续输入学生信息,如果是请按y;不是请按n.\n");o=getchar();w=getchar();if(w=='y' || w=='Y'){t++;x=1;p++;}elsex=0;}while(x==1);if(w=='n' || w=='N')printf("按任意键返回.\n");getch();enter();}void display() /*显示学生信息*/{int i,j;system("cls");printf("\t\t\t 学生信息显示.\n\n");for(j=0;j<t;j++){printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n","学号","姓名","性别","地区","语文","数学","英语","平均分","总分");printf("%ld\t%s\t%s\t%s\t",stu[j].num,stu[j].name,stu[j].sex,stu[j].address);for(i=0;i<3;i++)printf("%d\t",stu[j].score[i]);printf("%d\t", stu[j].ave);printf("%d\t", stu[j].sum);printf("\n\n");}printf("\n 按任意键返回.\n");getch();enter();}void add() /*学生信息的增加*/{int i,x;char a, w;struct student *p;p=stu+t;system("cls");printf("\n\t\t\t增加学生信息.\n");do{printf("请输入第%d 个学生的信息.\n\n",t+1);printf("学号:\n");scanf("%ld",&p->num);printf("\n");printf("姓名:\n");scanf("%s",p->name);printf("\n");printf("性别:\n");scanf("%s",p->sex);printf("\n");printf("地区:\n"); scanf("%s",p->address);printf("\n");printf("三门成绩:1.语文.2.数学.3.英语.\n");for(i=0;i<3;i++)scanf("%d",&p->score[i]);for(i=0;i<3;i++)p->sum = p->score[0] + p->score[1] + p->score[2];p->ave = p->sum/3;a=getchar();printf("\n 是否要继续输入学生信息,如果是请按y;不是请按n.\n\n"); w=getchar();p++;t++;if(w=='y'||w=='Y') {x=1;}if(w=='n'||w=='N') {x=0;break;}}while(x==1) ;if(x==0){printf("\n");printf("按任意键返回.\n");getch();enter();}}void delet() /*学生信息的删除*/{long b;int z,j;int r=t;char c,x;struct student *p;system("cls");printf("\n\t\t\t删除学生信息\n");printf(" 请输入要删除学生的学号:\n\n");scanf("%ld",&b);for(p=stu;p<stu+t;p++)if(p->num==b)break;elser--;if(r==0){printf("你要删除的学生不存在,请按任意键返回.\n");getch();enter();}printf("\n 你要删除的学生为:\n");printf("%-8s%-8s%-8s8s %-8s %-8s %-8s %-8s %-8s\ n\n ","学号","姓名","性别地区","语文","数学","英语","平均分","总分");printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j++)printf("%-8d",p->score[j]);printf("%-8d",p->ave);printf("%-8d",p->sum);printf("\n你确定要删除吗?如是请输入y;不是请输入n.\n");x=getchar();c=getchar();if(c=='y'||c=='Y'){for(p=stu;p<stu+t;p++) *p=*(p+1);t--;printf("系统已为删除信息,请按任意键返回. \ n " ) ;getch();enter();}if(c=='n'||c=='N'){printf("删除信息取消!按任意键返回.\n");getch();enter();}}void amend() /*学生信息的修改*/{long j;int i,z,r=t;charc,d,e,f,q,u,l,v,m,k,h1,h2,h3,h4;struct student *p;system("cls");printf("\n\t\t\t修改学生信息\n");printf(" 请输入要修改学生的学号:\n\n");scanf("%ld",&j);for(p=stu;p<stu+t;p++)if(p->num==j)break;elser--;if(r==0){printf("你输入的学生不存在,请按任意键返回.\n");getch();enter();}printf("\n 你要修改的学生为:\n");printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s\n\n","学姓名","性别","地区","语文","数学","英语","平均分","总分");printf ("%-8ld%-8s%-8s%-8s",p-,p->name,p->sex,p->address);for(j=0;j<3;j++)printf("%-8d",p->score[j]);printf("%-8d",p->ave);printf("%-8d",p->sum);printf("\n\n是否要修改学号:是请按y;不是请按n.\n\n");l=getchar();c=getchar();if(c=='y'||c=='Y'){printf("请输入正确的学号:\n\n");scanf("%ld",&p->num);}if(c=='n'||c=='N')z=1;printf("是否要修改姓名:是请按y;不是请按n.\n");q=getchar();d=getchar();m=getchar();if(d=='y'||d=='Y'){printf("请输入正确的姓名:\n");scanf("%s",p->name);u=getchar();}if(d=='n'||c=='N')z++;printf("\n 是否要修改性别:是按y;不是请按n.\n\n");e=getchar();k=getchar();if(e=='y'||e=='Y'){printf("请输入正确的性别:\n");scanf("%s",p->sex);}if(e=='N'||e=='n')z++;printf("\n是否要修改地区:是请按y;不是请按n.\n\n");h3=getchar();h4=getchar();if(h3=='y'||h3=='Y'){printf("请输入正确的地区:\n");scanf("%s",p->address);}if(h3=='N'||h3=='n')z++;printf("\n 是否要修改三门成绩:是请按y ;不是请按n . \ n \ n " ) ;f=getchar();if(f=='y'||f=='Y'){printf("请输入正确的三门成绩:");for(i=0;i<3;i++)scanf("%d",&p->score[i]);p->sum = p->score[0] + p->score[1] + p->score[2];p->ave = p->sum/3;}v=getchar();if(f=='n'||f=='N'){printf("请按任意键返回.\n");getch();。