学生档案管理系统Word文件下载.docx
- 文档编号:20060335
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:17
- 大小:241.83KB
学生档案管理系统Word文件下载.docx
《学生档案管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生档案管理系统Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
根据C++面向对象的特点,函数也可以调用类中的成员函数。
这样主函数,函数以及成员函数之间的层次分明,关系就清晰明了,不会有冗长的感觉。
函数设计的主要任务是确定调用的成员函数以及屏幕显示。
确定调用的数据成员和成员函数
在一个类中定义需要的数据成员,如:
classTstu
{
charname[20];
intnumber;
floatmath,cpp,english,average,sum;
public:
Tstu()
{};
在classTstu确定了数据成员floatmath,cpp,english,average,sum;
等和成员函数public:
编写函数也需要控制输出以及功能间的转换,从而每一个函数都需要有一个循环来控制其结束。
循环语句有for和do…while以及if语句。
比如:
数据录入运用了do…while语句。
○3
学生管理系统构架图
如下页:
(3)成员函数的设计。
成员函数是系统的灵魂,因为所有的处理过程的细节都在成员函数中完成的。
编写成员函数实际上就是一个算法的实现。
成员函数的设计包括两方面内容:
成员函数算法的实现和成员函数过程的实现。
运用do…while语句和switch..case来实现循环输出。
最后屏幕上则需要显示一些完成了某种功能的标志,例如“指令错误!
请重新输入”等。
2、系统流程图各功能模块设计思路及流程图
1.学生信息库模块在学生信息库函数中利用指针对学生的成员变量进行赋值
2.总体算法设计思路及流程图先利用口令判断函数进行判断,再通过循环进行学生档案的输入、添加、修改等
3、数据输入模块算法设计思路及流程图
4、数据删除模块算法设计思路及流程图
Y
N
3、源代码
#include<
iostream>
fstream>
string>
iomanip>
usingnamespacestd;
structstudent{
stringsno;
stringsname;
stringscore;
};
voidpassword()
{
stringstr1;
system("
cls"
);
cout<
<
endl<
endl;
setw(30)<
"
请输入口令:
;
cin>
>
str1;
if(str1!
="
computer"
)
{
cout<
setw(40)<
口令不正确!
请重新输入!
\n"
system("
pause"
password();
}
return;
}
intmenu()
intn=1,select=-1;
setw(50)<
***********[主菜单]************"
setw(26)<
n++<
.输入学生信息"
.输出学生信息"
.删除学生信息"
.添加学生信息"
.修改学生信息"
setw(31)<
0.退出"
setw(36)<
〔请选择〕:
select;
if(select<
0||select>
5)
非法数据!
select=menu();
returnselect;
charexit()
是否退出?
(y/n)"
chars;
s;
returns;
voidinput()
ofstreamoutfile("
info.dat"
ios:
:
out);
if(!
outfile){
文件打开错误!
return;
输入学生个数:
intn;
n;
studentoutst[99];
for(inti=0;
i<
n;
i++)
("
学号:
"
cin>
(outst[i].sno);
姓名:
(outst[i].sname);
学生成绩:
(outst[i].score);
outfile<
outst[i].sno<
'
\t'
outst[i].sname<
outst[i].score<
outfile.close();
voidlist()
inti=0;
ifstreaminfile("
in);
infile){
studentinst[99];
while(!
infile.eof()){
infile>
inst[i].sno>
inst[i].sname>
inst[i].score;
++i;
for(intj=0;
j<
i-1;
j++){
学号:
inst[j].sno<
姓名:
inst[j].sname;
学生成绩:
inst[j].score<
infile.close();
}
voiddele()
fstreamfile("
in|ios:
file){
studentst[99];
file.eof()){
file>
st[i].sno>
st[i].sname>
st[i].score;
file.close();
请输入要删除学生的学号:
stringdel;
del;
intj;
--i;
for(j=0;
i;
++j){
if(st[j].sno==del){
while(j!
=i-1){
st[j]=st[j+1];
++j;
}
break;
}
if(j==i){
没有这个人!
file.open("
++j)
file<
st[j].sno<
st[j].sname<
st[j].score<
学号为"
del<
的同学已删除"
voidappend()
app);
studentoutst;
(outst.sno);
(outst.sname);
(outst.score);
outfile<
outst.sno<
outst.sname<
outst.score<
voidmodify()
请输入要修改学生的学号:
stringmod;
mod;
if(st[j].sno==mod){
cout<
请输入要修改的项目:
(1)学号
(2)姓名(3)学生成绩"
intsel;
cin>
sel;
switch(sel){
case1:
cout<
cin>
(st[j].sno);
break;
case2:
(st[j].sname);
case3:
(st[j].score);
修改成功!
intmain()
intselect;
password();
while
(1)
select=menu();
switch(select)
{
case0:
s=exit();
if(s=='
y'
||s=='
Y'
)return0;
case1:
input();
case2:
list();
case3:
dele();
case4:
append();
case5:
modify();
default:
无效输入!
return0;
4、截图展示
1、口令输入界面
2、主菜单界面
3、数据输入功能
4、数据显示功能
5、数据添加功能
6、数据删除功能
7、数据修改功能
5、课程设计心得
在编程时条理清晰是至关重要的。
主函数,函数,成员函数之间的层次关系,调用关系一定要有一个全面的把握。
比如确立了一个classTstu,类里边要包含什么数据成员和成员函数。
怎么运用语句都要想清楚。
要读懂课本第十章的内容。
因为C++的输入输出,包括文件输入输出和格式化输入输出都有很重要的作用。
我们需要保存已经有的数据,并且在下一次调用,都要用到这些知识。
在编译,链接,调试的过程中一定要有耐心。
因为一个程序中会有很多小的错误,甚至有的问题要几个小时才能解决。
遇到问题,一定要全面分析,有时候还要向同学请教。
总得来说,编程时极需要耐心的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 档案管理系统