精华内容
下载资源
问答
  • 学生成绩管理系统课程设计报告+代码
  • PAGE 3 软 件 学 院 课程设计报告书 课程名称 java课程设计 设计题目 学生信息管理系统 专业班级 软件工程09-10班 学 号 0920011023 姓 名 赵壬冰 指导教师 2011 年 6 月 目录 TOC \o "1-4" \h \u 25540 1 设计时间 ...
  • 基于VC6.0++的MFC学生成绩管理系统代码(含课程设计报告)
  • C++课程设计《学生信息管理系统代码.docx
  • 得分 课程设计报告 企业工资管理系统 姓 名 XXX 班 级 XXXXX 学 号 XXXXXX 课 程 名 称 数 据库 原理 及应 用 指 导 教 师 201X 年 X 月 X 日 目 录 工 资 管理 系统 需求 分 析 ? 功 能需 求 ? 能划 分 ? 能描 述 ?...
  • 学生信息管理系统java课程设计(含源代码)》由会员分享,可在线阅读,更多相关《学生信息管理系统java课程设计(含源代码)(43页珍藏版)》请在人人文库网上搜索。1、JAVA程序设计 课程设计报告课 题: 学生信息管理...

    《学生信息管理系统java课程设计(含源代码)》由会员分享,可在线阅读,更多相关《学生信息管理系统java课程设计(含源代码)(43页珍藏版)》请在人人文库网上搜索。

    1、JAVA程序设计 课程设计报告课 题: 学生信息管理系统 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 评阅意见:评定成绩:指导老师签名:年 月 日目 录一、系统描述21、需要实现的功能32、设计目的3二、分析与设计31、功能模块划分32、数据库结构描述43、系统详细设计文档64、各个模块的实现方法描述95、测试数据及期望结果11三、系统测试16四、心得体会23五、参考文献24六、附录24一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。1.。

    2、2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。1.3、查询学生基本信息的功能可使用 “姓名”对已存有的学生资料进行查询。1.4、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。1.5、用户登陆用不同的登录权限可以进入不同的后台界面,从而实现权限操作。1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户。

    3、提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规。

    4、化管理,与世界接轨的重要条件。本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。通过一个简化的学生信息管理系统,使学生信息管理工作系统化、规范化、自动化,从而达到提高学生信息管理效率的目的。二、分析与设计1、功能模块划分学生信息管理系统浏览学生信息查询学生信息添加学生信息修改学生信息删除学生信息普通学生(用户)模块班委(管理员)模块浏览学生信息查询学生信息学生管理登陆管理修改登陆密码显示登陆用户图1 功能模块划分图2、数据库结构描述2.1、数据库E-R模型 登录用户管理账号密码职位图2 登录用户管理E-R图学 生总学分出生地年龄专业性别姓名学号班级图3 实。

    5、体学生E-R图2.2、数据库关系模型二维表表1 学生表(student)字段数据类型说明stuIdnvarchar(30)学号stuNamenvarchar(30)姓名stuSexnvarchar(30)性别stuAgeint年龄stuJgnvarchar(30)籍贯stuZynvarchar(30)专业classIdnvarchar(30)班号stuSoursenumeric(5,2)总学分图4 录入数据后的学生表表2 登陆权限表(login)字段数据类型说明userIdnvarchar(30)用户名(账号),即登陆Idpasswordnvarchar(30)登陆密码positionnvar。

    6、char(30)职位,如班委,普通学生图5 录入数据后的登陆权限表3、系统详细设计文档3.1、系统执行流程图进度条(闪屏)用户登陆登陆验证falsetrue班委(管理员)界面普通学生界面查询添加修改删除查询显示班委(管理员 )普通学生(用户)退出退出系统结束结束退出系统truefalsefalsetrue修改用户登陆密码显示登陆用户信息图6 系统执行流程图3.2、类的划分表3 学生信息查询类类名类的成员属性与方法说明StuQuery.javaJPanel jp1定义一个面板JLabel jp1_jl1定义两个标签JTextField jp1_jtf1定义一个文本输入框JButton jp1_j。

    7、b1,jp1_jb2,jp1_jb3定义三个按钮JTable jtb定义一个表JScrollPane jsp定义一个滚动面板,用于存放表TableModel tm自定义一个表模型,用于更新表数据public StuQuery(Frame Main,String title ,boolean model)构造方法,通过传递三个参数,实现对话super(Main,title,model)调用父类的构造方法,实现模式对话public void actionPerformed(ActionEvent arg0)事件响应方法表4 修改学生信息类类名类的成员属性与方法说明UpdateStu.javaJLa。

    8、bel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8定义八个标签,用于设置数据库表的字段名JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8定义八个文本框,用于接收表的各字段值JButton jb1,jb2,jb3定义三个按钮,用于事件响应public void addView()这是修改学生界面的函数封装public AddStu(Frame Main,String title,boolean model)构造方法,通过传递三个参数,实现对话super(Main,title,model)调用父类的构造方法,实现模式对话pub。

    9、lic UpdateStu(Frame Main,String title,TableModel tm,int rowNo,boolean model)因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,并传递所选中的行号rowpublic void actionPerformed(ActionEvent e)事件响应方法表5 修改管理人员信息类类名类的成员属性与方法说明UpdateLogin.javaJLabel jl1,jl2,jl3定义三个标签,即用户名,密码,职位JTextField jtf1,jtf2,。

    10、jtf3定义三个文本框,对应三个标签的值JButton jb1,jb2,jb3定义三个按钮,用于事件响应JTable jtb定义一个表格,用于显示登陆用户信息PurViewModel pvm自定义登陆用户信息的数据更新模型public void upView()这是修改账户信息权限的界面函数的封装public UpdateLogin(Frame Main,String title,PurViewModel pvm,int rowNo,boolean model)因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,。

    11、并传递所选中的行号rowsuper(Main,title,model)调用父类的构造方法,实现模式对话public void actionPerformed(ActionEvent e)事件响应方法表6表模式-更新数据类名类的成员属性与方法说明TableModel.javaVector rowData,row,column定义表格所需要的集合(表,行,列)ResultSet rs定义一个记录集,用于接收从数据库返回来的记录集SqlConn conn定义一个用于连接数据库的对象,SqlConn是连接数据库的类public TableModel(String sql)构造方法,并传一个SQL语句,。

    12、实现查询操作public String getColumnName(int column)这是一个重写的方法,用于设置表的列名public int getColumnCount()得到数据模型记录集的列数public int getRowCount()得到数据模型记录集的行数public Object getValueAt(int arg0, int arg1)得到数据模型记录集某行某列的值4、各个模块的实现方法描述说明:此处只包含了个人完成的模块的实现方法描述4.1、学生信息查询学生信息查询窗口,采用了基于管理窗口,即主界面的对话框实现,实现方法如下:1)定义查询所需要的面板和组件。2)调用。

    13、父类的构造方法,实现模式对话。3)进行学生信息查询。4.2、修改管理人员信息修改管理人员信息的界面,通过模式对话,即继承JDialog对话框来实现的,实现方法如下:1)定义修改学生信息的相关组件。2)加载数据库,获得选中的那一行的所有信息。3)把组件添加到窗体。4)调用父类的构造方法,实现模式对话。5)调用修改用户权限信息的界面的方法。6)修改管理人员信息。7)调用数据库连接,并设置操纵更新的sql语句。4.3、修改学生信息修改学生信息的界面,通过模式对话,即继承JDialog对话框来实现,实现方法如下:1)定义修改学生信息的相关组件。2)加载数据库,获得选中的那一行的所有信息。3)把组件添加。

    14、到窗体。4)调用父类的构造方法,实现模式对话。5)调用修改学生信息的界面的方法。6)修改学生信息。7)完成相应功能。4.4、更新数据这是一个表模型,用于数据更新,实现方法如下:1)定义表格所需要的集合。2)定义一个记录集,用于接收从数据库返回来的记录集。3)定义一个用于连接数据库的对象。4)设置表格的列名。5)创建表的记录集。6)调用数据库连接。7)设置表的列名,并得到表的列数和行数。8)得到某行某列的值。5、测试数据及期望结果5.1、学生信息查询数据测试及期望结果数据测试及期望结果如下图:图7为学生登录后的最初界面;图8为学生查看所有信息界面;图9为全部学生的信息记录(此处同时运用到了Tab。

    15、leModel类);图10则是实现了此处的查询功能,测试数据为:姓名:肖立本期望结果将显示以下数据:学号:904325 姓名:肖立本 性别:男 年龄:23 出生地:安徽 专业:信息管理 班级:9040303 总学分:542.5图7 学生信息管理系统图8 学生信息管理系统-显示记录图9 学生信息管理系统-显示所有信息图10 学生信息管理系统-学生信息查询5.2、修改管理人员数据测试及期望结果数据测试及期望结果如下图:图11将显示出所有管理人员信息。此处测试的数据为:账号1:admin 密码1:admin 职位1:班委账号2:user 密码2:user 职位2:普通学生图12是弹出的修改密码窗口。。

    16、此处可将密码admin修改为其它值。图11 显示所有管理人员信息图12 修改管理人员信息窗口5.3、修改学生信息数据测试及期望结果数据测试及期望结果如下图:图13为全部学生的信息记录(此处同时运用到了TableModel类);图14是弹出的修改学生信息窗口:测试数据:姓名:杨明辉期望结果:可修改姓名、性别、年龄、出生地、专业、班级和总学分。图13 学生信息管理系统-显示所有信息图14 修改学生信息窗口三、系统测试1、系统启动界面图15 系统启动界面2、用户登录界面图16 用户登录界面3、班委(管理员)界面,即具有完全权限的用户后台界面图17 管理员界面4、班委(管理员)界面子菜单项显示图18 。

    17、管理员界面子菜单-系统界面图19 管理员界面子菜单-学生管理界面图20 管理员界面子菜单-系统设置界面5、学生信息查询界面图21 学生信息查询6、学生信息查询结果显示图22 学生信息查询显示7、添加学生信息界面在没有输入学号或者姓名,以及某一项时,会弹出一个对话框进行提示,如没有输入学号时:图23 添加学生信息8、修改学生信息界面(学号是主键,灰色显示,即不可更改)图24 修改学生信息9、显示所有学生信息图25 显示所有信息10、当没有选中一行的时候,不能修改和删除,并弹出提示警告框图26 修改和删除警告框图11、删除文件时的确认对话框(点击确认时会删除,点击取消,则返回主界面)图27 删除学。

    18、生确认对话框12、显示所有登陆用户信息图28 显示登录用户信息示意图13、修改用户登陆密码,选中某个用户进行修改图29 修改用户登录密码界面示意图14、关闭用户记录,即不显示所有用户信息图30 关闭用户记录示意图15、关闭学生记录图31 关闭学生记录示意图16、退出系统确认对话框只有确认时才会退出系统,否则返加主界面图32 退出系统17、普通学生登陆后的界面(即不能对学生信息进行添加,修改和删除以及用户密码修改,对应的这几项灰色显示,不可点击)图33 学生登录界面(1)图34 学生登录界面(2)四、心得体会这次为期一周的课程设计让我对java有了新的认识,首先我接触了很多上课见过但没有实际用过。

    19、的类和方法,让我对编程有了许多新的思想。大一学了C语言、C+等,虽然当时学的还不错,由于学的都是入门知识,所以自己做的程序只能实现一定的功能,和自己平时用的软件相差很大。这学期刚开课学java,虽然知道这是一门很有用的语言,但是却感觉没什么新鲜感,它的跨平台特性也只是听听,根本没有认识,由于平时学习不刻苦,也没有时间静下心来写过java代码,当得知最后期末最后一周将进行java课程设计,才静下心来开始研究java,结合以前的编程知识,做起了自己的程序。与此同时,我们也在进行数据库课程设计,和这个系统相类似,做起来比较熟练,同时想通过做课程设计将数据库和java更好的结合运用起来,感觉这样才能够。

    20、更贴近实际应用。 这次课程设计使我对java的跨平台性有了进一步认识,同时加深了课堂上所学到的知识。虽然这是第三次课程设计,并且自己也有了两年的上机实验,但我不得不说这一次课程设计是前两次以及任何一节上机实验课都不可比的。在课程设计这一段时间,使我收获了很多在上机课上无法学习到的知识,尤其是需求分析和eclipse熟练的使用。因为这一部分知识的不熟练,在程序设计过程中遇到了不少困难,但通过老师的指导和一次又一次的指导、改写、调试,将这些困难都解决了,心中的喜悦感油然而生。为了能使程序更加的完善,更加人性化,我也利用了不少的课余时间,查找了各方面的资料,看到一个小型系统能够展示在电脑屏幕上时,感。

    21、觉自己这段时间的付出是非常值得的,也使我对java产生了更浓厚的兴趣,对自己的学习以及将来的工作都是有很大的帮助的。整个课程设计过程让我的java知识得到了应用,体验了程序员编程时的喜怒哀乐,知识、心智,得到全方位提升,收获颇丰。五、参考文献著作文献:1 赵海廷.Java语言程序设计教程.北京:清华大学出版社.20122 孙印杰,刘斌,孙玉强.Java编程案例精解.北京:电子工业出版社.20053 何梅.java编程实例系列丛书.北京:清华大学出版社,20024 杨昭.二级Java语言程序设计教程.北京:中国水利水电出版社,20065 赵文靖.Java程序设计基础与上机指导.北京:清华大学出版。

    22、社,2006 六、附录1、功能:这是学生信息查询窗口,采用基于管理窗口,即主界面的对话框实现package com.View;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import com.Tools.MyFont;public class StuQuery extends JDialog implements ActionListener /定义查询所需要的面板和组件JPanel jp1;JLabel jp1_jl1。

    23、;JTextField jp1_jtf1;JButton jp1_jb1,jp1_jb2,jp1_jb3;JTable jtb;JScrollPane jsp;TableModel tm;public StuQuery(Frame Main,String title ,boolean model)/调用父类的构造方法,实现模式对话super(Main,title,model);jp1=new JPanel();jp1_jl1=new JLabel(请输入姓名:);jp1_jl1.setFont(MyFont.f1);jp1_jtf1=new JTextField(15);jp1_jb1=new。

    24、 JButton(查 询-);jp1_jb1.setFont(MyFont.f1);jp1_jb1.addActionListener(this);jp1_jb2=new JButton(清 除);jp1_jb2.setFont(MyFont.f1);jp1_jb2.addActionListener(this);jp1_jb3=new JButton(显示所有记录);jp1_jb3.setFont(MyFont.f1);jp1_jb3.addActionListener(this);jp1.add(jp1_jl1);jp1.add(jp1_jtf1);jp1.add(jp1_jb1);jp1。

    25、.add(jp1_jb2);jp1.add(jp1_jb3);jtb=new JTable();jsp=new JScrollPane(jtb);this.add(jp1,North);this.add(jsp,Center);this.setSize(600,400);this.setVisible(true);Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub/如果点击了查询按钮if(arg0.getSource()=jp1_jb1)/获取文本框的值String st。

    26、uName=jp1_jtf1.getText().trim();/其中trim()是去掉文本框前面可能有的空格,但不能去掉字符串中的空格String sql=select * from student where stuName=+stuName+;/调用模型tm=new TableModel(sql);jtb.setModel(tm);else if(arg0.getSource()=jp1_jb2)jp1_jtf1.setText();else if(arg0.getSource()=jp1_jb3)tm=new TableModel(null);jtb.setModel(tm);2、功能。

    27、:这是一个表模型,用于更新数据package com.View;import com.SqlConnection.*;/引入数据库连接的包import java.sql.*;import java.util.*;import javax.swing.table.AbstractTableModel;import com.SqlConnection.SqlConn;public class TableModel extends AbstractTableModel /定义表格所需要的集合Vector rowData,row,column;/定义一个记录集,用于接收从数据库返回来的记录集Resul。

    28、tSet rs;/定义一个用于连接数据库的对象SqlConn conn;public TableModel(String sql)if(sql=null)sql=select * from student;/设置表格的列名column=new Vector();column.add(学号);column.add(姓名);column.add(性别);column.add(年龄);column.add(出生地);column.add(专业);column.add(班级);column.add(总学分);/创建表的记录集rowData=new Vector();/调用数据库连接conn=new S。

    29、qlConn();rs=conn.sqlQuery(sql);try while(rs.next()row=new Vector();row.add(rs.getString(1);row.add(rs.getString(2);row.add(rs.getString(3);row.add(rs.getString(4);row.add(rs.getString(5);row.add(rs.getString(6);row.add(rs.getString(7);row.add(rs.getString(8);rowData.add(row); catch (Exception e) e.p。

    30、rintStackTrace();/ TODO: handle exceptionOverride/设置表的列名public String getColumnName(int column) / TODO Auto-generated method stubreturn (String)this.column.get(column);Override/得到的列数public int getColumnCount() / TODO Auto-generated method stubreturn this.column.size();/得到的行数Overridepublic int getRow。

    31、Count() / TODO Auto-generated method stubreturn this.rowData.size();Override/得到某行某列的值public Object getValueAt(int arg0, int arg1) / TODO Auto-generated method stubreturn (Vector)this.rowData.get(arg0).get(arg1);3、 功能:这是修改管理人员信息的界面,通过模式对话(即继承JDialog对话框)来实现 package com.View;import java.awt.*;import ja。

    32、va.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import com.SqlConnection.SqlConn;import com.Tools.MyFont;public class UpdateLogin extends JDialog implements ActionListener /定义修改学生信息的相关组件JLabel jl1,jl2,jl3;JTextField jtf1,jtf2,jtf3;JButton jb1,jb2,jb3;/这是修改账户信息权限的界面。

    33、函数的封装public void upView()/加载数据库,获得选中的那一行的所有信息jl1=new JLabel(账 号:);/因为账号是主键,设置文本框不可编辑的同时,一般也设置标签灰色显示,以区别其他标签 jl1.setEnabled(false);jl1.setBounds(20, 20, 60, 25);jl1.setFont(MyFont.f1);jl2=new JLabel(密 码:);jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=new JLabel(职 位:);jl3.setEnabled(false)。

    34、;jl3.setFont(MyFont.f1);jl3.setBounds(20, 60, 60, 25);jtf1=new JTextField(20);/由于账号是主键,因此不能修改,即设置障碍曙jtf1不可编辑jtf1.setEnabled(false);jtf1.setBounds(70, 20, 130, 25);jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf3=new JTextField(20);jtf3.setEnabled(false);jtf3.setBounds(70, 60, 130, 25);j。

    35、b1=new JButton(修 改);jb1.setFont(MyFont.f1);jb1.setBounds(100, 100, 80, 25);jb1.addActionListener(this);jb2=new JButton(取 消);jb2.setFont(MyFont.f1);jb2.setBounds(280, 100, 80, 25);jb2.addActionListener(this);jb3=new JButton(清 除);jb3.setFont(MyFont.f1);jb3.setBounds(190,100,80,25);jb3.addActionListene。

    36、r(this);this.setLayout(null);/把组件添加到窗体this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jtf2);this.add(jl3);this.add(jtf3);this.add(jb1);this.add(jb2);this.add(jb3);/因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,并传递所选中的行号rowpublic UpdateLogin(Frame Main,String title,PurViewMod。

    37、el pvm,int rowNo,boolean model)/调用父类的构造方法,实现模式对话super(Main,title,model);/调用修改用户权限信息的界面的方法this.upView();/先从表模型中获取所选中的那一行数据String userId=(String)pvm.getValueAt(rowNo, 0);System.out.println(userId=+userId);String password=(String)pvm.getValueAt(rowNo, 1);String position=(String)pvm.getValueAt(rowNo, 2)。

    38、;/设置广本框的值jtf1.setText(userId);jtf2.setText(password);jtf3.setText(position);/设置窗体的属性this.setSize(465,170);this.setVisible(true);this.setResizable(false);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub/当点击了修改按钮if(e.getSource()=jb1)/获取文本框的信息String userId=jtf1.getTe。

    39、xt().trim();String password=jtf2.getText().trim();String position=jtf3.getText().trim();/调用数据库连接/设置操纵更新的sql语句String sql=update login set password=+password+,position=+position+where userId=+userId+;SqlConn sqlconn=new SqlConn();sqlconn.sqlUpdate(sql);/关闭交资源sqlconn.closeSqlConn();/关闭与数据库连接的资源后,再关闭对话框。

    40、,否则数据不能自动在表中更新显示出来this.dispose();/如果点击了取消按钮,则关闭模式对话框else if(e.getSource()=jb2)this.dispose();/如果点击了清除按钮,则清除所有的广本框的内容,除了学号else if(e.getSource()=jb3)/由于账号是主键,则不能清空!jtf2.setText();4、功能:这是修改学生信息的界面,通过模式对话(即继承JDialog对话框)来实现 package com.View;import java.awt.*;import java.awt.event.ActionEvent;import java.。

    41、awt.event.ActionListener;import javax.swing.*;import com.SqlConnection.SqlConn;import com.Tools.MyFont;public class UpdateStu extends JDialog implements ActionListener /定义修改学生信息的相关组件JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8;JButton jb1,jb2,jb3;int stuA。

    42、ge=0;Double stuSourse=0.0;/这是修改学生信息的界面函数的封装public void upView()/加载数据库,获得选中的那一行的所有信息jl1=new JLabel(学 号:);/因为学号是主键,设置文本框不可编辑的同时,一般也设置标签灰色显示,以区别其他标签 jl1.setEnabled(false);jl1.setBounds(20, 20, 60, 25);jl1.setFont(MyFont.f1);jl2=new JLabel(姓 名:);jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=。

    43、new JLabel(性 别:);jl3.setFont(MyFont.f1);jl3.setBounds(20, 60, 60, 25);jl4=new JLabel(年 龄:);jl4.setFont(MyFont.f1);jl4.setBounds(250, 60, 60, 25);jl5=new JLabel(出生地:);jl5.setFont(MyFont.f1);jl5.setBounds(14, 100, 60, 25);jl6=new JLabel(专 业:);jl6.setFont(MyFont.f1);jl6.setBounds(20, 140, 60, 25);jl7=n。

    44、ew JLabel(班 级:);jl7.setFont(MyFont.f1);jl7.setBounds(20, 180, 60, 25);jl8=new JLabel(总学分:);jl8.setFont(MyFont.f1);jl8.setBounds(240, 180, 60, 25);jtf1=new JTextField(20);/由于学号是主键,因此不能修改,即设置障碍曙jtf1不可编辑jtf1.setEnabled(false);jtf1.setBounds(70, 20, 130, 25);jtf1.setBorder(BorderFactory.createLoweredBev。

    45、elBorder();jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf2.setBorder(BorderFactory.createLoweredBevelBorder();jtf3=new JTextField(10);jtf3.setBounds(70, 60, 60, 25);jtf3.setBorder(BorderFactory.createLoweredBevelBorder();jtf4=new JTextField(10);jtf4.setBounds(300, 60, 60, 25);jtf4.setB。

    46、order(BorderFactory.createLoweredBevelBorder();jtf5=new JTextField(30);jtf5.setBounds(70, 100, 360, 25);jtf5.setBorder(BorderFactory.createLoweredBevelBorder();jtf6=new JTextField(20);jtf6.setBounds(70, 140, 290, 25);jtf6.setBorder(BorderFactory.createLoweredBevelBorder();jtf7=new JTextField(20);jtf。

    47、7.setBounds(70, 180, 130, 25);jtf7.setBorder(BorderFactory.createLoweredBevelBorder();jtf8=new JTextField(20);jtf8.setBounds(300, 180, 130, 25);jtf8.setBorder(BorderFactory.createLoweredBevelBorder();jb1=new JButton(修 改);jb1.setFont(MyFont.f1);jb1.setBounds(100, 220, 80, 25);jb1.addActionListener(th。

    48、is);jb2=new JButton(取 消);jb2.setFont(MyFont.f1);jb2.setBounds(280, 220, 80, 25);jb2.addActionListener(this);jb3=new JButton(清 除);jb3.setFont(MyFont.f1);jb3.setBounds(190,220,80,25);jb3.addActionListener(this);this.setLayout(null);/把组件添加到窗体this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jtf2);thi。

    49、s.add(jl3);this.add(jtf3);this.add(jl4);this.add(jtf4);this.add(jl5);this.add(jtf5);this.add(jl6);this.add(jtf6);this.add(jl7);this.add(jtf7);this.add(jl8);this.add(jtf8);this.add(jb1);this.add(jb2);this.add(jb3);/因为要修改信息,那么必须要获得所选中的那一行的所有信息,把它们添加到文本框作为默认值,因此构造方法还应添加一个参数即传递一个模型tm,并传递所选中的行号rowpublic 。

    50、UpdateStu(Frame Main,String title,TableModel tm,int rowNo,boolean model)/调用父类的构造方法,实现模式对话super(Main,title,model);/调用修改学生信息的界面的方法this.upView();/先从表模型中获取所选中的那一行数据String stuId=(String)tm.getValueAt(rowNo, 0);System.out.println(sutId=+stuId);String stuName=(String)tm.getValueAt(rowNo, 1);String stuSex=(。

    51、String)tm.getValueAt(rowNo, 2);String stuAge=(String)tm.getValueAt(rowNo, 3);String stuJg=(String)tm.getValueAt(rowNo, 4);String stuZy=(String)tm.getValueAt(rowNo, 5);String classId=(String)tm.getValueAt(rowNo, 6);String stuSourse=(String)tm.getValueAt(rowNo, 7);/设置文本框的默认值jtf1.setText(stuId);jtf2.se。

    52、tText(stuName);jtf3.setText(stuSex);jtf4.setText(stuAge);jtf5.setText(stuJg);jtf6.setText(stuZy);jtf7.setText(classId);jtf8.setText(stuSourse);/设置窗体的属性this.setSize(465,300);this.getContentPane().setBackground(Color.LIGHT_GRAY);this.setVisible(true);this.setResizable(false);Overridepublic void action。

    53、Performed(ActionEvent e) / TODO Auto-generated method stub/当点击了修改按钮if(e.getSource()=jb1)/获取文本框的信息String stuId=jtf1.getText().trim();String stuName=jtf2.getText().trim();if(stuName.equals()JOptionPane.showMessageDialog(this, 请输入姓名!);return;/返回到输入界面,如果没有return语句,则会回到主界面String stuSex=jtf3.getText().tri。

    54、m();if(stuSex.equals()JOptionPane.showMessageDialog(this, 请输入性别!);return;/返回到输入界面,如果没有return语句,则会回到主界面/对于年龄,则需要进行两个判断,一个是不能为空,另一个必须是int型,下面用异常来判断输入的学生年龄是否是整型数/*/try stuAge=Integer.parseInt(jtf4.getText().trim();/把从文本框取得的字符串转换成整型,如果抛异常,则输入的不是整形数if(stuAge1)JOptionPane.showMessageDialog(this, 年龄必须大于或等于1!);return; catch (Exception e2) /提示输入的不是整数JOptionPane.showMessageDialog(this, 请输入一个整数的年龄!);/如果抛异常,则返回到添加窗口,后面终止执行*。

    展开全文
  • JAVA JAVA 程序设计 课程设计报告 同组姓名 课 题: 学生信息管理系统 姓 学 名 号 指导教师设计时间 指导教师 设计时间 评阅意见 目 录 一系统描述 2 1需要实现的功能 3 2设计目的 3 二分析与设计 3 1功能模块划分 3...
  • 课程设计~学生信息管理系统代码

    千次阅读 2015-12-25 15:52:07
    *文件名称:学生信息管理系统.cpp *文件标示:无 *功能:增添新键数据、修改删除数据、查询统计数据 *作者:周凯璇 *当前版本:v1.0 *完成日期:2015.11.24 ***********************************
    /*************************************************
    *版权所有 (C)2015 zhoukaixuan
    *文件名称:学生信息管理系统.cpp
    *文件标示:无
    *功能:增添新键数据、修改删除数据、查询统计数据
    *作者:周凯璇
    *当前版本:v1.0
    *完成日期:2015.11.24
    ************************************************/
    #include <stdio.h>
    #include <iostream>
    #include <stdlib.h>
    #include <string.h>
    #include <windows.h>
    # define LEN sizeof(struct Student)
    using namespace std;
    struct Student                /*构建结构体*/
    {
    char num[12];
    char name[20];
    char sex[10];
    int  age;
    char phone[12];
    char Email[12];
    struct Student *next;
    };
    char filename[90];
    
    /***********************************************************
    *功能:生成链表
    *输入:结构体各个信息
    ************************************************************/
    
    struct Student *Creat(int n)
    {
    	void menu_print_in(void);
    	struct Student *head;
    	struct Student *p1, *p2;
    	system("cls");
    	for(int i=1;i<n+1;i++)
        {
    		p1 = (struct Student*)malloc(LEN);  //将返回的指针强制转换
    		menu_print_in();
    		cin>>p1->num>>p1->name>>p1->sex>>p1->age>>p1->phone>>p1->Email;
    		p1->next = NULL;
    		if(i==1)
            {
    			head = p2 = p1;
    		}
    		else
    		{
    			p2->next = p1;
    			p2 = p1;
    		}
    	}
    	return(head);
    }
    /***********************************************************
    
    功能:数据存盘(wb,ab追加)
    声明FILE指向FILe类型文件通过使用fopen、fclose和fwrite函数存盘
    实现文件的存储。
    **********************************************************/
    
    void WriteData_wb(struct Student *head)
    {
    	FILE *fp;
    	struct Student *p;
    	if((fp = fopen(filename, "wb"))==NULL)    //只写打开或新建一个二进制文件;只允许写数据。
    	printf("不能打开此文件!");
    	p = head;
    	while(p!=NULL)
        {
    		if(fwrite(p,LEN,1,fp)!=1)
            {
    			printf("写入数据出错\n");
    			fclose(fp);                       //关闭文件
    			return;
    		}
    		p=p->next;
    	}
    	fclose(fp);
    }
    void WriteData_ab(struct Student *head)
    {
    	FILE *fp;
    	struct Student *p;
    	if((fp = fopen(filename, "ab"))==NULL)     //读写打开一个二进制文件,允许读或在文件末追加数据
    	printf("错误,不能读取文件");
    	p = head;
    	while(p!=NULL)
        {
    	if(fwrite(p,LEN,1,fp)!=1)
    	{
    			printf("写入数据出错\n");
    			fclose(fp);
    			return;
        }
    		p=p->next;
    	}
    	fclose(fp);
    }
    
    /*读取数据文件保存到链表中 ,返回指向此链表头指针*/
    struct Student *ReadData(void)
    {
    	struct Student *head = NULL;
    	struct Student *p1, *p2;
    	FILE *fp;
    	if((fp=fopen(filename,"rb+"))==NULL)//打开一个二进制文件
    	{
    		printf("打开文件出错\n");
    		exit(0);
    	}
    	while(!feof(fp))
        {
    		if((p1=(struct Student*)malloc(LEN))==NULL)
    		{
    			printf("申请出错\n");
    			fclose(fp);
    			exit(0);
    		}
    		if(fread(p1,LEN,1,fp)!=1)
    		{
    			free(p1);
    			break;
    		}
    		if(head==NULL)
    		head=p2=p1;
    		else
    		{
    			p2->next=p1;
    			p2=p1;
    		}
    	}
    	fclose(fp);
    	return (head);
    }
    /*全部显示*/
    void Print_inquire_all(void)
    {
    	void menu_print_out(void);
    	struct Student *pt;
    	pt = ReadData();
    	menu_print_out();
    	do
        {
    		cout<<pt->num<<" "<<pt->name<<" "<<pt->sex<<" "<<pt->age<<" "<<pt->phone<<" "<<pt->Email<<" "<<endl;
    		pt = pt->next;
    	}
    	while(pt!=NULL);
    	printf("\n");
    }
    
    /*按学号查询*/
    int Print_inquire_num()
    {
    	void menu_print_out(void);
    	struct Student *pt;
    	char str_num[10];
    	printf("请输入学号:");
        cin>>str_num;
    	pt = ReadData();
    	menu_print_out();
    	do
        {
    		if(strcmp(pt->num,str_num)==0)
    		{
    			cout<<pt->num<<" "<<pt->name<<" "<<pt->sex<<" "<<pt->age<<" "<<pt->phone<<" "<<pt->Email;
    			printf("\n");
    			return 0;
    		}
    		pt = pt->next;
    	}
    	while(pt!=NULL);
    	printf("没有存储要查询的数据!\n");
    	printf("\n");
    	return 0;
    }
    /*按姓名查询*/
    int Print_inquire_name()
    {
    	void menu_print_out(void);
    	struct Student *pt;
    	char str_name[20];
    	printf("输入要查询的姓名:");
        cin>>str_name;
    	pt = ReadData();
    	menu_print_out();
    	do
        {
    		if(strcmp(pt->name,str_name)==0)
    		{
    			cout<<pt->num<<" "<<pt->name<<" "<<pt->sex<<" "<<pt->age<<" "<<pt->phone<<" "<<pt->Email;
    			printf("\n");
    			return 0;
    		}
    		pt = pt->next;
    	}while(pt!=NULL);
    	printf("没有存储要查询的数据!\n");
    	printf("\n");
    	return 0;
    }
    /*模糊查询*/
    int Print_inquire_fuzzy(void)
    {
    	void menu_print_out(void);
    	struct Student *pt;
    	char str_find[20];
    	int m = 0;
    	printf("输入要查询的关键词:");
    	scanf("%s", str_find);
    	pt = ReadData();
    	menu_print_out();
    	do
        {
    		if(strstr(pt->num,str_find)!=0||strstr(pt->name,str_find)!=0    //判断是否为首址
    		||strstr(pt->sex,str_find)!=0||strstr(pt->phone,str_find)!=0
    		||strstr(pt->Email,str_find)!=0)
    		{
    			cout<<pt->num<<" "<<pt->name<<" "<<pt->sex<<" "<<pt->age<<" "<<pt->phone<<" "<<pt->Email<<endl;
    			m = 1;
    		}
    		pt = pt->next;
    	}
    	while(pt!=NULL);
    	if(!m)
    		printf("没有存储要查询的数据!\n");
    	printf("\n");
    	return 0;
    }
    
    
    /*删除*/
    int Delete()
    {
    	struct Student *pt1, *pt2, *head;
    	char str_num[20];
    	printf("\n输入要删除的学号:");
    	scanf("%s", str_num);
    	pt1 = ReadData();
    	pt2 = pt1->next;
    	head = pt1;
    	while(pt2!=NULL)
        {
    		if(strcmp(pt1->num,str_num)==0)
    		{
    			WriteData_wb(pt2);
    		}
    		else if(strcmp(pt2->num,str_num)==0)
    		{
    			pt1->next = pt2->next;
    			WriteData_wb(head);
    		}
    		pt2 = pt2->next;
    		pt1 = pt1->next;
    	}
    	if(pt2!=NULL)
    	printf("没有存储要删除的数据!\n");
    	printf("\n\n");
    	return 0;
    }
    
    /*修改记录*/
    int alter()
    {
    	void menu_print_in(void);
    	struct Student *pt1, *pt2, *head;
    	char str_num[20];
    	printf("请输入要修改的学号:");
    	scanf("%s", str_num);
    	pt1 = ReadData();
    	pt2 = pt1->next;
    	head = pt1;
    	while(pt2!=NULL)
        {
    		if(strcmp(pt1->num,str_num)==0)
    		{
    			menu_print_in();
    			cin>>pt1->num>>pt1->name>>pt1->sex>>pt1->age>>pt1->phone>>pt1->Email;
    			WriteData_wb(head);
    		}
    		else if(strcmp(pt2->num,str_num)==0)
    		{
    			menu_print_in();
    			cin>>pt2->num>>pt2->name>>pt2->sex>>pt2->age>>pt2->phone>>pt2->Email;
    			WriteData_wb(head);
    		}
    		pt2 = pt2->next;
    		pt1 = pt1->next;
    	}
    	if(pt2!=NULL)
    	printf("没有存储要删除的数据!\n");
    	return 0;
    }
    /*输入写入数据的数量*/
    int Creat_num(void)
    {
    	printf("请输入您此次要添加的数据个数:");
    	int n;
    	if(scanf("%d", &n)!=1)
        {
    		printf("错误!");
    	}
    	return n;
    }
    /*选择将要打开的文件*/
    int File_name()
    {
    	printf("\n输入要打开或创建的文件名称:");
    	if(scanf("%s", filename)!=1)
    	printf("错误");
    	return 0;
    }
    
    /*主菜单*/
    void menu(void)
    {
        cout<<"********************************************************************************"<<endl;
        cout<<"*****************************学生信息管理系统***********************************"<<endl;
    	void menu_add(void);
    	void menu_inquire(void);
    	void menu_amend(void);
    	printf("                ===========学生信息管理系统V1.0===========  \n");
    	printf("               ==                                        == \n");
    	printf("               == 【1】添加数据           【3】修改数据  == \n");
    	printf("               ==                                        == \n");
    	printf("               == 【2】查询数据           【4】退出系统  == \n");
    	printf("               ==                                        == \n");
    	printf("               ============================================ \n");
    	printf("               请输入功能前的序号进入相应的工具:【   】\b\b");
    	int a = 0;
    	a = getchar();
    	while(a!='1'&&a!='2'&&a!='3'&&a!='4')
        {
    		printf("          错误,请输入正确代码\n");
    		putchar('\a');
    		getchar();
    		printf("          重新输入序号进入:【   】\b\b");
    		a = getchar();
    	}
    	switch(a)
    	{
    		case '1': File_name();menu_add();
    		break;
    		case '2': File_name();menu_inquire();
    		break;
    		case '3': File_name();menu_amend();
    		break;
    		case '4': exit(0);
    		break;
    	}
    	getchar();
    }
    
    /*添加数据*/
    void menu_add(void)
    {
    	system("cls");
    	getchar();
    	printf("              =================添加数据方式=============\n");
    	printf("            ===                                        ===\n");
    	printf("            === 【1】新建文件            【2】添加数据=== \n");
    	printf("            ===              【3】返回菜单             ===\n");
    	printf("            ===============================================  \n");
    	printf("            = = = = = = = = = = = = = = = = = = = = = = = =  \n");
    	printf("            请输入功能前的序号进入相应的工具:【   】\b\b");
    	int a = 0;
    	a = getchar();
    	while(a!='1'&&a!='2'&&a!='3')
        {
    		printf("             错误!请输入正确编码。");
    		putchar('\a');
    		getchar();
    		printf("             重新输入序号进入:【   】\b\b");
    		a = getchar();
    	}
    	switch(a)
    	{
    		case '1': WriteData_wb(Creat(Creat_num()));
    		 printf("\n        新建文件成功,数据已成功保存\n");
    			 system("pause");
    		 system("cls");
    		 menu_add();
    		break;
    		case '2': WriteData_ab(Creat(Creat_num()));
    			 printf("        数据已成功添加");
    			 system("pause");
    		 system("cls");
    		 menu_add();
    		break;
    		case '3': system("cls");
    		 getchar();
    		 menu();
    		break;
    	}
    }
    
    /*查询数据*/
    void menu_inquire(void)
    {
    	system("cls");
    	getchar();
    	while(1)
        {
    	system("cls");
    	printf("             =========================================  \n");
    	printf("           ===            查询数据方式               ===\n");
    	printf("           ===                                       ===\n");
    	printf("           === 【1】学号查询         【3】模糊查询   ===\n");
    	printf("           ===                                       ===\n");
    	printf("           ===            【4】全部显示              ===\n");
    	printf("           ===                                       ===\n");
    	printf("           === 【2】姓名查询         【5】返回菜单   ===\n");
    	printf("           =========================================   \n");
    	printf("           请输入序号进入:【   】\b\b");
    	int a = 0;
    	a = getchar();
    	while(a!='1'&&a!='2'&&a!='3'&&a!='3'&&a!='4'&&a!='5'&&a!='6')
            {
    			printf("error! please input the right number!\n");
    			putchar('\a');
    			getchar();
    			printf("重新输入序号进入:【   】\b\b");
    			a = getchar();
    		}
    		switch(a)
    		{
    			case '1': Print_inquire_num();system("pause");getchar();
    			break;
    			case '2': Print_inquire_name();system("pause");getchar();
    			break;
    			case '3': Print_inquire_fuzzy();system("pause");getchar();;
    			break;
    			case '4':  Print_inquire_all();system("pause");getchar();;
    			break;
    			case '5': system("cls");getchar();menu();
    			break;
    		}
    	}
    }
    /*修改数据*/
    void menu_amend(void)
    {
    	system("cls");
    	getchar();
    	while(1)
        {
    	system("cls");
    	printf("           ==============================================\n");
    	printf("           ==================修改数据====================\n");
    	printf("           ====【1】删除记录          【2】修改记录====\n");
    	printf("           ====                                    ====\n");
    	printf("           ====                                    ====\n");
    	printf("           ====          【3】返回菜单             ====\n");
    	printf("           ==============================================");
    	printf("\n");
    	printf("           请输入序号:【   】\b\b");
    	int a = 0;
    	a = getchar();
    	while(a!='1'&&a!='2'&&a!='3'&&a!='4')
    	{
    		printf("       错误,请输入正确编码\n");
    		putchar('\a');
    		getchar();
    		printf("       请重新输入功能前的序号进入相应的工具:【   】\b\b");
    		a = getchar();
        }
    		switch(a)
    		{
    			case '1': Delete();
    			 printf("\n\n           已成功删除指定数据\n");
    			 system("pause");
    			 getchar();
    			break;
    			case '2': alter();
    				 printf("\n\n       已成功修改指定数据\n");
    			 system("pause");
    				 getchar();
    			break;
    			case '3': system("cls");
    			 getchar();
    			 menu();
    			break;
    		}
    	}
    }
    
    /*输入输出提示栏*/
    void menu_print_in(void)
    {
    	printf("========================================================================\n");
    	printf("学号      姓名     性别    出生日期          电话         E—mail              \n");
    	printf("========================================================================\n");
    }
    void menu_print_out(void)
    {
    	printf("==========================================================================\n");
    	printf("学号      姓名     性别    出生日期          电话         E—mail                 \n");
    	printf("==========================================================================\n");
    }
    /*主函数*/
    int main(void)
    {
    	SetConsoleTitle("学生信息管理系统");
    	menu();
    	return 0;
    }
    

    展开全文
  • java 学生成绩管理系统课程设计报告以及代码共享 Java语言课程期末作业 题 目第 9 题学生成绩管理系统 学 院 计算机学院 专 业 计算机科学与技术 班 别 08 级(8 )班 学 号 姓 名 2010 年 12 月 7 日 一课程题目 设计...
  • 学生管理系统代码

    2017-11-15 13:04:41
    有关学生课程成绩的源代码有关学生课程成绩的源代码有关学生课程成绩的源代码有关学生课程成绩的源代码有关学生课程成绩的源代码
  • 通过这次的设计主要是做出一个小型的管理系统来加强对JAVA所学知识的巩固和融会贯通可以说是对一个学期所学知识的一个小结加深对JAVA数据库的理解 二需求分析 功能需求分析 该系统具备管理学生信息课程信息选课信息...
  • 6/10/2020 数据结构课程设计 数据结构课程设计 C 学生信息管理系统C 语言编写 仅供参考 学生信息管理系统 语言编写 仅供参考 #in lude<stdio.h> #in lude<stdio.h> #include<stdlib.h> #include<stdlib.h> #in lude...
  • JAVA程序设计课程设计报 学生信息管理系统 名: 口 号: 同组姓名: 专业班级: 1功能模块划分2数据库结构描述3系统详细设计文档4 1 功能模块划分 2 数据库结构描述 3 系统详细设计文档 4 各个模块的实现方法描述 5 测试...
  • 有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统。 功能: 1.学生成绩录入:输入学生学号、姓名、三门课程(语、数、英)。 2.学生成绩查询:输入学生...
  • C语言-学生信息管理系统(代码) 作者 日期 2 个人收集整理勿做商业用途 学X 师 范 大 X 验 报 告实 C语言课程设计 课 程 任课老师 学 号 姓 名 系 院 _年_月至_年_月 3 个人收集整理勿做商业用途 注意事项 1....
  • PHP课程设计,简单学生信息管理系统,包含课程设计报告,工程文件代码,答辩PPT,使用的MySQL数据库
  • 课程设计的来看看吧,很全,很好!VF语言+access数据库。程序源代码和论文都是整理过的。
  • c++学生成绩管理系统课程设计,含源代码课程设计文档与PPT
  • 用c++实现学生成绩管理系统,要求用类实现并且可实现增删改查及成绩排名。 #include typedef class { public: int cls; char nam[10]; char num[10]; int c; int english; int computer; int math; int s; ...

    c++实现学生成绩管理系统,要求用类实现并且可实现增删改查及成绩排名。

    #include<afxstd.h>

    typedef class

    {  

    public:

    int cls; char nam[10];  char num[10];  int c;  int english;  int computer;  int math; int s;

    }Student;  

    Student stud1[100],stud2[100];

    int menu()

    {

    char a;

      while(a>'7'||a<'0')

     {   

      system("cls");  

      cout<<"                   欢迎使用学生成绩管理系统 ";   

      cout<<endl;   

      cout<<"**********************        学生成绩管理系统     ************************"<<endl;  

      cout<<setw(30)<<" "<<"1.输入学生成绩"<< endl;  

      cout<<setw(30)<<" "<<"2.输出学生成绩"<<endl;  

      cout<<setw(30)<<" "<<"3.查找并显示学生成绩"<<endl;  

      cout<<setw(30)<<" "<<"4.按姓名查找,修改学生资料"<<endl;

      cout<<setw(30)<<" "<<"5.显示班级成绩单"<<endl;

      cout<<setw(30)<<" "<<"6.查找并删除学生信息"<<endl;  

      cout<<setw(30)<<" "<<"7.从文件读取数据"<<endl;

      cout<<setw(30)<<" "<<"0.储存学生资料并退出系统"<<endl;  

      cout<<setfill('=')<<setw(80)<<"="<<endl;  

      cout<<"请选择(0-7)"<<endl;  

     cout<<setw(35)<<" ";  

      a=getchar();

     }

      return(a-'0');

    }

    /***************************************************************************************/

     int Input(Student stud[],int n)      //输入数据(第一学期)

    {  

     int i=0;

     char sign,x[10];

      for(;sign !='n'&&sign !='N';)

     {    

       cout<<setw(15)<<" "<<"姓名:";  

       cin>>stud[n+i].nam;   

       cout<<setw(15)<<" "<<"班级(:1401):";

       cin>>stud[n+i].cls;  

       cout<<setw(15)<<" "<<"学号:";  

       cin>>stud[n+i].num;  

       cout<<setw(15)<<" "<<"C语言:";

       cin>>stud[n+i].c;   

       cout<<setw(15)<<" "<<"数学:";

       cin>>stud[n+i].math;  

       cout<<setw(15)<<" "<<"英语:";

       cin>>stud[n+i].english;  

       cout<<setw(15)<<" "<<"计算机:";  

       cin>>stud[n+i].computer;  

       gets(x);   

       cout<<setw(10)<<" ";

       cout<<"还有要输入的信息吗?(y/n)";  

       cin>>&sign;

       i++;  

    }  

     return(n+i);

    }

     /*************************************输出数据***********************************************/

    void Display(Student stud[], int n)

    {   

    int i;

    cout<<setw(15)<<" "<<setfill('-')<<setw(65)<<"-"<<endl;

        cout<<setw(15)<<" "<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"C语言"<<"\t"<<" 数学"<<"\t"<<" 英语"<<"\t"<<" 计算机"<<"\t"<<"总分"<<"\t"<<"平均分"<<endl;

        cout<<setw(15)<<" ";  

        cout<<setfill('-')<<setw(65)<<"-"<<endl;

       for(i=1;i<n+1;i++)

     {    

    cout<<setw(15)<<" ";

         stud[i-1].s=stud[i-1].c+stud[i-1].math+stud[i-1].english+stud[i-1].computer;  

        cout<<"  "<<stud[i-1].cls<<"\t"<<stud[i-1].num<<"\t"<<stud[i-1].nam<<"\t"<<stud[i-1].c<<"\t"<<stud[i-1].math<<"\t "<<stud[i-1].english<<"\t"<<stud[i-1].computer<<"\t"<<stud[i-1].s<<"\t"<<stud[i-1].s/4<<endl;

      if(i>1 && i%10==0)  

     {   

      cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;  

      cout<<setw(15)<<" ";   

      system("pause");   

      cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;

      }  

    }  

     cout<<setw(15)<<" ";

     system("pause");

     }  

    /************************************查找学生显示其信息***************************************************/

    void Query(Student stud[],int n)

     {  

    char nam[20];

        cout<<setw(15)<<" "<<"输入其姓名:"<<endl;

        cin>>nam;

        int i=0;  

     while(strcmp(stud[i].nam,nam)!=0&&i<n)   i++;

     if(i==n)  

    {   

     cout<<"\t\t\t"<<"没有发现该学生的资料!"<<endl;

     return;

     }  

      cout<<setw(15)<<" "<<"学号:"<<stud[i].num<<endl;  

      cout<<setw(15)<<" "<<"班级:"<<stud[i].cls<<endl;

      cout<<setw(15)<<" "<<"C语言:"<<stud[i].c<<endl;

      cout<<setw(15)<<" "<<"英语:"<<stud[i].english<<endl;  

      cout<<setw(15)<<" "<<"数学:"<<stud[i].math<<endl;   

      cout<<setw(15)<<" "<<"计算机:"<<stud[i].computer<<endl;

     }

     /*********************************删除学生信息************************************/

    int Delete(Student stud[],int n)

    {  

    char s[20];    int i=0,j;  

     cout<<setw(15)<<"请输入要删除的学生的姓名:"<<endl;

     cin>>s;  

     while(strcmp(stud[i].nam,s)!=0&&i<n)  i++;  

     if(i==n)  

     {  

     printf("\t\t\t没有发现该学生资料!\n");

     return(n);  

     }   

     for(j=i;j<n-1;j++)

      {    

      strcpy(stud[j].num,stud[j+1].num);

          strcpy(stud[j].nam,stud[j+1].nam);

          stud[j].cls=stud[j+1].cls;

          stud[j].c=stud[j+1].c;

          stud[j].math=stud[j+1].math;  

          stud[j].english=stud[j+1].english;   

          stud[j].computer=stud[j+1].computer;

     }   

     cout<<setw(15)<<" "<<"当前信息已删除成功!"<<endl;   return(n-1);

     }  

     /*******************************修改信息 ******************************************/

     int Revise(Student stud[],int n)

     {   

    int i=0; char na[10];

    cin>>na;

      while(strcmp(stud[i].nam,na)!=0&&i<n)   i++;  

    if(i==n)

      {   

     cout<<"\t\t\t"<<"没有发现该学生的资料!"<<endl;

    }

       cout<<"修改班级:"<<endl;   

       cin>>stud[i].cls;

       cout<<"修改学号:"<<endl;  

       cin>>stud[i].num;  

       cout<<"修改C语言成绩:"<<endl;

       cin>>stud[i].c;

       cout<<"修改英语成绩:"<<endl;  

       cin>>stud[i].english;

       cout<<"修改数学成绩:"<<endl;  

       cin>>stud[i].math;

       cout<<"修改计算机成绩:"<<endl;

       cin>>stud[i].computer;    

       cout<<"修改成功"<<endl;

       return(n);

     }  

     /***************************************显示班级成绩单**************************************/

     void cjd(Student stud[], int n)

    {   

    int i,m,j;

    cout<<"请输入班级(:1401):";

    cin>>m;

        cout<<setw(15)<<" "<<setfill('-')<<setw(65)<<"-"<<endl;

        cout<<setw(15)<<" "<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"C语言"<<"\t"<<" 数学"<<"\t"<<" 英语"<<"\t"<<" 计算机"<<"\t"<<"总分"<<"\t"<<"平均分"<<endl;

        cout<<setw(15)<<" ";  

        cout<<setfill('-')<<setw(65)<<"-"<<endl;

    for(i=1;i<n+1;i++) {

    stud[i-1].s=stud[i-1].c+stud[i-1].math+stud[i-1].english+stud[i-1].computer;}

    for(i=1;i<n+1;i++) {

    for(j=i+1;j<n+1;j++) {

    if(stud[i-1].s<stud[j-1].s){

    Student  temp;

    temp=stud[i-1];

    stud[i-1]=stud[j-1];

    stud[j-1]=temp;

    }

    }

    }

       for(i=1;i<n+1;i++)

     {    

    cout<<setw(15)<<" ";

         stud[i-1].s=stud[i-1].c+stud[i-1].math+stud[i-1].english+stud[i-1].computer;  

        cout<<"  "<<stud[i-1].cls<<"\t"<<stud[i-1].num<<"\t"<<stud[i-1].nam<<"\t"<<stud[i-1].c<<"\t"<<stud[i-1].math<<"\t "<<stud[i-1].english<<"\t"<<stud[i-1].computer<<"\t"<<stud[i-1].s<<"\t"<<stud[i-1].s/4<<endl;

      if(i>1 && i%10==0)  

     {   

      cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;  

      cout<<setw(15)<<" ";   

      system("pause");   

      cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;

      }  

    }  

     cout<<setw(15)<<" ";

     system("pause");

     

     }

     /**************************************从文件读取数据*************************************************/

     int AddfromText(Student stud[], int n)  

    {  

    int i=0,number,x=0,y=0;

    FILE *fp;  

    char filename[20];  

    cout<<setw(15)<<" "<<"输入文件名:";

    cin>>filename;

      if((fp=fopen(filename,"rb"))==NULL)

     {   

     cout<<setw(15)<<" "<<"无法打开文件"<<endl;  

        cout<<setw(15)<<" ";  

     system("pause");  

     return(n);

     }   

    fscanf(fp,"%d",&number);

      for(;i<number;)

    {  

    fscanf(fp,"%d%s%s%d%d%d%d%d%d\n",

    &stud[n+i].cls, &stud[n+i].num,

    &stud[n+i].nam, &stud[n+i].c,

    &stud[n+i].math, &stud[n+i].english,

    &stud[n+i].computer,&x,&y);

      i++;

      }

       n+=number;

     fclose(fp);  

      cout<<setw(15)<<" "<<"读入成功!"<<endl;  

      cout<<setw(15)<<" ";

      system("pause");

      return(n);

       }   

    /**************************************将所有记录写进文件*************************************/  

    void WritetoText(Student stud[],int n)     

    {  

     int i=0;  

     FILE *fp;  

     char filename[20];  

    cout<<setw(15)<<" "<<"将资料输入文件"<<endl;

    cout<<setw(15)<<" "<<"输入文件名:";  

    cin>>filename;  

     if((fp=fopen(filename,"w+"))==NULL)  

    {   

     cout<<setw(15)<<" "<<"无法打开文件"<<endl;

     system("pause");  

     return;

     }

      fprintf(fp,"%d\n",n);

        for(;i<n;)   

    {   

    fprintf(fp,"%-8d%-8s%-8s%-5d%-5d%-5d%-5d%-5d%-5d\n",

    stud[i].cls, stud[i].num, stud[i].nam,   

    stud[i].c, stud[i].math,

    stud[i].english, stud[i].computer,  

    stud[i].c+stud[i].math+stud[i].english+stud[i].computer,    

    (stud[i].c+stud[i].math+stud[i].english+stud[i].computer)/4);

       i++;

    }  

    fclose(fp);

    }

     /**************************************主函数调用*********************************************/

    void main()

     {

    int n1=0,n2=0;

     for(;;)

     {   

    switch(menu())  

     {   

    case 1:  

        int t;   

       cout<<setw(15)<<" "<<"输入学生资料"<<endl;  

       cout<<setw(15)<<" "<<"输入学期(1 or 2)"<<endl;   

       cout<<setw(15)<<" ";   

       cin>>t;  

      if(t==1)   

      {                 n1=Input(stud1,n1);    }  

      else if(t==2)    {      n2=Input(stud2,n2);    }     break;  

     case 2:  

       cout<<setw(15)<<" "<<"输出所有学生资料"<<endl;   

     if(n1!=0)   

     {    

     cout<<setw(15)<<" "<<"第一学期:"<<endl;    

         cout<<setw(15)<<" ";  

         Display(stud1,n1);  

     }   

      if(n2!=0)   

     {    

      cout<<setw(15)<<" "<<"第二学期:"<<endl;     

        cout<<setw(15)<<" ";   

          Display(stud2,n2);

      }   break;

     case 3:  

      int r;    

      cout<<setw(15)<<" "<<"查找学生"<<endl;  

      cout<<setw(15)<<" "<<"请输入学期:"<<endl;   

      cin>>r;  

      if(r==1)    

    {      Query(stud1,n1);    }

      else if(r==2)    {      Query(stud2,n2);    }   

      cout<<setw(15)<<" ";   

      system("pause");    break;  

     case 4:   

    int p;    

        cout<<setw(15)<<" "<<"修改学生资料"<<endl;

        cout<<setw(15)<<" "<<"请输入学期:"<<endl;

        cin>>p;

       if(p==1)   

     {    

       cout<<setw(15)<<" "<<"输入你要修改的学生的姓名:";     

           n1=Revise(stud1,n1);  

       }   

      else if(p==2)  

      {    

      cout<<setw(15)<<" "<<"输入你要修改的学生的姓名:";  

          n2=Revise(stud2,n2);  

      }

     system("pause");    break;  

    case 5:

     cout<<setw(15)<<" "<<"显示班级成绩单"<<endl;

     if(n1!=0)   

     {    

     cout<<setw(15)<<" "<<"第一学期:"<<endl;    

         cout<<setw(15)<<" ";  

         cjd(stud1,n1);  

     }   

      if(n2!=0)   

     {    

      cout<<setw(15)<<" "<<"第二学期:"<<endl;     

        cout<<setw(15)<<" ";   

          cjd(stud2,n2);

      }   break;  

     case 6:     

     cout<<setw(15)<<"查找并删除学生信息"<<endl;

         int o;   

         cout<<"请输入学期:"<<endl;

         cout<<setw(15)<<" ";

         cin>>o;  

      if(o==1)   

     {     

     cout<<setw(15)<<"第一学期"<<endl;  

       n1=Delete(stud1,n1);  

      }

        if(o==2)  

      {     

     cout<<setw(15)<<" "<<"第二学期"<<endl;  

       n2=Delete(stud2,n2);  

      }    

     system("pause");    break;

    case 7:    

           cout<<setw(15)<<" "<<"从文件中读入数据"<<endl;    

           cout<<setw(15)<<"读取第一学期的文件"<<endl;    

       n1=AddfromText(stud1,n1);      

           cout<<setw(15)<<"读取第二学期的文件"<<endl;    

       n2=AddfromText(stud2,n2);          break;    

     case 0:  

       cout<<setw(15)<<" "<<"将所有资料写入文件"<<endl;  

      if(n1!=0)  

      {    

    cout<<setw(15)<<" "<<"存储第一学期学生资料:"<<endl;      WritetoText(stud1,n1);    }     

      if(n2!=0)  

      {     

     cout<<setw(15)<<" "<<"存储第二学期学生资料:"<<endl;     WritetoText(stud2,n2);   }  

       cout<<setw(15)<<" "<<"输入成功"<<endl;

       int b;    

       cout<<setw(15)<<" "<<"请确定是否退出系统:"<<endl;  

       cout<<setw(15)<<" "<<"0.退出系统"<<endl;  

       cout<<setw(15)<<" "<<"1.返回"<<endl;     

       cout<<setw(15)<<" ";    

      cin>>b;  

      if(b==0)  

      {     

     cout<<setw(15)<<" "<<"谢谢使用"<<endl;  

         cout<<setw(15)<<" ";

         system("pause");  

         exit(0);  

      }   

      cout<<setw(15)<<" ";  

      system("pause");   

     break;   

     }  

     }

     }   

    展开全文
  • 5综合性程序设计简单学生信息管理系统 班级* 一实验目的 二实验内容与结果 姓名Zzz 学号20151601* 1任务描述(1.3 与 1.4 二选一建议选择 1.4 利用课程所学知识设计并实现一个简单学生信息管理系统要求如下 ...
  • 学生成绩管理系统代码--数据库课程设计C#做的 报告和表都建好了
  • 页眉 JAVA 程序设计 课程设计报告 课 题 : 学生信息管理系统 姓 名 学 号 同组姓名 专业班级 指导教师 设计时间 评阅意见 评定成绩 指 页脚 目 录 一系统描述 2 1需要实现的功能 3 2设计目的 3 二分析与设计 3 1功能...
  • 此项目用于大学生学生毕业设计(主要用SSH框架实现,主要有学生注册,查询,修改,课程查看,添加,学生选课,学生查询每一门成绩,还可以统计每一门的课程信息,有分组查询,验证码等功能。)
  • ·按课程录入学生成绩 ·按学生录入成绩 院系信息管理。 ·数据查询 ·学生基本信息浏览 ·课程基本信息浏览 ·学生基本信息查询 ·课程基本信息查询 ·学生成绩信息查询 ·课程成绩信息查询 以上查询提供...
  • C语言 课程设计 大作业 学生成绩管理系统 含源代码、docx详细报告。 全独立手写,和网上其他能找到的绝不重复。
  • 滋励鼻谊总陰 JAVA程序设计课稈设计报告 课 题: 学生信息管理系统 姓 名 学 号 同组姓名 专业班级 指导教师 设计时间 评阅意见: 评定成绩: - - PAGE # - - - PAGE # - 目录 TOC \o "1-5" \h \z \o "Current Document...
  • 山东大学数据库课程设计 学生信息管理系统的源代码与数据库文件,与大家分享,不足之处请见谅。
  • 学生档案管理系统,用c语言开发的数据结构课程设计的源代码,开发工具为turboc2.0
  • 课 题: 学生信息管理系统 姓 名 学 号 同组姓名 专业班级 指导教师 设计时间 ? ? ? 评阅意见 ? ? ? ? ? 评定成绩 指导老师签名 年 月 日 ? ? ? ? 目 录 TOC \o "1-2" \h \z \u 一系统描述 2 1需要实现的功能 3 2...
  • java学生信息管理系统代码 及运行截图。是学期末课程设计答辩报告

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,085
精华内容 434
关键字:

学生课程管理系统代码