PfnasmC课程设计报告Word文件下载.docx
《PfnasmC课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《PfnasmC课程设计报告Word文件下载.docx(58页珍藏版)》请在冰点文库上搜索。
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)删除学生信息。
(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();
求合格率函数
3.1.2类之间的关系
友元类
classstudent
friendclassbrick;
//模块类中定义模块函数
brickvoidcreate();
通过students[100];
调用student类中的数据成员charname[5];
intssum;
3.1.3函数设计
主函数算法
输入的字符存入choose变量中
在主函数中需要输出主菜单选择界面,
cout<
<
"
-------------s-浏览关机后学生信息---\n"
;
cout<
-------------1-录入学生信息-----------\n"
-------------2-查询学生信息-----------\n"
-------------3-修改学生的信息----------\n"
-------------4-增加学生的信息--------\n"
-------------5-删除学生的信息---------\n"
-------------6-总分排序--------------\n"
-------------7-浏览学生信息---------\n"
-------------8-求各课程平均成绩------\n"
-------------9-求合格率-----------\n"
------------t-退出\n"
请选择:
--------\n"
switch(choose)
{
case'
1'
:
-1-录入学生信息
case'
2'
-2-查询学生信息-
3'
-修改学生的信息-
ase'
4'
-增加学生的信息
5'
删除学生的信息--
6'
总分排序
7'
-浏览学生信息-
8'
求各课程平均成绩----
9'
求合格率
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(){}
voidinput()
{cout<
学号(不能重复):
cin>
>
schoolnumber;
姓名:
name;
性别:
sex;
班级:
grade;
数学:
math;
英语:
english;
c++:
c;
}
voidoutput()
schoolnumber<
'
\t'
name<
sex<
grade<
math<
english<
c<
math+english+c<
endl;
private:
};
classbrick
brick(){}
studentt};
4.2函数实现
//求和函数
intstudent:
sum()
{ints;
s=math+english+c;
returns;
}
//创建函数
voidbrick:
create()
{
ofstreamoutfile("
d:
\\f1.txt"
ios:
app);
if(!
outfile)
openerror!
return;
intm;
录入学生信息人数"
m;
//outfile<
学号,姓名,性别,班级,数学,英语,c++,总分"
学号,姓名,性别,班级,数学,英语,c++,"
请输入相关信息"
for(inti=0;
i<
i++)s[i].input();
for(i=0;
i++)
{outfile<
s[i].schoolnumber<
s[i].name<
s[i].sex<
s[i].grade<
s[i].math<
s[i].english<
s[i].c<
s[i].math+s[i].english+s[i].c<
n++;
outfile.close();
//显示函数
display()
{
学号"
姓名"
性别"
班级"
数学"
英语"
c++"
总分"
n;
s[i].output();
//查找函数
search()
intnum,i;
\n请输入学号\n"
num;
for(i=0;
if(num==s[i].schoolnumber)
//修改编辑函数
modify()
intnum,i,j;
charnam[5];
charse;
intnumber;
chargra[7];
intm;
inte;
for(i=0;
i++)
if(num==s[i].schoolnumber)
for(j=i;
j<
n-1;
j++)
s[j]=s[j+1];
学号,姓名,性别,班级,数学,英语,c++"
学号(不能与其他号重复):
number;
nam;
se;
gra;
e;
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<
s[n-1].schoolnumber<
\t"
s[n-1].name<
s[n-1].sex<
s[n-1].grade<
s[n-1].math<
s[n-1].english<
s[n-1].c<
s[n-1].math+s[n-1].english+s[n-1].c<
//添加函数
add()
charc;
do
录入增加学生的信息"
s[n].input();
s[n].schoolnumber<
s[n].name<
s[n].sex<
s[n].grade<
s[n].math<
s[n].english<
s[n].c<
s[n].math+s[n].english+s[n].c<
\\f1.txt中已经了增加"
n++;
还要增加吗(y/n)?
}while(n<
100&
&
(c=='
y'
||c=='
Y'
));
//删除函数
deleted()
{inti,j;
intnum;
请输入删除学生的学生号"
if(s[i].schoolnumber==num)
{n--;
for(j=i;
e