读入文本信息,进行排序

原创 2007年10月09日 10:44:00

 编写程序实现如下机能

1)使用readData函数将文件读入,保存在内存中。

2)从控制台输入“M”,调用search函数,对所有员工按照部门名称进行分组,并且每个部门的数据按照员工编号升序排列。

3) 将search得到的数据用showData函数输出到控制台,输出时请将员工姓名改为:S+区分+姓名的形式。

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
using System.Collections;
namespace D205
...{
    
public partial class Form1 : Form
    
...{
        
//StreamReader objReader = new StreamReader("c:/test.txt");   
        string       strLine   = "";
        ArrayList    aryText   
= new ArrayList();    //存放文本文件信息
        ArrayList    arynum    = new ArrayList();    //存放员工编号
        ArrayList    arynum1   = new ArrayList();    //存放姓名
        ArrayList    arynum2   = new ArrayList();    //存放部门名称
        ArrayList    arynum3   = new ArrayList();    //存放区分
        public Form1()
        
...{
            InitializeComponent();
        }

        
/**////readData()函数将文件读入,保存在内存中
        public void readData()                       
        
...{
            
try
            
...{
                StreamReader objReader 
= new StreamReader("c:/test.txt");  
                
while (strLine != null)
                
...{
                    strLine 
= objReader.ReadLine();
                    
if (strLine != null)
                        aryText.Add(strLine);
                }

                objReader.Close();
            }

            
catch (Exception e)
            
...{
                MessageBox.Show(e.GetBaseException().ToString());
            }

            
        }

        
/**////search函数,对所有员工按照部门名称进行分组,部门的数据按照员工编号升序排列。
        public void search()                         
        
...{
            readData();
            
string stra1;
            
string stra2;
            
string stra3;
            
string stra4;
            
            
for (int i = 0; i < aryText.Count; i++)
            
...{
                
string  strb  = (string)aryText[i];
                
int     inta  = strb.IndexOf(" ");
                
string  stro  = strb.Substring(0, inta);             //提出员工编号至arrnum.Add(cc);
                int     intc  = Convert.ToInt32(stro);
                arynum.Add(intc);

                
string  stro1 = strb.Substring(inta + 1);            //提出姓名至arrnum1.Add(ob);                    
                int     inta2 = stro1.IndexOf(" ");
                
string  stro2 = stro1.Substring(inta2 + 1);
                
string  strob = stro1.Substring(0, inta2);       
                arynum1.Add(strob);

                
int     inta3 = stro2.IndexOf(" ");                  //提出部门名称至arrnum2.Add(oo3); 
                string  stro3 = stro2.Substring(0,inta3 + 1);   
                
string  strb1 = stro2.Substring(inta3);              //提出区分至arrnum3.Add(ob1); 
                arynum2.Add(stro3);
                arynum3.Add(strb1);
            }


            
for (int j = 1; j < aryText.Count; j++)                  //对员工编号冒泡排序,同时对另外几个数组中对应的元素进行排序
            ...{
                
for (int i = 0; i < aryText.Count - 1; i++)
                
...{
                    
if ((int)arynum[i] >= (int)arynum[i + 1])
                    
...{
                       
int  intob          = (int)arynum[i];
                            stra1          
= (string)arynum1[i];
                            stra2          
= (string)arynum2[i];
                            stra3          
= (string)arynum3[i];
                            arynum[i]      
= arynum[i + 1];
                            arynum1[i]     
= arynum1[i + 1];
                            arynum2[i]     
= arynum2[i + 1];
                            arynum3[i]     
= arynum3[i + 1];
                            arynum[i 
+ 1]  = intob;
                            arynum1[i 
+ 1= stra1;
                            arynum2[i 
+ 1= stra2;
                            arynum3[i 
+ 1= stra3;

                    }

                }

            }

            
for (int i = 0; i < aryText.Count; i++)            //先输出开发部的人员名单
            ...{
                
if ("kaifabu ".Equals(arynum2[i]))
                
...{
                    ListViewItem lvwob;
                    stra1  
= Convert.ToString(arynum[i]);
                    stra3  
= (string)arynum2[i];
                    stra4  
= (string)arynum3[i];
                    stra2  
= "S" + stra4 + (string)arynum1[i];
                    lvwob  
= lvwMylistView.Items.Add(stra1);
                    lvwob.SubItems.Add(stra2);
                    lvwob.SubItems.Add(stra3);
                    lvwob.SubItems.Add(stra4);
                }

            }

            
for (int i = 0; i < aryText.Count; i++)            //输出营业部的人员名单
            ...{
                
if ("yingyebu ".Equals(arynum2[i]))
                
...{
                    ListViewItem lvwob;
                    stra1 
= Convert.ToString(arynum[i]);
                    stra3 
= (string)arynum2[i];
                    stra4 
= (string)arynum3[i];
                    stra2 
= "S" + stra4 + (string)arynum1[i];
                    lvwob 
= lvwMylistView.Items.Add(stra1);
                    lvwob.SubItems.Add(stra2);
                    lvwob.SubItems.Add(stra3);
                    lvwob.SubItems.Add(stra4);
                }

            }

            }


        
private void btnSubmit_Click(object sender, EventArgs e)
        
...{
            
if (txtBox.Text == "M")
            
...{
                search();
            }

            
else
            
...{
                MessageBox.Show(
"输入正确指令");
            }

        }

    }

}




Opencv k-means聚类

  • 2008年11月21日 00:36
  • 2.16MB
  • 下载

Python中实现多属性排序

我们有一组记录: 1 2 3 4 5 6 7 list_records = (  (department, name, salary), ...
  • sleep365
  • sleep365
  • 2014-01-29 22:47:44
  • 592

第14周项目2.3 从文件中读取成绩按成绩排序的成绩单

/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:gcd.cpp ...
  • huirui1217
  • huirui1217
  • 2014-11-30 11:30:59
  • 315

写过的数据结构实验记录一下

树的应用 (2学时) 1、实验目的 通过本实验掌握二叉的建立和递归遍历、非递归遍历算法,了解二叉树在实际中的应用并熟练运用二叉树解决实际问题。 2、实验内容 根据前序遍历的顺序建立一棵二叉树,并根据遍...
  • xiaolonggezte
  • xiaolonggezte
  • 2016-11-30 16:20:30
  • 510

jQuery筛选排序插件listnav

  • 2014年04月07日 22:41
  • 126KB
  • 下载

GFF3文件按照染色体位置排序

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • msw521sg
  • msw521sg
  • 2016-08-28 23:14:17
  • 826

数据查询的排列显示

排序显示: 查询中默认是按照主键的排序方式,而ORDER BY 子句中可以指定要排序的字段,有两种排序方式: 升序:ASC,默认; 降序:DESC,需要编写的; 在所有的子句中ORDER ...
  • qq_32863631
  • qq_32863631
  • 2017-06-18 10:44:35
  • 119

Java中集合排序---点击表头对数据进行排序

Java中对集合的排序,因为项目中得实现一个点击表头对数据进行排序的功能,当然实现这个效果并不难,你完全可以在点击表头时向Action中发出一个请求,然后在利用排序的Hql语句对数据进行排序,这样你完...
  • xusongsong520
  • xusongsong520
  • 2012-11-18 16:19:20
  • 2399

安卓学习笔记(2)- SQLite中使用query函数对某类数据进行排序

1.在安卓的帮助文档中,query函数的相关内容如下:其中各个参数的含义为:table 需要进需要行操作的表的名称columns 需要查询的列,如String[]{“nam...
  • kabuto_hui
  • kabuto_hui
  • 2017-09-22 14:57:21
  • 269

航班信息查询系统 航班信息查询系统,实现了用户对飞机航班系统的创建、管理添加、删除、查询、输出等基本功能的实现。本系统有个主要功能模块,只在开始启用本系统时使用:创建系统(按起飞时间的升序排序)、维护系统(包含添加系统、删除系统、更新系统)、查询系统(包含按航班号、起点站、终点站、起飞时间、到达时间等方式查询系统)、输出系统(输出全部航班信息)。其中所有航班信息都是按照起飞时间的升序排序,所有涉及到有输出信息的都是按照此顺序输出

  • 2009年12月06日 22:44
  • 51KB
  • 下载
收藏助手
不良信息举报
您举报文章:读入文本信息,进行排序
举报原因:
原因补充:

(最多只允许输入30个字)