c++课设

来源:网络收集 时间:2025-04-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

第3章 课程设计总结

在科技日益发展的今天,计算机运用已经成为人们心目中不可缺少的部分,在社会生活中起着越来越大的作用。计算机以其计算速度快,准确,操作方便等特点,使其迅速在社会各个部门得以广泛运用,深受用户喜爱,特别是在信息管理方面,更是有着广阔的发展前景。

在课程设计中应用到了C++语言的很多内容,这不仅提高了我们对C++语言知识的进一步了解,也增强了我们自己动手动脑编写程序的能力,课程设计的要求严谨,不允许出现任何错误,使程序可以顺利的编完。第一次针对做具体情况的c++程序设计,缺乏实际经验。

课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。这次课设使我了解我编程思想和编程技巧,也认识了软件生命周期的各个环境,包括构思、设计、编写、调试、发布、文档化、维护和修订。编程的风格也很重要,同学只关心程序运行的结果,而对程序代码的结构的良好丝毫不在意。这是非常不可取的,如果我们希望将来从事编程工作,在这一点上该引起足够的重视。

做课设不仅让我修补了以前学习的漏洞,也让我知道一个道理:编程需要兴趣和实际动手。这应该可以借鉴在老师的教学工作上。创新思维至关重要,这不仅让我们写出精简的代码,也有助于开发出高效的程序。

最后该感谢帮助我的可爱的同学和师长,感谢在课程设计中对我辛勤指导的老师和帮助过我的同学们,没有你们的帮助我也无法顺利完成这次的课程设计任务。

13

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

参考文献

1.徐孝凯 编着.《C++语言程序设计》.北京:清华大学出版社:111-212 2.德常 主编.《C++程序设计教程》. 北京:国防工业出版社:43-56 3.王大伦 主编.《C++程序设计实用教程》. 北京:清华大学出版社:221-259 4.郑董渊 编着.《C++语言程序设计》. 北京:清华大学出版社:34-106 5.高俊文 编着.《C++程序设计》. 北京: 人民邮电出版社:79-106 6.谭浩强 主编.《C程序设计》. 北京:清华大学出版社:142-263 7.徐士良 主编.《C常用算法程序集》. 北京:清华大学出版社:23-56

8.张国峰 主编.《C++语言及其程序设计教程》. 北京:电子工业出版社:99-166 9.和克智 主编.《C++程序设计.》. 西安:西安交通大学出版社:32-56

10.柏路 主编.《C++面向对象的程序开发技术》. 北京:电子工业出版社:121-329

14

辽 宁 工 业 大 学

《C++语言程序设计》课程设计(论文)

题目: 学生选课系统

院(系): 软 件 学 院 专业班级:

起止时间:2010.12.20-2010.12.31

课程设计(论文)任务及评语

院(系):软件学院 教研室:网络教研室 学 号 课程设计(论文)题目 】 学生姓名 专业班级 学生选课系统 (1).掌握面向对象程序设计语言C++的基本语法 (2).掌握C++面向对象设计的思想 (3).掌握VC++6.0与DEV C++ 开发工具的使用 (4).运用标准C++规范设计应用程序 设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。 课程设计(论文)任务 指导教师评语及成绩 成绩: 指导教师签字: 年 月 日 辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

目 录

第1章 课程设计目的与要求 ........................................ 1

1.1 课程设计目的 ........................................................ 1

1.2 课程设计的实验环境 .................................................. 1 1.3 课程设计的预备知识 .................................................. 1 1.4 课程设计要求 ........................................................ 1

第2章 课程设计内容 .............................................. 2

2.1 C++语言程序设计------《学生选课系统》问题分析。 ..................... 2

2.1.1 功能分析 ...................................................... 2 2.1.2 算法设计及程序设计中技术重点 .................................. 2 2.2 程序中涉及的类的UML类图和主要函数流程图或框图。 .................... 4

2.2.1 系统的UML类 .................................................. 4 2.2.2 主要函数流程图 ................................................ 5 2.3 程序源代码 .......................................................... 6 2.4 程序运行结果 ....................................................... 11

第3章 课程设计总结 ............................................. 13 参考文献 ........................................................ 14

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

第1章 课程设计目的与要求

1.1 课程设计目的

将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:

(1)进一步巩固、加深学生所学专业课程《C++语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握面向对象程序设计的方法。

(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。

(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。 1.2 课程设计的实验环境

硬件要求能运行Windows 操作系统的微机系统。C++语言应用程序开发软件使用:VC++ 系统,或其他C++语言应用程序开发软件。 1.3 课程设计的预备知识

熟悉C++语言程序设计的基本知识及VC++编辑器的使用方法。 1.4 课程设计要求

1. 仔细分析设计题目,画出程序流程图,编写程序源代码。 2. 积极上机调试源程序,增强编程技巧与调程能力。 3. 认真书写课程设计预习报告,课程设计说明书。

4. 遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。对于综合课程设计根据题目要求做出系统分析与设计,包括:系统总体框架、系统功能模块、系统关键算法流程图等。对其相应部分的设计出相应的学时编写源程序代码;根据系统功能对系统提供的所有功能进行测试,并写出系统调试报告;由学生对本次综合课程设计做出个人总结。

1

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

第2章 课程设计内容

2.1 C++语言程序设计------《学生选课系统》问题分析。

随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的体育课信息管理系统来提高管理工作的效率。基于互联网的学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。 2.1.1功能分析

1. 学生选课系统

完成录入课程基本信息操作、浏览课程基本信息操作、课程基本信息操作、选修课程、修改选修课程、查找已选修的课程等功能的设计与实现。

主要功能的实现如下: (1)录入课程基本信息

系统将管理员输入新添加的课程息,插入在链表中。 (2)浏览课程基本信息

首先由管理员输入要删除课程的课程名,然后调用删除函数,删除该课程的资料。 (3)查找课程基本信息

首先由管理员输入要查找课程的课程名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的课程资料。

(4)修改

首先由管理员输入要修改的课程名,然后系统用修改函数查找,显示该课程的资料,然后系统提示用户输入需要修改的项目和新的资料。

(5)其他功能

在上述功能的基础上进行进一步完善。 2.1.2 算法设计及程序设计中技术重点

该程序采用的是结构体类型来处理学生选课的基本信息,如下所述。 1、算法设计方面:

2

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

本系统在算法方面采用了类的概念,其中有类的定义,结构体变量的定义和排序的算法等等,在排序模块利用了排序的某种方法,能够很稳定的对数据进行查找,在程序中还使用了函数的实参和形参的调用方法,来判断值是否重复。 本程序的技术重点在于: (1)学生类(student)的定义。

(2)学生信息结构体变量(studentrecord)的定义。 (3)课程类(course)的定义

(4)课程信息结构体变量(courserecord)的定义。

本系统还采用的数据存储模式,系统在该模式下对数据进行插入和修改,单链表模式的好处是节省存储空间,数据的连贯性好。

本系统的特点为存储的数据会生成外部的一个文件,让用户或管理员去调用这个文件实现插入、修改和查询的功能。 2、程序设计中的难点部分:

在程序设计的过程中,比较难设计的是功能抽象成类的过程,在本程序中包括了两个类,即student类和course类。

两个类都是将事务进行抽象和实现系统功能的类,抽象成了一个类,实现的基本特征的类。 2、派生类

如果需要,派生类可以从多个基类继承,也就是多重继承。通过继承,派生类自动得到了除基类私有成员以外的其它所有数据成员和成员函数,在派生类中可以直接访问,从而实现了代码的复用。

3、派生类是继承原有类的特性而生成的新类的名称。一个派生类可以同时有多个基类,这种情况称为多继承,这时派生类只有一个直接基类的情况,称为单继承。单继承可以看作是多继承的一个最简单的特例,多继承可以看作是多个单继承的组合,它们之间的很多特性是相同的。在派生过程中,派生出来的新类也同样可以作用基类再继承派生新的类,此外,一个基类可以同时派生出多个派生类。也就是说,一个类从父类继承来的特征也可以被其他新的类所继承,一个父类的特征,可以同时被多个子类继承。这样,就形成了一个相互关联的类的家族,有时也称作类族。

类的组合

组合构造函数定义的一般形式为:在创建一个组合类的对象时,不仅它自身的构造函数将被调用,而且还将调用其内嵌对象的构造函数。这时构造函数的调用顺序是:调用内嵌对象的构造函数,调用顺序按照内嵌对象在组合类的定义中出现的次序。执行本类构造函数的函数体。 4、数据类型的应用

bool类型的应用

3

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

有几个模块使用的为bool类型的存储,bool在C++里是占用1字节,而BOOL是int类型,int类型的大小是视具体环境而定的;所以来说:false/true只占用1个字节,而TRUE/FALSE视具体环境而言的。bool course::search ()这里我应用C++中的bool类型来存储课程名。

5.应用fstream类对C++进行文件操作

在程序中我应用了:ifstream infile;infile.open(\这些都用到了fstream类中的属性,可以对C++进行文件读取操作。

库包含了三个基本的类:ifstream, ofstream和fstream。这三个类分别代表一个输入文件,一个输出文件,以及一个输入输出文件。Ifstream类支持>>操作符,ofstream类支持<<操作符,fstream类同时支持>>和<<操作符。所有对象都能够把一个文件名当成构造函数的变量,并能够自动的打开文件,如:

std::ofstream dictionary(\

类的析构函数自动地添加清除文件内容并关闭文件,所以当你忘记关闭文件时也无大碍。如果在构造函数中不提供一个文件名,可以通过调用open()成员方法来打开文件,如下所示: std::ofstream dictionary; dictionary.open(\dictionary.close(); //explicit

文件打开模式:

如果不具体指明文件的打开模式,fstream类会使用缺省模式。例如,ifstream在缺省情况下会以读的模式打开一个文件,并把文件指针定在文件的起始处。同样的,ofstream在缺省情况下也是以读的模式打开一个文件。你可以通过使用OR操作符设置多个标记,如下所示:ofstream logfile(\

下面是包含的库函数: #include #include #include

2.2 程序中涉及的类的UML类图和主要函数流程图或框图。

2.2.1 系统的UML类

统一建模语言(UML)是用来对软件密集系统进行描述、构造、视化和文档编制的一种语言。UML建模的具体占先式实时内核概述占先式实时内核具有多任务机制。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。多任务机制是基于面向任务对象的,以任务为对象,以事

4

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

件和时间为驱动,通过实时内核管理时间关键任务和任务的优先级,实现任务之间的调度、协同和仲裁。多任务机制的具体实现由调度程度来完成。下图为系统的UML图

图2.1类的UML图

2.2.2主要函数流程图 下图为系统的功能模块图

图2.2系统功能模块图

5

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

2.3 程序源代码 student::choice()

{cout<<\欢迎进入选课主页******\ifstream infile(\

if(!infile){cerr<<\不能打开zlz_1.txt文件!!!\exit(1);}

ofstream f1(\cerr<<\不能打开zlz_2.txt文件!!!\exit(1);}

cout<<\请输入名字:\cin>>name;

cout<<\请输入学号:\cin>>num; char a[20]; char m;

do{cout<<\请输入所要选择的课程名称:\cin>>a;

while(!infile.eof())

{infile.read((char *)&cour,sizeof(cour)); if(strcmp(cour.program,a)==0){

number=cour.number; strcpy(program,cour.program); strcpy(xz,cour.xz); time=cour.time;

strcpy(period,cour.period); } stu.num=num; strcpy(stu.name,name); stu.number=number; strcpy(stu.program,program); strcpy(stu.xz,xz); stu.time=time;

strcpy(stu.period,period);

f1.write((char *)&stu,sizeof(stu)); } cout<<\是否继续选课(Y/N):\

6

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

cin>>m; }while(m=='Y'||m=='y'); infile.close(); f1.close(); return 0;}

int student::moditify(){ char a[20]; int n=0;

ifstream f1(\

if(!f1) { cerr<<\不能打开zlz_2.txt文件!!!\exit(1);} while(!f1.eof()){

f1.read((char *)&stu,sizeof(stu)); num=stu.num; strcpy(name,stu.name); number=stu.number; strcpy(program,stu.program); strcpy(xz,stu.xz); time=stu.time;

strcpy(period,stu.period); s[n].num=num; strcpy(s[n].name,name); s[n].number=number; strcpy(s[n].program,program); strcpy(s[n].xz,xz); s[n].time=time;

strcpy(s[n].period,period); n++;} f1.close();

ofstream f2(\

if(!f2){ cerr<<\不能打开zlz_2.txt文件!!!\exit(1);}

for(int i=0;i

f2.write((char *)&s[i],sizeof(s[i]));} f2.close();

ifstream f4(\

7

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

cerr<<\不能打开zlz_2.txt文件!!!\exit(1); }

cout<<\请输入名字:\cin>>name;

cout<<\请输入学号:\cin>>num;

cout<<\请输入所要修改的课程名称:\cin>>a; int i;

for(i=0;i<1000;i++)

{f4.read((char *)&s[i],sizeof(s[i])); if(strcmp(cour.program ,a)==0){ number=s[i].number; strcpy(program,s[i].program); strcpy(xz,s[i].xz); time=s[i].time;

strcpy(period,s[i].period);

cout<>a;

for(int j=0;j

f4.read((char *)&s[i],sizeof(s[i])); if(strcmp(s[i].program ,a)==0) {number=s[j].number; strcpy(program,s[j].program); strcpy(xz,s[j].xz); time=s[j].time;

strcpy(period,s[j].period);} } s[i].num=num; strcpy(s[i].name,name); s[i].number=number; strcpy(s[i].program,program); strcpy(s[i].xz,xz); s[i].time=time;

8

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

strcpy(s[i].period,period); f4.close();

ofstream f3(\if(!f3){

cerr<<\不能打开zlz_2.txt文件!!!\exit(1);} for(i=0;i

f3.write((char *)&s[i],sizeof(s[i])); } return n; }

void student::list() {int i;

ifstream f1(\if(!f1)

{cerr<<\不能打开zlz_2.txt文件!!!\exit(1); }

ut<<\请输入名字:\cin>>name;

cout<<\请输入学号:\cin>>num;

cout<<\课程号\ \课名称\ \课性质\期\

for(i=0;i

f1.read((char *)&s[i],sizeof(s[i]));

if(strcmp(s[i].name,name)==0 && s[i].num==num) {

number=s[i].number; strcpy(program,s[i].program); strcpy(xz,s[i].xz); time=s[i].time;

strcpy(period,s[i].period);

9

总学时\开课学 \

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

cout<

/////////////// 主函数 //////////////// int main() { int m; course t1; student t2;

cout<

cout<

cout<<\查找已选修的课程\cout<<\请输入数字:\cin>>m;

while(m<0 || m>6) {

cout<<\输入有误,请重新输入:\cin>>m; }

if(m==1) t1.enter(); //录入 else if(m==2) t1.disply(); //显示 else if(m==3) t1.search(); //查找课程 else if(m==4) t2.choice(); //选修课程

10

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

else if(m==5) t2.moditify(); //修改 else if(m==6) t2.list(); //查找已选课程 else break; } return 0; }

2.4 程序运行结果 下图为程序运行的开始界面

图2.4开始界面

下图为当选择浏览课程信息的程序运行界面,它显示了已有的课程名、课程号、课性质、总学时和开课学期等信息

11

辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)

图2.5浏览课程基本信息界面

下图为程序的查找课程基本信息界面,提示系统的用户输入所要查询的课程名称。

图2.6查找界面

12

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库c++课设在线全文阅读。

c++课设.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/177405.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219