中南大学C++程序设计实践报告学院:材料院专业班级:学号:姓名:一、实践目的C++是一种运用广泛的电脑程序式设计语言。在学完C++程序设计课程后,为了加深和巩固课程的每个知识点,训练并培养自己运用所学知识独立进行程序设计、解决实际问题的能力,学会编制结构清晰、风格良好、数据结构适当的C++语言程序。我们在老师的指导下进行了C++程序设计实践,用C++语言编制学生档案管理软件。二、实践要求1)、进行C++程序设计实践要求我们利用面向对象的方法以及C++的编程思想来完成该软件的设计。2)、建立学生档案管理软件,要对所包含的学生的全部信息,能进行相应的学生信息输入、学生信息输出、学生信息删除、学生信息添加以及学生信息修改。3)、系统的主程序中,要求会使用口令判断功能函数。使得程序体对信息的修改更为方便。4)、程序主函数中也要提供菜单选项,该选项具有一定的选择信息,以方便使用者使用。三、实践内容实践内容包括了:学生档案管理软件的总设计框架,系统口令函数的框图,以及数据的输入、添加、修改、删除、显示等的子框图还有退出系统的框图。学生档案管理软件总框架:NY系统口令流程图:NY主菜单流程图:开始系统口令显示主菜单1、数据输入2、数据添加3、数据修改5、数据显示4、数据删除结束开始password()输入系统口令str1=system?进入管理系统主界面输入要操作的选项代码选项为0?选项为1?输入数据添加数据main()flag=0输入pP>='0'&&p<='9'flag=1flag==0YNNNYYY数据输入流程图:数据添加流程图:选项为2?选项为3?选项为4?选项为5?修改数据删除学生信息输出所有学生成绩退出系统NNNYYY是否继续其他操作(y/n)输入wW=='y'NY结束初始化i,j=0依次输入学生的姓名、学号、专业、成绩等信息输出总成绩输出平均成绩录入到file并将j指向下一个录入到student并将i指向下一个判断是否继续y/n初始化flage是否继续y/nY//flage==1Else//flage==0Else//flage==0Y//flage==1N//flage==1N//flage==1数据添加数据录入主菜单Break依次输入学生的姓名、学号、专业、成绩等信息输出总成绩输出平均成绩录入到file并将j指向下一个录入到student并将i指向下一个判断是否继续y/nElse//flage==0Y//flage==1Break主菜单数据修改流程图:主菜单Break初始化flage是否继续y/n数据修改strcmp(name,s[h].name)//查找初始化定义I==0//判断是否有数据输入要修改的学生姓名依次输入学生的学号、专业、成绩等信息没找到输出总成绩输出平均成绩录入到file录入到student初始化flage是否继续y/n判断是否继续y/nI==0//没数据I!=0//有数据Flag=1//有Flag==0//无Y//flage==1Else//flage==0N//flage==1Y//flage==1Else//flage==0N//flage==1Y//flage==1N//flage==1N//flage==1Else//flage==0数据删除流程图:数据删除Break主菜单成功输入要删除的学生姓名初始化flage是否继续y/nStrcmp(name,s[h].name)/查找数据依次覆盖没找到Y//flage==1N//flage==1Else//flage==0数据显示流程图:退出流程图:四、实践体会在指导老师的耐心教导下,我们完成了此次C++程序设计实践。在实践过程中,我们学会了如何运用C++语言编写一个学生档案管理软件。首先,我们要对所编软件有相应的认识,了解该学生档案管理系统应有的功能,对相应的功能思考需要运行的函数。例如整个程序体的主函数,系统口令函数以及数据输入输出修改删除等的函数。然后对课堂所学内容进行灵活运用,如源程序中多次使用到的指针与数组等。此外还需用到部分课外知识,这就考查了我们对C++程序语言的自主学习能力。通过此次程序设计实践,用理论联系实际,加深了我对C++语言的理解与掌握,提高了我的实践能力及计算机操作能力。编程的过程也锻炼了我运用多种方法完成编程任务的思维转换能退出exit(0)Byebye!数据显示标题-数据如下数据依次输出没数据主菜单Break初始化flage是否继续y/nI==0//是否有数据?Else//flage==0N//flage==1Y//flage==1力。编程虽然不易但收获颇丰。同时自身编程能力还存在一定不足,我也会在日后的学习生活中不断改进。学生档案管理软件源代码#include#include#include#include