PfnasmC课程设计报告.docx
- 文档编号:12213487
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:58
- 大小:187.63KB
PfnasmC课程设计报告.docx
《PfnasmC课程设计报告.docx》由会员分享,可在线阅读,更多相关《PfnasmC课程设计报告.docx(58页珍藏版)》请在冰豆网上搜索。
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! "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PfnasmC 课程设计报告 课程设计 报告