c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目七 公民身份证号码生成与查询1.doc

(7页)

'c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目七 公民身份证号码生成与查询1.doc'

《c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目七 公民身份证号码生成与查询1.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目七 公民身份证号码生成与查询1.doc》文档请在天天文库搜索。

1、教案教 师班级科 目C#程序设计开课时间地 点机房课题名称项目七:公民身份证号码生成与查询课时数6背景分析本课程是为软件技术专业的学生开设的一门很重要的程序设计类课程。本次项目学习了部分新控件的属性和事件,尤其是组合框的DisplayMember和ValueMember两个属性的运用。进一步学习了随机数,巩固了如何向List中添加不重复的数字。另外,自定义方法的编写,进一步训练了程序设计的逻辑思维。本项目涉及知识点比较多,学习者应该仔细体会运用。学生已经具备一定的应用软件能力。根据课程教学目标和学生的专业特点,教学中应当注重培养学生的操作能力、思维能力和学习能力。本课采用以项目教学为主,边讲边做,让学生在做的过程中学会探索、学会合作。学习目标设 定1. 控件属性与事件、随机数类、控件数据绑定以及读文件等。2. 培养学生积极思考、敢于尝试,让学生体验学习的乐趣,激发学生对本课程的学习兴趣。。

2、学习任务描 述学习任务围绕学生成绩统计的综合运用而展开,根据教师设计的项目,并将其分解为任务完成。通过任务的设定,在对比中,引导学生自主学习、合作学习、竞争学习。教学情境创 设本节课通过对一个贴近学生生活的项目学习,引导学生做中学习、合作学习。围绕课堂总目标,让学生在不断的成功体验中进行快乐学习。教学资源准 备时间资源:课前资料收集、课堂教学、课后资料整理、完成作业信息资源:教案、教学素材人员资源:1位专业教师,1位专业指导教师,学生小组设备资源:2.2 GHz 或速度更快的 CPU、1GB或更大容量的 RAM、1280x1024 显示器、7200 RPM 或更高转速的硬盘;操作系统:Windows 7或以上;开发软件:Visual Studio 2012 中文版(含MSDN);教 学 过 程 实 施内 容方法【导入】目前国内不少邮箱、网盘等申请时要求填写身份证号码,而用户又不想公开自己的。

3、真实信息,从而需要一个相对“真实”的身份证号码。【新课】项目七:公民身份证号码生成与查询【项目描述】制作如图所示的身份证号码生成与查询系统,本项目主要有三个任务: 1.制作项目界面 (包括数据绑定)2.身份证号码生成 (随机数,控件 延伸:生成的号码编序号)3.身份证号码验证与解读 【项目分析】身份证号码生成与查询系统包含身份证号码生成和身份证号码查询两大功能。中国公民的身份证号码的编制是有规则的,在生成和查询身份证号码时,我们必须要要遵守这个规则。制作身份证号码生成与查询系统的主要步骤如下:1.制作项目界面2.身份证号码生成3.身份证号码验证与解读任务一 制作项目界面【任务描述】新建项目,并在窗体上制作程序界面。【任务实施】1.新建一个Windows项目,在模板中选择“Windows应用程序”,将项目名称设为“IDCard”,位置设为“E:\CspharpApp\Examples”(或其。

4、它位置)。2.设置该窗体属性,3.项目中采用了分页控件来使项目界面更紧凑。在窗体上添加TabControl控件,name属性tcIDCard。点开TabPages属性,添加两个tabPage页,其Text属性分别设置为: “生成号码”和“验证解读”。设置完毕,点确定我们就把分页效果做好了。4.分别点选tabPage1(生成号码)页和tabPage2(验证解读)页,选择合适的控件并布局.任务二 生成身份证号码【任务描述】身份证号码的生成是有一定规则的。第二代身份证编码。由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下:  1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按规定执行。本任务中,将以文本文件的形式按一定。

5、格式排列给出。  2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,年、月、日分别用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。4.校验码(R),一位数字,通过前17位数字根据一定计算得出。【任务实施】1.行政区域数据绑定。(1)搜索可用的文件(后缀.txt),代码如下: //自定义方法,用于检索行政区域划分的文件 private FileInfo[] SearchFiles(string sFileName) { DirectoryInfo dir = new DirectoryInfo(Environment.CurrentDirectory); FileInfo[] fsi = dir.GetFiles(s。

6、FileName); return fsi; //可能存在多个文件可以选择,故引入了数组 } private void frmIDCard_Load(object sender, EventArgs e) { cbYear.DataSource = SearchFiles("*.txt"); cbYear.DisplayMember = "Name"; cbYear.ValueMember = "FullName"; //方法调用,填充cbYear组合框 }(2)自定义类clsAdministrativeDivisionsCode,此类的目的是封装两个属性,代码如下: class clsAdministrativeDivisionsCode { private string adCode; private string adName; public clsAdministrativeDiv。

7、isionsCode(string code, string name) { adCode = code; adName = name; } public string AdCode { get { return adCode; } set { adCode = value; } } public string AdName { get { return adName; } set { adName = value; } } }(3)填充行政区域组合框。List provinceCode = new List(); List cityCode = new List();//定义clsAdministrativeDivisionsCode类型的List变量 //自定义方法,从文件中读取并存储所有的区域信息 private void GetDiscInfo(string sFilenName)。

8、 { if (File.Exists(sFilenName)) { using (StreamReader sr = new StreamReader(Environment.CurrentDirectory + @"\" + sFilenName, Encoding.Default)) { string sLine = string.Empty; Regex re = new Regex(@"[\s]{1,}", RegexOptions.Compiled); //正则表达式 while (!sr.EndOfStream) { sLine = sr.ReadLine(); sLine = re.Replace(sLine, " "); string[] sTemp = sLine.Split(new char[] { ' ' }); if (sTemp[0].EndsWith("0000。

9、")) { provinceCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], sTemp[1])); } else { if (sTemp[0].EndsWith("00")) cityCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], sTemp[1])); else if (sTemp[1].EndsWith("市辖区")) cityCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], " " + sTemp[1])); else cityCode.Add(new clsAdministrativeDivisionsCode(sTemp[0], " " + sTemp[1])); } } sr.Close(); sr.D。

10、ispose(); } } else { MessageBox.Show("文件{0}不存在!", "请注意", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }改写frmIDCard_Load事件如下: private void frmIDCard_Load(object sender, EventArgs e) { cbYear.DataSource = SearchFiles("*.txt"); cbYear.DisplayMember = "Name"; cbYear.ValueMember = "FullName"; //方法调用,填充cbYear组合框 GetDiscInfo(cbYear.SelectedItem.ToString()); //调用自定义方法 cbProvince.DataSource = provinceC。

11、ode; cbProvince.DisplayMember = "AdName"; cbProvince.ValueMember = "AdCode"; cbProvince.SelectedIndex = -1; //填充省级区域列表框}(4)当所选省级行政机构变化时,下级行政机构组合框能动态正确显示。这个功能可以通过cbProvince的SelectedIndexChanged事件完成。代码如下: private void cbProvince_SelectedIndexChanged(object sender, EventArgs e) { if (cbProvince.SelectedValue != null) { List tempCity = new List(); foreach (clsAdministrativeDivisionsCode temp in cityCo。

12、de)        //同一个省级行政机构中的各市区县行政代码的前两位都是一样的  if (cbProvince.SelectedValue.ToString().Substring(0, 2) == temp.AdCode.Substring(0, 2)) tempCity.Add(temp);   //选择该省级机构所包含的各市区县并添加到tempCity中 if (tempCity != null) { cbCities.DataSource = tempCity; cbCities.DisplayMember = "AdName"; cbCities.ValueMember = "AdCode"; //绑定数据到cbCities上 } } }【项目小结】 本次项目学习了部分新控件的属性和事件,尤其是组合框的DisplayMember和ValueMember两个属性的运用。创设情境、激发学习兴趣营造良好的学习氛围明确任务,通过系列实验逐步呈现知识学生自主学习师生互动学习环节包括“实验与思考”、“观察与思考”、“交流与分享”教师分析巡回指导师生互动学习环节包括“实验与思考”、“观察与思考”、“交流与分享”教师及时引导与评价学习环节分为“合作与探索”、“交流与分享”、“实践与体验”教师巡回指导教师及时评价与引导学习环节分为“合作与探索”、“成功的体验”、“思考与提高”。

关 键 词:
教案 项目 公民 身份证号码 作者 教学 生成 查询 程序设计
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目七 公民身份证号码生成与查询1.doc
链接地址: https://www.wenku365.com/s-59387008.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开