C++学生信息管理系统实验报告-示例.docx
《C++学生信息管理系统实验报告-示例.docx》由会员分享,可在线阅读,更多相关《C++学生信息管理系统实验报告-示例.docx(22页珍藏版)》请在咨信网上搜索。
C++学生信息管理系统实验报告-示例 C++学生信息管理系统实验报告-示例 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(C++学生信息管理系统实验报告-示例)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为C++学生信息管理系统实验报告-示例的全部内容。 22 / 22 课程设计报告 课程设计题目: 学生信息管理系统 学生姓名: 张鹏 专 业: 软件工程(嵌入式) 班 级: 1621806 指导教师: 高 永 平 2017年 6 月 9 日 目录 一、需求分析: 2 二、总体设计: 2 三、详细设计。 3 四、测试结果. 12 五、软件操作使用说明书。 17 六、总结. 17 七、代码: 17 一、需求分析: 根据对学生信息管理的需要,建立一个“学生信息管理系统”,以方便对学生信息数据的录入、修改、删除和查询功能。、 要求完: 1。有菜单界面可以对功能进行选择; 2。能录入姓名、性别、学号、班级和电话号码等学生信息并保存到文件中; 3.能根据学生的学号进行排序; 4.能根据学生的学号对学生的信息进行修改; 5。能根据学生的学号对学生的信息进行删除; 6.能根据学生的学号、姓名和班级等对学生信息进行查询; 7。能根据班级对学生人数进统计。 二、总体设计: 根据以上分析,本系统主要包括: 1.从键盘录入学生个人信息,并保存到文件中; 2.按学号对学生信息进行排序 3.按学号对学生信息进行修改; 4.按学号对学生信息进行删除; 5.按学号对学生信息进行查询; 6.按姓名对学生信息进行查询; 7.按班级对学生信息进行查询; 8.结束当前程序; 等8大功能,系统主要定义了1个类和16个函数以实现各个功能: (1)主函数main():调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理. (2)定义类class student:用于定义成员结构体数组. (3)类中构造函数student():对类中各项私有成员进行传值。 (4)类中输入运算符重载函数operator >>():方便对类的对象输入。 (5)类中输出运算符重载函数operator 〈<():方便对类的对象输出。 (6)获取函数getnum():方便在类外对类中的私有成员num的数据进行调用。 (7)获取函数getname():方便在类外对类中的私有成员name的数据进行调用. (8)获取函数getban():方便在类外对类中的私有成员ban的数据进行调用。 (9)录入函数 enter():从键盘输入学生个人信息,并保存到文件中。 (10)查找函数 search_num():按学号查找学生个人信息。 (11)查找函数 search_name():按姓名查找学生个人信息。 (12)查找函数 search_ban():按班级查找学生个人信息。 (13)修改函数 changr():按学号修改学生个人信息,保存的文件中。 (14)删除函数 del():按学号删除学生个人信息,保存到文件中. (15)排序函数sort():按学号对学生个人信息进行排序. (16)统计函数count():按班级对学生人数进行统计. 程序功能结构图如图1所示: 图1程序功能结构图如图 三、详细设计。 本系统有一个主函数,8个功能模块,每个功能模块函数都是由主函数调用,分别说明如下: (1)主函数main(): 调用录入、查找、修改、排序、统计、删除等函数对学生成员信息进行处理。 主函数流程图如图2所示: 图2主函数流程图 (2)键盘输入函数流程图: 从键盘输入学生个人信息,并保存到文件中. 流程图如图3所示: 图3键盘输入函数流程图 (3)排序函数流程图: 按学号对学生个人信息进行排序。 流程图如图4所示: 图4排序函数流程图 (4)信息修改函数流程图: 由用户输入需要修改的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!"信息。 流程图如图5所示: 图5信息修改函数流程图 (5)信息删除函数流程图: 由用户输入需要删除的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到删除该学生的全部信息,没查到则输出“学号为XX的学生不存在!"信息。 流程图如图6所示: 图6信息删除函数流程图 (6)学号查询函数流程图: 由用户输入需要查询的成员的学号,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“学号为XX的学生不存在!”信息。 流程图如图7所示: 图7学号查询函数流程图 (7)姓名查询函数流程图: 由用户输入需要查询的成员的姓名,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“姓名为XX的学生不存在!”信息。 流程图如图8所示: 图8姓名查询函数流程图 (8)班级查询函数流程图: 由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到输出该学生的全部信息,没查到则输出“班级为XX的学生不存在!”信息. 流程图如图9所示: 图9班级查询函数流程图 (9)按班级统计函数流程图: 由用户输入需要查询的成员的班级,在现有的学生信息中查询是否有此学生信息的存在,查到即对该班级人数进行统计,没查到则输出“班级为XX的学生不存在!"信息。 流程图如图10所示: 图10按班级统计函数流程图 四、测试结果。 (1)程序运行主菜单如图11所示: 图11 (2)从键盘上输入学生人数和学生信息如图12所示: 图12 (3)按学号修改如图13所示: 图13 (4)按学号删除如图14: 图14 (5)按学号查找如图15: 图15 (6)按姓名查找如图16: 图16 (7)按班级查找如图17: 图17 (8)按班级统计人数如图18: 图18 (9)按学号进行排序如图19: 如图19 五、软件操作使用说明书。 本软件采用命令行对话方式进行操作,运行后出现主界面如上图所示,然后按菜单提示操作即可。 六、总结。 经过一个星期的不断上机实践练习,我对c++有了更进一步的认识和了解,学好它重在实践,要通过不断的上机操作不断的进行操作和试运行才能更好地掌握它,通过这次实践,我发现了自己的许多不足:我对各种循环的理解深度还不够,对字符成员调用还不是很熟练,对指针的理解还是不透彻,以及对解决问题的想法不够全面。这些不足,在这次实践中都有所提高,并且对这些不足我都会在后续的学习中努力补足。 七、代码: #include<iostream> #include<fstream> #include〈cstring> #define M 5000 using namespace std; class student { public: student(){} student(char na[10],char se[10],int n,int b,char t[12]):num(n),ban(b) { strcpy(sex,se); strcpy(name,na); strcpy(tel,t); } friend istream & operator 〉>(istream & is,student & s) { is〉〉s。name〉〉s.sex〉〉s.num>>s.ban〉>s.tel; return is; } friend ostream & operator 〈<(ostream & os,student & s) { os<<s。name〈<” "<〈s.sex〈<" ”<<s.num〈〈” "<〈s。ban〈〈” "〈<s。tel〈<endl; return os; } int getnum() { return num; } int getban() { return ban; } char *getsex() { char *s=new char[strlen(sex)]; s=sex; return s; } char *getname() { char *p=new char[strlen(name)]; p=name; return p; } char *gettel() { char *t=new char[strlen(tel)]; t=tel; return t; } private: char name[10]; char sex[10]; int num,ban; char tel[12]; }; int menu() { char s[80]; int c; cout〈〈”************************** 主 菜 单 ***************************"<〈endl〈〈endl; cout〈<" | 0。退出当前程序 | \n"<〈endl; cout〈〈” | 1。输入学生信息 | \n”〈〈endl; cout<<" | 2。根据学号查询 | \n"<<endl; cout<<” | 3.根据姓名查询 | \n"<〈endl; cout〈<" | 4。根据班级查询 | \n"<〈endl; cout<<" | 5。根据学号排序 | \n"<〈endl; cout<〈” | 6。按班级计人数 | \n”〈〈endl; cout<<” | 7。根据学号删除 | \n”<<endl; cout<<" | 8.根据学号修改 | \n"<〈endl; cout<〈"—-———--—--——--———--—----———--—-—---—-----———-——-—-—-—-————-—--—--————--—---—-”<〈endl; cout<〈" 输入您的菜单选项编号(0-8):”〈〈endl; cout〈<” Designed by Peng”<<endl; for(;;) { gets(s); c=atoi(s); if(c>8) cout〈<”输入错误,请重新输入!:"; else break; } return c; } int enter(student t[]) { int i,n; system(”cls”); cout〈〈” 请输入学生信息条数”<〈endl; cin〉〉n; cout〈<" 请输入学生信息\n”<<endl; cout〈<"姓名 性别 学号 班级 联系电话”<〈endl; fstream fs; fs。open("c:\\item。txt",ios::out); for(i=0;i<n;i++) { cin>>t[i]; fs<〈t[i]; } fs.close(); getchar(); return n; } void search_num(student t[],int n) { int i,nu,temp=-1000; system("cls"); cout<〈"请输入查找学生的学号:"<〈endl; cin〉〉nu; for(i=0;i<n;i++) { if(nu==t[i].getnum()) { cout<〈”该学生信息为:"<〈endl<<”姓名 性别 学号 班级 联系电话"<<endl; cout<〈t[i]; temp=i; } } if(temp==—1000) cout<〈endl〈〈endl〈<”学号为 ”<〈nu<〈” 的学生不存在!"〈〈endl; getchar(); } void search_ban(student t[],int n) { int i,ba,temp=—1000; system("cls"); cout〈〈"请输入查找学生的班级号:”〈〈endl; cin〉〉ba; cout〈<"该学生信息为:"<〈endl〈<"姓名 性别 学号 班级 联系电话"<〈endl; for(i=0;i<n;i++) { if(ba==t[i]。getban()) cout<<t[i]; temp=i; } if(temp==-1000) cout<<endl<〈endl〈<"班级为 "〈〈ba<〈” 的学生不存在!”<<endl; getchar(); } void search_name(student t[],int n) { int i,temp=-1000; char na[20]; system("cls"); cout〈<”请输入查找学生的姓名:"〈〈endl; cin〉>na; for(i=0;i〈n;i++) { if(strcmp(na,t[i].getname())==0) { cout<〈”该学生信息为:”<<endl<<”姓名 性别 学号 班级 联系电话"<〈endl; cout〈<t[i]; temp=i;} } if(temp==-1000) cout〈〈endl〈<endl〈〈"姓名为 ”<〈na〈〈" 的学生不存在!"〈<endl; getchar(); } void sort(student t[],int n) { student p;int s; system(”cls”); cout〈<”请选择升序或降序(1或2):"<<endl; cin>>s; if(s==1) {cout<〈"按学号排序(升序)完成如下:"<<endl; for(int i=0;i<n-1;i++) {for(int j=0;j<n—1-i;j++) { if(t[j]。getnum()>t[j+1].getnum()) { p=t[j]; t[j]=t[j+1]; t[j+1]=p; } } } cout〈〈"姓名 性别 学号 班级 联系电话"〈<endl; for(int a=0;a〈n;a++) { cout〈〈t[a]; } } if(s==2) {cout<<”按学号排序(降序)完成如下:"〈〈endl; for(int i=0;i<n-1;i++) {for(int j=0;j<n—1—i;j++) { if(t[j].getnum()〈t[j+1]。getnum()) { p=t[j]; t[j]=t[j+1]; t[j+1]=p; } } } cout〈<"姓名 性别 学号 班级 联系电话"〈〈endl; for(int a=0;a<n;a++) { cout<〈t[a]; } } getchar(); } void count(student t[],int n) { int i,c,temp=—1000; system(”cls”); fstream fs; fs.open(”c:\\item.txt",ios::in); cout<〈"请输入想统计人数的班级:”〈<endl; cin>〉c; int s=0; for(i=0;i〈n;i++) { fs〉>t[i]; if(c==t[i].getban()) { s++; temp=i; } } cout<〈"该班级人数为:”<<s<〈endl; fs。close(); if(temp==—1000) cout<<endl〈<endl<〈”班级为 "<<c〈〈” 的学生不存在!"<<endl; getchar(); } void change(student t[],int n) { int id,i,temp=—1000,run=0; system(”cls"); cout<<"请输入要修改的学生的学号:”〈〈endl; cin>〉id; fstream fs; fs。open("c:\\item。txt”,ios::in|ios::out); for(i=0;i<n;i++) { if(id==t[i].getnum()) { cout<<”修改前该学生信息为:"〈〈endl〈<"姓名 性别 学号 班级 联系电话"〈〈endl; cout<<t[i]; temp=i; run=2000;} } fs.close(); if(run==2000) {fs.open(”c:\\item。txt”,ios::in|ios::out); cout<〈”请输入你修改该学生的信息为:”<〈endl<〈"姓名 性别 学号 班级 联系电话”〈〈endl; cin〉〉t[i]; fs<<t[i]; fs。close(); cout<<"修改成功!”〈〈endl;} if(temp==-1000) cout〈〈endl<<endl<<"姓名为 ”〈<id〈<” 的学生不存在!"<〈endl; getchar(); } int del(student t[],int n) { int ber,temp=-1000,run=0; int i,j,nu; system(”cls”); cout<<"请输入要删除的学生的学号:"〈〈endl; cin>>ber; for(i=0;i〈n;i++) { if(ber==t[i]。getnum()) { temp=i; run=2000; } } if(run==2000) { cout〈<"删除中...。。。。.”<〈endl; cout<〈”删除后数据为:”〈〈endl<<"姓名 性别 学号 班级 联系电话"〈<endl; } fstream fs; fs。open(”c:\\item。txt”,ios::out); for(int x=0;x〈n;x++) { if(ber==t[x].getnum()) { for(j=0;j〈n;j++) { if(j==x) continue; else fs〈〈t[j]; cout〈<t[j]; } } } nu=n—1; fs.close(); if(temp==-1000) cout<<endl<<endl〈〈"学号为 ”<<ber〈〈” 的学生不存在!”〈<endl; getchar(); return nu; } void main() { student s[M]; int length; for(;;) { system(”cls"); switch(menu()) { case 0:exit(0);break; case 1:length=enter(s);break; case 5:sort(s,length);break; case 8:change(s,length);break; case 7:length=del(s,length);break; case 2:search_num(s,length);break; case 3:search_name(s,length);break; case 4:search_ban(s,length);break; case 6:count(s,length);break; } cout<<”按回车返回主菜单。."<<endl; getchar(); } return; }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 信息管理 系统 实验 报告 示例
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文