PfnasmC课程设计报告.docx

上传人:b****5 文档编号:12213487 上传时间:2023-04-17 格式:DOCX 页数:58 大小:187.63KB
下载 相关 举报
PfnasmC课程设计报告.docx_第1页
第1页 / 共58页
PfnasmC课程设计报告.docx_第2页
第2页 / 共58页
PfnasmC课程设计报告.docx_第3页
第3页 / 共58页
PfnasmC课程设计报告.docx_第4页
第4页 / 共58页
PfnasmC课程设计报告.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

PfnasmC课程设计报告.docx

《PfnasmC课程设计报告.docx》由会员分享,可在线阅读,更多相关《PfnasmC课程设计报告.docx(58页珍藏版)》请在冰豆网上搜索。

PfnasmC课程设计报告.docx

PfnasmC课程设计报告

|

||生活|

一个人总要走陌生的路,看陌生的风景,听陌生的歌,然后在某个不经意的瞬间,你会发现,原本费尽心机想要忘记的事情真的就这么忘记了..

|-----郭敬明

 

北华航天工业学院

 

《基于C++的面向对象程序设计实例》

课程设计报告

 

报告题目:

学生信息管理系统

作者所在系部:

计算机科学与工程系

作者所在专业:

计算机科学与技术

作者所在班级:

B08512

作者姓名:

章国龙

指导教师姓名:

侯晓芳

完成时间:

2009年6月25日星期四

 

北华航天工业学院教务处制

摘要

在当前的各个大学,中学,小学都需要拥有一套完善的,并且适合自身特点的学生信息管理系统,用它来管理学生信息。

如1)添加学生信息。

2)删除学生信息。

3)修改学生信息。

4)查询学生信息。

5)显示学生信息。

6)综合统计(各课程平均成绩和合格率)。

7)总分排序。

8)保存功能:

将添加、删除、修改结果保存到文本文件中。

9)退出系统。

以实现对学生信息的统一管理。

本文利用MicrosoftVisualC++6.0编写程序实现了用户对学生信息的管理操作。

该程序中定义了student类和brick类,在brick类中定义了创建函数,显示函数,查找函数,修改编辑函数,添加函数,删除函数,排序函数,平均分函数,求合格率函数。

再用这些函数调用student类对象students[100]实现题中要求实现的功能。

本系统主要有十个功能模块:

1-录入学生信息2查询学生信息3-修改学生的信息-3增加学生的信息-4删除学生的信息5-总分排序-6浏览学生信息7-求各课程平均成绩-8求合格率-9浏览关机后学生信已经过全面的系统测试,能够很好的运行,达到了预期的效果。

关键词:

系统设计数据库信息功能模块-录入查询修改

增加删除总分排序浏览平均成绩合格率关机后

摘要Ⅰ

第1章绪论1

1.1课题研究的目的1

1.2选题的目的及意义5

1.3课程设计环境.....................................................

第2章系统需求分析12

2.1问题描述................................................

2.2功能要求.................................................

2.3问题的解决方案...............................................

第3章系统开发的技术背景17

3.1数据设计.............................................

3.1.1类设计。

...............................................

3.1.2类之间的关系...........................................

3.1.3函数设计..............................................

3.2结构设计...............................................

第4章系统实现.......................................................

4.1类实现............................................................

4.2函数实现......................................................

4.3主函数实现......................................................

第5章系统测试25

5.1模块测试25

5.2课程设计过程中遇到的问题..............................

总结37

致谢38

参考文献39

附录40

第一章绪论

1.1课程设计的目的

1)要求学生能够熟练掌握C++语言的基本知识和技能。

2)基本掌握面向对象程序设计的基本思路和方法。

3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

1.2课程设计的背景和意义

1.2.1课程设计的背景

当前的各个大学,中学,小学都需要拥有一套完善的,并且适合自身特点的学生信息管理系统,用它来管理学生信息。

2.技术层面的支持

1.2.2课程设计的意义

实现对学生信息的统一管理。

从而提高管理人员的工作效率。

1.3课程设计环境

MicrosoftVisualC++6.0笔记本电脑(显示器,鼠标等)

第二章需求分析

第二章需求分析

2.1问题描述

某校学生信息包括学号、姓名、性别、班级、三门课成绩和总成绩。

设计一程序实现对学生信息的管理,

2.2功能要求

(1)本程序完成的功能主要有:

1)添加学生信息。

2)删除学生信息。

3)修改学生信息。

4)查询学生信息。

5)显示学生信息。

6)综合统计(各课程平均成绩和合格率)。

7)总分排序。

8)保存功能:

将添加、删除、修改结果保存到文本文件中。

9)退出系统。

(2)学生在完成本次课程设计的基本要求后,从便于用户使用和功能完整性的角度考虑进一步完善程序,请参照题目1和2的要求。

2.3问题的解决方案

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

1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

2)分析系统中的各个实体及它们之间的关系;

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

4)完成类层次中各个类的描述;

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

6)完成系统的应用模块;

7)功能调试;

8)完成系统总结报告。

第3章系统设计

3.1数据设计

3.1.1类设计。

Brick类

Student类

charname[5];姓名

charsex;性别

intschoolnumber;学号

chargrade[7];班级

intmath;数学

intenglish;英语

intc;c++

intssum总分

brick;staticintn;统计文本中对象个数

students[100];存放输入的数据

studentt;比较后交换s[i]与s[i+1]的值

intsum();求和函数

voidinput()输入数据函数

voidoutput()输出数据函数

brick(){}构造函数

voidcreate();创建函数

voiddisplay();显示函数

voidsearch();查找函数

voidmodify();修改编辑函数

voidadd();添加函数

voiddeleted();删除函数

voidaverage();平均分函数

voidsort();排序函数

voidhegelv();求合格率函数

students[100];

3.1.2类之间的关系

友元类

classstudent

friendclassbrick;//模块类中定义模块函数

brickvoidcreate();

voiddisplay();

voidsearch();

voidmodify();

voidadd();

voiddeleted();

voidaverage();

voidsort();

voidhegelv();通过students[100];调用student类中的数据成员charname[5];

charsex;

intschoolnumber;

chargrade[7];

intmath;

intenglish;

intc;

intssum;

3.1.3函数设计

主函数算法

输入的字符存入choose变量中

在主函数中需要输出主菜单选择界面,

cout<<"-------------s-浏览关机后学生信息---\n";

cout<<"-------------1-录入学生信息-----------\n";

cout<<"-------------2-查询学生信息-----------\n";

cout<<"-------------3-修改学生的信息----------\n";

cout<<"-------------4-增加学生的信息--------\n";

cout<<"-------------5-删除学生的信息---------\n";

cout<<"-------------6-总分排序--------------\n";

cout<<"-------------7-浏览学生信息---------\n";

cout<<"-------------8-求各课程平均成绩------\n";

cout<<"-------------9-求合格率-----------\n";

cout<<"------------t-退出\n"<<"请选择:

--------\n";

switch(choose)

{

case'1':

-1-录入学生信息

case'2'-2-查询学生信息-

case'3':

-修改学生的信息-

ase'4':

-增加学生的信息

case'5':

删除学生的信息--

case'6':

总分排序

case'7':

-浏览学生信息-

case'8':

求各课程平均成绩----

case'9':

求合格率

case's':

-s-浏览关机后学生信息}

接着判断用户是否继续选择,若继续则从新获得用户输入,否则退出程序。

//求和函数算法,直接在sum函数中使数学,英语,c++的分数相加

//创建函数算法,创建一个文本文件,并从键盘输入的数据存放在文本文件中,不传递参数

//显示函数算法,打开学生信息管理系统文本文件,通过循环读取数据,并将数据一一输出到屏幕上,不传递参数

/修改编辑函数算法,打开学生信息管理系统文本文件,从文件中通过循环读取数据

并将它们存放students[100]中,对数据进行修改,最后再将数据存放到信息管理系统文本文件中,修改过程是:

输入需修改记录的学生号,通过循环查找到该记录后,再输入

新数据替代原有数据。

//查找函数算法,打开学生信息管理系统文本文件,从文件中通过循环读取数据

并将它们存放students[100]中,输入需修改记录的学生号,通过循环查找到该记录后,并将数据一一输出到屏幕上,不传递参数。

//添加函数算法,打开学生信息管理系统文本文件,从文件中通过循环读取数据

并将它们存放到students[100]中,输入新添加学生的学号和相应的信息,并将数据存放到students[100]中,每输入一条数据,记录数n加1.

//平均分函数算法,打开学生信息管理系统文本文件,从文件中通过循环读取数据

并将它们存放students[100]中,定义变量ch,输入ch,当输入m或M时,将数学成绩求和存入s1变量中,再输出s1除于记录数n的结果;当输入e或E时,将英语成绩求和存入s2变量中,再输出s2除于记录数n的结果;当输入c或C时,将C++成绩求和存入s3变量中,再输出s3除于记录数n的结果;

//求合格率函数算法,打开学生信息管理系统文本文件,从文件中通过循环读取数据

并将它们存放students[100]中,定义变量ch,输入ch,当输入m或M时,if(s[i].math>=60)count1变量自加1,再输出count1除于记录数n的结果;当输入e或E时,if(s[i].english>=60)count2变量自加1,再输出count2除于记录数n的结果;当输入c或C时,if(s[i].c>=60)count3变量自加1,再输出count3除于记录数n的结果;

/排序函数算法,打开学生信息管理系统文本文件,从文件中通过循环读取数据

并将它们存放students[100]中,if(s[i].sum>s[i+1].sum)使s[i]与s[i+1]互换,最后用循环将所有数据存入学生信息管理系统文本文件中。

//删除函数算法,打开学生信息管理系统文本文件,从文件中通过循环读取数据

并将它们存放students[100]中,输入新删除学生的学号和相应的信息,每删除一条数据,记录数n减1.

3.2结构设计

3.2.1系统流程图

3.2.2界面设计

主菜单

合格率子菜单

平均分子菜单

第四章系统实现

4.1类实现classstudent

{public:

student(){}

intsum();

voidinput()

{cout<<"学号(不能重复):

";cin>>schoolnumber;

cout<<"姓名:

";cin>>name;

cout<<"性别:

";cin>>sex;

cout<<"班级:

";cin>>grade;

cout<<"数学:

";cin>>math;

cout<<"英语:

";cin>>english;

cout<<"c++:

";cin>>c;

}

voidoutput()

{cout<

}

friendclassbrick;//模块类中定义模块函数

private:

charname[5];

charsex;

intschoolnumber;

chargrade[7];

intmath;

intenglish;

intc;

intssum;

};

classbrick

{public:

brick(){}

voidcreate();

voiddisplay();

voidsearch();

voidmodify();

voidadd();

voiddeleted();

voidaverage();

voidsort();

voidhegelv();

private:

staticintn;

students[100];

studentt};

4.2函数实现

voidinput()

{cout<<"学号(不能重复):

";cin>>schoolnumber;

cout<<"姓名:

";cin>>name;

cout<<"性别:

";cin>>sex;

cout<<"班级:

";cin>>grade;

cout<<"数学:

";cin>>math;

cout<<"英语:

";cin>>english;

cout<<"c++:

";cin>>c;

}

voidoutput()

{cout<

}

//求和函数

intstudent:

:

sum()

{ints;

s=math+english+c;

returns;

}

//创建函数

voidbrick:

:

create()

{

ofstreamoutfile("d:

\\f1.txt",ios:

:

app);

if(!

outfile)

{cout<<"openerror!

"<

return;

}

intm;

cout<<"录入学生信息人数"<

cin>>m;

//outfile<<"学号,姓名,性别,班级,数学,英语,c++,总分"<

cout<<"学号,姓名,性别,班级,数学,英语,c++,"<

cout<<"请输入相关信息"<

for(inti=0;i

for(i=0;i

{outfile<

n++;

}

outfile.close();

}

//显示函数

voidbrick:

:

display()

{

cout<<"学号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"班级"<<'\t'<<"数学"<<'\t'<<"英语"<<'\t'<<"c++"<<'\t'<<"总分"<

for(inti=0;i

s[i].output();

}

//查找函数

voidbrick:

:

search()

{

intnum,i;

cout<<"\n请输入学号\n";

cin>>num;

cout<<"学号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"班级"<<'\t'<<"数学"<<'\t'<<"英语"<<'\t'<<"c++"<<'\t'<<"总分"<

for(i=0;i

if(num==s[i].schoolnumber)

s[i].output();

}

//修改编辑函数

voidbrick:

:

modify()

{

intnum,i,j;

charnam[5];

charse;

intnumber;

chargra[7];

intm;

inte;

intc;

cout<<"\n请输入学号\n";

cin>>num;

ofstreamoutfile("d:

\\f1.txt",ios:

:

app);

if(!

outfile)

{cout<<"openerror!

"<

return;

}

for(i=0;i

if(num==s[i].schoolnumber)

for(j=i;j

s[j]=s[j+1];

cout<<"学号,姓名,性别,班级,数学,英语,c++"<

cout<<"请输入相关信息"<

cout<<"学号(不能与其他号重复):

";cin>>number;

cout<<"姓名:

";cin>>nam;

cout<<"性别:

";cin>>se;

cout<<"班级:

";cin>>gra;

cout<<"数学:

";cin>>m;

cout<<"英语:

";cin>>e;

cout<<"c++:

";cin>>c;

s[n-1].schoolnumber=number;

strcpy(s[n-1].name,nam);

s[n-1].sex=se;

strcpy(s[n-1].grade,gra);

s[n-1].math=m;

s[n-1].english=e;

s[n-1].c=c;

outfile<

outfile.close();

cout<

}

//添加函数

voidbrick:

:

add()

{

ofstreamoutfile("d:

\\f1.txt",ios:

:

app);

if(!

outfile)

{cout<<"openerror!

"<

return;

}

charc;

do

{cout<<"学号,姓名,性别,班级,数学,英语,c++"<

cout<<"录入增加学生的信息"<

s[n].input();

outfile<

cout<<"d:

\\f1.txt中已经了增加"<

n++;

cout<<"还要增加吗(y/n)?

"<

cin>>c;

}while(n<100&&(c=='y'||c=='Y'));

outfile.close();

}

//删除函数

voidbrick:

:

deleted()

{inti,j;

intnum;

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

cin>>num;

for(i=0;i

if(s[i].schoolnumber==num)

{n--;

for(j=i;j

s[j]=s[j+1];

}

ofstreamoutfile("d:

\\f1.txt",ios:

:

app);

if(!

outfile)

{cout<<"openerror!

"<

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

当前位置:首页 > 表格模板 > 合同协议

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

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