c++报告.docx
《c++报告.docx》由会员分享,可在线阅读,更多相关《c++报告.docx(39页珍藏版)》请在冰点文库上搜索。
c++报告
第1章绪论
1.1背景
计算机技术作为信息化的核心技术受到全社会的普遍重视。
如今,计算机的使用也
已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。
深入掌握计算机专业知识、具有良好系统设计与分析能力的计算机高级专业人才在社会上深受欢迎。
而系统设计与分析能力的培养需要通过实践训练才能获得。
通过计算机对一些系统的管理已经成为一种系统、便捷的方式。
本课程设计就是用C++设计学生作业完成情况的问题,实现对作业完成问题的操作。
1.2设计目的与任务
1.2.1本课程设计的目的
1.课程设计是电子信息类专业重要的实践教学环节。
设置课程设计的目的是加强学生对本课程及相关课程知识的理解,培养学生综合运用理论知识分析解决实际问题的方法与能力。
有助于提高学生的创新能力和创新意识。
搞好课程设计教学工作,对实现专业培养目标,提高学生全面素质有重要作用。
2.通过课程设计更进一步理解C++的基础知识。
3.训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
4.熟练掌握C++知识在程序中的应用,了解书本知识在解决实际问题下的用途。
1.2.2本课程设计的任务
运用所学C++知识实现对学生作业完成情况管理程序,包括对作业完成情况的输入、显示、删除、查看、修改、保存、读取、退出程序等等相关操作。
第2章c++语言的运行环境及运行步骤
2.1C++语言的起源
早期的操作系统等系统软件主要是用汇编语言编写的(包括UNIX操作系统在内)。
由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。
为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能,人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。
于是,C++语言就在这种情况下应运而生了。
C++语言是国际上广泛流行的、很有发展前途的计算机高级语言。
它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。
C++语言经多次改进,它的突出优点最终引起人们的广泛关注,至此,C++语言便很快风靡全世界,成为世界上应用最广泛的语言之一。
2.2C++语言的特点
2.2.1语言简洁、紧凑,使用方便、灵活
C++语言一共只有74个关键字,程序书写自由,它把高级语言的基本结构和语句与低级语言的实用性结合起来。
程序比其他许多高级语言简练,源程序短,而且可以像汇编语言一样对位、字节和地址进行操作。
2.2.2运算符丰富
C++的运算符包含的范围很广泛。
C++语言把括号、赋值、强制类型转换等都作为运算符处理。
灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
2.2.3数据结构丰富
整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等数据类型。
能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。
2.2.4具有结构化控制语句
如if…else语句、while语句、do…while语句、switch语句、for语句等。
2.2.5C++语法限制不太严格、程序设计自由度大
对变量的类型使用比较灵活,某些类型数据可以通用;而C++允许程序编写者有较大的自由度,放宽了语法检查。
2.2.6C++语言允许直接访问物理地址,可以直接对硬件进行操作
能实现汇编语言的大部分功能,可直接对硬件进行操作,可用来编写系统软件。
2.2.7生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10%へ20%。
2.2.8C++语言编写的程序可移植性
用C++语言编写的程序可移植性好(与汇编语言相比),不做修改就能用于各种型号的计算机和各种操作系统。
由于C++语言的这些优点,使其应用面很广,许多大的软件都用C+语言编写自20世纪九十年代初以来,我国学习和使用C++语言的人越来越多,掌握次语言已成为计算机开发人员的一项基本功。
2.3C++语言的运行环境
在C的运行中我们常选用MicrosoftVisualC++和TurboC++,它们的界面分别如图2.1和图2.2所示。
图2.1VisualC++6.0的运行界面图2.2TurboC++3.0的运行面
2.4C++语言的运行步骤
在常用的C++的运行中本次程序设计我们选择了MicrosoftVisualC++,它的运行步骤如下:
第一步:
先在所有程序中找到本程序,打开界面。
第二步:
在打开的界面上输入与编辑源程序。
第三步:
对源程序进行编译,得到目标程序。
第四步:
将目标程序与库函数连接,得到可执行程序。
第五步:
进行可执行程序,得到运行结果。
第3章总体设计思路
3.1功能设计分析
3.1.1设计思路分析
(1)通过键盘输入某位学生某次作业的分数;
(2)给定学号,显示某位学生作业完成情况;
(3)给定某个班级的班号,显示该班所有学生的作业完成情况;
(4)给定某位学生的学号,修改该学生的作业完成信息;
(5)给定某位学生的学号,删除该学生的信息;
(6)提供一些统计各类信息的功能。
3.1.2系统功能分析:
主要包含以下多种功能:
增加:
增加学生作业完成情况管理程序系统记录
显示:
显示学生作业完成情况管理程序系统记录
修改:
修改学生作业完成情况管理程序系统记录
删除:
删除学生作业完成情况管理程序系统记录
统计:
统计学生作业完成情况管理程序系统记录
保存:
保存学生作业完成情况管理程序系统记录
读取:
读取学生作业完成情况管理程序系统记录
3.2总体设计分析
3.2.1系统功能模块图
如图3.2.1所示:
3.2.2具体设计方案:
1.增加
录入学生作业完成情况管理程序系统记录,依次输入班级学号、姓名、作业次数、作业完成情况。
2.显示
学生个人信息显示:
输入欲显示的那个人的学号后,会自动显示此学生的记录内容;
班级整体学生信息显示:
输入欲显示班级的编号后,就会显示所对应班级所有学生的记录。
3.修改
输入想修改学生的学号,修改对应学生的作业完成情况。
4.删除
输入被删除的学生的学号后,系统会删除此人的所有信息。
5.统计
输入对应学生的学号,统计该学生的平时成绩。
6.保存
将所有学生的信息保存在电脑磁盘的文件中。
7.读取
将电脑磁盘中所有学生的信息读入程序中。
8.退出
退出学生作业完成情况管理程序系统
图3.2.1
第4章详细设计
4.1类定义
如图4.1类的定义
图4.1类的定义
4.2各个模块程序流程图设计
4.2.1第一模块添加学生信息
如图4.2增加功能流程图
图4.2增加功能流程图
4.2.2第二模块显示学生信息
如图4.3显示功能流程图
4.2.3第三模块修改学生信息
如图4.4修改功能流程图
图4.3显示功能流程图图4.4修改功能流程图
4.2.4第四模块删除学生信息
如图4.5删除功能流程图
4.2.5第五模块统计学生信息
如图4.6统计功能流程图
图4.5删除功能流程图图4.6统计功能流程图
4.2.6第六模块保存学生信息
如图4.7
4.2.7第七模块读取学生信息
如图4.8
图4.7保存功能流程图图4.8读取功能流程图
4.3程序源代码
#include
#include
#include
#include
classstudent
{
public:
intxuehao;
intbanji;
charname[10];
voidscan1(){
cout<<"请输入班级编号:
";
cin>>banji;
cout<cout<<"请输入学号:
";
cin>>xuehao;
cout<cout<<"请输入学生姓名:
";
cin>>name;
cout<}
voidprint1(){
cout<<"学号"<<"\t"<<"班级"<<"\t"<<"姓名"<cout<}
};
classzuoye:
publicstudent
{
public:
ints[10];
intn,i;
intz;
chart;
voidscan2()
{
cout<<"平时成绩满分为100分。
"<do{
cout<<"请输入作业的次数:
";
cin>>n;
cout<<"请输入本次作业分数:
";
cin>>s[n-1];
cout<<"是否继续输入Y/N?
";
cin>>t;
}while(t!
='N');
}
voidprint2(){
cout<<"作业次数"<<"\t"<<"第一次"<<"\t"<<"第二次"<<"\t"<<"第三次"<<"\t"<<"第四次"<<"\t"<<"第五次"<cout<<"作业成绩"<<"\t"<
cout<<"作业次数"<<"\t"<<"第六次"<<"\t"<<"第七次"<<"\t"<<"第八次"<<"\t"<<"第九次"<<"\t"<<"第十次"<cout<<"作业成绩"<<"\t"<
}
voidset()
{
z=0;
for(i=0;i<10;i++)
{
z=z+s[i];
}
z=z/10;
cout<<"这个学生的平时成绩是:
"<}
};
voidmenu()
{
cout<<"\t°★.∴☆°.★·°∴°★.°·∴°☆·°∴°☆·°∴°★"<cout<<"\t"<cout<<"\t。
欢迎进入学生作业管理系统。
"<cout<<"\t☆★°1.添加学生信息:
☆☆"<cout<<"\t.◢◣。
【欢】2.显示学生信息:
【使】◢◣。
."<cout<<"\t★◢★◣。
3.修改学生信息:
◢★◣。
★"<cout<<"\t◢■■◣。
4.删除学生信息:
◢■■◣。
"<cout<<"\t◢■■■◣【迎】5.统计学生信息:
【用】◢■■■◣。
"<cout<<"\t︸︸||︸︸6.保存学生信息:
︸︸||︸︸."<cout<<"\t.★7.读取学生信息:
★"<cout<<"\t。
0.退出学生作业管理系统:
。
"<cout<<"\t"<cout<<"\t°★.☆°.★·°∴°★.°·∴°☆·°∴°☆..·.☆"<cout<<"\t"<cout<<"\t"<cout<<"\t"<}
voidtianjia(zuoye*a,intt)
{
system("cls");
intd;
charname2[10];
inti=0;
cout<<"\t\t\t\t添加学生信息\t\t\t"<cout<cout<<"********************"<cout<<"********************"<cout<<"**①添加**"<cout<<"**1.添加学生信息:
**"<cout<<"**2.添加学生成绩:
**"<cout<<"**0.退出**"<cout<<"********************"<cout<<"********************"<cout<cout<<"请输入您的选择:
";
cin>>d;
cout<A:
switch(d)
{
case1:
{
do{
a[i].scan1();
i++;
if(i==t)
{
cout<<"学生信息输入完毕"<system("pause");
}
}while(i}break;
case2:
{
cout<<"输入学生的姓名:
"<cin>>name2;
for(i=0;i{
if(!
strcmp(a[i].name,name2))
{
a[i].scan2();
break;
}
}
if(i==t)
{
cout<<"没有此学生的信息"<system("pause");
}
}break;
case0:
system("pause");system("cls");break;
default:
cout<<"您输入的选择有误."<}
}
voidxianshi(zuoye*a,intt)
{
system("cls");
intd,s,f;
inti=0;
cout<<"\t\t\t\t显示学生信息\t\t\t"<cout<<"》《》《》《》《》《》《》《》《》《"<cout<<"《②显示》"<cout<<"《1.显示指定学生作业完成情况:
》"<cout<<"《2.显示整个班级学生作业完成情况:
》"<cout<<"《0.退出》"<cout<<"》《》《》《》《》《》《》《》《》《"<cout<B:
cout<<"请输入您的选择:
";
cin>>d;
switch(d)
{
case1:
{
cout<<"请输入查询学生的学号:
";
cin>>f;
cout<for(i=0;i{
if(a[i].xuehao==d)
{
a[i].print1();
a[i].print2();
system("pause");
system("cls");
break;
}
}
if(i==t)
{
cout<<"没有此学生的信息"<system("pause");
system("cls");
}
}break;
case2:
{
cout<<"请输入想要查询的班级:
";
cin>>s;
for(i=0;i{
if(a[i].banji==s)
{
a[i].print1();
a[i].print2();
}
}
if(i==t)
{
cout<cout<<"\t\t\t该班级学生的作业完成情况显示完毕"<system("pause");
system("cls");
}
}break;
case0:
system("pause");system("cls");break;
default:
cout<<"您输入的选择有误."<}
}
voidxiugai(zuoye*a,intt)
{
system("cls");
ints,i;
intd;
cout<cout<<"\t\t\t\t修改学生信息\t\t\t"<cout<<"〗〖〗〖〗〖〗〖〗〖"<cout<<"〖③修改〗"<cout<<"〖1.修改学生成绩:
〗"<cout<<"〖0.退出〗"<cout<<"〗〖〗〖〗〖〗〖〗〖"<cout<C:
cout<<"请输入您的选择:
";
cin>>s;
switch(s)
{
case1:
{
cout<<"请输入修改学生的学号:
";
cin>>d;
cout<for(i=0;i{
if(a[i].xuehao==d)
{
a[i].scan2();
system("pause");
system("cls");
break;
}
}
if(i==t)
{
cout<<"没有此学生的信息"<system("pause");
system("cls");
}
}break;
case0:
system("pause");system("cls");break;
default:
cout<<"您输入的选择有误."<}
}
voidshanchu(zuoye*a,intt)
{
system("cls");
ints,j,n;
inti=0;
intd;
cout<<"﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌"<cout<<"﹌④删除﹌"<cout<<"﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌"<cout<<"﹌1.删除学生信息:
﹌"<cout<<"﹌0.退出﹌"<cout<<"﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌"<cout<C:
cout<<"请输入您的选择:
";
cin>>s;
switch(s)
{
case1:
{
cout<<"请输入要删除学生的学号:
";
cin>>d;
cout<while(a[i].xuehao!
=d){
i++;
};
for(j=i;j{
a[j].banji=a[j+1].banji;
strcpy(a[j].name,a[j+1].name);
a[j].xuehao=a[j+1].xuehao;
for(n=0;n<10;n++)
a[j].s[n]=a[j+1].s[n];
}
if(j==t)
{
cout<<"此学生的信息已经删除"<system("pause");
system("cls");
}
}break;
case0:
system("pause");system("cls");break;
default:
cout<<"您输入的选择有误."<}
}
voidtongji(zuoye*a,intt)
{
system("cls");
ints,d;
inti=0;
cout<<"﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌"<cout<<"﹌㈤.统计﹌"<cout<<"﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌"<cout<<"﹌1.统计每个学生的平时成绩﹌"<cout<<"﹌0.退出﹌"<cout<<"﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌"<cout<D:
cout<<"请输入您的选择:
";
cin>>s;
switch(s)
{
case1:
cout<<"输入你想查看学生的学号:
";
cin>>d;
cout<while(a[i].xuehao!
=d){
i++;
};
if(i==t)
{
cout<<"没有此学生的信息。
"<system("pause");
system("cls");
}
else
{
a[i].set();
system("pause");
system("cls");
}
break;
case0:
system("pause");system("cls");break;
default:
cout<<"您输入的选择有误."<}
}
voidbaocun(zuoye*a,intt)
{
system("cls");
inti,j;
ofstreamist;
ist.open("d:
zuoye.txt");
for(i=0;i{
ist<ist<<"\t";
ist<ist<<"\t";
ist<ist<<"\t";
for(j=0;j<10;j++)
{
ist<ist<<"\t";
}
ist<}
ist.close();
co