c语言windows编程学生信息管理系统,学生信息管理系统(Windows程序设计)

前言

其实我觉的学校作业可以稍微少花点时间,把时间放到自己认为重要的地方去。(`・ω・´)

问题描述

实现一个小型的学生信息管理系统,实现学生信息的输入,浏览,编辑、查找等基本功能,要求:

学生信息包括学号、姓名、性别、系别、家庭住址等基本情况,选择合适的控件尽可能方便用户的输入;

程序需保证用户的输入有效(即进行必要的验证操作);

用户可通过TreeView控件或其他合适的界面进行所有学生信息的浏览,系统能够体现数据的层次化特性,并提供对学生信息的查找、修改和删除功能;

数据可永久保存,可保存在数据库或文件中

其他相关功能,如院系增加、调整、节点拖放等

在treeview节点上右键同样可以进行一系列操作

先看个效果吧,想要多了解点直接下载代码去看吧

8c0eb25a1fb051169d8ace69c487563d.png

解决思路

通过 xml 本地保存treeview 上面的信息

其实我觉的直接连数据库也是很方便的,你们可以尝试下(别尝试xml了,对身体不好),我的xml放在debug文件下,我们先看下xml文件内容

node代表一个节点,里面id,name,address都是一些内容可以根据自己的需要进行,然后再根据

new_child.Text = node.Attributes["Name"].Value;

代表的意思就是把Name这个数值拿出来赋给这个new_child.Text,通过这种方法可以把xml所有信息拿出来,再通过递归生成treeview形式 递归方法如下

foreach (XmlNode node in xmlNode.ChildNodes)//循环遍历当前元素的子元素集合

{

TreeNode new_child = new TreeNode();//定义一个TreeNode节点对象

if(node.Attributes["Id"].Value=="")

{

new_child.Text = node.Attributes["Name"].Value;

}

else

{

Student s = new Student(node.Attributes["Id"].Value, node.Attributes["Name"].Value, node.Attributes["Address"].Value, node.Attributes["Department"].Value, node.Attributes["Sex"].Value=="True"?true:false);

new_child.Tag = s;

new_child.Text = s.Id;

}

nodes.Add(new_child);//向当前TreeNodeCollection集合中添加当前节点

RecursionTreeControl(node, new_child.Nodes);//调用本方法进行递归

}

这样我们就完成了读取操作,接下来我们来实现保存操作

想法其实很简单,就是退出的时候把treeview上面的内容通过递归的方式再次编程xml的形式 比如

//根据Node属性生成XML文本

Student s = node.Tag as Student;

string rssText = "";

if (s == null)

//

//

rssText = "";

else

{

rssText = "";

}

return rssText;

其中"代表是一个引号 ” 的意思(为了解决字符串拼接问题),把所需要的内容拼接成xml的形式,再次存入xml文件中就可以的,所以程序运行的过程中,增删改查都不会影响xml文件,xml文件只与treeview数据有关,可能这一点比数据库方便一些。(所以我还是强推使用数据库)

序列化和反序列化记录文件内容(serialize)

这个比较方便 = v =,用起来很舒服

生成treeview内容

treeView1.Nodes.Clear();

treeView1.Nodes.Add(Deserialize());

保存文件内容

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

Serialize();

}

menustrip,contextmenustrip菜单栏

就是一个菜单栏,可以添加一些事件,还是比较方便,推荐使用。 其他也没什么大问题了,百度都能解决,注意问题多考虑一下,少写点bug代码就行了 = v =

友情提示,应该有一些小问题,别喷 (`・ω・´)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值