C#实现根据报名表选照片系统设计

2015-05-26 07:15:32
无锡职业技术学院学报 2015年4期
关键词:身份证号报名表学号

张 燕

(无锡职业技术学院 物联网学院,江苏 无锡 214121)

高职院校普遍将“C#可视化程序设计”课程定为计算机大类专业的专业基础主干课程,也作为电子信息、信息管理类等专业的专业基础课。在教学中基本安排在学习完C++后有了程序控制、类和对象等概念后,进一步学习可视化程序设计。教师在该课程教学中一般会采用项目教学法教授基本知识和技术。教学实践中发现,学生通过两门课程已经理解了面向对象程序设计、可视化程序设计等概念;掌握了常用控件的属性设置、方法调用与常用事件代码及函数和过程的编写方法,能进行窗体程序界面设计;初步掌握了数据的读写和文件的打开及读写等操作,但是当给出一个新的问题,要求学生给出解决思路和编程实现,仍是无从下手。本文谈谈怎样在学生初步掌握C#语言的基础上,通过查资料、学案例提取有用方法,编写有使用价值的应用程序,进一步培养独立编程能力。

1 系统设计原理及知识

1.1 系统功能

系统实现了按照报名表中的学生学号或身份证号,到照片文件夹中选取对应的报名者的照片,照片以学号或身份证号命名。程序执行后,照片选择结果存放在报名表文件夹下,其中txt文件记录了没有拷贝到的照片信息。

1.2 设计思路

我们让学生独立解决一个实际应用问题时,实现可以简单,但一定要解决实际问题。通过这个应用项目的实现调动学生的学习主动性、遇到未知部分主动寻求解决方法,温习基础知识。

报名表文件是以班级命名的Excel工作簿,其工作表也以班级命名,所有照片名为学号或身份证号的报名表Excel文件存放在一个新建的文件夹中。照片文件夹可以全部放在一个文件夹下供挑选,也可以分级放在班级命名的文件夹下,系统会全部搜索。程序根据照片文件名是学号还是身份证号来分开处理。系统读取excel工作表中报名信息中学号或身份证号,搜索存放所有照片文件的文件夹。

1.3 相关知识

Visual Studio开发环境提供的窗体、控件等设计图形化的界面,用运行于.NET Framework之上的面向对象设计方法的C#语言在控件事件框架中编写处理程序。引用C#系统的公用类的命名空间 System.Windows.Forms、System.ComponentModel的公用函数。

在C#.NET窗体应用中操作Excel,通过System.Data和System.Data.OleDb数据连接方式读取和写入Excel数据。

使用C#.NET的System.IO类实现遍历所有的文件和目录、创建文件夹、拷贝文件。

2 功能设计及程序实现

基于简单实用的理念,程序主要实现了按照班级报名表文件读取工作表数据,工作表要求第一行单元格存放表头信息,如“班级名、姓名、学号、身份证号、性别等”。照片可以存放在一个文件夹下,也可以有班级子文件。

2.1 窗体设计

在Visual Studio开发环境中创建应用程序窗体,通过文本框组件得到用户输入的文件夹信息以及照片名对应字段名称,如图1所示。

2.2 组件及设计

程序用到的组件比较简单,重点在编写数据表读取代码、文件夹及文件的遍历、创建文件夹和文件、拷贝文件等操作代码。窗体如图1所示,用到的组件有标签、文本框、列表框和按钮。

单击“须知已读”按钮后,方可激活“开始”按钮,这主要是为了提醒用户做好数据文件和照片文件准备工作。单击“开始”按钮调用ReadDir函数,逐个读取指定文件夹下的Excel文件。然后针对每个读到的Excel文件调用readexcel函数读取工作表中照片文件名称字段数据,根据读到的数据构建照片文件名,然后调用SelectPic函数实现遍历指定存放照片的文件夹,搜索照片,找到就拷贝到报名表目标文件夹下,没找到就将学号或身份证号信息记录到班级文本文件中。

图1 应用程序窗体

2.3 逻辑实现及关键代码

2.3.1 读取指定文件夹下的Excel文件,遍历所有的文件和目录,实现代码如下:

2.3.2 读取工作表中照片文件名称字段数据,遍历所有的工作表数据行,实现代码如下:

2.3.3 遍历指定存放照片的文件夹,搜索照片,找到就拷贝,否则向文本文件写入信息,代码如下:

2.4 系统改进及扩展

系统设计本着可用、简单的原则,方便学生实现。一旦学生掌握了基本的实现方法,就可以在这个基础上完善功能,甚至扩展应用。例如:

(1)照片分类:将全部的根文件夹下的照片文件按照EXL文件中的班级名工作表建立文件夹并“移动”或“拷贝”到子文件夹下,同时记录未拷贝到照片文件的学号。

(2)除了用“学号”或“身份证号”,也可以用“工号”或“考试证号”等作为照片名。

(3)报名文件可以选择将所有报名信息放在一个工作簿中,以班级命名工作表,然后在工作簿中遍历工作表。

(4)设计显示考生信息和照片的窗体,或打印报名信息表(有照片)。

(5)图片文件类型可选,如可以是.jpg、.png等常用照片的文件格式名。

(6)在相应工作表表格数据中增加一列,列名为“照片拷贝(是、否)”。如果读取到照片文件,则该行的该列值写入“是”,否则写入“否”。还可以有更多完善,不一一列举。以上每个改进都可以比较方便的实现,但要求学生要有耐心并能自主学习,激发学生兴趣和成就感。

3 结语

设计有一定实用价值的简单应用系统,既有一定的难度,又没有超出学生的理解和学习能力范围,可以激发学生学习主动性,发现问题、解决问题。让学生在应用实践中,掌握职业技能、巩固专业知识,积累实践经验和完善知识体系。将知识的应用问题在每个学习阶段进行强调,而不是脱节到毕业设计才发现知识和实际应用的差距。

[1]明日科技C#典型模块精解[M].北京:清华大学出版社,2012.

[2]王国胜,张石磊.C#基础与案例开发详解[M].北京:清华大学出版社,2014.

[3]MSDN:从 .NET开发人员的角度理解Excel对象模型[EB/OL].(2004-10-27)[2015-02-20]http://msdn.microsoft.com/zh-cn/library/aa168292(office.11).aspx.

[4]百度文档:C#中创建、打开、读取、写入、保存Excel的一般性代码[EB/OL].(2010-11-17)[2015-02-20]http://hi.baidu.com/zhaochenbo/blog/item/f6d70ff7bf32fa2a730eec39.html.

[5]微软在线帮助:如何使用 ASP.NET、ADO.NET和Visual C# .NET查询和显示 Excel数据[EB/OL].(2004-06-29)[2015-02-20]http://support.microsoft.com/kb/306572/zh-cn.

猜你喜欢
身份证号报名表学号
老师情
艺术大观(2019年11期)2019-11-12 09:40:37
作品赏析(3)
艺术大观(2019年22期)2019-10-12 14:19:44
我们来打牌
尝试亲历的过程,感受探究的快乐
第二十二届全国中小学生绘画书法作品比赛报名表
学与玩(2017年2期)2017-03-21 18:02:32
学生学号的妙用
与56号说再见
《网印工业》关于作者投稿同时提供身份证号的通知
网印工业(2014年4期)2014-08-15 00:50:12
第七届中小学音乐课观摩活动观摩报名表
《网印工业》关于作者投稿同时提供身份证号的通知
网印工业(2013年4期)2013-03-18 20:34:09