收藏 分销(赏)

中南大学C++实践报告.doc

上传人:精**** 文档编号:5233778 上传时间:2024-10-29 格式:DOC 页数:18 大小:123KB 下载积分:8 金币
下载 相关 举报
中南大学C++实践报告.doc_第1页
第1页 / 共18页
中南大学C++实践报告.doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
. 中南大学 C++程序设计实践报告 学 院: 材料院 专业班级: 学 号: 姓 名: 一、 实践目的 C++是一种运用广泛的电脑程序式设计语言。在学完C++程序设计课程后,为了加深和巩固课程的每个知识点,训练并培养自己运用所学知识独立进行程序设计、解决实际问题的能力,学会编制结构清晰、风格良好、数据结构适当的C++语言程序。我们在老师的指导下进行了C++程序设计实践,用C++语言编制学生档案管理软件。 二、实践要求 1)、进行C++程序设计实践要求我们利用面向对象的方法以及C++的编程思想来完成该软件的设计。 2)、建立学生档案管理软件,要对所包含的学生的全部信息,能进行相应的学生信息输入、学生信息输出、学生信息删除、学生信息添加以及学生信息修改。 3)、系统的主程序中,要求会使用口令判断功能函数。使得程序体对信息的修改更为方便。 4)、程序主函数中也要提供菜单选项,该选项具有一定的选择信息,以方便使用者使用。 三、实践内容 实践内容包括了:学生档案管理软件的总设计框架,系统口令函数的框图,以及数据的输入、添加、修改、删除、显示等的子框图还有退出系统的框图。 学生档案管理软件总框架: 5、数据显示 4、数据删除 3、数据修改 2、数据添加 1、数据输入 显示主菜单 系统口令 开始 N Y 结束 系统口令流程图: 开始 password() 输入系统口令 str1=system? N Y 进入管理系统主界面 主菜单流程图: main() 输入要操作的选项代码 flag=0 输入p N flag==0 P>='0'&&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 依次输入学生的姓名、学号、专业、成绩等信息 输出总成绩 输出平均成绩 录入到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指向下一个 录入到student并将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)//查找 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 没找到 主菜单 Break 初始化flage 是否继续y/n 成功 数据依次覆盖 Strcmp(name,s[h].name)/查找 输入要删除的学生姓名 精选范本 数据显示流程图: 数据显示 标题-数据如下 没数据 I==0?//是否有数据? 数据依次输出 主菜单 Y//flage==1 Else//flage==0 初始化flage 是否继续y/n N//flage==1 Break 退出流程图: Bye bye! exit(0) 退出 四、实践体会 在指导老师的耐心教导下,我们完成了此次C++程序设计实践。在实践过程中,我们学会了如何运用C++语言编写一个学生档案管理软件。 首先,我们要对所编软件有相应的认识,了解该学生档案管理系统应有的功能,对相应的功能思考需要运行的函数。例如整个程序体的主函数,系统口令函数以及数据输入输出修改删除等的函数。然后对课堂所学内容进行灵活运用,如源程序中多次使用到的指针与数组等。此外还需用到部分课外知识,这就考查了我们对C++程序语言的自主学习能力。 通过此次程序设计实践,用理论联系实际,加深了我对C++语言的理解与掌握,提高了我的实践能力及计算机操作能力。编程的过程也锻炼了我运用多种方法完成编程任务的思维转换能力。编程虽然不易但收获颇丰。同时自身编程能力还存在一定不足,我也会在日后的学习生活中不断改进。 学生档案管理软件源代码 #include<iostream> #include<string> #include<fstream> #include<iomanip> using namespace std; class student { private: char name[4]; //姓名 char xibie[8]; 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) { 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<<endl<<endl<<endl; cout<<setw(30)<<"请输入口令:"; cin>>str1; cout<<endl<<endl<<endl; if (str1!="system") { cout<<setw(40)<<"口令不正确!请重新输入!\n"; system("pause"); password(); } return; } void main() { password(); double allscore; double average; cout<<" 欢迎使用学生管理系统"<<endl; cout<<" ******************************************"<<endl; cout<<" **** 学生成绩管理系统 ****"<<endl; cout<<" ******************************************"<<endl; cout<<" 0、输入数据 "<<endl; cout<<" 1、添加数据 "<<endl; cout<<" 2、修改数据 "<<endl; cout<<" 3、删除学生信息 "<<endl; cout<<" 4、输出所有学生成绩 "<<endl; cout<<" 5、退出系统 "<<endl; cout<<" =========================================="<<endl; cout<<" 选择0-5数字进行操作"<<endl; cout<<" =========================================="<<endl; char p;char w; student s[50]; //指针对象,最多存50个学生数据 ofstream *file[50]; //负责对文件插入操作 int i=0; int j=0; int flag=0; do //flag判断输入是否有效 { cin>>p; if((p>='0'&&p<='9')) flag=1; else cout<<" 指令错误!请重新输入:"<<endl; }while(flag==0); do{ switch(p) //接收功能选项 { case '0': //输入数据 { char c; char name[4];int number;char xibie[8];char banji[4];double cpro,english,math,sport,core,computer; do{ cout<<endl<<" 姓名:"; cin>>name; cout<<endl<<" 学号:"; cin>>number; cout<<endl<<" 专业:"; cin>>xibie; cout<<endl<<" 班级:"; cin>>banji; cout<<endl<<" C++成绩:"; cin>>cpro; cout<<endl<<" 英语成绩:"; cin>>english; cout<<endl<<" 线代成绩:"; cin>>math; cout<<endl<<" 体育成绩:"; cin>>sport; cout<<endl<<" 微积分成绩:"; cin>>computer; cout<<endl; {allscore=cpro+english+math+sport+computer;} cout<<" 总成绩:"<<allscore<<endl; {average=(cpro+english+math+sport+computer)/5;} cout<<" 平均成绩:"<<average<<endl; file[j]=new ofstream("D:\student.dat",ios::ate); *file[j]<<" 姓名 "<<name<<" 学号 "<<number<<" C++成绩 "<<cpro <<" 英语成绩 "<<english<<" 线代成绩 "<<math<<" 体育成绩 " <<sport<<" 微积分成绩 "<<computer<<"总成绩"<<allscore<<"平均成绩"<<endl; j++; s[i]= student(name, number,cpro,english,math,sport,computer,allscore,average); i++; cout<<" 数据输入成功,想继续输入吗(y/n):"; cin>>c; cout<<endl; do { if(c!='y'&&c!='n') { cout<<" 指令错误!请重新输入!"<<endl<<" "; cin>>c; } else flag=1; }while(flag==0); }while(c=='y'); break; } case '1': //增加数据 { char name[20]; int number;double cpro,english,math,sport,computer; char c; do { cout<<" 请输入您要增加的学生的姓名:"; cin>>name; cout<<endl<<" 学号:"; cin>>number; cout<<endl<<" C++成绩:"; cin>>cpro; cout<<endl<<" 英语成绩:"; cin>>english; cout<<endl<<" 线代成绩:"; cin>>math; cout<<endl<<" 体育成绩:"; cin>>sport; cout<<endl<<" 微积分成绩:"; cin>>computer; cout<<endl; {allscore=cpro+english+math+sport+computer;} cout<<" 总成绩:"<<allscore<<endl; {average=(cpro+english+math+sport+computer)/5;} cout<<" 平均成绩:"<<average<<endl; file[j]=new ofstream("d:\student.dat",ios::ate); *file[j]<<" 姓名 "<<name<<" 学号 "<<number << " C++成绩 "<<cpro<<" 英语成绩 "<<english<<" 线代成绩 " <<math<<" 体育成绩 "<<sport<<" 微积分成绩 "<<computer <<" 总成绩 "<<allscore<<" 平均成绩 "<<average<<endl; j++; s[i]= student(name, number,cpro,english,math,sport,computer,allscore,average); i++; cout<<" 数据输入成功,想继续数入吗(y/n):"; cin>>c; cout<<endl; if(c!='y'&&c!='n') { cout<<" 指令错误!请重新输入!"<<endl<<" "; cin>>c; } }while(c=='y'); break; } case '2': //修改数据 { char name[20];int nu;double cc,eng,ma,sp,l,hb,com,as,av;flag=0; char c; if(i==0) { cout<<"系统中找不到这个学生"; } do { cout<<" 请输入您要修改的学生的姓名:"; cin>>name; cout<<endl; for(int h=0;h<i;h++) //h纪录要修改学生的位置 { if(strcmp(name,s[h].name)==0) { flag=1; cout<<" 新的学号:"; cin>>nu; cout<<endl<<" C++成绩:"; cin>>cc; cout<<endl<<" 英语成绩:"; cin>>eng; cout<<endl<<" 线代成绩:"; cin>>ma; cout<<endl<<" 体育成绩:"; cin>>sp; cout<<endl<<" 微积分成绩:"; cin>>com; {as=cc+eng+ma+sp+com;} cout<<endl<<" 总成绩:"<<as; {av=as/5;} cout<<endl<<" 平均成绩:"<<av; cout<<endl; s[h].cpro=cc; s[h].english=eng; s[h].math=ma; s[h].sport=sp; s[h].number=nu; cout<<" 数据修改成功!"<<endl; } } if(flag==0) { cout<<" 您要修改的学生本来就不存在!请检查重新输入!"<<endl; } cout<<" 想继续修改吗(y/n):"; cin>>c; cout<<endl; if(c!='y'&&c!='n') { cout<<" 指令错误!请重新输入!"<<endl<<" "; cin>>c; } }while(c=='y'); break; } case '3': { cout<<" 请输入你要删除的姓名 :"; char m[20]; cin>>m; for(int a=0;a<i;a++) { if(strcmp(s[a].name,m)==0) { int w; w=a; for(w;w<i;w++) { s[w]=s[w+1]; i=i-1;} cout<<" 删除成功!"<<endl; } } break;} case '4': //输出 { cout<<" 本系统所有学生数据如下:"<<endl; if(i==0) cout<<" 管理系统中没有输入数据!"<<endl; cout<<"姓名 学号 c++ 英语 线代 体育 微积分 总成绩 平均成绩 "<<endl; for(int k=0;k<i;k++) { cout<<s[k].name<<setw(7)<<s[k].number<<setw(4) <<(s[k]).cpro<<setw(5)<<(s[k]).english<<setw(5) <<(s[k]).math<<setw(4)<<(s[k]).sport<<setw(5) <<(s[k]).computer<<setw(6) <<s[k].allscore<<setw(10)<<(s[k]).average<<setw(7)<<endl; } break; } case'5'://退出 {exit(0); cout<<"Bye bye!"<<endl;} } cout<<" 您想继续进行其他操作吗?(y/n):"; int flag=0; do { cin>>w; cout<<endl; if(w!='y'&&w!='n') cout<<" 指令错误!请重新输入!"<<endl; else flag=1; }while(flag==0); if(w=='y') cout<<" 请输入操作代码:0 输入数据"<<endl; cout<<" 1 增加数据"<<endl; cout<<" 2 修改数据"<<endl; cout<<" 3 删除学生信息"<<endl; cout<<" 4 输出所有学生成绩"<<endl; cout<<" 5 退出系统"<<endl; cin>>p; }while(w=='y'); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服