C#编写街道管理系统
项目需求: 一、语言和环境 |
|
A、实现语言 |
|
C# |
|
B、环境要求 |
|
Visual Studio 2012 二、功能要求 现使用.NET WinForms技术为居委会开发一个街道管理软件,其中街道管理窗体界面如图-4所示。 要求: 1、读取提供的XML文件(详见 \提供给学员的素材\Address.xml),将其信息动态添加到TreeView控件中。 2、创建表示地址信息的实体类,并使用泛型集合保存XML文件中的信息。 3、选中某子节点,能够将相关信息显示到右侧的文本框中,如图-4所示。 4、窗体标题为“街道管理”。 |
XML文件:
<?xml version="1.0" encoding="gb2312"?> <root name="石牌街道"> <juwei name="瑞华居委"> <jianzhu smid="6" name="瑞华花园1栋"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> <jianzhu smid="7" name="瑞华花园2栋"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> <juwei name="金帝居委"> <jianzhu smid="4" name="金帝花园1栋"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> <juwei name="朝阳居委"> <jianzhu smid="5" name="朝阳花园1栋"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> </root>
项目类图:
存储街道数据类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Street_Management_System { public class Street { public Street() { } public Street(string streets, string jwh, string dong, string s) { Streets = streets; Jwh = jwh; Dong = dong; S = s; } //街道 public string Streets { get; set; } //居委会 public string Jwh { get; set; } //楼房(栋) public string Dong { get; set; } //厅室 public string S { get; set; } } }
读取XML类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace Street_Management_System { public class ReadXML { public ReadXML() { dic = new Dictionary<string, Street>(); } public ReadXML(Dictionary<string, Street> dic) { this.dic = dic; } //存储xml文件的双列集合 public Dictionary<string, Street> dic { get; set; } public Dictionary<string, Street> Read() { XmlDocument doc = new XmlDocument(); /* * 读取xml文件 * */ doc.Load("Address.xml"); //获取xml文件的根节点 XmlNode xml = doc.DocumentElement; /* * 解析xml文件的各个接点并存入集合 * */ foreach (XmlNode item in xml.ChildNodes) { string street = item.ParentNode.Attributes["name"].InnerText; string jwh = item.Attributes["name"].InnerText; string dong = null; string s = null; foreach (XmlNode items in item.ChildNodes) { dong = items.Attributes["name"].InnerText; foreach (XmlNode itemss in items.ChildNodes) { s = itemss.InnerText; Street aaa = new Street(street,jwh,dong,s); dic.Add(dong+"|"+s,aaa); } } } return dic; } } }
主窗体类:
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 Street_Management_System { public partial class 街道管理系统 : Form { public 街道管理系统() { InitializeComponent(); } public Dictionary<string, Street> dic = new Dictionary<string, Street>(); private void Form1_Load(object sender, EventArgs e) { AddTree(); } /* * 接收ReadXML类中存储xml信息的集合 * */ public void AddTree() { ReadXML xml = new ReadXML(); dic = xml.Read(); string street = null; string jwh = null; string dong = null; TreeNode sTree = null; TreeNode streetTree = null; TreeNode jwhTree = null; TreeNode dongTree = null; /* *拆解集合中的数据并赋值到TreeView控件的相应接点中 * */ foreach (KeyValuePair<string, Street> item in dic) { if (street != item.Value.Streets) { streetTree = new TreeNode(); streetTree.Text = item.Value.Streets; tvStreet.Nodes.Add(streetTree); } if (jwh != item.Value.Jwh) { jwhTree = new TreeNode(); jwhTree.Text = item.Value.Jwh; streetTree.Nodes.Add(jwhTree); } if (dong != item.Value.Dong) { dongTree = new TreeNode(); dongTree.Text = item.Value.Dong; jwhTree.Nodes.Add(dongTree); } sTree = new TreeNode(); sTree.Text = item.Value.S; sTree.Tag = item.Key; dongTree.Nodes.Add(sTree); street = item.Value.Streets; jwh = item.Value.Jwh; dong = item.Value.Dong; } } private void tvStreet_AfterSelect(object sender, TreeViewEventArgs e) { /* * 当点击节点时,读取选中节点的信息赋值到文本框中显示 * */ ) { textBox1.Text = tvStreet.SelectedNode.Text; } ) { textBox2.Text = tvStreet.SelectedNode.Text; } ) { textBox3.Text = tvStreet.SelectedNode.Text; } ) { textBox4.Text = tvStreet.SelectedNode.Text; } } } }
C#编写街道管理系统的更多相关文章
- python 编写名字管理系统
1 #打印功能提示 2 print('='*50) 3 print(' 名字管理系统 v1.1') 4 print('1.添加新的名字') 5 print('2.删除一个名字') 6 print('3 ...
- 桌面轻量级数据库的选择:Access、SQLite、自己编写?
1. Access我们做小项目的时候特别是小的MIS系统一般也都要用数据库来保存数据.经观察大部分的小系统都是用Access数据库,有的系统为了掩盖数据库的类型,把数据文件后缀名改了,其实只要改回到m ...
- Objective-C中的类目,延展,协议
Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词 ...
- Python---函数的相关知识点总结一:
1:定义函数 def printInfo(): print("I love Python!") #调用函数 #注意:函数定义完毕并不会被默认执行,只能通过调用的方式来让它执行 pr ...
- Daily Scrumming* 2015.12.16(Day 8)
一.团队scrum meeting照片 二.成员工作总结 姓名 任务ID 迁入记录 江昊 任务1036 https://github.com/buaaclubs-team/temp-front/com ...
- 走 进 java 的 四 个 基 本 特 性
赶上明天就还是五一c小长假了,准备在这几天写几篇原创文章,供大家一起学习. 首先今天就来好好地唠一唠,到底java的那几个特性都是什么呢?到底怎么用呢?相信一定有一些小白对此会有些懊恼,没关系的,谁还 ...
- JYadmin-react-antd react+antd封装的优秀后台模板集成方案("^1.0.0")
版本:[ "JYadmin-react-antd": "^1.0.0"] 版权所有:微信公众号[微新悦] 原文链接:https://www.weixinyue. ...
- Java核心技术卷阅读随笔--第4章【对象与类】
对 象 与 类 4.1 面向对象程序设计概述 面向对象程序设计(简称 OOP) 是当今主流的程序设计范型, 它已经取代了 20 世纪 70 年代的" 结构化" 过程化程序设计开发技 ...
- 从零开始编写自己的C#框架(8)——后台管理系统功能设计
还是老规矩先吐下槽,在规范的开发过程中,这个时候应该是编写总体设计(概要设计)的时候,不过对于中小型项目来说,过于规范的遵守软件工程,编写太多文档也会拉长进度,一般会将它与详细设计合并到一起来处理,所 ...
随机推荐
- 阿里云 redis 通过rinetd 进行端口透传
https://help.aliyun.com/document_detail/43850.html?spm=5176.7738718.2.3.yW2eyQ 目前云数据库 Redis 版需要通过 EC ...
- 中文代码示例之Vuejs入门教程(一)
原址: https://zhuanlan.zhihu.com/p/30917346 为了检验中文命名在主流框架中的支持程度, 在vuejs官方入门教程第一部分的示例代码中尽量使用了中文命名. 所有演示 ...
- Java源码解读(一)——HashMap
HashMap作为常用的一种数据结构,阅读源码去了解其底层的实现是十分有必要的.在这里也分享自己阅读源码遇到的困难以及自己的思考. HashMap的源码介绍已经有许许多多的博客,这里只记录了一些我看源 ...
- JavaWeb一小时急速入门总结反思
0.条件一个可以开发javaee的开发工具1.配置首先需要下载tomcat,用来跑javaweb的服务器,下载后自行百度配置.然后需要servlet.jar包,其实就是一个java网络层api包2.基 ...
- 自己动手写把”锁”---LockSupport介绍
本篇是<自己动手写把"锁">系列技术铺垫的最后一个知识点.本篇主要讲解LockSupport工具类,它用来实现线程的挂起和唤醒. LockSupport是Java6引入 ...
- C3P0配置属性
acquireIncrement:当连接池中的连接用完时,C3P0一次性创建新连接的数目: acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试获取的次数,默认为30: a ...
- HttpRuntime.Cache .Net自带的缓存类
.Net自带的缓存有两个,一个是Asp.Net的缓存 HttpContext.Cache,一个是.Net应用程序级别的缓存,HttpRuntime.Cache. MSDN上有解释说: HttpCont ...
- 浅谈 URI 及其转义
URI URI,全称是 Uniform Resource Identifiers,即统一资源标识符,用于在互联网上标识一个资源,比如 https://www.upyun.com/products/cd ...
- python3之序列化(pickle&json&shelve)
1.pickle模块 python持久化的存储数据: python程序运行中得到了一些字符串,列表,字典等数据,想要长久的保存下来,方便以后使用,而不是简单的放入内存中关机断电就丢失数据.python ...
- HTML常用标签属性使用
img: a 页面超链接