C小型数据库课程设计.doc_第1页
C小型数据库课程设计.doc_第2页
C小型数据库课程设计.doc_第3页
C小型数据库课程设计.doc_第4页
C小型数据库课程设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+高级程序语言课程设计数据库08光信息科学与技术2班郎海涛学号:0801050211222010/6/8目录一、课程设计的意义和任务21.1.设计的意义21.2.设计的任务3二、课程设计的工具32.1.设计的专用软件32.2.设计辅助工具3三、课程设计的详细步骤43.1.创建一个新的project43.2.编辑对话框面板53.3.编辑各个键功能93.4.对程序进行调试17四、课程设计的成果18五、课程设计的成果的分析22六、心得体会22致谢23参考文献23C+高级程序语言课程设计数据库一、 课程设计的意义和任务1.1. 设计的意义数据库是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。它通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言,实用程序以及数据库管理系统。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这些数据为多个应用服务,独立于具体的应用程序。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据库管理系统是一种系统软件,它的主要功能是维护数据库并有效地访问数据库中任意部分数据。对数据库的维护包括保持数据的完整性、一致性和安全性。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库是计算机科学中发展最快的领域之一。数据库系统的出现是计算机应用的一个里程碑,它使得计算机应用从以科学计算为主转向以数据处理为主,并从而使计算机得以在各行各业乃至家庭普遍使用,使大批数据的更新、保存、交流等变得方便,数据的查询、检索等操作也变得更加容易。1.2. 设计的任务任务:用Microsoft Visual C+ 6.0在MFC环境下编辑一个小型数据库,能进行数据的简单更新、保存、查询等操作。二、 课程设计的工具2.1. 设计的专用软件设计专用软件:Microsoft Visual C+ 6.0Microsoft Visual C+,(简称Visual C+、MSVC、VC+或VC)微软公司的C+开发工具,具有集成开发环境,可提供编辑C语言,C+以及C+/CLI等编程语言。VC+整合了便利的除错工具,特别是整合了微软视窗程式设计(Windows API)、三维动画DirectX API,Microsoft .NET框架。Visual C+以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。2.2. 设计辅助工具设计辅助工具:Visual Assist XVisual Assist X是一款非常好的Microsoft Visual Studio 2005和Visual Studio .NET插件,支持C/C,C,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等,具有强大的编辑特色,有助于提高开发过程的自动化和开发效率。三、 课程设计的详细步骤3.1. 创建一个新的project启动Microsoft Visual C+ 6.0 新建一个MFC AppWizard工程,如图三-1,图三-2和图三-3。 三1 新建一个MFC工程 三2 创建一个基本对话框三3 对话框3.2. 编辑对话框面板i. 添加删除控件。先删除无用的初始控件,然后在控件工具栏中选择相应的控件添加到对话框的面板上,并对这些按钮、编辑栏等进行布局。如图三-4。 三4 对话框面板的编辑1ii. 对各个控件进行修改属性。右键点击要修改的控件 选择属性 对其ID、标题等进行相应修改。如图三-5三5 修改控件属性三6 修改完成的对话框面板iii. 对编辑框进行变量关联。右键点击要修改的编辑框 选择建立类向导 选择Member Variables 然后对各个编辑框关联相应变量。如图三-7和图三-8。三7 关联变量三8 关联好的变量注:3.3. 编辑各个键功能双击要编辑的按键,进入代码编辑,在每个键输入相应的指令代码。a) 打开(OnButOpen):CFileDialog dlg(TRUE);CStdioFile file;if (IDOK=dlg.DoModal()str=dlg.GetPathName();file.Open(str,CFile:modeRead| CFile:typeText);while(file.ReadString(str)CString line;CString line1;CString line2;CString line3;int iLeft = 0;/保存”$”的位置int iRight = 0;/保存”*”的位置iLeft=str.Find($);iRight=str.Find(*);line1=str.Left(iLeft);line3=str.Right(str.GetLength()-iRight-1);line2=str.Mid(iLeft+1,iRight-iLeft-1);m_aDatas.Add(line1);m_aDatas2.Add(line2);m_aDatas3.Add(line3);file.Close();b) 输入(OnButInput):UpdateData(TRUE);if (!=m_sData|!=m_sData2|!=m_sData3)m_aDatas.Add(m_sData);m_aDatas2.Add(m_sData2);m_aDatas3.Add(m_sData3);m_sData=;m_sData2=;m_sData3=;UpdateData(FALSE);elseMessageBox(输入内容不能为空!);c) 查找(OnButSearch):UpdateData(TRUE);m_sData=;m_sData2=;m_sData3=;UpdateData(FALSE);if (m_iNum0)if (m_iNum-1m_aDatas.GetSize()|m_iNum-1m_aDatas2.GetSize()|m_iNum-1m_aDatas3.GetSize()m_sData=m_aDatas.GetAt(m_iNum-1);m_sData2=m_aDatas2.GetAt(m_iNum-1);m_sData3=m_aDatas3.GetAt(m_iNum-1);UpdateData(FALSE); else/m_sData=查找超出范围!;/UpdateData(FALSE);MessageBox(查找超出范围!); elseMessageBox(请输入大于1的整数);d) 修改(OnButRecover):UpdateData(TRUE);if (m_iNum-1m_aDatas.GetSize()m_aDatas.SetAt(m_iNum-1,m_sData);m_aDatas2.SetAt(m_iNum-1,m_sData2);m_aDatas3.SetAt(m_iNum-1,m_sData3);e) 删除(OnButDel):UpdateData(TRUE);if (m_iNum-1m_aDatas.GetSize()for(int i=0;im_aDatas.GetSize();i+)if (m_iNum-1!=i)m_tempData.Add(m_aDatas.GetAt(i);m_tempData2.Add(m_aDatas2.GetAt(i);m_tempData3.Add(m_aDatas3.GetAt(i);m_aDatas.RemoveAll();m_aDatas2.RemoveAll();m_aDatas3.RemoveAll();for( i=0;im_tempData.GetSize();i+)m_aDatas.Add(m_tempData.GetAt(i);m_aDatas2.Add(m_tempData2.GetAt(i);m_aDatas3.Add(m_tempData3.GetAt(i);m_tempData.RemoveAll();m_tempData2.RemoveAll();m_tempData3.RemoveAll();f) 保存(OnButSave2):CFileDialog dlg(FALSE);/CString str;CStdioFile file;if (IDOK=dlg.DoModal()str=dlg.GetPathName();file.Open(str,CFile:modeCreate);file.Close();file.Open(str,CFile:modeWrite);for (int i=1;i-10)m_sData=;m_sData2=;m_sData3=;UpdateData(FALSE);if (b-1m_aDatas.GetSize()|b-1m_aDatas2.GetSize()|b-1m_aDatas3.GetSize()m_sData=m_aDatas.GetAt(b-1);m_sData2=m_aDatas2.GetAt(b-1);m_sData3=m_aDatas3.GetAt(b-1);m_iNum=b;UpdateData(FALSE); else/m_sData=查找超出范围!;/UpdateData(FALSE);MessageBox(查找超出范围!); elseMessageBox(已是最前一名同学的成绩,查找超出范围,请重新输入!);i) 下一个(OnBUTnext):UpdateData(TRUE);int a;int b;a=m_iNum;b=a+1;if (b-1m_aDatas.GetSize()m_sData=;m_sData2=;m_sData3=;UpdateData(FALSE);if (b-1m_aDatas.GetSize()|b-1m_aDatas2.GetSize()|b-1m_aDatas3.GetSize()m_sData=m_aDatas.GetAt(b-1);m_sData2=m_aDatas2.GetAt(b-1);m_sData3=m_aDatas3.GetAt(b-1);m_iNum=b;UpdateData(FALSE); elseMessageBox(查找超出范围!); elseMessageBox(已是最后一名同学的成绩,查找超出范围,请重新输入!);3.4. 对程序进行调试在编程过程中错误是总归会有的,因此对程序进行调试是必不可少的,在调试过程中要求调试仔细认真。所谓程序调试,就是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。第一步,用编辑程序把编制的源程序按照一定的书写格式送到计算机中,编辑程序会根据使用人员的意图对源程序进行增、删或修改。 第二步,把送入的源程序翻译成机器语言,即用编译程序对源程序进行语法检查并将符合语法规则的源程序语句翻译成计算机能识别的“语言”。如果经编译程序检查,发现有语法错误,那就必须用编辑程序来修改源程序中的语法错误,然后再编译,直至没有语法错误为止。 第三步,使用计算机中的连接程序,把翻译好的计算机语言程序连接起来,并扶植成一个计算机能真正运行的程序。在连接过程中,一般不会出现连接错误,如果出现了连接错误,说明源程序中存在子程序的调用混乱或参数传递错误等问题。这时又要用编辑程序对源程序进行修改,再进行编译和连接,如此反复进行,直至没有连接错误为止。 第四步,将修改后的程序进行试算,这时可以假设几个模拟数据去试运行,并把输出结果与手工处理的正确结果相比较。如有差异,就表明计算机的程序存在有逻辑错误。如果程序不大,可以用人工方法去模拟计算机对源程序的这几个数据进行修改处理;如果程序比较大,人工模拟显然行不通,这时只能将计算机设置成单步执行的方式,一步一步跟踪程序的运行。一旦找到问题所在,仍然要用编辑程序来修改源程序,接着仍要编译、连接和执行,直至无逻辑错误为止。 四、 课程设计的成果通过一段时间的设计和编程,初步完成了设计任务。设计出成绩查询系统软件能完成打开一份数据并对其进行查询、修改、删除、记录、保存等功能。其功能展示如下 成绩查询系统的主界面,如图四-1。四1 成绩查询系统主界面 打开成绩数据记录文件,如图四-2。四2 打开数据 查询对应学号的成绩(输入学号 点击查询,即可查询相应数据,查询上一个或者下一个可点击主界面上的“上一个”或“下一个”),如图四-3。四3 查询数据 修改对应学学号的成绩(在“姓名”、“学号”、“分数”栏输入要修改的数据 点击修改,就可完成修改功能),如图四-4。四4 修改数据 输入新的数据(在“姓名”、“学号”、“分数”栏输入要输入的数据 点击输入,就可完成新数据的输入),如图四-5四5 输入数据 保存修改后的数据(点击保存 选择保存的路径和文件名再点击保存,即可完成修改后数据的保存),如图四-6。四6 保存数据五、 课程设计的成果的分析这次的设计成果大体上满足了课程设计的要求,并在这些功能上进行了一些优化和延伸,使软件各个功能的执行基本上没有BUG的存在。虽然取得了一定的成果,但不足之处还是有许多的,对于软件界面和功能的完善还有很长的路要走,就现在该软件拥有的功能来说,每个功能都还有不同的缺陷存在。如“保存”功能并不是很完善,并没有做到打开文件修改过后能直接存为那文件,而每次都得选择路径和文件名才能保存;“查询”功能也不完善,只能查询学号而不能根据其他信息查询,且当输入信息的学号顺序混乱时就根本不能对应查询。总而言之,该程序要完善的东西还很多,还需要自我扩充知识,然后细心谨慎的来解决。六、 心得体会这次本次课程设计的程序代码虽然简单,但细心还是相当重要的,不然代码输入的一些小错误,而导致程序运行出错是很麻烦的。然而编程中存在错误是必然的,因此如何最快的查出错误是快速有效的编程所必须掌握的技巧。在这次设计中,在不断的练习实践中根据熟练了调试程序查询错误的方法。调试是一个繁琐而必不可少的过程,但调试的过程中你必须保

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论