第一篇:Windows程序设计课程设计doc
Windows程序设计课程设计任务书 ,课程设计题目1: 设计一个简单的学生信息管理应用程序
一、设计目标与内容:
1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2.基本掌握面向对象程序设计的基本思路和方法; 3.掌握用VC++开发应用程序的的一般步骤和方法;
4.能够利用所学的基本知识, 设计一个简单的学生信息管理应用程序,具有以下功能:①实现学生信息的存储,可以用文件来实现。②编程实现学生信息的添加、删除、修改、浏览和查询等功能(必须实现的功能)。二,设计要求:
1.用VC++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2.采用单文档多视图方式,左边为树视图,右边为列表视图,左边一级节点为湖南科技学院,二级节点为计算机与通信工程系,三级节点为计算机系的三个专业。要求可以动态增加节点。楼便为列表视图,包含学生的学号、性别、姓名各科成绩等。右边也可以实现动态增加
3.当选中节点时,显示对应的学生信息。选中“计算机系”时,显示所有计算机系学生信息,如当选中”软件工程专业”时,显示本专业所有的的学生信息,4.采用序列化方式保存和读取学生信息
提交设计报告一份(课程设计任务书、目录、主要的数据结构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。Windows程序设计课程设计任务书 ,课程设计题目2: 设计一个简单的通讯录应用程序
一、设计目标与内容:
1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2.基本掌握面向对象程序设计的基本思路和方法; 3.掌握用VC++开发应用程序的的一般步骤和方法;
4.能够利用所学的基本知识,设计一个简单的通讯录应用程序,具有以下功能:①用文件来保存通讯录信息(必须实现的功能)②编程实现通讯录记录的添加、删除、修改、浏览和查询(必须实现的功能)。二,设计要求:
1.用VC++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2.提交设计报告一份(课程设计任务书、目录、主要的数据结构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。Windows程序设计课程设计任务书 ,课程设计题目3: 设计一个简单的计算器应用程序
一、设计目标与内容:
1. 了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和方法; 3. 掌握用VC++开发应用程序的的一般步骤和方法;
4. 能够利用所学的基本知识,设计一个简单的计算器应用程序,实现基本的加、减、乘、除、求平方根,求倒数等基本运算(必须实现的功能),实现求角度的正弦、余弦、正切等基本运算、实现求指数、自然对数、常用对数等基本运算(这部分功能选做)。
5. 在程序中注意处理数据和运算符的输入,计算结果的显示。二,设计要求:
1. 用VC++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2. 提交设计报告一份(课程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。Windows程序设计课程设计任务书 ,课程设计题目4: 设计一个简单的绘图应用程序
一、设计目标与内容:
1. 了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和方法; 3. 掌握用VC++开发应用程序的的一般步骤和方法;
4. 能够利用所学的基本知识,设计一个简单的绘图应用程序,具有以下功能:①具备基本的图形绘制功能:直线、圆、矩形;(必须实现的功能)②编辑功能包括:具有橡皮拉线功能,允许鼠标拖放,能双击选中图形元素,能删除和剪切图形元素,能撤消最近的修改等;(这部分功能选做)③数据保存功能:能够把图形数据保存到文件中必须实现的功能)。二,设计要求:
1.用VC++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2.提交设计报告一份(课程设计任务书、目录、主要的数据结构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。Windows程序设计课程设计任务书 ,课程设计题目5: 设计一个简单的聊天应用程序
一、设计目标与内容: 1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2.基本掌握面向对象程序设计的基本思路和方法; 3.掌握用VC++开发应用程序的的一般步骤和方法;
4.能够利用所学的基本知识,设计一个简单的聊天应用程序,包括服务器端和客户端两部分,具有以下功能:①实现局域网内多个人聊天,可以在同一台机器上启动多个客户端。客户端显示所有在线用户的聊天称呼和头像,用户可以通过它选择谈话对象;②用户也可以选择多个动作,设置字体颜色,“悄悄”地对某人说,对信息进行过滤。③服务器端可以“踢”人,并可以防止用户名称的重复。二,设计要求: 1.用VC++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2.提交设计报告一份(课程设计任务书、目录、主要的数据结构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。
说明:由于此程序工作量大,可以两人一组,一人做客户端程序,一人做服务器端程序。Windows程序设计课程设计任务书 ,课程设计题目6: 设计一个简单的五子棋游戏
一、设计目标与内容:
1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2.基本掌握面向对象程序设计的基本思路和方法; 3.掌握用VC++开发应用程序的的一般步骤和方法;
4.能够利用所学的基本知识, 设计一个简单的学生信息管理应用程序,具有以下功能:①数据结构的设计;五子棋棋盘的绘制。②人机下棋时,计算机下棋算法的设计。③人机下棋时,判断任一方获胜的算法的设计。二,设计要求:
1.用VC++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2.提交设计报告一份(课程设计任务书、目录、主要的数据结构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。
第二篇:08《WINDOWS程序设计》教学大纲范文
《WINDOWS程序设计》教学大纲
课程类别:专业任选课
课程代码:RZ1451
学 分:2 总学时: 32(讲授24学时,上机8学时)适用专业:电气工程及其自动化 先修课程:C语言程序设计、数据结构C
一、课程的地位、性质和任务
WINDOWS程序设计不同于传统的结构化程序设计,而是一种面向对象的程序设计,是目前最先进的程序设计方法之一。WINDOWS程序设计是本专业的一门任选课,旨在使学生熟悉面向对象的WINIDOWS应用程序开发环境,掌握一些WINDOWS程序设计的方法。
二、课程教学的基本要求
熟悉WINDOW先进的面向对象程序设计思想和方法。了解WINDOWS消息驱动机制和基本程序结构,掌握基本输出和输入设计、系统资源(图形、图标、位图等)使用、菜单、加速健、对话框设计等,学会用 MFC(Microsoft Foundation Classes)或者PFC(Foundation Class Library)类库提供的应用程序框架编程。
三、理论教学内容及学时分配
1.WINDOWS程序特点与Visual C++(或者Delphi)编程环境(2学时)2.最简单的WINIDOWS/Visual C++(或者Delphi)程序分析(4学时)3.基本输入、输出设计(8学时)
4.WINIDOWS/Visual C++(或者Delphi)系统资源(2学时)5.菜单、对话框设计(2学时)6.MFC或者PFC编程(2学时)7.机动(4学时)
四、实验教学内容及学时分配
1.实验一(2学时): 基本输出设计 2.实验二(2学时): 基本输入设计 3.实验三(4学时)
菜单、对话框设计
要求:用Visual C++(或者Delphi)编程上机调试通过。
五、教学方法的原则建议
以一具体实例为线索,展开各章节的介绍。
六、考核方式与成绩评定
平时成绩占总评成绩5%,实验成绩占总评成绩25%,期末开卷考试成绩占总评成绩70%
七、教材及参考书目
使用教材:周升锋 Visual C++ Windows实用编程技术,北京航空航天大学出版社,1996 或:周果宏等,Delphi程序设计,清华大学出版社,2001-4 参考书目:李奇、田舒,Windows环境下Visual C++MFC编程技术与实例,北京大学出版社
(执笔人:蔡树立)
第三篇:Windows程序课程设计报告
window程序课程设计
简单的学生信息 管理应用程序
学生姓名: 韩 慧 学生学号: 031140312 班 级: 031140--3
二〇一三年十二月
简单的学生信息管理应用程序
一、设计目的、内容及要求 1.1设计目的
1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2.基本掌握面向对象程序设计的基本思路和方法; 3.掌握用VC++开发应用程序的的一般步骤和方法;
1.2设计内容
利用所学的基本知识, 设计一个简单的学生信息管理应用程序,具有以下功能:①实现学生信息的存储,可以用文件来实现。②编程实现学生信息的添加、删除、修改、浏览和查询等功能。
1.3设计要求
1.用VC++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2.采用单文档多视图方式,左边为树视图,右边为列表视图,左边一级节点为中原工学院,二级节点为计算机学院和软件学院,三级节点为计算机学院的三个专业。要求可以动态增加节点。楼便为列表视图,包含学生的学号、性别、姓名各科成绩等。右边也可以实现动态增加
3.当选中节点时,显示对应的学生信息。如当选中”中原工学院”时选中所用的学生信息,选中“计算机学院”时,显示所有计算机学院学生信息 4.采用序列化方式保存和读取学生信息
二、主要的数据结构
1.数组集合类: CObArray m_stuObArray;2.树:
3.序列化类数据
三、基本思路
基于树视图类建立单文档应用程序,插入列表视图类,切分窗口,左边为树视图,右边为列表视图。插入学生信息对话框,创建序列化类,并利用数组集合类储存学生信息。在主菜单中添加添加、修改、删除、查询菜单,并在文 3 档类中一一添加其映射函数。在列表视图类写入输出函数,在树视图类中添加click映射函数,调用列表试图中的输出函数,是两个视图之间建立关系。
四、步骤及主要代码
4.1设计并创建切分窗口完善视图
1.用MFC AppWizard(exe)创建一个单文档应用程序Student。在第六步中将视图类的基类选择为CtreeView。
2.用MFC ClassWizard添加一个新的ClistView的派生类ClistView。打开CmainFrame.h文件,为CmainFrame类添加下列变量成员: public: CSplitterWnd m_wndSplitter;3.用MFC ClassWizard为CMainFrame类添加OnCreatClient函数,并添加下列代码:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){ m_wndSplitter.CreateStatic(this,1,2);m_wndSplitter.SetRowInfo(0,400,0);m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CStudentView),CSize(400,600),pContext);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(ClistView),CSize(400,600),pContext);return TRUE;} 4.在MainFrm.cpp的前面添加下列语句: #include “MainFrm.h” #include “StudentView.h” #include “listView.h” 在StudentView.cpp的前面添加下列下列语句: #include “StudentDoc.h” 4 #include “StudentView.h” #include “listView.h” 在StudentDoc.cpp的前面添加: #include “StudentDoc.h” #include “listView.h” #include “StudentView.h” 打开StudentView.h文件,在class CStudentView : public CtreeView语句前面添加: class CStudentDoc;class CStudentView : public CTreeView 5.为CstudentView添加void类型函数creatTree()函数,并添加下列代码
void CStudentView::creatTree(){ CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeCtrl.DeleteAllItems();HTREEITEM hRoot,hParent,hChild,pS;hRoot=m_TreeCtrl.InsertItem(“中原工学院”,0,1);hParent=m_TreeCtrl.InsertItem(“计算机学院”,hRoot);m_TreeCtrl.InsertItem(“网络工程”,hParent);
m_TreeCtrl.InsertItem(“软件工程”,hParent);m_TreeCtrl.InsertItem(“计算机科学”,hParent);hParent=m_TreeCtrl.InsertItem(“软件学院”,hRoot);BOOL flag=TRUE;CStudentDoc *doc=GetDocument();int nIndex=doc->m_stuObArray.GetSize();for(int n=0;n CStudentInfo *stu=(CStudentInfo*)doc->m_stuObArray.GetAt(n); CString str1=stu->strSpecial; CString str2=stu->strAcademy; if(!m_TreeCtrl.ItemHasChildren(hRoot))//判断根节点是否有子节点 { hParent=m_TreeCtrl.InsertItem(str2,hRoot); m_TreeCtrl.InsertItem(str1,0,1,hParent);5 } else { hParent=m_TreeCtrl.GetChildItem(hRoot); pS=hParent; for(;pS!=NULL;pS=m_TreeCtrl.GetNextItem(pS,TVGN_NEXT)) { CString strItem1=m_TreeCtrl.GetItemText(pS); if(strItem1==str2)flag=FALSE; } if(flag) { hParent=m_TreeCtrl.InsertItem(str2,hRoot); m_TreeCtrl.InsertItem(str1,0,1,hParent); } else { if(!m_TreeCtrl.ItemHasChildren(hParent))//判断是否有子节点 m_TreeCtrl.InsertItem(str1,0,1,hParent); else { hChild=m_TreeCtrl.GetChildItem(hParent); for(;hChild!=NULL;hChild=m_TreeCtrl.GetNextItem(hChild,TVGN_NEXT)) { CString strItem2=m_TreeCtrl.GetItemText(hChild); if(strItem2==str1)flag=TRUE; } if(!flag)m_TreeCtrl.InsertItem(str1,0,1,hParent); } } } } SetCtrlStyle(m_TreeCtrl.GetSafeHwnd(),TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS);} 6.为CstudentView添加SetCtrlStyle(HWND hWnd, DWORD dwNewStyle)函数,并写入下列代码: void CStudentView::SetCtrlStyle(HWND hWnd, DWORD dwNewStyle){ LONG lStyle;lStyle = GetWindowLong(hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LVS_TYPEMASK;//清除显示方式位 lStyle |= dwNewStyle;//设置style SetWindowLong(hWnd, GWL_STYLE, lStyle);//设置style } 7.在CStudentView::OnInitialUpdate中添加一些初始化代码: void CStudentView::OnInitialUpdate(){ CTreeView::OnInitialUpdate();CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeCtrl.DeleteAllItems();creatTree();} 8.为ClistView类添加print(CStudentInfo *dlg)和SetCtrlStyle(HWND hWnd,DWORD dwNewStyle)函数,并添入下列代码: void SetCtrlStyle(HWND hWnd,DWORD dwNewStyle){ DWORD dwOldStyle; dwOldStyle=GetWindowLong(hWnd,GWL_STYLE); if((dwOldStyle&LVS_TYPEMASK)!=dwNewStyle) { dwOldStyle&=~LVS_TYPEMASK; dwNewStyle|=dwOldStyle; SetWindowLong(hWnd,GWL_STYLE,dwNewStyle); } } 7 void ClistView::print(CStudentInfo *dlg){ CListCtrl&m_listctrl=GetListCtrl();m_listctrl.InsertItem(0,dlg->strName);m_listctrl.SetItemText(0,1,dlg->strNO);if(dlg->bMale) m_listctrl.SetItemText(0,2,“男”);else m_listctrl.SetItemText(0,2,“女”);m_listctrl.SetItemText(0,3,dlg->tBirth.Format(“%Y-%m-%d”));m_listctrl.SetItemText(0,4,dlg->strAcademy);m_listctrl.SetItemText(0,5,dlg->strSpecial);CString str;str.Format(“%d”,dlg->English);m_listctrl.SetItemText(0,6,str);str.Format(“%d”,dlg->Computer);m_listctrl.SetItemText(0,7,str);} 9.在ClistView::OnInitialUpdate中添加初始化代码: void ClistView::OnInitialUpdate(){ CListView::OnInitialUpdate(); CListCtrl&m_listctrl=GetListCtrl();SetCtrlStyle(m_listctrl.m_hWnd,LVS_REPORT);for(int n=0;n<8;n++) m_listctrl.DeleteColumn(0);CString strHeader[8]={“姓名”,“学号”,“性别”,“出生年月”,“学院”,“专业”,“英语”,“计算机”};int nWidth[8]={100,80,60,100,150,150,80,80};for(int nCol=0;nCol<8;nCol++) m_listctrl.InsertColumn(nCol,strHeader[nCol],LVCFMT_LEFT,nWidth[nCol]);} 8 4.2文档序列化——建立可序列化类 1.选择“文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签在左边的列表框中选择C/C++ Header File项,在右边的“文件”下的编辑框中键入StudentInfo.h,单击“确定”按钮。 2.在文档窗口中输入下列代码: class CStudentInfo:public CObject { public: CString strName; //姓名 CString strNO; //学号 BOOL bMale;//性别,是否为男 CTime tBirth;//出生年月 CString strAcademy;//学院 CString strSpecial;//专业 int English; //英语成绩 int Computer;//计算机成绩 DECLARE_SERIAL(CStudentInfo)//序列化声明 public: CStudentInfo(){};CStudentInfo(CString name,CString id,BOOL male,CTime birth,CString academy,CString special,int eng,int comp);void Serialize(CArchive &ar);};3.再次选择““文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签在左边的列表框中选择C++ Source File项,在右边的“文件”下的编辑框中键入StudentInfo.cpp,单击“确定”按钮。 4.在文档窗口中输入下面的代码: #include “stdafx.h” #include “StudentInfo.h” CStudentInfo::CStudentInfo(CString name,CString id,BOOL male,CTime birth,CString academy,CString special,int eng,int comp)9 { strName=name;strNO=id;bMale=male;tBirth=birth;strAcademy=academy;strSpecial=special;English=eng;Computer=comp;} IMPLEMENT_SERIAL(CStudentInfo,CObject,1)void CStudentInfo::Serialize(CArchive &ar){ if(ar.IsStoring())ar< ar>>strName>>strNO>>bMale>>tBirth>>strAcademy>>strSpecial>>English>>Computer;} 4.3添加并处理对话框 1.向应用程序中添加一个对话框资源,标题定为“学生信息管理”,创建此对话框为CstuInfoDlg。 2.打开对话框网格,参照下图为对话框添加控件: 3.为各个控件增加成员变量: 4.为CstuInfoDlg类添加一个BOOL型成员变量m_bMale,并设置该变量的初始值: CStuInfoDlg::CStuInfoDlg(CWnd* pParent /*=NULL*/): CDialog(CStuInfoDlg::IDD, pParent){ 11 m_bMale=FALSE;//{{AFX_DATA_INIT(CStuInfoDlg)„„ //}}AFX_DATA_INIT } 5.用MFC ClassWizard为单选按钮IDC_RADIO_MALE添加BN_CLICKED的消息映射,并增加下列代码: void CstuInfoDlg::OnRadioMale(){ m_bMale=TRUE; } 6.用MFC ClassWizard为单选按钮IDC_RADIO_FEMALE添加BN_CLICKED的消息映射,并增加下列代码: void CstuInfoDlg::OnRadioFemale(){ m_bMale=FALSE; } 7.再添加一个对话框资源,标题认定为“学生信息管理”,创建此对话框类为CstuDlg。按下图添加控件,并为控件增加成员变量: 4.4添加并处理菜单项 1.在StudentDoc.cpp文件的开始处,添加包含CStuInfoDlg和CstuDlg类的头文件包含。 #include “StudentDoc.h” #include “StuInfoDlg.h” #include “StuDlg.h” 2.在菜单资源的主菜单中添加顶层菜单项“学生信息管理(&M)”,在该顶层菜单项中添加子菜单“添加(&A)”(ID_STUINFO_ADD),“修改(&X)”(ID_STUINFO_MODIFY),“删除(&D)”(ID_STUINFO_DELETE),“查询(&Q)”(ID_STUINFO_QUERY)。 3.用MFC ClassWizard为CstudentDoc添加处理菜单项ID_STUINFO_ADD,ID_STUINFO_MODIFY,ID_STUINFO_DELETE和ID_STUINFO_QUERY的 COMMAND的消息,并添加下列代码: void CStudentDoc::OnStuinfoAdd()//添加 { CStuInfoDlg dlg;BOOL flag=TRUE;//根据姓名判断是否已存在if(dlg.DoModal()!=IDOK)return;int nIndex=m_stuObArray.GetSize();for(int n=0;n CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n); if(stu->strName==dlg.m_strName) { AfxMessageBox(“此学生信息已存在”); flag=FALSE; } } 13 if(flag){ CStudentInfo*pStudent=new CStudentInfo(dlg.m_strName,dlg.m_strNO,dlg.m_bMale,dlg.m_tBirth,dlg.m_strAcademy,dlg.m_strSpecial,dlg.m_english,dlg.m_computer); m_stuObArray.Add(pStudent); POSITION pos=GetFirstViewPosition(); CStudentView *stu=(CStudentView*)GetNextView(pos); stu->creatTree(); SetModifiedFlag();//设置文档更改标志 UpdateAllViews(NULL);//更新视图 } } void CStudentDoc::OnStuinfoQuery()//查询 { CStuDlg dlg;BOOL flag=TRUE;if(dlg.DoModal()!=IDOK)return;int nIndex=m_stuObArray.GetSize();if(nIndex==0) AfxMessageBox(“无学生信息”);else { for(int n=0;n { CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n); if(stu->strName==dlg.m_strNm) { POSITION pos=GetFirstViewPosition(); GetNextView(pos); ClistView *list=(ClistView*)GetNextView(pos); CListCtrl&m_list=list->GetListCtrl(); m_list.DeleteAllItems();14 list->print(stu); flag=FALSE; } } //判断是否找到 if(flag) AfxMessageBox(“无此学生信息”);} } void CStudentDoc::OnStuinfoDelete()//删除 { CStuDlg dlg;BOOL flag=TRUE;if(dlg.DoModal()!=IDOK)return;int nIndex=m_stuObArray.GetSize();if(nIndex==0) AfxMessageBox(“无学生信息”);else { for(int n=0;n { CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n); if(stu->strName==dlg.m_strNm) { CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n); delete m_stuObArray.GetAt(n); m_stuObArray.RemoveAt(n,1); AfxMessageBox(“已删除”); flag=FALSE; break; SetModifiedFlag();//设置文档更改标志 UpdateAllViews(NULL);//更新视图 } } 15 //判断是否找到 if(flag) AfxMessageBox(“无此学生信息”);} } void CStudentDoc::OnStuinfoModify()//修改 { CStuDlg dlg;CStuInfoDlg dl;BOOL flag=TRUE;if(dlg.DoModal()!=IDOK)return;int nIndex=m_stuObArray.GetSize();if(nIndex==0) AfxMessageBox(“无学生信息”);else { for(int n=0;n { CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n); if(stu->strName==dlg.m_strNm) { dl.m_strName=stu->strName; dl.m_strNO=stu->strNO; dl.m_bMale=stu->bMale; dl.m_tBirth=stu->tBirth; dl.m_strAcademy=stu->strAcademy; dl.m_strSpecial=stu->strSpecial; dl.m_english=stu->English; dl.m_computer=stu->Computer; dl.DoModal(); stu->strName=dl.m_strName; stu->strNO=dl.m_strNO; stu->bMale=dl.m_bMale;16 } } stu->tBirth=dl.m_tBirth; stu->strAcademy=dl.m_strAcademy; stu->strSpecial=dl.m_strSpecial; stu->English=dl.m_english; stu->Computer=dl.m_computer; SetModifiedFlag();//设置文档更改标志 UpdateAllViews(NULL);//更新视图 flag=FALSE;} } //判断是否找到 if(flag)AfxMessageBox(“无此学生信息”);4.5修改CStudentDoc类代码 1.在StudentDoc.h文件的class CStudentDoc : public Cdocument前面,添加包含CStudentInfo类的头文件。 #include “StudentInfo.h” 2.为CStudentDoc类添加成员变量: public: CObArray m_stuObArray;3.在CstudentDoc类析构函数CStudentDoc::~CstudentDoc中添加下列代码: CStudentDoc::~CStudentDoc(){ int nIndex=m_stuObArray.GetSize();while(nIndex--) delete m_stuObArray.GetAt(nIndex);m_stuObArray.RemoveAll();} 4.在CStudentDoc::Serialize(CArchive& ar)函数中添加下列代码: void CStudentDoc::Serialize(CArchive& ar){ if(ar.IsStoring()){ m_stuObArray.Serialize(ar);} else { m_stuObArray.Serialize(ar);} } 5.编译。 心得体会及参考文献 1、心得体会 两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学不断的探讨、学习、推敲,无形中提高了对Visual C++的理解。 课程设计是对我们这门课程知识综合应用的实践训练,考察了我们对所学知识的掌握与应用程度。对于编程,老师一直强调要注重上机操作,通过课程设计,我对此有了更深的理解。书本上的理论知识固然重要,但从真正的操作中我们会收获更多,有时自认为很合理的逻辑,到了电脑上就是不能运行,或得到的并不是自己想要的结果,这就需要我们不断的调试,纠错,找出问题所在并一一解答,从中我们受益匪浅。 如今我不再认为编程枯燥反而觉得它很有趣,而且越来越觉得这门学问很精深,当自己的程序很好的运行时,会有一种小小的成就感。在以后的学习中我一定会再接再厉,不断提高自己。感谢老师这一学期的辛勤教导。 2、参考文献 高等院校程序设计规划教材 《Visual C++ 教程》郑阿奇 主编 丁有和 编著。 VB程序设计课程设计 1、目的 VB程序设计课程设计是考察学生对VB程序设计课程相关知识点掌握情况的重要环节,也是激励学生进一步学习VB、提高运用VB开发实际计算机程序的能力。课程设计的重点在于学生利用VB开发程序的能力。 2、课程设计题目 学生信息管理系统 3、程序功能 该程序具有建立数据库,建立数据库表,添加数据,删除数据,查询学生每学期成绩、不及格情况、积点情况等相关信息的功能。 4、实现要求 每个学生建立一个数据库(名字自拟),数据库中建立学生基本信息表(学号、姓名、性别、出生年、出生月、出生日、联系电话、年级、班级、住址等)、学生成绩表(学号、课程号、成绩、学期等)、课程信息表(课程号、课程名称、出版社、出版日期、版次、页码、价格、课程类型(基础课、专业基础课、选修课等)、开课学院等)。 把课程信息、每一学期的成绩等分别输入相应的表中,其中学生基本信息表记录不少于5个学生的信息。 在以上数据的基础上,实现相关的程序功能(不仅仅第3条指定的功能)。 设计多界面程序,相关查询结果应由不同的界面显示,每个同学显示结果的形式应尽量不同。 5、考核 根据学生实现程序功能多少(40分)、界面设计情况(20分)、课程设计报告撰写情况(20)、答辩情况(20分)进行考核。雷同者应重做。 6、课程设计报告内容 1)课程设计题目 2)课程设计的目的3)程序功能介绍 4)程序界面设计与控件属性设置 5)程序代码编写 6)程序演示(将运行过程用截图方式截下来,并对输入数据、输出的结果进行适当说明) 7)课程学习与课程设计心得体会 7、上交材料 本次课程设计以小班为单位上交如下资料: 1)光盘:每一小班建立一个目录(专业年级班级),在此目录下建立每个同学的目录(学号姓名),在每个同学的目录下保存该同学的电子版的课程设计报告、打包的程序。 2)纸制版的课程设计报告 《Windows 程序设计实践》 总结报告 班 级:-----------------姓 名:-----------------学 号:-------------------任课教师:-------------------- 一、功能介绍 1.用户验证。 用户通过系统登陆窗体输入相应的账户和密码,通过验证的用户可以使用学生信息管理系统,如果以普通用户(学生),只具有“信息查询”、“在线考试”子系统以及“窗口”、“帮助”菜单的使用权限;如果以管理员的身份登陆,则增加代码维护和学生信息输入的功能,即显示全部菜单。2.代码维护。 代码维护是指管理员通过系统界面对数据库中的表进行增删改的操作,由管理员定期进行维护。此系统包括数据库中的四个表分别是学院(Tbl_Dep)、专业(Tbl_Sep)、民族(Tbl_Nation)、课程(Tbl_Project)和操作员(Tbl_User)进行维护。3.学生信息。 在主界面“学生信息”菜单栏中,可选择学生信息输入和学生信息查询。在学生信息输入窗口可以添加和删除学生信息,并进行上一条和下一条的单页浏览;在学生信息查询窗体,用户可以筛选查询条件,进行精确查询或模糊查询。4.在线考试。 在线考试窗体中,开始考试后,系统可以从“试卷”文件中读取考试题目,并开始计时,学生可以选择答案,考试结束后系统将输出考生做出的答案。5.成绩管理。 在主界面“成绩管理”菜单栏中,可选择成绩录入和成绩统计,特别指出,只拥有学生权限的用户只能进行成绩统计而无法进行成绩录入。成绩录入窗口可以为某学生某科的平时成绩和考试成绩,系统将自动计算总评成绩并存入数据库;成绩统计窗口,会将学生的将每个学生总评成绩的最低分、最高分、平均分以及总分显示在界面中。 二、补充功能 1.图表 (1)界面截图 (2)核心代码 Private Function getArrayData()As SeriesCollection e1.YValue = Convert.ToInt32(mydt.Rows(i)(1).ToString())'每元素 Dim SC As New SeriesCollection()Dim mydt As New DataTable(“Student”)Dim mydr As DataRow Dim i As Integer mydt.Columns.Add(New DataColumn(“学生”, GetType(Integer)))mydt.Columns.Add(New DataColumn(“最低分”, GetType(Integer)))mydt.Columns.Add(New DataColumn(“最高分”, GetType(Integer)))mydt.Columns.Add(New DataColumn(“平均分”, GetType(Integer)))For i = 1 To stu mydr = mydt.NewRow()mydr(0)= i Randomize()mydr(1)= CInt(ds.Tables(0).Rows(i1).Item(2))mydr(3)= CInt(ds.Tables(0).Rows(i1 Dim e1 As New Element()e1.Name = ds.Tables(0).Rows(i).Item(0)的大小数值 s1.Elements.Add(e1)Next For i = 0 To mydt.Rows.Count1 Dim e1 As New Element() e1.Name = ds.Tables(0).Rows(i).Item(0) e1.YValue = Convert.ToInt32(mydt.Rows(i)(3).ToString())素的大小数值 s3.Elements.Add(e1)Next SC.Add(s1)SC.Add(s2)SC.Add(s3)Return SC End Function '每元'每元2.代码维护 本学期实验已经将“学院”、“专业”、“民族”、“课程”和“操作员”四个表的代码维护,下面以“专业代码维护”为说明:(1)界面截图 (2)核心代码 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click '----------------------------确定学院代码 Dim depid As String = “" If ComboBox1.Text <> ”“ Then conn.Open()Dim mtdep_s As String mtdep_s = ”select S_DepartmentID from Tbl_Dep where S_Department='“ + ComboBox1.Text + ”'“ Dim mtdep_comm As New SqlCommand(mtdep_s, conn)dr = mtdep_comm.ExecuteReader()While dr.Read depid = dr.Item(0)End While dr.Close()conn.Close()End If If Button1.Text = ”更 新“ Then Button1.Text = ”保 存“ TextBox1.Enabled = True TextBox2.Enabled = True ComboBox1.Enabled = True Else conn.Open() Dim s_comm As New SqlCommand(”select S_SpecialtyID from Tbl_Spe where S_SpecialtyID='“ + TextBox1.Text + ”'“, conn) If s_comm.ExecuteScalar()Then If MsgBox(”已有相同编号的信息存在!是否更新信息?“, vbYesNo + vbQuestion, ”提示“)= vbYes Then Dim up_s As String = ”update Tbl_Spe set S_Specialty='“ + TextBox2.Text + ”',S_DepartmentID='“ + depid + ”' where S_SpecialtyID='“ + TextBox1.Text + ”'“ Dim up_comm As New SqlCommand(up_s, conn) up_comm.ExecuteNonQuery()MsgBox(”修改数据成功!“)End If Else If MsgBox(”是否确认保存新信息?“, vbYesNo + vbQuestion, ”提示“)= vbYes Then Dim sa_s As String = ”insert into Tbl_Spe values('“ + TextBox1.Text + ”','“ + TextBox2.Text + ”','“ + depid + ”')“ Dim sa_comm As New SqlCommand(sa_s, conn) sa_comm.ExecuteNonQuery()MsgBox(”保存数据成功!“)End If End If conn.Close()Button1.Text = ”更 新“ TextBox1.Enabled = False TextBox2.Enabled = False ComboBox1.Enabled = False '--------------------------'重新加载datagridview conn.Open()Dim mtspe_s As String mtspe_s = ”select * from Tbl_Spe“ Dim mtdspe_comm As New SqlCommand(mtspe_s, conn)dr = mtdspe_comm.ExecuteReader()dt = New DataTable()dt.Load(dr)DataGridView1.DataSource = dt conn.Close()End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.Click If MsgBox(”是否删除该条记录?“, vbYesNo + vbQuestion, ”提示“)= vbYes Then conn.Open() Dim del_s As String = ”delete from Tbl_Spe where S_SpecialtyID='“ + TextBox1.Text + ”'“ Dim del_comm As New SqlCommand(del_s, conn) del_comm.ExecuteNonQuery()MsgBox(”成功删除该记录!“)conn.Close()End If '--------------------------'重新加载datagridview conn.Open() Dim mtspe_s As String mtspe_s = ”select * from Tbl_Spe" Dim mtdspe_comm As New SqlCommand(mtspe_s, conn) dr = mtdspe_comm.ExecuteReader()dt = New DataTable()dt.Load(dr) DataGridView1.DataSource = dt conn.Close()End Sub End Class 三、实验收获 1.VB.NET技能的提高。 首先,是对至今以来所学习的VB.NET的综合使用。将对输入数据的有效控制,闰年的判断,下拉框之间的限制选择,图片控件的选择和保存,文件的读写,计时器的使用等,在本次实践中训练自己在不同情况下使用哪种控件的意识,为以后系统开发设计打下基础。 其次,本次实践学习了关于ADO与数据库的技术,对Command,Datareader,Dataset等的了解加深了,并能够在试验中综合使用。2.收获界面设计注意事项。 首先,是界面的一致性,在设计系统时,可能不同的功能需要不同的窗体,如果每个窗体的总体设计不能一致,不但不利于编程者的编程工作,也给用户的使用造成不便,因为用户很有可能对每个窗体的使用方法无法记全记清,因此会降低用户对系统的满意度。 其次,是界面的简洁性,如果一个界面(或者一个窗体)包含的信息十分繁多,应用组合框进行分类放置,如果没有进行有效放置,用户常常会因为寻找一个信息的输入框而浪费不必要的时间,同时如果包含的信息量不多,则应尽量使界面呈现在用户面前的时候十分简洁明了。 最后,是界面的人性化设计,既要美观又要符合用户的使用习惯。比如,按钮控件应尽量设置在右边,符合人手使用习惯;还有,应尽量让用户进行选择而不是敲击键盘。美观方面,颜色不应五花八门,一些个性化的小图标能提高用户的满意度。第四篇:VB程序设计课程设计
第五篇:Windows 程序设计实践之总结报告