-
2020-05-18 11:09:19
简介: 设计一个Windows应用程序,在该程序中首先构造一个学生基本类,在分别构造小学生、中学生、中职生、大学生等派生类,要求具有不同的特征和行为,能通过静态成员自动记录不同的学生人数。
- 界面截图
- 分部实现
- 总代码
界面截图:
知识点:需要用到tabcontrol控件,button控件,label控件,Textbox控件,foreach循环遍历,list动态数组1.小学生类:
class MinStudent { protected string name; protected string sex; protected string school; private int grade; private static int sum = 0; public string Name { get { return name; } } public void add() { sum++; } public MinStudent(string name ,string sex ,string school,int grade) { this.name = name; this.sex = sex; this.school = school; this.grade = grade; } public string Search() { return string.Format("{0}的性别为{1}\n学校为{2}\n成绩为{3}\n学生人数{4}",name,sex,school,grade,sum); } } }
2.添加按钮点击事件:
private void btn_add1_Click(object sender, EventArgs e) { if(txtBN.Text == "" || txtBS.Text==""||txtBSh.Text ==""||txtBG.Text=="") { label5.Text = "信息填写错误或不完全"; } else { label5.Text = "添加成功"; string nam = txtBN.Text; string sex = txtBS.Text; string school = txtBSh.Text; int garde = int.Parse(txtBG.Text); MinStudent min = new MinStudent(nam, sex, school, garde); mins.Add(min); min.add(); } }
3.查询按钮点击事件
private void btn_search1_Click(object sender, EventArgs e) { foreach (MinStudent min in mins) { if (min.Name == txtBN.Text) { label5.Text = min.Search(); return; } } label5.Text = "存储数据中无此人信息"; }
4.创建中学生派生类:
class MidStudent : MinStudent { private int age; private static int sum = 0; public MidStudent(string name,string sex,string school):base (name,sex,school){} public override int Get { set { age = value; } } public override string Search() { return string.Format("{0}的性别为{1}\n学校为{2}\n年龄为{3}\n学生人数{4}", name, sex, school, age, sum); } public override void add() { sum++; } }
总代码:
namespace 实验四 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } List<MinStudent> mins = new List<MinStudent>(); List<MidStudent> mids = new List<MidStudent>(); List<ProStudent> pros = new List<ProStudent>(); List<ColStudent> cols = new List<ColStudent>(); private void btn_add1_Click(object sender, EventArgs e) { if(txtBN.Text == "" || txtBS.Text==""||txtBSh.Text ==""||txtBG.Text=="") { label5.Text = "信息填写错误或不完全"; } else { label5.Text = "添加成功"; string nam = txtBN.Text; string sex = txtBS.Text; string school = txtBSh.Text; int garde = int.Parse(txtBG.Text); MinStudent min = new MinStudent(nam, sex, school); min.Get = garde; mins.Add(min); min.add(); } } private void btn_search1_Click(object sender, EventArgs e) { foreach (MinStudent min in mins) { if (min.Name == txtBN.Text) { label5.Text = min.Search(); return; } } label5.Text = "存储数据中无此人信息"; } private void btn_add2_Click(object sender, EventArgs e) { if (txtBN2.Text == "" || txtBS2.Text == "" || txtBSh2.Text == "" || txtBAge.Text == "") label10.Text = "信息填写错误或不全"; else { label10.Text = "添加成功"; string nam = txtBN2.Text; string sex = txtBS2.Text; string school = txtBSh2.Text; int age = int.Parse(txtBAge.Text); MidStudent mid = new MidStudent(nam, sex, school); mid.Get = age; mids.Add(mid); mid.add(); } } private void btn_search2_Click(object sender, EventArgs e) { foreach (MidStudent mid in mids) { if (mid.Name == txtBN2.Text) { label10.Text = mid.Search(); return; } } label10.Text = "存储数据中无此人信息"; } private void btn_add3_Click(object sender, EventArgs e) { if (txtBN3.Text == "" || txtBS3.Text == "" || txtBSh3.Text == "" || txtBYear.Text == "") label11.Text = "信息填写错误或不全"; else { label11.Text = "添加成功"; string nam = txtBN3.Text; string sex = txtBS3.Text; string school = txtBSh3.Text; int year = int.Parse(txtBYear.Text); ProStudent pro = new ProStudent(nam, sex, school); pro.Get = year; pros.Add(pro); pro.add(); } } private void btn_search3_Click(object sender, EventArgs e) { foreach (ProStudent pro in pros) { if (pro.Name == txtBN3.Text) { label11.Text = pro.Search(); return; } } label11.Text = "存储数据中无此人信息"; } private void btn_search4_Click(object sender, EventArgs e) { foreach (ColStudent col in cols) { if (col.Name == txtBN4.Text) { label16.Text = col.Search(); return; } } label16.Text = "存储数据中无此人信息"; } private void btn_add4_Click(object sender, EventArgs e) { if (txtBN4.Text == "" || txtBS4.Text == "" || txtBSh4.Text == "" || txtBsubject.Text == "") label16.Text = "信息填写错误或不全"; else { label16.Text = "添加成功"; string nam = txtBN4.Text; string sex = txtBS4.Text; string school = txtBSh4.Text; string subject = txtBsubject.Text; ColStudent col =new ColStudent(nam, sex, school); col.Get = subject; cols.Add(col); col.add(); } } } class MinStudent { protected string name; protected string sex; protected string school; private int grade; private static int sum = 0; public virtual int Get { set { this.grade = value; } } public string Name { get { return name; } } public virtual void add() { sum++; } public MinStudent(string name ,string sex ,string school) { this.name = name; this.sex = sex; this.school = school; } public virtual string Search() { return string.Format("{0}的性别为{1}\n学校为{2}\n成绩为{3}\n学生人数{4}",name,sex,school,grade,sum); } } class MidStudent : MinStudent { private int age; private static int sum = 0; public MidStudent(string name,string sex,string school):base (name,sex,school){} public override int Get { set { age = value; } } public override string Search() { return string.Format("{0}的性别为{1}\n学校为{2}\n年龄为{3}\n学生人数{4}", name, sex, school, age, sum); } public override void add() { sum++; } } class ProStudent : MidStudent { public ProStudent(string name,string sex,string school) : base(name, sex, school) { } private int year; private static int sum = 0; public override int Get { set { this.year = value; } } public override string Search() { return string.Format("{0}的性别为{1}\n学校为{2}\n年制为{3}\n学生人数{4}", name, sex, school,year, sum); } public override void add() { sum++; } } class ColStudent : ProStudent { public ColStudent(string name, string sex, string school) : base(name, sex, school) { } private string subject; private static int sum = 0; new public string Get { set { this.subject = value; } } public override string Search() { return string.Format("{0}的性别为{1}\n学校为{2}\n学科为{3}\n学生人数{4}", name, sex, school, subject, sum); } public override void add() { sum++; } } }
更多相关内容 -
2019access创建数据表、查询和窗体
2019-10-25 13:59:14打开access,在菜单栏选择创建,我们可以看到有 “表格” 、“查询”、“窗体”等模块,我们可以通过这些按钮来进行表的创建、查询设计、窗体的创建。 图一图一图一 1.创建表 1)点击 “表” 点击 “表” ,出现下...2019 access创建数据表、查询和窗体
打开access,在菜单栏选择创建,我们可以看到有 “表格” 、“查询”、“窗体”等模块,我们可以通过这些按钮来进行表的创建、查询设计、窗体的创建。
图 一 图一 图一1.创建表
1)点击 “表”
点击图一的 “表” ,出现下图,其中第一列 ID 是表默认的一个自增序列
图 二 图二 图二
单击 “单击已添加”,出现下图,你可以选择你想要添加的数据类型,如:“数字”、“短文本”等,其余数据补充与 EXCEL 类似
图 三 图三 图三
如果你想删除 ID 这一列号,右击上图(图三)箭头处,出现下图,选择设计视图,过程中可能会弹出保存页面,输入表的名字,保存即可。
图 四 图四 图四
接着,我们进入到了表的设计视图,如下(图五),在这个视图下我们可以删除 ID列,也可以添加其他列、设置主键
图 五 图五 图五
右击下图(图六)箭头处,可以选择取消和设置这一列为主键,如果想要设置多个主键,可以按住"Ctrl"同时选中多个标签,设置为主键.
图 六 图六 图六
如下图(图七), 我已创建好了三个数据表, “boats” 表是船的信息表,其中包括bname(船的名字)、bid(船的编号);“sailors”表是水手的表,即可以预定船的顾客的信息,其中包括sid(水手编号)、sname(水手名字)、rating(水手等级)、age(水手年龄);“reserves”表是船的预定表,其中包括,id(预定号)、sid(水手编号)、bid(船的编号)、date(预定的日期),我们可以对这三个数据表建立表与表之间的关系。
图 七 图七 图七
点击菜单栏的 “数据库工具” , 接着点击出现的 “关系” ,出现下图(图八)
图 八 图八 图八
点击上图中的 “显示表”, 出现我们刚刚建立的三个表, 如下,我们可以双击选择或者选中该表并单击页面的 “添加” 按钮来添加一个表 .
图 九 图九 图九
现在我们选中三个表来创建关系, 选中一个表中的任一标签拖动到另一个表即可出现编辑关系页面, 选择两个表中相同的标签, 即可成功创建它们之间的关系, 如下图(图十),选择结束之后单击确定即可.
图 10 图10 图102.创建查询
建立好表和关系后,我们就可以根据它们新建查询了, 点击图一中的 “查询设计”( 菜单栏下的"创建" ), 就进入了查询设计试图页面 , 同样我们可以选择我们要基于哪些表来查询,如下图
图 11 图11 图11
我们选择刚刚建好的三张表,在下图中的 “字段” 中选择你要限定的标签,在 “条件”位置填写你对这个标签值的限定条件,如下图(图12)
图 12 图12 图12
确定好条件之后,点击上图最左侧的 “视图”,选择数据表视c图,就可以看到该条件下的查询结果了。
图 13 图13 图13
除了上述的创建查询的方法,你还可以通过:- 在图一上(菜单栏“创建”下)的 “查询向导” 的指示下一步一步完成查询
- 在图13中最左端的视图下选择SQL视图,用SQL语言写查询条件,生成数据表,如:图14
图 14 图14 图14
3.创建窗体
在图一(菜单栏“创建”下)选择空白窗体,到如下图:
图 15 图15 图15
选择上图右侧 “字段列表” 中的 “显示所有表”,双击选择你想要显示的信息,如下:
图 16 图16 图16
创建出来的这个窗口作为一个要显示的弹窗,你可以直接在下方的搜索栏里面搜索相关的数据,也可以将它作为其他表的一个特定显示窗口,保存为窗体信息查询列表。例如,你想要在一个窗口上输入一只船的名字,然后就能显示出它的颜色及编号,你就可以将上面的窗体作为它要弹出的窗体。现在,你需要创建一个新的窗口,作为输入船的名字的窗体,并将它输入的值与该窗体的船的名字连接起来。
再创建一个新的 “空白窗体”,如上,选择 “窗体布局” 下的 “设计”,如下:
图 17 图17 图17
单击选择上图红箭头指向的 “ 文本框”,点击它,在窗体上画文本框,会弹出来一个向导页面,可以设置这个文本框的字体、输入法、对齐参数等等,在最后页面输入你的文本框的名字,如: text0, 单击完成。
图 17 图17 图17
接着单击下图中红色箭头指向的 “按钮” 图标,
图 18 图18 图18
在窗体内画按钮,弹出页面,选择 “窗体操作” ,选择 “ 打开窗体”,单击下一步,
图 19 图19 图19
选择你将要弹出的窗体,我们要显示船的信息,就选择刚刚创建的 “窗体信息查询列表”,单击下一步
我们要显示是的与输入的船的名字相关的信息,选择 “打开窗体并查找要显示的特定数据”,单击下一步
选择左侧该窗体下的 “text0 ” 和 右侧窗口的船的名字 “bname”,单击红箭头指向的图标,将这两个值关联起来,单击下一步
选择在按钮上显示图片还是文字,在这里我们选择显示文字 “ 查询 ”,单击下一步
指定按钮的名称,可以采取默认,单击完成。
单击最左侧的 “视图”,选择 “窗体视图”,在 text0 文本框内输入一个船的名字 “aaaa”,单击查询
即可弹出要显示的信息,如下:
这样,我们创建窗体和弹出窗体就完成了,你可以在窗体的 “布局视图” 设置背景图片,如下:
也可以在布局视图下拖动调整按钮的位置等等,如下:
-
学生管理系统——Swing窗体版本
2022-05-18 09:27:39上一次一个小伙伴私聊我,说:有没有swing版本的学生管理系统让他参考一下。 这次给他安排上啦! 首先来看看有什么文件吧(得要有个适合自己的命名规则很重要,如果自己都看不懂,那么别人就更难懂啦!) //我...上一次一个小伙伴私聊我,说:有没有swing版本的学生管理系统让他参考一下。
这次给他安排上啦!
首先来看看有什么文件吧(得要有个适合自己的命名规则很重要,如果自己都看不懂,那么别人就更难懂啦!
)
//我根据图片的信息来写文件内容吧!
这是dao方法
package com.zking.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import com.zking.entity.Student; import com.zking.util.DBHelper; public class StudentDao { /** * 模糊查询 * @param col 字段名 * @param str 关键字 * @return 返回查询到的集合 */ public ArrayList<Student> getByLike(String col,String str){ ArrayList<Student> slist = new ArrayList<>(); Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try { con = DBHelper.getCon(); ps = con.prepareStatement("select * from Student where "+col+" like '%"+str+"%'"); rs = ps.executeQuery(); //处理结果:集合/影响行数 while(rs.next()) { int sid = rs.getInt(1); String sname = rs.getString(2); String ssex = rs.getString(3); int sage = rs.getInt(4); double score = rs.getDouble(5); String saddress = rs.getString(6); String slike = rs.getString(7); //实例化学生对象 Student stu = new Student(sid, sname, ssex, sage, score, saddress, slike); //把学生对象放到集合中 slist.add(stu); } } catch (Exception e) { e.printStackTrace(); }finally { DBHelper.closeDB(con, ps, rs); } return slist; } public Student getById(int sid ){ Student stu = null; Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try { con = DBHelper.getCon(); ps = con.prepareStatement("select * from Student where sid="+sid); rs = ps.executeQuery(); //处理结果:集合/影响行数 if(rs.next()) { String sname = rs.getString(2); String ssex = rs.getString(3); int sage = rs.getInt(4); double score = rs.getDouble(5); String saddress = rs.getString(6); String slike = rs.getString(7); String sgxqm = rs.getString(8); //实例化学生对象 stu = new Student(sid, sname, ssex, sage, score, saddress, slike,sgxqm); } } catch (Exception e) { e.printStackTrace(); }finally { DBHelper.closeDB(con, ps, rs); } return stu; } /** * 添加学生 * @param stu 添加的学生对象 * @return 成功返回1,失败返回0 */ public int addStu(Student stu){ Connection con = null; PreparedStatement ps = null; int i = 0; try { con = DBHelper.getCon(); ps = con.prepareStatement("insert into Student(sname,ssex,slike,saddress,sgxqm) values(?,?,?,?,?)"); ps.setString(1, stu.getSname()); ps.setString(2, stu.getSsex()); ps.setString(3, stu.getSlike()); ps.setString(4, stu.getSaddress()); ps.setString(5, stu.getSgxqm()); //处理结果:集合/影响行数 i = ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally { DBHelper.closeDB(con, ps, null); } return i; } /** * 修改方法 * @param sid 要修改的学生学号 * @param stu 修改后的学生信息 * @return 成功返回1,失败返回0 */ public int upStu(int sid,Student stu){ Connection con = null; PreparedStatement ps = null; int i = 0; try { con = DBHelper.getCon(); ps = con.prepareStatement("update Student set sname=?,ssex=?,slike=?,saddress=?,sgxqm=? where sid="+sid); ps.setString(1, stu.getSname()); ps.setString(2, stu.getSsex()); ps.setString(3, stu.getSlike()); ps.setString(4, stu.getSaddress()); ps.setString(5, stu.getSgxqm()); //处理结果:集合/影响行数 i = ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally { DBHelper.closeDB(con, ps, null); } return i; } /** * 删除学生 * @param sid 要删除的学生学号 * @return 成功就返回1 */ public int delById(int sid){ Connection con = null; PreparedStatement ps = null; int i = 0; try { con = DBHelper.getCon(); ps = con.prepareStatement("delete student where sid="+sid); //处理结果:集合/影响行数 i = ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally { DBHelper.closeDB(con, ps, null); } return i; } }
实体类来啦(根据自己所需要的字段来写哦!)
package com.zking.entity; public class Student { private int sid; private String sname; private String ssex; private int sage; private double score; private String saddress; private String slike; private String sgxqm; public Student(int sid, String sname, String ssex, int sage, double score, String saddress, String slike, String sgxqm) { super(); this.sid = sid; this.sname = sname; this.ssex = ssex; this.sage = sage; this.score = score; this.saddress = saddress; this.slike = slike; this.sgxqm = sgxqm; } public Student(String sname, String ssex, String saddress, String slike, String sgxqm) { super(); this.sname = sname; this.ssex = ssex; this.saddress = saddress; this.slike = slike; this.sgxqm = sgxqm; } public String getSgxqm() { return sgxqm; } public void setSgxqm(String sgxqm) { this.sgxqm = sgxqm; } public Student() { } public Student(String sname, String ssex, int sage, double score, String saddress, String slike) { this.sname = sname; this.ssex = ssex; this.sage = sage; this.score = score; this.saddress = saddress; this.slike = slike; } public Student(int sid, String sname, String ssex, int sage, double score, String saddress, String slike) { this.sid = sid; this.sname = sname; this.ssex = ssex; this.sage = sage; this.score = score; this.saddress = saddress; this.slike = slike; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSsex() { return ssex; } public void setSsex(String ssex) { this.ssex = ssex; } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public String getSaddress() { return saddress; } public void setSaddress(String saddress) { this.saddress = saddress; } public String getSlike() { return slike; } public void setSlike(String slike) { this.slike = slike; } @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", ssex=" + ssex + ", sage=" + sage + ", score=" + score + ", saddress=" + saddress + ", slike=" + slike + "]"; } }
UI窗体类来啦!(这是主窗体!)
package com.zking.ui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Vector; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; import com.zking.dao.StudentDao; import com.zking.entity.Student; public class Index_UI extends JFrame { //上 JPanel topjp = new JPanel(); //下拉框 JComboBox<String> jcb = new JComboBox<>(); //文本框 JTextField jtf = new JTextField(10); //按钮 JButton jbcx = new JButton("查询"); //中 JTable jt = new JTable(); //表模式 DefaultTableModel dtm = new DefaultTableModel(); //滚动面板-给表格添加滚动面板 JScrollPane jsp = new JScrollPane(jt); //下 JPanel bottomjp = new JPanel(); JButton jbadd = new JButton("添加"); JButton jbdel = new JButton("删除"); JButton jbup = new JButton("修改"); JButton jbxq = new JButton("详情"); JButton jbexit = new JButton("退出"); public Index_UI() { this.setTitle("主窗体"); this.setSize(500, 500); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); //上面的画布 topjp.add(jcb); jcb.addItem("姓名"); jcb.addItem("性别"); jcb.addItem("地址"); topjp.add(jtf); topjp.add(jbcx); //中间 //设置表模式 jt.setModel(dtm); //给表格添加标题 dtm.addColumn("学号"); dtm.addColumn("姓名"); dtm.addColumn("性别"); dtm.addColumn("年龄"); dtm.addColumn("地址"); //调用showInfo方法 给表格绑定数据 showInfo("sname", ""); //下面的画布 bottomjp.add(jbadd); bottomjp.add(jbdel); bottomjp.add(jbup); bottomjp.add(jbxq); bottomjp.add(jbexit); //给查询按钮添加事件-匿名内部类 jbcx.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //获取下拉框中选中的选项 String col = jcb.getSelectedItem()+""; if(col.equals("姓名")) { col = "sname"; }else if(col.equals("性别")) { col = "ssex"; }else { col = "saddress"; } //获取关键字 String str = jtf.getText(); System.out.println("字段:"+col); System.out.println("关键字:"+str); //调用showInfo方法给表格绑定数据 showInfo(col, str); } }); //给添加按钮添加事件 jbadd.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //打开添加窗体-同时把本窗体传过去 new AddStu_UI(Index_UI.this); } }); //给删除按钮添加事件 jbdel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub // 获取选中的行下标-未选中返回-1 int row = jt.getSelectedRow(); if (row >= 0) { // 获取选中行中的学生学号(第一列) String id = dtm.getValueAt(row, 0) + ""; // 把字符串编号 转换为int int sid = Integer.valueOf(id); if (JOptionPane.showConfirmDialog(null, "确认要删除吗?") == 0) { // 调用删除方法 int i = new StudentDao().delById(sid); if (i == 1) { JOptionPane.showMessageDialog(null, "删除成功"); // 刷新本窗体数据 showInfo("saddress", ""); } else { JOptionPane.showMessageDialog(null, "删除失败"); } } else { JOptionPane.showMessageDialog(null, "取消删除"); } }else { JOptionPane.showMessageDialog(null, "请选中要删除的学生"); } } }); //给修改按钮添加事件 jbup.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //获取要修改的学生学号 //获取选中的行 int row = jt.getSelectedRow(); //获取学号 String id = dtm.getValueAt(row, 0)+""; int sid = Integer.valueOf(id); //根据学号查询到学生对象 Student stu = new StudentDao().getById(sid); System.out.println(stu); //打开修改窗体 new UpStu_UI(stu,Index_UI.this); } }); //上边的画布 this.getContentPane().add("North",topjp); this.getContentPane().add("Center",jsp); this.getContentPane().add("South",bottomjp); this.setVisible(true); } /** * 给表格绑定数据 * @param col 字段名 * @param str 关键字 */ public void showInfo(String col, String str) { //清空表格中的老数据 int count = jt.getRowCount();//获取到表格中的所有数据的总行数 System.out.println("数据行:"+count); for(int i=0;i<count;i++) { dtm.removeRow(0); } // 实例化学生dao类 StudentDao sd = new StudentDao(); ArrayList<Student> slist = sd.getByLike(col, str); // 遍历集合 for (Student s : slist) { // 创建一个集合,用来接收要往表格中添加的数据 Vector<Object> v = new Vector<>(); v.add(s.getSid()); v.add(s.getSname()); v.add(s.getSsex()); v.add(s.getSage()); v.add(s.getSaddress()); // 行:row dtm.addRow(v); } }
//我就写一个修改的窗体啦(因为添加也差不多啦)
package com.zking.ui; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import com.zking.dao.StudentDao; import com.zking.entity.Student; /** * 添加学生 * @author d * */ public class UpStu_UI extends JFrame { public UpStu_UI(Student stu,Index_UI index) { this.setTitle("修改学生"); this.setSize(350, 500); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //画布 JPanel jp = new JPanel(); //布局对象-网袋布局 GridBagLayout gbl = new GridBagLayout(); //约束对象 GridBagConstraints gbc = new GridBagConstraints(); //设置画布布局 jp.setLayout(gbl); //用户名文本 JLabel jlname = new JLabel("姓名:"); //约束坐标位置 gbc.gridx = 0; gbc.gridy = 0; //设置组件 gbl.setConstraints(jlname, gbc); //把组件添加到画布上 jp.add(jlname); //用户文本框 JTextField jtname = new JTextField(10); gbc.gridx = 1; gbc.gridy = 0; //设置组件 gbl.setConstraints(jtname, gbc); //把组件添加到画布上 jp.add(jtname); //性别文本 JLabel jlsex = new JLabel("性别:"); //约束位置 gbc.gridx = 0; gbc.gridy = 1; //设置组件位置 gbl.setConstraints(jlsex, gbc); //添加到画布 jp.add(jlsex); //单选按钮 JRadioButton jrboy = new JRadioButton("女"); gbc.insets = new Insets(0, -80, 0, 0); gbc.gridx = 1; gbc.gridy = 1; gbl.setConstraints(jrboy, gbc); jp.add(jrboy); JRadioButton jrgirl = new JRadioButton("男"); //上左下右 gbc.insets = new Insets(0, -180, 0, 0); gbc.gridx = 2; gbc.gridy = 1; gbl.setConstraints(jrgirl, gbc); jp.add(jrgirl); //单选按钮分组 ButtonGroup bg = new ButtonGroup(); bg.add(jrboy); bg.add(jrgirl); gbc.insets = new Insets(0, 0, 0, 0); //爱好文本-第四行、第一列 JLabel jllike = new JLabel("爱好:"); gbc.gridx = 0; gbc.gridy = 2; gbl.setConstraints(jllike, gbc); jp.add(jllike); //爱好多选框 JCheckBox jcba = new JCheckBox("草莓袜子"); gbc.insets = new Insets(0, -20, 0, 0); gbc.gridx = 1; gbc.gridy = 2; gbl.setConstraints(jcba, gbc); jp.add(jcba); JCheckBox jcbb = new JCheckBox("幽兰拿铁"); gbc.gridx = 2; gbc.gridy = 2; gbl.setConstraints(jcbb, gbc); jp.add(jcbb); JCheckBox jcbc = new JCheckBox("蓝莓肚兜"); gbc.gridx = 1; gbc.gridy = 3; gbl.setConstraints(jcbc, gbc); jp.add(jcbc); JCheckBox jcbd = new JCheckBox("小熊裤衩"); gbc.gridx = 2; gbc.gridy = 3; gbl.setConstraints(jcbd, gbc); jp.add(jcbd); //地址文本-第六行,第一列 JLabel jladdress = new JLabel("地址:"); gbc.insets = new Insets(0, 0, 0, 0); gbc.gridx = 0; gbc.gridy = 4; gbl.setConstraints(jladdress, gbc); jp.add(jladdress); //下拉框-第六行 第二列 JComboBox<String> jc = new JComboBox<>(); jc.addItem("长沙"); jc.addItem("衡阳"); jc.addItem("郴州"); jc.addItem("娄底"); jc.addItem("岳阳"); jc.addItem("永州"); jc.addItem("阜南"); jc.addItem("张家界"); jc.addItem("临湘"); jc.addItem("平江"); jc.addItem("等等"); gbc.gridx = 1; gbc.gridy = 4; gbl.setConstraints(jc, gbc); jp.add(jc); //个人说明文本 JLabel jlgrsm = new JLabel("个人说明:"); gbc.gridx = 0; gbc.gridy = 5; gbl.setConstraints(jlgrsm, gbc); jp.add(jlgrsm); //文本域 JTextArea jta = new JTextArea(5, 10); //滚动面板 JScrollPane jsp = new JScrollPane(jta); gbc.insets = new Insets(10, 0, 10, 0); gbc.gridx = 1; gbc.gridy = 5; gbl.setConstraints(jsp, gbc); jp.add(jsp); //按钮 JButton jbzc = new JButton("修改"); gbc.gridx = 0; gbc.gridy = 6; gbl.setConstraints(jbzc, gbc); jp.add(jbzc); JButton jbqx = new JButton("取消"); gbc.gridx = 1; gbc.gridy = 6; gbl.setConstraints(jbqx, gbc); jp.add(jbqx); //给组件赋值 jtname.setText(stu.getSname()); //性别 //默认选中女 jrboy.setSelected(true); if(stu.getSsex().equals("男")) { //如果性别为男,就设置男的单选按钮被选中 jrgirl.setSelected(true); } //爱好 String slike = stu.getSlike(); if(slike.contains("草莓袜子")) { jcba.setSelected(true);//设置选中 } if(slike.contains("幽兰拿铁")) { jcbb.setSelected(true); } if(slike.contains("蓝莓肚兜")) { jcbc.setSelected(true); } if(slike.contains("小熊裤衩")) { jcbd.setSelected(true); } //地址 jc.setSelectedItem(stu.getSaddress()); //个性签名 jta.setText(stu.getSgxqm()); //给修改按钮添加事件 jbzc.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub // 获取组件的值 String sname = jtname.getText(); String ssex = "男"; if (jrboy.isSelected()) { ssex = "女"; } String slike = ""; if (jcba.isSelected()) { slike += "草莓袜子"; } if (jcbb.isSelected()) { slike += "幽兰拿铁"; } if (jcbc.isSelected()) { slike += "蓝莓肚兜"; } if (jcbd.isSelected()) { slike += "小熊裤衩"; } String saddress = jc.getSelectedItem() + ""; String sgxqm = jta.getText(); // 实例化学生对象 Student s = new Student(sname, ssex, saddress, slike, sgxqm); // 调用修改方法 int i = new StudentDao().upStu(stu.getSid(), s); if (i == 1) { JOptionPane.showMessageDialog(null, "修改成功"); // 刷新数据 index.showInfo("ssex", ""); // 释放本窗体资源 UpStu_UI.this.dispose(); } else { JOptionPane.showMessageDialog(null, "修改失败"); } } }); //给取消按钮添加事件 jbqx.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //释放本窗体资源 UpStu_UI.this.dispose(); } }); this.getContentPane().add(jp); this.setVisible(true); } }
接下来就是util帮助类啦!
package com.zking.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DBHelper { private static String cname = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//注册驱动类的类的路径 private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=T277"; private static String uname = "sa"; private static String upwd = "8023"; static { try { Class.forName(cname); } catch (Exception e) { e.printStackTrace(); } } /** * 连接数据库 * @return */ public static Connection getCon() { Connection con = null; try { con = DriverManager.getConnection(url, uname, upwd); } catch (Exception e) { e.printStackTrace(); } return con; } /** * 关闭连接 * @param con Connection对象 * @param ps PreparedStatement对象 * @param rs ResultSet 对象 */ public static void closeDB(Connection con,PreparedStatement ps,ResultSet rs) { try { if(con!=null) { con.close(); } if(ps!=null) { ps.close(); } if(rs!=null) { rs.close(); } } catch (Exception e) { e.printStackTrace(); } } }
以上就是swing版本的学生管理系统啦!
-
实验1答案 - 建立学生数据库.sql
2019-09-21 15:59:37创建学生数据库StuDB,文件名和位置自定,在此数据库中创建如下三张表: 学生表(student) ( 学号(sno) 普通编码定长字符类型,长度9,主码, 姓名(sname) 普通编码定长字符类型,长度10,非空, 性别(ssex... -
学生信息管理系统--数据库的使用开发Windows窗体C#大作业
2020-12-16 17:05:54系统管理员的使用权限包括:用户管理、学生信息管理、学生成绩查询,教师的使用权限包括学生信息查询、学生成绩管理、学生成绩查询,学生的使用权限仅有学生信息查询和学生成绩查询。 系统管理员帐号在创建用户表时...学生信息管理系统
系统用户分三类:系统管理员、教师、学生,不同的用户有不同的使用权限。
系统管理员的使用权限包括:用户管理、学生信息管理、学生成绩查询,教师的使用权限包括学生信息查询、学生成绩管理、学生成绩查询,学生的使用权限仅有学生信息查询和学生成绩查询。
系统管理员帐号在创建用户表时建立,在应用程序中不能修改。教师的用户名和密码由系统管理员通过用户管理模块设定,学生信息由系统管理员通过学生信息管理模块来设定,学生成绩由教师通过学生成绩管理模块来设定。学生可通过系统登录模块用学号作为用户名进行注册,不存在的学号不能注册,注册时可设定用户密码,已注册的学生不能重新注册,也不能修改密码。学生登录系统后只可以查询本人的信息,但可查询所有学生的成绩。1.这是大一接触学完的数据库和C#结合一起的操作系统,较为简单
2. 比较适合新手,过程就是不断的查询数据库和进行写入C#窗体
定义了六个表,一个最没有用的中间值表,其实严格是5个mind是中间值表,StudentAd是管理员表,然后依次是成绩表,信息表,注册信息表,教师表
如果是我再次写,会写四个表,管理员表,成绩表,信息表,注册信息表
正式开始主界面分为
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Configuration; using System.Data.SqlClient; using Conmon; namespace Cshaper大作业学生信息管理系统 { public partial class Form1 : Form { public int str { get; private set; } public Form1() { InitializeComponent(); } private void clera() { textBox1.Clear(); textBox2.Clear(); } private void button1_Click(object sender, EventArgs e) { string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; string useName = textBox1.Text.Trim(); string usepass = textBox2.Text.Trim(); if (AdradioButton.Checked) { //管理员登录 using (SqlConnection con = new SqlConnection(conStr)) { string sql = string.Format("select * from StudentAd where Adname='{0}' and Adpass='{1}'", useName, usepass); using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { //判断是否有返回值 if (reader.HasRows) { MessageBox.Show("登录成功"); this.DialogResult = DialogResult.OK; this.Close(); } else { MessageBox.Show("登录失败"); clera(); textBox1.Focus(); } } } } } else if (TeradioButton2.Checked) { //Teacher登录 using (SqlConnection con = new SqlConnection(conStr)) { string sql = string.Format("select * from Teacher where UserID='{0}' and UserPassWord='{1}'", useName, usepass); using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { //判断是否有返回值 if (reader.HasRows) { MessageBox.Show("登录成功"); this.DialogResult = DialogResult.Yes; this.Close(); } else { MessageBox.Show("登录失败"); clera(); textBox1.Focus(); } } } } } else if (StradioButton3.Checked) { //学生登录 using (SqlConnection con = new SqlConnection(conStr)) { string sql = string.Format("select * from studZcxx where student_id='{0}' and student_pss='{1}'", useName, usepass); using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { //判断是否有返回值 if (reader.HasRows) { MessageBox.Show("登录成功"); minds(useName); this.DialogResult = DialogResult.No; this.Close(); } else { MessageBox.Show("登录失败"); clera(); textBox1.Focus(); } } } } } } private void Form1_Load(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { Stzhuce stuXX = new Stzhuce(); stuXX.ShowDialog(); } //修改中间值 public int minds(string mins) { int i = Convert.ToInt32(mins); string a1 = "update mind set mind='"+ i + "'"; int n = SqlHelper.ExecuteNonquery(a1); return i; } } } !!这里的中间值是自己脑子发热,因为要通过学生登录了,进入学生登录页面,窗体传值又总是报错,于是直接通过数据库来写入一个中间数据表,来记录是谁进入了主页面,其实可以不用写的怎么麻烦,定义一个全局变量即可!!
管理员登录成功的界面写完以后我进行修改,发现其实很多语句都可以进行封装
于是先定义了一个SqlHelper类using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using System.Data; using System.Data.SqlClient; namespace Conmon { public class SqlHelper {//读取连接字符串 private static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; /// <summary> /// 返回数据集合 /// </summary> /// <param name="sql">要执行查询的sql语句</param> /// <param name="param">需要的参数</param> /// <returns></returns> public static DataTable ExecuteDataTable(string sql, params SqlParameter[] param) { DataTable dt = new DataTable(); using (SqlConnection con = new SqlConnection(conStr)) { SqlDataAdapter adapter = new SqlDataAdapter(sql, con); //添加参数 adapter.SelectCommand.Parameters.AddRange(param); adapter.Fill(dt); } return dt; } /// <summary> /// 执行增删改 /// </summary> /// <param name="sql">要执行的sql语句</param> /// <param name="param">sql语句需要的参数</param> /// <returns></returns> public static int ExecuteNonquery(string sql, params SqlParameter[] param) { int n = -1; using (SqlConnection con = new SqlConnection(conStr)) { using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); cmd.Parameters.AddRange(param); n = cmd.ExecuteNonQuery(); } } return n; } /// <summary> /// 执行查询,返回首行首列 /// </summary> /// <param name="sql">要查询的sql语句</param> /// <param name="param">sql语句需要的参数</param> /// <returns></returns> public static object ExecuteScalar(string sql, params SqlParameter[] param) { object o = null; using (SqlConnection con = new SqlConnection(conStr)) { using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); cmd.Parameters.AddRange(param); o = cmd.ExecuteScalar(); } } return o; } public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param) { SqlDataReader reader; SqlConnection con = new SqlConnection(conStr); using (SqlCommand cmd = new SqlCommand(sql, con)) { cmd.Parameters.AddRange(param); con.Open(); //CommandBehavior.CloseConnection:如果关闭SqlDataReader,则Connection也随着关闭 reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); } return reader; } } }
再写管理员类
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Conmon; namespace Cshaper大作业学生信息管理系统 { public partial class Ad : Form { public Ad() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { if (textBox1.Text=="" || textBox2.Text=="") { MessageBox.Show("用户名和密码不能为空"); return; } string sql = "insert into Teacher(UserID,UserPassWord) values(@id,@word)"; //Teacher SqlParameter[] p = new SqlParameter[]{ new SqlParameter("@id", Convert.ToString(textBox1.Text.Trim())), new SqlParameter("@word", Convert.ToString(textBox2.Text)), }; int n = SqlHelper.ExecuteNonquery(sql, p); if (n > 0) { MessageBox.Show("添加成功!"); } textBox1.Text = ""; textBox2.Text = ""; textBox1.Focus(); } private void button3_Click(object sender, EventArgs e) { string drop1 = textBox3.Text.Trim(); string sql = "DELETE FROM Teacher WHERE UserID = '"+ drop1 + "'"; int n = SqlHelper.ExecuteNonquery(sql); if (n > 0) { MessageBox.Show("删除成功!"); } else { MessageBox.Show("删除失败,请确定是否存在!!!"); } textBox3.Text = ""; textBox3.Focus(); } private void timer1_Tick(object sender, EventArgs e) { string sql = "select * from Teacher"; DataTable dt = SqlHelper.ExecuteDataTable(sql); dataGridView1.DataSource = dt; dataGridView1.Columns[0].HeaderCell.Value = "教师用户名"; dataGridView1.Columns[1].HeaderCell.Value = "教师用户密码"; } private void button1_Click(object sender, EventArgs e) { string ab1 = textBox4.Text.Trim(); string ab2 = textBox5.Text.Trim(); string sql = "update Teacher set UserID = '"+ab2+"' where UserID='"+ab1+"'"; int n = SqlHelper.ExecuteNonquery(sql); if (n > 0) { MessageBox.Show("修改成功!"); } else { MessageBox.Show("修改失败,请确定是否存在!!!"); } //修改成功后可能要再进行修改密码,所有我们把要修改用户名的给清空 textBox4.Text = ab2; } private void button4_Click(object sender, EventArgs e) { string ab1 = textBox4.Text.Trim(); string ab2 = textBox6.Text.Trim(); string sql = "update Teacher set UserPassWord = '" + ab2 + "' where UserID='" + ab1 + "'"; int n = SqlHelper.ExecuteNonquery(sql); if (n > 0) { MessageBox.Show("修改成功!"); } else { MessageBox.Show("修改失败,请确定是否存在!!!"); } } private void 学生信息查询ToolStripMenuItem_Click(object sender, EventArgs e) { StuXX stuXX = new StuXX(); stuXX.ShowDialog(); } private void 学生成绩查询ToolStripMenuItem_Click(object sender, EventArgs e) { StuCJ stuXX = new StuCJ(); stuXX.ShowDialog(); } } }
这里弹出的两个以对话框的形式弹出,附
StuCJ()using Conmon; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Cshaper大作业学生信息管理系统 { public partial class StuCJ : Form { public StuCJ() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { string sql = "select * from studentCJ"; DataTable dt = SqlHelper.ExecuteDataTable(sql); dataGridView1.DataSource = dt; dataGridView1.Columns[0].HeaderCell.Value = "学号"; dataGridView1.Columns[1].HeaderCell.Value = "姓名"; dataGridView1.Columns[2].HeaderCell.Value = "成绩"; } private void StuCJ_Load(object sender, EventArgs e) { } } }
StuXX类
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Conmon; namespace Cshaper大作业学生信息管理系统 { public partial class StuXX : Form { public StuXX() { InitializeComponent(); } private void StuXX_Load(object sender, EventArgs e) { } private void timer1_Tick(object sender, EventArgs e) { string sql = "select * from studentXX"; DataTable dt = SqlHelper.ExecuteDataTable(sql); dataGridView1.DataSource = dt; dataGridView1.Columns[0].HeaderCell.Value = "学号"; dataGridView1.Columns[1].HeaderCell.Value = "姓名"; dataGridView1.Columns[2].HeaderCell.Value = "性别"; dataGridView1.Columns[3].HeaderCell.Value = "年龄"; } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "") { MessageBox.Show("不能为空"); return; } string a1 = textBox1.Text.Trim(); string a2 = textBox2.Text.Trim(); string a3 = textBox3.Text.Trim(); string a4 = textBox4.Text.Trim(); string sql = "insert into studentXX values('"+ a1 + "','" + a2 + "','" + a3 + "'," + a4 + ")"; try { int n = SqlHelper.ExecuteNonquery(sql); if (n > 0) { MessageBox.Show("添加成功!"); } } catch (Exception) { MessageBox.Show("请检查,学号唯一,姓名和学号不能为空,性别只能填男或女,年龄请认真填写"); } textBox1.Text = ""; textBox2.Text =""; textBox3.Text = ""; textBox4.Text =""; textBox1.Focus(); } private void button2_Click(object sender, EventArgs e) { string drop1 = textBox5.Text.Trim(); string sql = "DELETE FROM studentXX WHERE student_id = '" + drop1 + "'"; int n = SqlHelper.ExecuteNonquery(sql); if (n > 0) { MessageBox.Show("删除成功!"); textBox5.Text = ""; textBox5.Focus(); } else { MessageBox.Show("删除失败,请确定是否存在!!!"); } } } }
这样我们的三分之一就完成了,后面的教师也是这样,总的来说是很简单的
就不占太多笔墨了
其中SQlHElpe类是需要学习的,学习完这个类其他大部分都能完成
数据库的使用的时候注意赋值的’ '这个是很重要的,在写代码的时候,建议先拿sql语句去运行看是否有返回结果和结果是否是自己想要的,在进行带入!
数据库里是可以运行触发器的,触发器是很重要的存在,我在写代码的时候想学生信息表和学生成绩表同步更新,最后自己使用了触发器可以解决!归根本质还是对数据库的操作,然后通过下图去返回结果集
加油,华为!加油,中国!
努力学习,刻苦奋斗,做党的接班人!
为人民服务!!
努力写代码,刻苦去奋斗!未来是我们的代码已经上传到GitHub,搜索对应标题学生信息管理系统,即可
不鼓励直接抄袭,鼓励刻苦学习 -
Access期末模拟练习题答案-对已有窗体fstud-2
2020-12-23 06:10:411第一套一、基本操作题在考生文件夹下有一个数据库文件"samp1.accdb...并设置"身份ID"字段的相应属性,使该字段在数据表视图中的显示标题为"身份证"。(3)将"姓名"字段设置为"有重复索引"。(4)在"家长身份证号"和"语... -
Access根据出生日期计算年龄_如何根据出生日期计算年龄
2020-11-21 01:54:53对于很多HR小伙伴来说,通过数据管理系统导出的人事信息表中,数据更多地是显示出生日期而不是年龄,而在实际的统计中,我们往往需要对年龄进行分段统计,这时候我们就需要根据出生日期来计算年龄。如何快速准确地... -
使用ListView实现一个简单的学生信息展示效果
2016-04-13 09:11:41这篇博客将介绍一下下图中的效果的实现方式 实现方式,使用Android Studio创建一个Android工程 1、修改activity_layout.xml中的代码 xmlns:tools="http://schem -
当输入相关数据,单击不同的按钮(“小学生”“中学生”“大学生”)将分别创建不同的学生对象,并输入当前的...
2021-04-02 15:06:46设计一个Windows应用程序,在该程序中首先构造中学生、大学生等派生类,当输入相关数据,单击不同的按钮(“小学生”“中学生”“大学生”)将分别创建不同的学生对象,并输入当前的学生总人数,该学生的姓名学生类型... -
学生信息管理系统学生信息管理系统.doc
2022-06-21 14:13:32学生信息管理系统学生信息管理系统 -
1.2创建学员类对象来存放学员信息,并且为每一个学生对象添加的相应的编号。并将学员类对象添加到Map,...
2021-03-13 03:28:51学生类package com.lanxi.demo1_3;public class Student {private String name;private String sex;private int age;@Override//重写toString方法public String toString() {return "Student [name=" + name + ", ... -
基于python和tkinter实现的一个简单的学生信息管理系统
2020-12-01 02:17:26基于python和tkinter实现的一个简单的学生信息管理系统1、需求分析1、该大学生信息管理系统采用了tkinter来创建窗口界面。使得界面更加的美观。2、实现了与数据库的连接,能够将老师和学生的信息保存或者读取,而且... -
学生管理系统(添加、查看、删除、修改学生信息)
2022-05-20 11:41:18通过集合创建学生系统的操作(添加、删除、查看、修改)并进行优化,如:添加重复学生信息的情况,删除未存在的学生信息等等 -
Java编写一个录入学生信息的图像界面、有保存、浏览、结束三个按钮、使用文件读取和写入流。
2021-06-05 17:17:06保存按钮是将录入的学生对象的信息保存到一个文件student.dat中,结束按钮是程序运行终止、浏览按钮点击后将启动另一个GUI界面,界面中使用一个表格控件显示从文件中读入的所有学生信息。 二、实验代码 三、... -
数据库课设之学生信息管理系统
2019-07-13 17:31:10数据库课设之学生信息管理系统 一、系统需求分析 学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生 的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。 ... -
数据库课程设计心得-学生信息管理系统【模版】.pdf
2022-06-01 22:44:49数据库课程设计心得-学生信息管理系统【模版】.pdf数据库课程设计心得-学生信息管理系统【模版】.pdf数据库课程设计心得-学生信息管理系统【模版】.pdf数据库课程设计心得-学生信息管理系统【模版】.pdf数据库课程... -
Java学生成绩管理系统设计.doc
2022-06-10 01:04:42Java学生成绩管理系统设计 -
高校学生档案管理系统说明书.doc
2022-06-23 08:03:15高校学生档案管理系统说明书 -
c#,Oracle 10g——创建一个学生课程管理系统
2019-07-15 14:08:55目录一、基本要求二、创建学生课程管理系统(1)在sqldeveloper设计数据库物理模式 一、基本要求 假设有“教师”、“学生”、“课程”三个实体,教师的基本信息包括:工号、姓名、职称、工资,课程的基本信息包括:... -
构造一个学生信息的结构体,将该结构体内的所有学校数据信息,输出到窗体上。
2019-09-19 21:29:10printf("姓名:%s,性别:%s,年龄:%d",st1[i].name,st1[i].sex,st1[i].age); printf("分数%f,地址:%s",st1[i].score,st1[i].addr); printf("生日:%d年%d月%d日",st1[i].birthday.year,st1[i].birthday.... -
vb学生档案管理系统设计与实现.zip
2022-06-13 15:48:39vb学生档案管理系统设计与实现.zip -
全面——学生图书数据库管理系统课设
2022-03-03 16:10:08全面——学生图书数据库管理系统课设 -
学生信息管理系统java课程设计(含源代码).doc
2022-07-15 08:52:32学生信息管理系统java课程设计(含源代码).doc -
2017年12月计算机二级Access考试操作题高频考卷(2)
2021-07-06 05:06:182 [简答题]在考生文件夹下有一个数据库文件“samp2.aeedb”,...(1)创建一个选择查询,查找没有绘画爱好学生的“学号”、“姓名”、“性别”和“年龄”4个字段的内容,所建查询命名为“qT1”。(2)创建一个选择查询... -
第一章 为什么要开发一个学生档案管理系统.doc
2022-06-23 03:25:03第一章 为什么要开发一个学生档案管理系统 -
十三、C# WINDOW窗体技术及基础控件(3)
2022-02-12 15:47:49通常,使用分组框按功能细分窗体,例如:一个学生在选择班级和系别是,为了细分窗体,可用两个GroupBox控件来设置,用Text属性来达到分组提示的目的。 using System; using System.Collections.Ge -
设计windows应用程序,首先构造一个学生基本类,在分别构造小学生、中学生、大学生等派生类,当输入数据
2021-05-28 12:07:04设计一个windows应用程序,在该程序中首先构造一个学生基本类,在分别构造小学生、中学生、大学生等派生类,当输入相关数据,单击不同的按钮(小学生、中学生、大学生)将分别创建不同的学生对象,并输出当前的学生... -
python学生管理系统——进阶(连接数据库,PyQt5显示界面)
2021-11-07 12:08:07这个算是我的前一篇管理系统的进阶版本,直接更改的原实验代码(因此有些代码被注释了),加入了数据库连接、错误抛出、显示界面等功能,代码模块名在没弄清前尽量不要更改,另外还需添加一些模块(看图自行添加),... -
2012年计算机二级Access第五十套上机试题及答案详解
2021-07-07 00:38:49请按以下要求完成设计: (1)创建一个查询,查找并显示没有运动爱好学生的“学号”、“姓名”、“性别”和“年龄”4个字段内容,将查询命名为“qT1”; (2)创建一个查询,查找并显示所有学生的“姓名”、“课程名”和... -
解析XML文件,并将信息显示在窗体上
2019-09-23 14:45:54通过简单工厂,根据类型创建对象 30 Person per = PersonFactory.GetPerson( " Student " ); 31 per.Id = node[ " Id " ].InnerText; 32 per.Name = node[ " Name " ].InnerText; 33 per.Sex = (Sex)Enum....