当前位置:文档之家› C++课程设计报告

C++课程设计报告

郑州工业应用技术学院课程设计说明书

题目:作业处理系统

姓名:蔡阳阳

院(系):信息工程学院

学号:计算机科学与技术一班

学号: 1401110107

指导教师:张吉同

成绩:

时间:2015年 11 月 14 日至2015年 12 月 4 日

郑州工业应用技术学院

课程设计任务书

题目作业处理系统

专业、班级 14级计算机科学与技术一班学号1401110107姓名蔡阳阳主要内容:

1.简单的系统与功能分析

2.进行系统需求与功能分析,画出功能模块图。

3.能综合运用所学知识,设计简易信息管理系统。

4.通过本次课程设计,进一步掌握和巩固所学的数据结构、程序结构、流程控制语句、数

组、函数、指针、结构体、链表等知识。

5.熟悉编写比较复杂程序的步骤。

基本要求:

(1)数据维护:学生作业数据要以文件的形式保存,能实现学生成绩数据的维护。

需实现的功能包括:增加学生作业数据、删除学生成绩数据、修改学生作业成绩数据(2)查询:完成按学生姓名和按学号两种查询。

(3)统计:输入任意的一个作业的名称和一个分数段(如60--70),统计出在此分数段的学生情况。

(4)排序:能对用户指定的任意题目名,按成绩升序或降序排列学生数据并显示排序结果。(5)软件需有文本菜单界面。

主要参考资料等:

吴乃陵, 况迎辉.C++课程设计. 北京:高等教育出版社,2006

谢昕,刘觉夫,王更生.C++程序设计.北京:北京邮电大学出版社,2008

郑莉董渊何江舟 C++语言程序设计(第四版)[M].北京:北京大学出版社,2010.7

完成期限:

指导教师签名:

课程负责人签名:

年月日

摘要

随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸劳动方面发挥越来越重要的作用,不仅咋商业、企业、银行等起着重要作用,而且在日常生活中国也越来越来离不开计算机。就像在大学,有很多学生信息需要处理、保存。以及提供优质的服务,此事计算机显得尤为重要。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识。作为计算机应用的一部分,使用计算机对学生作业信息进行管理,有着手工管理所无法比拟的有点。所以,现今大部分大学都使用了计算机来规划整个学生信息、提供选课、网络教学等。

学生作业处理系统能方便用户迅速、准确处理学生作业,给出评分评价,得到想要的数据并能将学生的信息以文档的形式保存,以供使用时调出。本文介绍了简易学生的作业处理系统在Microsoft Visual C++ 6.0环境下的实现过程:系统的分析、功能模块的设计、系统的调试和测试。此系统的主要管理信息:学生的班级、学生的学号、学生的作业情况、作业评分。本系统的主要功能有:输入数据、显示所有的数据、按成绩降序排列、查找并显示一组数据、插入一组数据、修改一组数据、删除一组数据、从文件中读取数据、将所有记录写入文件、退出本系统。

关键字:学生成绩处理、VC++、MFC、控件

目录

第一章绪论....................................................

1.1 前言....................................................

1.2 关于Visual C++的发展....................................

1.3 Visual C++的应用前景......................................第二章总体设计 ...............................................

2.1功能需求分析.............................................

2.2 功能结构图 ..............................................

2.3程序流程图............................................... 第三章详细设计 ...............................................

3.1. Main函数...............................................

3.2 类teacher ...............................................

3.3类students ..............................................

3.4类information ........................................... 第四章功能测试及运行效果......................................

4.1 主界面 ..................................................

4.2 教师管理界面 ............................................

4.3 学生登录界面 ............................................

4.4 信息管理界面 ............................................ 第五章工作总结 .............................................. 参考文献 ......................................................

第一章绪论

1.1 前言

随着Windows操作系统的崛起,传统的面向控制台的字符软件开发向面向窗口程序的可视化编程的转化已成必然趋势。而Visual C++正是Windows环境下最强大、最流行的程序设计语言之一。

Visual C++支持面向对象的程序设计方法(OOP:Object Oriented Programming),支持MFC(Microsoft Foundation Class)类库编程,有强大的集成开发环境Developer Studio (其中包括了程序自动生成向导AppWizard、类向导Class Wizard和各种资源编辑器,以及功能强大的调试器等可视化和自动化编程辅助工具)。Visual C++可用来开发各种类型、不同规模和复杂程度的应用程序,开发效率很高,生成的应用软件代码品质优良。这一切使得Visual C++成为许多专业程序开发人员的首选。

然而,Visual C++一向有“难学”的恶名,许多初学者视学习Visual C++为畏途。究其原因,一方面是Visual C++(包括MFC类库)的规模庞大,结构复杂,难于理出一条循序渐进的学习路线;另一方面是其AppWizard自动生成的程序专业化程度高,代码量大,结构复杂,以之为基础编写的例题程序难于为初学者理解和掌握。因此,坊间的Visual C++教科书多是为已有C语言或C++语言编程基础的人准备的,起点较高。

本书是Visual C++入门教科书,适用于非计算机专业理、工、管类学生的程序设计能力培养。为了克服上述困难,使基础不高的初学者也能很快地掌握程序设计方法,我们在确定教学目标、设计教学模式、编写教程内容等方面进行了一系列革新探索,以现代教育理论为指导,多媒体教学手段为基础,提出了“精讲多练”的教学模式。使用“精讲多练”模式进行Visual C++这类程序设计语言课程的教学,效果很好。

本教程的目标是使学生掌握使用Visual C++设计应用程序的基本技能,了解面向对象的和结构化的程序设计方法,能够编写、调试和运行实用、规范、可读性好的Visual C++程序。不象其他Visual C++教材需要学习者具有一定的程序设计基础(如学过C语言或C++语言),本教程设计为“从零开始”,不要求学生有程序设计方面的先修课程。但在在学习本课程时,学生最好对计算机的使用有一定了解(如学习过“计算机文化基础”课程,了解Windows 的使用,具有键盘操作和文件处理的基础)。

我们在设计本教程内容时,以面向对象的和结构化的程序设计方法的思想贯穿全书,并以大量篇幅介绍了Visual C++程序的调试技术和一些典型应用程序的设计思路,其中有些是作者在长期的编程和教学实践中摸索和总结出来的心得。

本教程共分16个单元,分别对应16个教学重点。这16个教学重点又可分为两组:前8单元处理C++的基本内容,包括控制结构、基本数据类型、表达式、函数、指针和引用,以及类与对象的基本概念和封装、继承和多态性等面向对象程序设计的基础理论。在学习了这些内容之后,学生应能编写、调试和运行一般规模和难度的控制台类应用程序(如数值计算类程序),并对面向对象的和结构化的程序设计方法有所了解,为编写较大规模的应用程序

打下基础。后8单元处理Windows编程技术,包括消息传递机制、MFC应用程序框架、设备环境、资源、文档/视图结构、对话框和控件等。在这一部分中,强调对基本概念的理解和掌握,以及在理解和掌握的基础上编写具有较复杂的窗口界面的Windows应用程序的能力。

为了便于教学,每个单元均按以下主题进行组织:

·教学目标和学习要求:本书的特点是“精讲多练”,因此为教师和学生规定明确的教学和学习目标是非常重要的。

·授课内容:是建议教师课堂讲授的内容。一般来说,授课内容是本单元所有教学内容的“纲”,起着联系本单元所有项目的作用。授课内容部分的份量按2学时组织。第1单元的授课内容份量略轻,这是因为在第1单元的授课时间中还应划分出部分时间用于介绍编辑、调试和运行应用程序项目的基本步骤(见第1单元的“调试技术”)。

·自学内容:“自学内容”和“授课内容”部分一起组成了一个单元的基本教学内容。这部分内容通常都是“授课内容”的延伸和继续,由学生在课外时间自学。必须强调的是自学部分并非不重要,也不能省略。一般来说,教师应在授课时间内抽出10~20分钟对自学内容和调试技术略作导引,以便利学生自学。

·调试技术:介绍Developer Studio集成开发环境的使用方法,以及如何调试、连接和运行Visual C++应用程序项目。强调编程实践是本书的重要特色。第1单元的调试技术中的部分内容可以在授课时间讲授,其他单元的调试技术一般由学生自学,同时也可以作为学生上机的实验指导书。辅导教师在带学生上机时应对这些内容进行现场辅导。

·程序设计举例:为了补充授课内容和自学内容部分的例题,我们设置了程序设计举例栏目。本栏目所有例题均与本单元的授课、自学或调试技术等部分的内容密切相关,是学生学习和复习本单元内容的重要参考资料。

·单元上机练习题目:每个单元均配有若干上机练习题目,供学生上机练习。“精讲多练”式教学方法的基本特点是上机时数较多,所以这部分的习题工作量较大,因此在上机时数不足的情况下可以酌情选做若干题目。

为了保证教学效果,在条件许可的情况下授课最好在多媒体教室进行。在这种情况下,每个教学单元可使用连续的4课时,首先由教师讲解授课部分并对自学部分和调试技术等内容进行简短的指导(共2学时),然后学生即可在教师指导下上机练习(2学时)。除此而外,如果能够提供一定数量的课外机时(如20~30小时)则更好。

近年来,我中心在计算机基础教育的理论和实践等方面进行了一系列探索和革新,其成果(“精讲多练”的教学模式是其中之一)荣获了1997年度国家级教学成果一等奖。这些成果都是在冯博琴教授的领导下完成的,本课程的建设也不例外。本教程的构思和编写得到了冯博琴教授的多方指导,并由他审核了书稿,在此向冯老师表示深深的谢意。在本书编写过程中,曾与李波、罗建军、卫颜俊、杨琦、吕军和张伟诸同事进行了多次交流,受益匪浅。以上同事还提供了一些有用的材料;杨琦同志为本书绘制了部分插图,在此一并表示感谢。由于作者学识浅陋,编写时间仓促,书中错误在所难免。希望读者不吝指教。

1.2 关于Visual C++的发展

Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)微软公司的C++开发工

具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软视窗程序设计(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2008。

Visual C++ 1.0,集成了MFC 2.0,是Visual C++第一代版本,1992年推出,可同时支持16位处理器与32位处理器版,可算是Microsoft C/C++ 7.0的更新版本。 Visual C++ 1.5,集成了MFC 2.5,增加了“目标文件链接嵌入 (OLE)2.0 和支持MFC的开放式数据库链接(ODBC)。这个版本只有16位的,也是第一个以CD-ROM为软件载体的版本。这个版本也没有所谓“标准版”。它是最后一个支持16位软件编程的软件,也是第一个支持基于x86机器的32位编程软件。 Visual C++ 2.0,集成了MFC 3.0,第一个只发行32位的版本。这个版本提前发行了,几乎成了一个“丢失的版本”。这是因为那个时候 Windows 95(开发代码为"Chicago")还没有发行,而Windows NT又只占有很小的市场份额。该版本用户可以通过微软公司的订阅服务(Microsoft Subscription Service)升级至2.1和2.2版本。微软公司在这个版本中集成并升级了Visual C++ 1.5,作为2.0版本(Visual C++ 1.5升级后版本号:1.51)以及2.1版本(Visual C++ 1.5升级后版本号:1.52)的一部分。Visual C++ 2.x附带了16位和32位版本的CDK,同时支持Win32s的开发。Visual C++ 2.2及其后续版本不再升级Visual C++ 1.5(尽管它一直被集成至Visual C++ 4.x)。尽管出生的比Windows 95早,这个版本的发行日期还是非常接近Windows 95,可是当Windows 95发行时, Visual C++ 4.0也已经发行了。因此很多程序开发者直接从1.x过渡到4.0,把2.x跳过去了。 Visual C++ 4.0,集成了MFC 4.0,这个版本是专门为Windows 95以及Windows NT设计的。用户可以通过微软公司的订阅服务(Microsoft Subscription Service)升级至4.1和4.2版本(此版本不再支持Win32s开发)。 Visual C++ 5.0,集成了MFC 4.21,是4.2版以来比较大的一次升级。 Visual C++ 6.0,集成了MFC 6.0,于1998发行。发行至今一直被广泛地用于大大小小的项目开发。但是,这个版本在Windows XP下运行会出现问题,尤其是在调试模式的情况下(例如:静态变量的值并不会显示)。这个调试问题可以通过打一个叫“Visual C++ 6.0 Processor Pack”的补丁来解决。奇怪的是,这个网页强调用户也必须运行Windows 98、Windows NT 4.0、或Windows 2000。 Visual C++ .NET 2002(也即Visual C++ 7.0),于2002年发行,集成了 MFC 7.0,支持链接时代码生成和调试运行时检查。这个版本还集成了Managed Extension for C++,以及一个全新的用户界面(与Visual Basic和Visual C#共用)。这也是为什么Visual C++ 6.0仍然被广泛使用的一个主要原因。 Visual C++ .NET 2003(也即 Visual C++ 7.1),集成了MFC 7.1,于2003年发行,是对Visual C++ .NET 2002的一次重大升级。 eMbedded Visual C++,用于Windows CE操作系统。Visual C++作为一个独立的开发环境被Microsoft Visual Studio 2005所替代。 Visual C++ 2005(也即Visual C++ 8.0),集成了MFC 8.0,于2005年11月发布。这个版本引进了对C++/CLI语言和OpenMP 的支持。 Visual C++ 2008(也即Visual C++ 9.0),于2007年11月发布。这个版本支持.NET 3.5,是目前最新的版本。 Visual C++ 2010(也即 Visual C++ 10.0),将于2009至2010年间发布。目前仍在开发中,Visual C++开发团队考虑使用SQL Server Compact格式的数据库来存储源码的相关信息[1]. 本版也加入了现代化的C++并行计算库-Parallel Patterns Library,部分支持C++0x。本版建构于.NET 4.0之上,但仍支持机器码的编译。

.net是一个微软的平台,它集成了微软VC++,VB,VC#等语言。实际上它对c#的支持是最好的。VC++.net就是VC++,只不过某些功能是VC++6.0的改进,比如加入了托管运行库之类的。VC#.net就是c#语言的环境。这你可以进行vs环境的设置。你会发现vs中的vc++环境和经典的vc++6.0差不多。所以说vc++.net就是vc++6.0的升级版本,也就像windows vista 和xp的关系一样。visual studio 的最新版本就是现在的visual studio 2008,以前有过visual studio 6.0,visual studio 2002,visual studio 2003和visual studio 2005。你可以看看微软的visual studio的介绍。所以别把vs2008看得多么神秘,它只不过是最新版的Microsoft windows 编程工具,同以前的微软编程工具一样。

mfc是一个类库,microsoft foundation class library,你只要懂得面向对象的相关知识,这东西就会挺容易理解的。如果你学过c#或java吧,那你就不用怕了,不然你就再了解一下面向对象吧。这样你才会真正弄懂VC++。

倘若你真的想用VC++写windows应用程序,那建议你还是用VC++6.0吧。因为毕竟VS200X 之类的主要是用于C#的,毕竟现在java是第二大语言啊,c#与java是十分相似的,所以微软现在极力发展C#,c#的确也强大,是一门具有极大潜力的语言啊。

控件的拖动是为了方便用户写程序,提高效率,实际上高手控件都是自己用代码写出来的--用MFC里的库函数,因为这样的控件功能不会受限。

1.3 Visual C++的应用前景

我们来谈谈应用VC++从底层开发GIS系统的应用前景和优缺点。实际上,目前比较流行的一些GIS系统专业开发工具很多都是用C++开发完成的。尤其是应用VC++开发以信息管理、决策服务及设计为主的实际GIS系统时,具有良好的应用前景。

(1)优点

①较强的灵活性。灵活性是利用VC++开发GIS系统的最大优点,因为系统的所有流程和数据都可以在设计者的控制之下,可以根据系统的具体要求实现具体的操作功能,在一些GIS (特别是小型GIS系统)系统开发时,具有无可比拟的优势。它可以根据系统的需要来实现功能,设计的系统短小精悍,软硬件要求低,运行速度快。

②易于扩展成各种系统。

③有系统的版权。开发者自身具有系统版权,在一些行业的大规模推广中具有无可比拟的优势。

(2)缺点

①开发有一定困难且开发量大。用VC++开发GIS系统时,因为各种技术需要从底层进行开发,出发点低,需要较高的开发技术和很大的开发量,要开发完成一个满足实用要求的二维矢量图形系统,所需要的开发量已经非常可观,如果再考虑实现三维的、处理数模等操作功能,其开发量更大。开发出的矢量图形平台要经过反复修改调试,在短时间内可能无法与成熟的GIS系统开发工具提供的平台相媲美。

②开发连续性难以得到保证。目前在国内进行的软件开发项目,往往受到商业利益的驱使,只是短期行为。

③对开发人员的素质要求高。用VC++开发GIS系统,需要有较强的设计思想、强大的数据和流程控制能力和良好的协作精神。

第二章总体设计

2.1功能需求分析

学生作业管理及查询系统由教师管理和学生查询两大块功能。

一、教师管理功能:

教师注册,教师注册后能实现教师对学生数据的后台控制。

教师登录:实现一次注册永久使用。

学生作业信息管理:实现对学生信息的增删改查。

二、学生查询功能:

查询自己的作业情况及作业评分。

查询自己的所有作业的综合评分。

2.2 功能结构图

2.3程序流程

第三章详细设计

3.1. Main函数

#include

#include

#include

#include

Choice();

Void main()

{

Choice();

}

3.2 类teacher

Class reacher //教师类,用来管理学生的作业

{

Public:

Teacher();

Void choice(int choice1); //对教师的选择进行相应操作Void Show_teacher_choice(); //显示教师可以选择的操纵Void teacher_register(); //教师注册

Void teacher_debark(); //教师登录

Void set_student_grade(); //设置学生的作业成绩

Void revise_student_grade(); //修改学生的作业成绩

Void delete_dtudent_grade(); //删除学生信息

Void show_all_student_grade(); //显示所有学生的作业成绩Void Bool Tpassworld(); //判断教师的密码是否正确Void save(); //保存学生的作业成绩

Void Tsave(); //保存教师的注册信息Protected:

Get_grade ssg;

String Tname[20]; //教师姓名存储数组

String Tppassworld[40]; //教师登录密码存储数组

Vectorgather; //学生作业成绩存储数组

int count; //记录学生总数

int Tcount; //记录教师注总数

bool judge; //判断教师登录或注册是否成功

};

3.3类 student

Class student

{

Public:

Student();

Void choice(int choice2); //对学生的选择进行相应的操作Void Show_student_choice(); //显示学生可以选择的操作

Void see_onetime_grade(); //显示某一次的成绩

Void see_all_grade(); //显示学生全部的成绩

Void see_sum_sort(); //查询学生的作业成绩排名

Protected:

Vectrgather; //学生成绩信息存储数组

int scont; //记录学生的总数

String numb; //用户的学号

String Name; //用户的姓名

Int n; //用户信息所在地址

};

3.4类student_information

Class get_grade

{

Public:

Get_grade(); //设置学生数据默认值(无参)

Get_grade(string num,string nam,

doube onetime,double all){}; //设置学生数据默认值(有参)Void getG(string num,string nam,

double onrtime,double all,); //用户自定义设置学生成绩String get_name(); //提供姓名接口

String get_number(); //提供学号接口

double get_onrtime(); //提供某次成绩的接口

double get_all(); //提供所用成绩的接口

Protected:

String number; //学生学号

String name; //学生姓名

double onrtime;

Double sum;

}

第四章功能测试及运行效果

4.1 主界面:

4.2 教师管理界面:

4.3学生登录界面

4.4 信息管理界面

第五章工作总结

经过一个学期的学习和上机实践,使我对C++语言有了更认识和和了解,要想学好它要重在实践,要通过不断的上机操作才能更好的学习它,通过实践,我也发现我的好多不足之处,对各种控制结构及语句、数组的基本与高级应用、指针数组、字符数组、动态数组、函数的定义、调用方式;函数在编程中的具体应用;以及变量存储特征与标识符的作用域,通

过实践,使我在这些方面有了认识和提高。课程设计它是一项任务,更是一种挑战和历练。在课程设计中,为了使用时方便,着重对不足方面的知识进行了分析与理解,在这一过程中对文件的操作有了很大的提高。通过实际的演练,可以增强对知识的理解和运用能力。

参考文献

[1]吴乃陵, 况迎辉.C++课程设计. 北京:高等教育出版社,2006

[2]谢昕,刘觉夫,王更生.C++程序设计.北京:北京邮电大学出版社,2008

[3] 郑莉董渊何江舟 C++语言程序设计(第四版)[M].北京:北京大学出版社,2010.7

课程设计成绩评定表

相关主题
文本预览
相关文档 最新文档