1、 中南大学 C++程序设计实践报告 学 院: 材料院 专业班级: 学 号: 姓 名: 一、 实践目的 C++是一种运用广泛的电脑程序式设计语言。在学完C++程序设计课程后,为了加深和巩固课程的每个知识点,训练并培养自己运用所学知识独立进行程序设计、解决实际问题的能力,学会编制结构清晰、风格良好、数
2、据结构适当的C++语言程序。我们在老师的指导下进行了C++程序设计实践,用C++语言编制学生档案管理软件。 二、实践要求 1)、进行C++程序设计实践要求我们利用面向对象的方法以及C++的编程思想来完成该软件的设计。 2)、建立学生档案管理软件,要对所包含的学生的全部信息,能进行相应的学生信息输入、学生信息输出、学生信息删除、学生信息添加以及学生信息修改。 3)、系统的主程序中,要求会使用口令判断功能函数。使得程序体对信息的修改更为方便。 4)、程序主函数中也要提供菜单选项,该选项具有一定的选择信息,以方便使用者使用。 三、实践内容 实践内容包括了:学生档案管理软件的总设计框
3、架,系统口令函数的框图,以及数据的输入、添加、修改、删除、显示等的子框图还有退出系统的框图。 学生档案管理软件总框架: 5、数据显示 4、数据删除 3、数据修改 2、数据添加 1、数据输入 显示主菜单 系统口令 开始
4、 N Y 结束 系统口令流程图: 开始 password() 输入系统口令 str1=system? N Y 进入管理系统主界面 主菜单流程图: main() 输入要操作的选项代码 flag=0 输入p N flag==0 P>='0'&
5、p<='9' Y flag=1 Y 输入数据 选项为0? N Y 添加数据 选项为1? N Y 修改数据 选项为2? N Y 选项为3? 删除学生信息 N Y 选项为4? 输出所有学生成绩 N Y 选项为5? 退出系统 是否继续其他操作(y/n) Y W=='y' 结束 N 输入w 数据录入 数据输入流程图: 初始化i,j=0 依次输入学生的姓名、学号、专业、成绩等信息 输出
6、总成绩 输出平均成绩 录入到file并将j指向下一个 录入到student并将i指向下一个 Y//flage==1 Else//flage==0 判断是否继续y/n N//flage==1 初始化flage 是否继续y/n 主菜单 Y//flage==1 Else//flage==0 N//flage==1 Break 数据添加 数据添加流程图: 依次输入学生的姓名、学号、专业、成绩等信息 输出总成绩 输出平均成绩 录入到file并将j指向下一个 录入到stude
7、nt并将i指向下一个 Y//flage==1 Else//flage==0 判断是否继续y/n N//flage==1 Else//flage==0 Y//flage==1 主菜单 初始化flage是否继续y/n N//flage==1 Break 数据修改流程图: 数据修改 I==0//没数据 初始化定义 I==0?//判断是否有数据 I!=0//有数据 输入要修改的学生姓名 Flag==0//无 没找到 strcmp(name,s[h].name)
8、//查找 Flag=1//有 依次输入学生的学号、专业、成绩等信息 输出总成绩 输出平均成绩 录入到file 录入到student Y//flage==1 Else//flage==0 判断是否继续y/n N//flage==1 Else//flage==0 Y//flage==1 初始化flage 是否继续y/n 主菜单 N//flage==1 Break 数据删除流程图: 数据删除 Else//flage==0 N//flage==1 Y//flage==1 没找到 主菜单
9、 Break 初始化flage 是否继续y/n 成功 数据依次覆盖 Strcmp(name,s[h].name)/查找 输入要删除的学生姓名 精选范本 数据显示流程图: 数据显示 标题-数据如下 没数据 I==0?//是否有数据? 数据依次输出 主菜单 Y//flage==1 Else//flage==0 初始化flage 是否继续y/n N//flage==1 Break 退出流程图:
10、Bye bye! exit(0) 退出 四、实践体会 在指导老师的耐心教导下,我们完成了此次C++程序设计实践。在实践过程中,我们学会了如何运用C++语言编写一个学生档案管理软件。 首先,我们要对所编软件有相应的认识,了解该学生档案管理系统应有的功能,对相应的功能思考需要运行的函数。例如整个程序体的主函数,系统口令函数以及数据输入输出修改删除等的函数。然后对课堂所学内容进行灵活运用,如源程序中多次使用到的指针与数组等。此外还需用到部分课外知识,这就考查了我们对C++程序语言的自主学习能力。 通过此次程序设计实践,用理论联系实际,加深了我对C++语
11、言的理解与掌握,提高了我的实践能力及计算机操作能力。编程的过程也锻炼了我运用多种方法完成编程任务的思维转换能力。编程虽然不易但收获颇丰。同时自身编程能力还存在一定不足,我也会在日后的学习生活中不断改进。
学生档案管理软件源代码
#include
12、 char banji[4]; double cpro,english,math,sport,computer,allscore,average;//课程 int order, number; //名次,学号 public: student(){} password();//这个是用于系统口令的,函数声明 student(char n[4],int nu,double cc,double eng,double ma,double sp,double com,double as,double av) {
13、strcpy(name,n);
number=nu;
cpro=cc; english=eng;math=ma;sport=sp;computer=com;allscore=as;average=av;
}
friend void main();
};
void password()//从这里开始,口令函数
{
string str1;
system("cls");
cout< 14、dl< 15、 cout<<" ******************************************"< 16、dl;
cout<<" 2、修改数据 "< 17、 选择0-5数字进行操作"< 18、
if((p>='0'&&p<='9'))
flag=1;
else
cout<<" 指令错误!请重新输入:"< 19、
do{
cout< 20、 cout< 21、
cout<<" 平均成绩:"< 22、i]= student(name, number,cpro,english,math,sport,computer,allscore,average);
i++;
cout<<" 数据输入成功,想继续输入吗(y/n):";
cin>>c;
cout< 23、while(c=='y');
break;
}
case '1': //增加数据
{
char name[20];
int number;double cpro,english,math,sport,computer;
char c;
do
{
cout<<" 请输入您要增加的学生的姓名:";
cin>>name;
cout< 24、成绩:";
cin>>cpro;
cout< 25、 总成绩:"< 26、分成绩 "< 27、入!"< 28、您要修改的学生的姓名:";
cin>>name;
cout< 29、cout< 30、h=eng;
s[h].math=ma;
s[h].sport=sp;
s[h].number=nu;
cout<<" 数据修改成功!"< 31、 cout<<" 指令错误!请重新输入!"< 32、];
i=i-1;}
cout<<" 删除成功!"< 33、[k].name< 34、 cout<<"Bye bye!"<






