李治伟学生信息管理系统课程设计报告.docx

上传人:b****9 文档编号:23365713 上传时间:2023-05-16 格式:DOCX 页数:34 大小:344.93KB
下载 相关 举报
李治伟学生信息管理系统课程设计报告.docx_第1页
第1页 / 共34页
李治伟学生信息管理系统课程设计报告.docx_第2页
第2页 / 共34页
李治伟学生信息管理系统课程设计报告.docx_第3页
第3页 / 共34页
李治伟学生信息管理系统课程设计报告.docx_第4页
第4页 / 共34页
李治伟学生信息管理系统课程设计报告.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

李治伟学生信息管理系统课程设计报告.docx

《李治伟学生信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《李治伟学生信息管理系统课程设计报告.docx(34页珍藏版)》请在冰豆网上搜索。

李治伟学生信息管理系统课程设计报告.docx

李治伟学生信息管理系统课程设计报告

《学生信息管理系统》

程序设计基础课程设计报告

 

专业:

计算机科学与技术系

班级:

一班

姓名:

李治伟

学号:

2011508013

指导教师:

郭理

完成日期:

2012-6-25

1.课程设计目的

1.1课程设计目的:

《C++程序设计》是计算机科学与技术专业的必修课。

自己做一个课程设计是学习完本书后进行的一次全面的综合性练习。

其目的在于加深对C++编程的理解,培养学生的实践能力,促进理论与实践的结合。

通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。

1.2课程设计题目:

题目:

学生信息管理系统

1.3题目要求:

1.问题描述(功能要求):

学生信息包括:

学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生管理系统,使之能提供以下功能:

系统以菜单方式工作

学生信息录入功能(学生信息用文件保存)----输入

学生信息浏览功能----输出

查询,排序功能----算法

按学号查询

按姓名查询

(5)学生信息的删除与修改(可选项)

2.问题的解决方案:

根据系统功能要求,可以讲问题解决分为以下步骤:

分析系统中的各个实体之间的关系及其属性和行为;

根据问题描述,设计系统的类层次;

完成类层次中各个类的描述(包括属性和方法);

完成类中各个成员函数的定义;

完成系统的应用模块;

功能调用;

完成系统总结报告以及系统使用说明书。

其他要求:

只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读

至少采用文本菜单界面(如果能采用图形菜单界面更好)

学生可自动增加新功能模块

2.总体设计

2.1总体组成框图:

 

图2-1物理模型图

2.2总体流程图:

 

图2-2总体流程图

3.详细设计

3.1数据结构设计

classstudent

{

public:

student();

voidset();//初始化信息,第一次对信息的录入

voidadd();//添加学生信息

voiddel();//删除某学生信息

voidchange();//修改某学生信息

voidsearch();//查询某学生信息

voiddisplay();//显示全部学生信息

booltest(longnum);

private:

staticintnum;

longxuehao;

intage;

stringtel;

stringname,sex,address,birthday,email;

};

3.2信息录入模块

3.1.1函数功能:

录用学生的基本信息。

使用磁盘存储数据,以便在后面的使用。

3.1.2函数入口:

Student对象的成员函数。

入口函数:

set();使用fstring头文件,向文件写入数据。

在录入数据的时候进行数据的查找,学生的学号是不相同的,对学号进行查找,若有相同的则提示错误,若是没有相同的则允许添加信息。

3.1.3函数流程图:

图3-1set()信息录入函数流程图

3.2显示学生信息模块

3.2.1函数功能:

显示所有学生的相关信息。

3.2.2函数介绍:

普通成员函数。

voiddisplay();逐行的读取文件中的数据,直到文件中的数据读取完全,将读出的数据显示到屏幕上。

3.2.3函数流程图:

图3-2display()信息展示流程图

3.3查找学生信息模块

3.3.1函数功能:

查找文件中的学生的所有信息中符合查找条件的数据,然后将差得的结构返回给用户。

3.3.2函数介绍:

普通成员函数

voidsearch();打开文件,如果文件打开错误,提示错误信息。

打开文件成功后,要求用户输入查找的条件,使用文件读取功能,将特定的数据取出用户输入的信息进行比对,若相同则返回该学生的基本信息。

该函数提供两种查询的条件,可以按照学号和姓名查找,对与不同的条件的查询其结果一定相同。

给用户提供更多的选择。

3.3.3函数流程图

图3-3search()查找函数流程图

3.4删除学生信息模块

3.4.1函数功能:

删除文件中该特定条件的信息。

对不需要的数据进行清除,降低数据的冗余度。

3.4.2函数介绍:

普通成员函数。

voiddel();对需要删除的数据,提供姓名的查找形式,在后面的提供更多的查找方式,但是方式都是相同的,只是查询的条件不相同而已。

3.4.3函数流程图:

图3-4del()删除函数流程图

3.5修改学生信息模块

3.5.1函数功能:

修改文件中的学生的相关信息。

对文件中有错误的信息提供修改的函数功能。

减低数据的错误率。

3.5.2函数介绍:

普通成员函数。

voidchange();调用查询的函数,使用不同的查询的方式进行数据的查询,将查询得到的结果返回给用户,用户决定是否修改该数据。

3.5.3函数流程图:

图3-5change()修改函数流程图

4、运行结果

4.1主界面

图4-1—程序主界面

4.2录入信息

图4-2—信息录入

4.3显示学生信息

图4-3—信息一览表

4.4查找学生信息

图4-4—学生信息查询

4.5删除学生信息

图4-5—删除“李治伟”前

图4-6—删除“李治伟”后

4.6修改学生信息

图4-7—修改学生“杨尚”信息前

图4-8—修改学生“杨尚”信息后

5、课程设计总结

通过这次的课程设计,让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好c++是多么的重要。

从一遍一遍得修改到最后的定稿,使我在知识和能力上都得到了极大的提高,在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。

看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。

虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。

以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。

本次的课程设计对我们也是一个很好的实践的机会,锻炼了自己,提高了自己编程的能力,为今后的项目打好基础。

6、参考文献

1.《C++程序设计》作者:

谭浩强清华大学出版社

2.《VisualC++程序设计技巧与实例》作者:

许福舒志张威等出版社:

中国铁道出版社

3.《VisualC++全能速查宝典》作者:

刘锐宁,梁水,宋坤人民邮电出版社

4.《C++语言程序设计题典》作者:

李春葆,曾平,刘斌清华大学出版社

 

#include

#include

#include

#include

usingnamespacestd;

classstudent

{

public:

student();

voidset();//初始化信息,第一次对信息的录入

voidadd();//添加学生信息

voiddel();//删除某学生信息

voidchange();//修改某学生信息

voidsearch();//查询某学生信息

voiddisplay();//显示全部学生信息

booltest(longnum);

private:

staticintnum;

longxuehao;

intage;

stringtel;

stringname,sex,address,birthday,email;

};

 

student:

:

student(){}

voidstudent:

:

set()

{

inti;

longsetxuehao;

stringsetname;

intsetage;

stringsetsex;

stringsetbir;

stringsetaddress;

stringsettel;

stringsetemail;

ofstreamoutfile;

outfile.open("f1.txt",ios:

:

out|ios:

:

app);//----打开文件----

if(!

outfile)

{

cerr<<"openerror"<

exit

(1);

}

//----依次录入相应个数的学生信息----

for(i=0;;i++)

{

cout<<"当姓名输入为'0'时,停止输入!

"<

cout<<"请输入姓名:

"<

cin>>setname;

if(setname=="0")break;

if(setname!

="0")

{

cout<<"请输入学号(2011508013):

"<

cin>>setxuehao;

if(test(setxuehao))

{

name=setname;

outfile<

if(1000000000<=setxuehao&&setxuehao<=9999999999)

{xuehao=setxuehao;

outfile<

}

else

{cout<<"你输入的学号不符合要求"<

cout<<"请重新输入!

!

!

"<

cout<<"请输入学号(2011508013):

"<

cin>>setxuehao;

outfile<

}

cout<<"请输入年龄:

"<

cin>>setage;

if(0<=setage)

{age=setage;

outfile<

else

{

cout<<"你输入的年龄不符合要求"<

cout<<"请重新输入!

!

!

"<

cout<<"请输入年龄:

"<

cin>>setage;

age=setage;

outfile<

}

cout<<"请输入性别(男或女):

"<

cin>>setsex;

sex=setsex;

outfile<

cout<<"请输入生日(1992-10-4):

"<

cin>>setbir;

birthday=setbir;

outfile<

cout<<"请输入电话号码:

"<

cin>>settel;

tel=settel;

outfile<

cout<<"请输入家庭住址:

"<

cin>>setaddress;

address=setaddress;

outfile<

cout<<"请输入E-mail(840174956@):

"<

cin>>setemail;

email=setemail;

outfile<

}

}

cout<

}

outfile.close();//----关闭文件----

}

 

voidstudent:

:

add()

{

stringaddname;

longaddxuehao;

intaddage;

stringaddsex;

stringaddbirthday;

stringaddaddress;

stringaddtel;

stringaddemail;

//----以追加的方式录入信息,直接将信息追加到以前文件的末尾----

ofstreamoutfile;

outfile.open("f1.txt",ios:

:

out|ios:

:

app);//----打开文件----

if(!

outfile)

{

cerr<<"openerror"<

exit

(1);

}

//----依次输入相应的数据,并且追加到之前的文件中去----

cout<<"请输入您要添加的数据"<

cout<<"请输入姓名:

"<

cin>>addname;

cout<<"请输入学号(2011508013):

"<

cin>>addxuehao;

if(test(addxuehao))

{

name=addname;

outfile<

if(1000000000<=addxuehao&&addxuehao<=9999999999)

{xuehao=addxuehao;

outfile<

}

else

{cout<<"你输入的学号不符合要求"<

cout<<"请重新输入!

!

!

"<

cout<<"请输入学号(2011508013):

"<

cin>>addxuehao;

outfile<

}

cout<<"请输入年龄:

"<

cin>>addage;

if(0<=addage)

{age=addage;

outfile<

else

{

cout<<"你输入的年龄不符合要求"<

cout<<"请重新输入!

!

!

"<

cout<<"请输入年龄:

"<

cin>>addage;

age=addage;

outfile<

}

cout<<"请输入性别(男或女):

"<

cin>>addsex;

sex=addsex;

outfile<

cout<<"请输入生日(1992-10-4):

"<

cin>>addbirthday;

birthday=addbirthday;

outfile<

cout<<"请输入电话号码:

"<

cin>>addtel;

tel=addtel;

outfile<

cout<<"请输入家庭住址:

"<

cin>>addaddress;

address=addaddress;

outfile<

cout<<"请输入E-mail(840174956@):

"<

cin>>addemail;

email=addemail;

outfile<

}

}

 

voidstudent:

:

del()

{

longXUEHAO;

boolflag=false;

cout<<"\n\t\t删除学生的学号:

";

cin>>XUEHAO;

ifstreamstoreFile("f1.txt");

if(!

storeFile)

{

ofstreamstoreFile1("f1.txt");//

storeFile1.close();

cout<

!

!

!

"<

system("pause");

return;

}

ofstreamtempFile("temp.txt");

while(storeFile>>name>>xuehao>>age>>sex>>birthday>>tel>>address>>email)

{

if(XUEHAO==xuehao)

flag=true;

else

{

tempFile<

}

}

tempFile.close();

storeFile.close();

if(!

flag)

{

cout<

!

!

"<

system("pause");

return;

}

ofstreamstoreFile1("f1.txt");

ifstreamtempFile1("temp.txt");

storeFile1<

cout<<"\t\t删除成功!

"<

storeFile1.close();

tempFile1.close();

}

voidstudent:

:

change()

{

longXUEHAO;

boolflag=false;

cout<<"\n\t\t修改的学生学号:

";

cin>>XUEHAO;

ifstreamstoreFile("f1.txt");

if(!

storeFile)

{

ofstreamstoreFile1("f1.txt");//

storeFile1.close();

cout<

!

!

!

"<

system("pause");

system("cls");

return;

}

ofstreamtempFile("temp.txt");

while(storeFile>>name>>xuehao>>age>>sex>>birthday>>tel>>address>>email)

{

if(XUEHAO==xuehao)

{

flag=true;

cout<<"请输入姓名:

"<

cin>>name;

if(name!

="0")

{

cout<<"请输入学号(2011508013):

"<

cin>>xuehao;

cout<<"请输入年龄:

"<

cin>>age;

cout<<"请输入性别(男或女):

"<

cin>>sex;

cout<<"请输入生日(1992-10-4):

"<

cin>>birthday;

cout<<"请输入电话:

"<

cin>>tel;

cout<<"请输入地址:

"<

cin>>address;

cout<<"请输入E-mail(840174956@):

"<

cin>>email;

}

}

tempFile<

}

tempFile.close();

storeFile.close();

if(!

flag)

{

cout<

!

!

"<

system("pause");

return;

}

ofstreamstoreFile1("f1.txt");

ifstreamtempFile1("temp.txt");

storeFile1<

storeFile1.close();

tempFile1.close();

cout<<"已修改成功!

"<

}

voidstudent:

:

search()

{

intw=0;

charch;

intn;//输入的学号

stringsearchname;

cout<<"a.按学号查找b.按姓名查找"<

ifstreaminfile("f1.txt");

if(!

infile)

{

cerr<<"openerror"<

exit

(1);

}

cout<<"请输入a或者b!

"<

cin>>ch;

if(ch=='a')

{

cout<<"请输入学号!

"<

cin>>n;

while(infile>>name>>xuehao>>age>>sex>>birthday>>tel>>address>>email)

{

if(xuehao==n)

{

w=1;

cout<<"姓名:

"<

cout<<"学号:

"<

cout<<"年龄:

"<

cout<<"性别:

"<

cout<<"生日:

"<

cout<<"电话:

"<

cout<<"地址:

"<

cout<<"E-mail:

"<

}

}

if(w==0)

cout<<"无此人信息!

"<

}

elseif(ch=='b')

{

cout<<"请输入姓名!

"<<

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

当前位置:首页 > 职业教育 > 中职中专

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

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