C++学生信息管理系统实验报告示例.docx
- 文档编号:30265930
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:31
- 大小:303.46KB
C++学生信息管理系统实验报告示例.docx
《C++学生信息管理系统实验报告示例.docx》由会员分享,可在线阅读,更多相关《C++学生信息管理系统实验报告示例.docx(31页珍藏版)》请在冰豆网上搜索。
C++学生信息管理系统实验报告示例
课程设计报告
课程设计题目:
学生信息管理系统
学生姓名:
张鹏
专业:
软件工程(嵌入式)
班级:
指导教师:
高永平
2017年6月9日
一、需求分析:
2
四、测试结果。
ﻩ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)定义类classstudent:
用于定义成员结构体数组.
(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〉
#defineM5000
using namespace std;
classstudent
{
public:
ﻩstudent(){}
student(charna[10],charse[10],intn,int b,chart[12]):
num(n),ban(b)
ﻩ{
ﻩﻩstrcpy(sex,se);
ﻩﻩstrcpy(name,na);
ﻩstrcpy(tel,t);
ﻩ}
friendistream & operator〉>(istream &is,student&s)
{
ﻩis>>s、name>〉s、sex〉>s、num〉〉s、ban〉〉s、tel;
ﻩﻩreturn is;
ﻩ}
ﻩfriendostream &operator<<(ostream&os,student&s)
{
ﻩos〈<s、name<<" "<<s、sex〈<" ”<
return os;
ﻩ}
intgetnum()
{
ﻩreturnnum;
ﻩ}
ﻩintgetban()
ﻩ{
ﻩﻩreturnban;
}
char *getsex()
ﻩ{
ﻩchar *s=new char[strlen(sex)];
ﻩs=sex;
ﻩﻩreturns;
}
ﻩchar*getname()
{
char *p=new char[strlen(name)];
ﻩp=name;
ﻩreturnp;
ﻩ}
char*gettel()
{
char*t=newchar[strlen(tel)];
ﻩt=tel;
ﻩﻩreturnt;
ﻩ}
private:
ﻩcharname[10];
ﻩcharsex[10];
ﻩintnum,ban;
chartel[12];
};
intmenu()
{
ﻩchar s[80];
int c;
cout〈<”************************** 主 菜 单 ***************************"<〈endl〈〈endl;
cout<<” | 0、退出当前程序 | \n"<〈endl;
ﻩcout<<” | 1、输入学生信息 | \n"< ﻩcout<〈” | 2、根据学号查询 |\n”〈〈endl; cout〈<" | 3、根据姓名查询 | \n”〈<endl; ﻩcout<〈" | 4、根据班级查询 | \n"<<endl; ﻩcout<<” | 5、根据学号排序 | \n”〈〈endl; ﻩcout<<” | 6、按班级计人数 | \n"〈<endl; cout<<" | 7、根据学号删除 | \n"〈 ﻩcout<<” | 8、根据学号修改 | \n"〈 cout〈〈"-------————---——-——-—--—-——-——----—---———---—-——--—--—-----——----——----——----”<<endl; ﻩcout<<" 输入您得菜单选项编号(0—8): ”< ﻩcout<〈” DesignedbyPeng"<<endl; for(;;) ﻩ{ gets(s); c=atoi(s); ﻩif(c〉8) ﻩcout<〈"输入错误,请重新输入! : ”; else ﻩbreak; } ﻩreturn c; } intenter(student t[]) { ﻩint i,n; system("cls"); ﻩcout<<" 请输入学生信息条数"<<endl; ﻩcin〉>n; ﻩcout<〈” 请输入学生信息\n”<<endl; cout<<"姓名 性别 学号 班级 联系电话”<〈endl; ﻩfstreamfs; fs、open(”c: \\item、txt”,ios: : out); ﻩfor(i=0;i { ﻩcin>〉t[i]; ﻩfs〈 } fs、close(); ﻩgetchar(); returnn; } void search_num(studentt[],intn) { ﻩinti,nu,temp=—1000; ﻩsystem("cls”); ﻩcout〈<"请输入查找学生得学号: "<<endl; cin〉>nu; for(i=0;i ﻩ{ ﻩif(nu==t[i]、getnum()) ﻩ{ ﻩﻩcout<〈”该学生信息为: ”〈 ﻩcout< ﻩﻩtemp=i; ﻩ} } if(temp==-1000) ﻩcout〈<endl〈 ”<<endl; ﻩgetchar(); } voidsearch_ban(studentt[],intn) { ﻩ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; ﻩgetchar(); } void search_name(studentt[],int n) { inti,temp=—1000; ﻩcharna[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(); } voidsort(studentt[],intn) { ﻩstudentp;ints; system("cls”); ﻩcout<<”请选择升序或降序(1或2): ”〈 cin〉〉s; if(s==1) {cout<〈”按学号排序(升序)完成如下: ”<〈endl; ﻩfor(inti=0;i {for(intj=0;j { ﻩﻩif(t[j]、getnum()>t[j+1]、getnum()) ﻩ{ ﻩp=t[j]; ﻩﻩﻩt[j]=t[j+1]; ﻩﻩt[j+1]=p; ﻩﻩ} ﻩ} } ﻩcout<〈"姓名 性别学号班级联系电话”〈〈endl; for(inta=0;a ﻩ{ cout〈〈t[a]; ﻩ} } if(s==2) {cout〈〈"按学号排序(降序)完成如下: "〈<endl; for(inti=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<〈"姓名性别学号 班级联系电话”〈 for(inta=0;a〈n;a++) ﻩ{ ﻩﻩcout<〈t[a]; } } getchar(); } void count(studentt[],intn) { ﻩinti,c,temp=—1000; ﻩsystem("cls”); ﻩfstreamfs; ﻩfs、open("c: \\item、txt",ios: : in); ﻩcout<<”请输入想统计人数得班级: "<<endl; cin>>c; ﻩints=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〈<"班级为 "< ”<〈endl; ﻩgetchar(); } voidchange(studentt[],intn) { intid,i,temp=-1000,run=0; system("cls"); cout<〈"请输入要修改得学生得学号: ”< ﻩcin>〉id; fstreamfs; ﻩfs、open(”c: \\item、txt",ios: : in|ios: : out); ﻩfor(i=0;i<n;i++) { ﻩﻩif(id==t[i]、getnum()) ﻩ{ ﻩcout<〈”修改前该学生信息为: "〈<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〈 fs、close(); cout<〈"修改成功! ”< if(temp==-1000) ﻩﻩcout<<endl<〈endl<〈”姓名为 "< "<〈endl; ﻩgetchar(); } intdel(studentt[],intn) { intber,temp=-1000,run=0; ﻩinti,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; ﻩ} fstreamfs; fs、open(”c: \\item、txt”,ios: : out); for(intx=0;x<n;x++) ﻩ{ ﻩif(ber==t[x]、getnum()) ﻩﻩ{ ﻩﻩfor(j=0;j ﻩﻩ{ ﻩﻩﻩif(j==x) ﻩﻩﻩcontinue; ﻩelse ﻩﻩﻩfs<<t[j]; ﻩcout<〈t[j]; } ﻩﻩ} } nu=n-1; ﻩfs、close(); if(temp==—1000) cout<<endl〈 ”<〈endl; ﻩgetchar(); ﻩreturnnu; } voidmain() { students[M]; int length; ﻩfor(;;) ﻩ{ ﻩsystem(”cls"); ﻩswitch(menu()) ﻩﻩ{ case0: exit(0);break; ﻩﻩcase1: length=enter(s);break; ﻩﻩcase5: sort(s,length);break; ﻩcase8: change(s,length);break; ﻩﻩcase7: length=del(s,length);break; ﻩcase 2: search_num(s,length);break; case3: search_name(s,length);break; ﻩcase4: search_ban(s,length);break; case6: count(s,length);break; } cout<<"按回车返回主菜单、、"<〈endl; getchar(); ﻩ} return; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 信息管理 系统 实验 报告 示例