中南大学C++实践报告.docx
- 文档编号:14874707
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:22
- 大小:227.16KB
中南大学C++实践报告.docx
《中南大学C++实践报告.docx》由会员分享,可在线阅读,更多相关《中南大学C++实践报告.docx(22页珍藏版)》请在冰点文库上搜索。
中南大学C++实践报告
中南大学
C++程序设计实践报告
学院:
材料院
专业班级:
学号:
姓名:
一、实践目的
C++是一种运用广泛的电脑程序式设计语言。
在学完
C++程序设计课程后,为了加深和巩固课程的每个知识点,训练并培养自己运用所学知识独立进行程序设计、解决实
际问题的能力,学会编制结构清晰、风格良好、数据结构适当的C++吾言程序。
我们在老师的指导下进行了C++g
序设计实践,用C++吾言编制学生档案管理软件。
二、实践要求
1)、进行C++程序设计实践要求我们利用面向对象的方法以及C++的编程思想来完成该软件的设计。
2)、建立学生档案管理软件,要对所包含的学生的全部信息,能进行相应的学生信息输入、学生信息输出、学生信息删除、学生信息添加以及学生信息修改。
3)、系统的主程序中,要求会使用口令判断功能函数。
使得程序体对信息的修改更为方便。
4)、程序主函数中也要提供菜单选项,该选项具有一定的选择信息,以方便使用者使用。
三、实践内容
实践内容包括了:
学生档案管理软件的总设计框架,系统口令函数的框图,以及数据的输入、添加、修改、删除、显示等的子框图还有退出系统的框图。
学生档案管理软件总框架:
flag=0
输入p
Y
flag=1
P>='0'&&p<='9'
flag==0
Y
选项为0?
Y
选项为1?
输入数据
添加数据
N
Y
修改数据
选项为
2?
N
Y
删除学生信息
选项为
Y
>
输出所有学生成绩
N
Y
选项为
退出系统
5?
是否继续其他操作
数据输入流程图
N
3?
选项为
4?
输入w
数据录入
初始化i,j=0
(y/n)
依次输入学生的姓名、成绩等信息
学号、专业、
输出总成绩
输出平均成绩
将j
输出总成绩输出平均成绩
Y//flage==1录
数据修改流程图
数据修改
1==0〃没数据
1!
=0〃有数据
输入要修改的学生姓名
Flag==O〃无
strcmp(name,s[h].name)//查找
Flag=1〃有
的学号
Y//flage==1
Else//flage==0
N//flage==1
Else//flage==0
Y//flage==1
初始化定义
l==0?
〃判断是否有数据
初始化flage是否继续y/n
依次输入学生专业、成绩等输出总成绩输出平均成绩
录入到file录入判断是否继续y/n
没找到
数据删除流程图
数据显示流程图:
退出流程图:
(退出丿
四、实践体会J~I―
在指导老师的耐心教导下),我们完成了此次C++程序设计实
践。
在实践过程中,我们学会了如何运用C++吾言编写一个学生
/Byebye!
/
档案管理软件。
首先,我们要对所编软件有相应的认识,了解该学生档案管
理系统应有的功能,对相应的功能思考需要运行的函数。
例如整个程序体的主函数,系统口令函数以及数据输入输出修改删除等的函数。
然后对课堂所学内容进行灵活运用,如源程序中多次使用到的指针与数组等。
此外还需用到部分课外知识,这就考查了我们对C++程序语言的自主学习能力。
通过此次程序设计实践,用理论联系实际,加深了我对C++语言的理解与掌握,提高了我的实践能力及计算机操作能力。
编程的过程也锻炼了我运用多种方法完成编程任务的思维转换能力。
编程虽然不易但收获颇丰。
同时自身编程能力还存在一定不
足,我也会在日后的学习生活中不断改进。
学生档案管理软件源代码
#include
#include
#include
#include
usingnamespacestd;
classstudent
{
private:
charname[4];//姓名
charxibie[8];
charbanji[4];
doublecpro,english,math,sport,computer,allscore,average;〃课程
intorder,number;//名次,学号
public:
student(){}
password。
;//这个是用于系统口令的,函数声明
student(charn[4],intnu‘doublecc,doubleeng,doublema,doublesp,doublecom,doubleas,doubleav)
{
strcpy(name,n);
number=nu;
cpro=cc;english=eng;math=ma;sport=sp;computer=com;allscore=as;average=av;
}
friendvoidmain();
};
voidpassword()//从这里开始,口令函数
{
stringstrl;
system("cls");
cout< cout< "; cin>>str1; cout< if(str1! ="system") { cout< 请重新输入! \n"; system("pause"); password(); } return; } voidmain() { password();doubleallscore;doubleaverage;cout<<" cout<<" cout<<" 欢迎使用学生管理系统"< ******************************************"< 学生成绩管理系统****"< cout<<" cout<<" ******************************************"< "< cout<<" cout<<" cout<<" 0、输入数据 1、添加数据 2、修改数据 3、删除学生信息 "< "< "< cout<<" cout<<" cout<<" 4、输出所有学生成绩"< 5、退出系统"< ============================="< cout<<" 选择0-5数字进行操作"< cout<<" "< charp;charw;students[50];ofstream*file[50];inti=0; intj=0; intflag=0; do II指针对象,最多存50个学生数据//负责对文件插入操作 //flag判断输入是否有效 cin>>p; if((p>='0'&&p<='9'))flag=1; else cout<<"指令错误! 请重新输入: "< }while(flag==O); do{ switch(p) { case'O': 〃输入数据 { charc; charname[4];int cpro,english,math,sport,core,computer;do{ cout< 姓名: "; do //接收功能选项 number;char xibie[8];char banji[4];double cin»name;cout< cin»number;cout< cin>>xibie;cout< cin>>banji;cout< cin>>cpro; cout< cin»english;cout< cin>>math;cout< cin>>sport;cout< 学号: "; 专业: "; 班级: "; C++成绩: "; 英语成绩: "; 线代成绩: "; 体育成绩: "; 微积分成绩: "; cin>'computer; cout< {allscore=cpro+english+math+sport+computer;} cout<<"总成绩: "< {average=(cpro+english+math+sport+computer)/5;} cout<<"平均成绩: "< file[j]=newofstream("D: \student.dat",ios: : ate); *file[j]<<"姓名"< <<"英语成绩"< < s[i]=student(name,number,cpro,english,math,sport,computer,allscore,average); i++; cout<<"数据输入成功,想继续输入吗(y/n): "; cin>>c; cout< { if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } else flag=1; }while(flag==O); }while(c=='y'); break; } case'1': //增加数据 { charname[20]; intnumber;doublecpro,english,math,sport,computer;charc; do { cout<<"请输入您要增加的学生的姓名: "; cin»name; cout< 学号: "; cin»number; cout< C++成绩: "; cin>>cpro; cout< 英语成绩: "; cin»english; cout< 线代成绩: "; cin>>math; cout< 体育成绩: "; cin>>sport; cout< 微积分成绩: "; cin>'computer; cout< {allscore=cpro+english+math+sport+computer;} cout<<"总成绩: "< {average=(cpro+english+math+sport+computer)/5;}cout<<"平均成绩: "< file[j]=newofstream("d: \student.dat",ios: : ate); *file[j]<<"姓名"< <<"C++成绩"< <<"总成绩"< j++; s[i]=student(name,number,cpro,english,math,sport,computer,allscore,average);i++; cout<<"数据输入成功,想继续数入吗(y/n): "; cin>>c; cout< if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case2: //修改数据 { charname[20];intnu;doublecc,eng,ma,sp,l,hb,com,as,av;flag=0; charc; if(i==0) { cout<<"系统中找不到这个学生"; } do { cout<<"请输入您要修改的学生的姓名: "; //h纪录要修改学生的位置 cin»name;cout< for(inth=0;h { if(strcmp(name,s[h].name)==0) flag=1; cout<<"新的学号: "; cin>>com; {as=cc+eng+ma+sp+com;} cout< "< {av=as/5;} cout< "< cout< s[h].cpro=cc; s[h].english=eng; s[h].math=ma; s[h].sport=sp; s[h].number=nu;cout<<"数据修改成功! "< } } if(flag==O) { "< cout<<"您要修改的学生本来就不存在! 请检查重新输入! } cout<<"想继续修改吗(y/n): "; cin>>c; cout< if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case3: { cout<<"请输入你要删除的姓名: "; charm[20]; cin»m; for(inta=O;a { if(strcmp(s[a].name,m)==O) { intw; w=a; for(w;w { s[w]=s[w+1]; i=i-1;} cout<<"删除成功! "< } break;} case4: //输出 { cout<<"本系统所有学生数据如下: "< if(i==O) cout<<"管理系统中没有输入数据! "< "< cout<<"姓名学号C++英语线代体育微积分总成绩平均成绩 for(intk=O;k { cout< <<(s[k]).cpro< <<(s[k]).math< <<(s[k]).computer< } break; } case'5': //退出 {exit(O);cout<<"Byebye! "< } cout<<"您想继续进行其他操作吗? (y/n): "; intflag=0; do { cin>>w; cout< if(w! ='y'&&w! ='n') cout<<"指令错误! 请重新输入! "< else flag=1; }while(flag==0); if(w=='y') cout<<" 请输入操作代码: 0输入数据"< cout<<" 1增加数据"< cout<<" 2修改数据"< cout<<" 3删除学生信息"< cout<<" 4输出所有学生成绩"< cout<<" 5退出系统"< cin>>p; }while(w=='y');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 C+ 实践 报告