C#程序设计主讲教师:杨剑1项目9:Windows程序的界面设计——个人理财软件一、教学内容及要求能力培养:1、理解基于Windows的应用程序的基本概念。2、掌握Windows窗体和控件的常用属性。3、掌握一些常用的Windows窗体控件的使用。4、学会创建较为复杂的Windows应用程序。核心技能点:1、Windows窗体应用程序中窗体、控件、事件的基本概念。2、Windows窗体控件的共同特性。3、常用的Windows窗体控件。扩展技能点:1、Windows窗体和控件的常用属性2、Windows窗体的设计和创建3、各种控件的综合应用教学内容:1、项目介绍。任务1:个人理财软件(5分钟)2、案例演示:按钮与文本显示、编辑控件任务2:设计一个简单的个人记账软件的用户登录界面,当输入正确的用户名和密码时,系统将给出正确的提示,否则给出错误提示。(15分钟)3、案例演示:列表与选择控件任务3:在项目MyAccounting中添加一个窗体,用于添加个人收支明细。(30分钟)4、案例演示:图形显示控件任务4:在项目MyAccounting中添加一个窗体,用于显示系统说明。(10分钟)5、案例演示:图形显示控件任务5:在项目MyAccounting中添加一个窗体,用于添加收支项目信息。(30分钟)6、案例演示:菜单、工具栏和状态栏任务6:在项目MyAccounting中添加一个窗体,用做个人理财软件的主窗体。(20分钟)7、案例演示:SDI和MDI应用程序C#程序设计主讲教师:杨剑2任务6:设置个人理财软件为MDI应用程序,并在主窗体中打开子窗体。(10分钟)8、课内实践:任务8:设计一个Windows应用程序,实现如图9-38所示的功能。对文本框所显示的文字进行简单的格式化,包括改变字体的大小、名称、颜色以及设置粗体、斜体和添加下划线等。(45分钟)任务9:设计一个通讯录管理软件,该系统主要用于个人通讯录管理;系统主界面是一个带有菜单的MDI窗体,包括菜单、工具栏和状态栏。系统功能主要包括:新建联系人、查看联系人和新建分组。(90分钟)二、教学重点、难点及解决办法教学重点:1、Windows窗体控件的共同特性2、常用的Windows窗体控件教学难点:1、Windows窗体的设计和创建2、各种控件的综合应用教学方法:基于CDIO的课程改革,应用了CDIO教育模式。以“做中学”为出发点,实施“知识讲解案例化、课内课外协作化、实战演练一体化”的教学模式。由传统的教师引导课堂转变为以学生为主体,课本中的知识点讲解转变为“项目”主导,将传统的课堂模式转变为了以实际经验为核心。三、教学设计1、教学进程工程化将教学内容按CDIO理念,以项目为核心,并结合课程内容设计了四个环节的内容,包括构思环节、设计环节、实现环节、运作环节,同时,在课程的教学过程中,主要采用“做中学”的教学理念来实现“教学做”一体化。以项目为载体,将抽象的知识融入到项目中,通过项目的学习将知识点分解,将“工程”教学思想体现在教学中,进而提高学生的学习效果。2、教学设计递进化根据“工程化”的思想,教学模式的设计呈递进化趋势,每一个教学项目的实现将分成四个部分来完成:任务的明确,实施方案的编写,项目的实施和项目的评价3、实践设计层次化在项目的实施过程中,主要组织层次化教学。在教学中,采取“基础实验”C#程序设计主讲教师:杨剑3“综合实验”,“综合性课程设计”的设计。4、课程考核工程化考核以过程考核和工程验收测试相结合的方式进行。本门课程采取的是形成性考核方式,考试成绩由本门课程学习期间的多项过程成绩组合而成5、知识讲解案例化根据CDIO的思想,对知识点采取案例化教学法,6、课内课外协作化7、实战演练一体化为了让学生对所学课程加深理论知识,并能够将相关知识结合到实际应用中,学生需要自选一个相关主题进行综合项目的开发,提高综合应用能力。在这个环节中,学生是主体,教师主要负责引导和监控,学生需要在这个阶段发挥自身能力,以团队的形式完成项目,并由此锻炼学生的团队合作意识。四、教学过程1、项目介绍。任务1:个人理财软件(5分钟)设计一个个人理财软件。该系统将完成用户登录、收支情况管理和基本资料管理的界面设计,本系统的功能模块图如图所示。2、案例演示:按钮与文本显示、编辑控件任务2:设计一个简单的个人记账软件的用户登录界面,当输入正确的用户名和密码时,系统将给出正确的提示,否则给出错误提示。(15分钟)【核心操作】(1)双击Login.cs,打开其设计视图,从工具栏中拖动3个Label控件、2个TextBox控件和2个Button控件到窗体设计区。这些控件的布局如图所示。个人理财软件主界面系统管理收支管理基本资料帮助添加收支项目登录退出添加收支统计查询用户管理关于…C#程序设计主讲教师:杨剑4(2)双击“登录”按钮,为其添加单击事件处理程序。其代码如下:privatevoidbtnLogin_Click(objectsender,EventArgse){stringuserName=txtName.Text;stringpassword=txtPwd.Text;if(userName==admin&&password==123){MessageBox.Show(欢迎进入个人理账系统!,登录成功,MessageBoxButtons.OK,MessageBoxIcon.Information);}else{MessageBox.Show(您输入的用户名或密码错误!,登录失败,MessageBoxButtons.OK,MessageBoxIcon.Exclamation);}}以上代码的功能是,当在用户名文本框中输入“admin”并在密码框中输入“123”之后,单击“确定”,系统将弹出消息对话框以显示输入正确,否则,对话框显示用户名或密码错误的提示信息。(关于“消息框”的具体应用方法将在9.7小节中进行讲述。(3)双击“取消”按钮,为其添加单击事件处理程序。其代码如下:privatevoidbtnCancel_Click(objectsender,EventArgse){txtName.Text=;txtPwd.Text=;C#程序设计主讲教师:杨剑5txtName.Focus();}以上代码的功能是:清除输入的信息,并将光标定位在txtName上。(4)编译并运行程序,输入用户名和密码,单击“确定”按钮后的运行效果如图所示。3、案例演示:列表与选择控件任务3:在项目MyAccounting中添加一个窗体,用于添加个人收支明细。(30分钟)【核心操作】(1)双击AddExpenditure.cs,切换到设计视图,从工具栏中拖动8个Label、2个RadioButton、1个ComboBox、1个ListBox、1个DateTimePicker、1个TextBox、6个CheckBox、1个NumericUpDown、1个RichTextBox和2个Button控件到窗体设计区。这些控件的布局如图所示。(2)选择ComboBox控件(cboCategory)的Items属性,单击该属性右边的按钮,在弹出的“字符串集合编辑器”窗体中依次输入“生活消费”、“固定资产”、C#程序设计主讲教师:杨剑6“休闭娱乐”、“医疗药品”、“教育培训”和“其他支出”,注意输入时,每一项之间以回车分隔。控件的每一项的值也可以通过代码编程完成。(3)双击RadioButton控件(rdotExpenditure),进入源代码编辑窗口,为ComboBox控件的CheckedChanged事件添加以下代码,完成cboCategory的动态添加:privatevoidrdotExpenditure_CheckedChanged(objectsender,EventArgse){cboCategory.Items.Clear();//清除组合框中所有项if(rdotExpenditure.Checked==true){cboCategory.Items.Add(生活消费);//添加支出项cboCategory.Items.Add(固定资产);cboCategory.Items.Add(休闭娱乐);cboCategory.Items.Add(医疗药品);cboCategory.Items.Add(教育培训);cboCategory.Items.Add(其他支出);}else{cboCategory.Items.Add(工作收入);//添加收入项cboCategory.Items.Add(投资收益);cboCategory.Items.Add(其他收入);}cboCategory.SelectedIndex=0;//初始选择组合框中的第一项}(4)返回设计视图,双击ComboBox控件(cboCategory),进入源代码编辑窗口,为ComboBox控件的SelectedIndexChanged事件添加以下代码://根据组合框中选择的不同收支类别,向列表框中加载该收支类别的收支项privatevoidcmbCategory_SelectedIndexChanged(objectsender,EventArgse){lstItem.Items.Clear();//清除列表框中所有项switch(cboCategory.SelectedItem.ToString()){case生活消费:lstItem.Items.Add(餐饮);C#程序设计主讲教师:杨剑7lstItem.Items.Add(生活用品);lstItem.Items.Add(交通费);lstItem.Items.Add(水电气);//......下略,可以自行添加适当项目break;case固定资产:lstItem.Items.Add(服装);lstItem.Items.Add(家用电器);//......下略,可以自行添加适当项目break;case休闭娱乐:lstItem.Items.Add(旅游);//......下略,可以自行添加适当项目break;case医疗药品:lstItem.Items.Add(药品);//......下略,可以自行添加适当项目break;case教育培训:lstItem.Items.Add(学费);//......下略,可以自行添加适当项目break;case工作收入:lstItem.Items.Add(工资);//......下略,可以自行添加适当项目break;case投资收益:lstItem.Items.Add(利息);//......下略,可以自行添加适当项目break;default:lstItem.Items.Add(无);break;}lstItem.SelectedIndex=0;//初始选择列表框中的第一项C#程序设计主讲教师:杨剑8}(5)返回设计视图,双击btnSave按钮控件,进入源代码编辑窗口,为btnSave控件的Click事件添加以下代码。privatevoidbtnSave_Click(objectsender,EventArgse){rtxtRemarks.Clear();rtxtRemarks.AppendText(要保存的信息为:\n);rtxtRemarks.AppendText(cboCategory.SelectedItem.ToString());rtxtRemarks.AppendText(-);rtxtRemarks.AppendText(lstItem.SelectedItem.ToString());rtxtRemarks.AppendText(\n日期:);rtxtRemarks.AppendText(dtpDate.Value.ToLongDateString());rtxtRemarks.AppendText(\n说明:);rtxtRemarks.AppendText(txtExplain.Text);rtxtRemarks.AppendText(\n收支人:);i