C++学生信息管理系统实验报告示例.docx

上传人:b****0 文档编号:12810676 上传时间:2023-04-22 格式:DOCX 页数:31 大小:370.92KB
下载 相关 举报
C++学生信息管理系统实验报告示例.docx_第1页
第1页 / 共31页
C++学生信息管理系统实验报告示例.docx_第2页
第2页 / 共31页
C++学生信息管理系统实验报告示例.docx_第3页
第3页 / 共31页
C++学生信息管理系统实验报告示例.docx_第4页
第4页 / 共31页
C++学生信息管理系统实验报告示例.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C++学生信息管理系统实验报告示例.docx

《C++学生信息管理系统实验报告示例.docx》由会员分享,可在线阅读,更多相关《C++学生信息管理系统实验报告示例.docx(31页珍藏版)》请在冰豆网上搜索。

C++学生信息管理系统实验报告示例.docx

C++学生信息管理系统实验报告示例

课程设计报告

 

课程设计题目:

学生信息管理系统

 

学生姓名:

张鹏

专业:

软件工程(嵌入式)

班级:

1621806

指导教师:

高永平

2017年6月9日

 

一、需求分析:

根据对学生信息管理的需要,建立一个“学生信息管理系统”,以方便对学生信息数据的录入、修改、删除和查询功能。

要求完:

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

#defineM5000

usingnamespacestd;

classstudent

public:

student(){}

student(charna[10],charse[10],intn,intb,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;

returnis;

friendostream&operator<〈(ostream&os,student&s)

os<

name<〈”"<〈s。

sex〈〈”"〈

ban〈<"”〈〈s.tel〈

returnos;

}

intgetnum()

returnnum;

intgetban()

{

returnban;

}

char*getsex()

{

char*s=newchar[strlen(sex)];

s=sex;

returns;

char*getname()

char*p=newchar[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()

chars[80];

intc;

cout<〈"**************************主菜单***************************"〈

cout<<”|0。

退出当前程序|\n”〈〈endl;

cout<〈”|1。

输入学生信息|\n”<〈endl;

cout<<”|2。

根据学号查询|\n”<

cout<〈"|3.根据姓名查询|\n"<〈endl;

cout〈<”|4.根据班级查询|\n"〈

cout<〈”|5。

根据学号排序|\n"<〈endl;

cout<〈”|6。

按班级计人数|\n"〈〈endl;

cout<<”|7.根据学号删除|\n”<

cout<<"|8。

根据学号修改|\n"<〈endl;

cout〈〈"—---—-———-———-—--—--—---———-----———-————————-—-------———-—-——--——-——-—--——--—"〈

cout〈〈”输入您的菜单选项编号(0—8):

”〈

cout<〈”DesignedbyPeng”<〈endl;

for(;;)

gets(s);

c=atoi(s);

if(c>8)

cout<<”输入错误,请重新输入!

:

”;

else

break;

}

returnc;

intenter(studentt[])

{

inti,n;

system(”cls");

cout<〈”请输入学生信息条数"〈〈endl;

cin〉〉n;

cout<〈"请输入学生信息\n"〈

cout〈〈”姓名性别学号班级联系电话"〈

fstreamfs;

fs。

open(”c:

\\item.txt”,ios:

:

out);

for(i=0;i〈n;i++)

cin〉>t[i];

fs〈〈t[i];

}

fs.close();

getchar();

returnn;

voidsearch_num(studentt[],intn)

inti,nu,temp=-1000;

system(”cls");

cout〈〈"请输入查找学生的学号:

”〈

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();

}

voidsearch_ban(studentt[],intn)

{

inti,ba,temp=—1000;

system("cls”);

cout<〈”请输入查找学生的班级号:

”<

cin〉〉ba;

cout〈〈”该学生信息为:

"〈〈endl〈〈"姓名性别学号班级联系电话"〈〈endl;

for(i=0;i

if(ba==t[i].getban())

cout〈〈t[i];

temp=i;

}

if(temp==-1000)

cout<

”〈

getchar();

}

voidsearch_name(studentt[],intn)

{

inti,temp=—1000;

charna[20];

system("cls");

cout〈<"请输入查找学生的姓名:

”〈

cin>>na;

for(i=0;i〈n;i++)

{

if(strcmp(na,t[i]。

getname())==0)

cout<<"该学生信息为:

”<

cout〈

temp=i;}

}

if(temp==-1000)

cout<

"〈〈endl;

getchar();

}

voidsort(studentt[],intn)

studentp;ints;

system("cls");

cout<〈"请选择升序或降序(1或2):

”<

cin〉>s;

if(s==1)

{cout〈〈"按学号排序(升序)完成如下:

”<

for(inti=0;i〈n-1;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<

if(s==2)

{cout〈〈”按学号排序(降序)完成如下:

”〈

for(inti=0;i

{for(intj=0;j

{

if(t[j].getnum()

getnum())

{

p=t[j];

t[j]=t[j+1];

t[j+1]=p;

}

}

cout〈〈"姓名性别学号班级联系电话”〈

for(inta=0;a

{

cout<

getchar();

}

voidcount(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<<”该班级人数为:

"〈

fs。

close();

if(temp==—1000)

cout〈〈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

{

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<<"姓名性别学号班级联系电话”<

cin〉〉t[i];

fs〈〈t[i];

fs.close();

cout<〈”修改成功!

"<

if(temp==—1000)

cout〈〈endl〈

”〈

getchar();

intdel(studentt[],intn)

intber,temp=—1000,run=0;

inti,j,nu;

system(”cls");

cout〈<"请输入要删除的学生的学号:

"<〈endl;

cin>〉ber;

for(i=0;i

if(ber==t[i].getnum())

temp=i;

run=2000;

}

if(run==2000)

cout<<”删除中...。

..。

”〈

cout<<”删除后数据为:

"<

}

fstreamfs;

fs.open(”c:

\\item。

txt”,ios:

:

out);

for(intx=0;x〈n;x++)

{

if(ber==t[x].getnum())

{

for(j=0;j〈n;j++)

{

if(j==x)

continue;

else

fs<

cout〈

}

nu=n-1;

fs.close();

if(temp==-1000)

cout<〈endl〈

"<〈endl;

getchar();

returnnu;

voidmain()

{

students[M];

intlength;

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;

case2:

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;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1