学生学籍信息管理系统C++文档格式.docx
《学生学籍信息管理系统C++文档格式.docx》由会员分享,可在线阅读,更多相关《学生学籍信息管理系统C++文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
structStuInfo
{
intstuNo;
//学号
charname[20];
//姓名
charsex[3];
//性别
intdomNum;
//宿舍号
chartel[12];
//电话号码
};
//学生基本信息结构体
structStuGraInfo{
charcourseName[10];
//课程名称
intcourseNo;
//课程编号
intcreditHour;
//学分
structscore
{
intstuNo;
floattriGrade;
//平时成绩
floatexamGrade;
//卷面成绩
floattotalGrade;
//综合总评成绩
}score_talbe[N];
};
//成绩单基本信息结构体
voidcreate();
voidsearch();
voidinsert();
voidrepin();
voiddel();
voidhelp();
voidrecreate();
StuGraInfop[3];
StuInfod[N];
intstuNum=0;
intmain()
charch;
do{
cout〈〈setw(60)〈〈"
”〈<
endl;
cout<
〈setw(60)〈〈”--—-—-——-欢迎进入系统!
---———-—-—----"
〈<
endl;
cout〈〈setw(40)〈<
"
1:
创建”〈<
endl〈〈setw(40)〈〈"
2:
查询"
<
endl〈〈setw(40)<
〈"
3:
修改”〈<
endl〈<
setw(40)<
4:
排序”〈<
endl<
〈setw(40)<
〈”5:
删除"
setw(40)〈〈”6:
添加”〈〈endl〈〈setw(40)<
”7:
帮助”〈<
”0:
退出”〈〈endl;
cout<
setw(60)<
〈”—-———------—-——--——-----—-———----————-”<
〈endl;
”请选择(0~7):
”;
cin>
>
ch;
while(!
(ch〈=’7’&&
ch>
=’0’))/*输入不在0到5之间无效*/
{
cout<
”数据输入错误,请重新选择(0~7):
”;
cin〉>
ch;
}
switch(ch)
{
case’1'
:
create();
break;
case’2'
:
search();
break;
case’3’:
insert();
case’4’:
repin();
case'
5'
del();
case’6'
recreate();
case'
7'
help();
}
}while(ch!
='
0’);
return0;
}
voidcreate()
{//模块一录入学生信息
inti,j,t=0;
charm;
StuGraInfos[3]={{"
数学”,10,5},{"
英语”,11,4},{"
程序设计”,12,4}};
fstreamfile;
for(i=0;
i<
N;
i++)//输入学生基本信息到内存
{
cout〈〈”请输入学号"
〉d[i]。
stuNo;
for(intk=0;
;
k++)
{
for(j=0;
j<
i;
j++)
if(d[i].stuNo==d[j].stuNo)
{
cout〈<
此学号已存在,请重新输入!
”<
t=1;
cin>
d[i].stuNo;
break;
}
if(d[i]。
stuNo==0)
学号不能为0,请重新输入!
cin>
d[i]。
t=1;
break;
}
if(t==0)
}
〈”请输入姓名"
〉d[i].name;
cout〈<
”请输入性别"
〈〈endl;
cin〉〉d[i].sex;
cout〈〈”请输入宿舍号”〈〈endl;
〉d[i].domNum;
cout〈〈”请输入电话号"
cin〉>
tel;
stuNum++;
”是否继续?
是y,否n”<
〈endl;
〉m;
if(m!
y'
)
break;
}
//输入学生的成绩信息到内存s[i]中
for(i=0;
i〈3;
i++)
”请开始输入"
s[i].courseName〈<
成绩”<
for(j=0;
stuNum;
”学号"
cin〉>
s[i]。
score_talbe[j].stuNo;
cout〈〈s[i]。
courseName<
〈”平时成绩”〈<
cin〉>
s[i]。
score_talbe[j]。
triGrade;
〈s[i].courseName<
〈”卷面成绩”<
cin>
〉s[i].score_talbe[j]。
examGrade;
s[i].score_talbe[j]。
totalGrade=s[i].score_talbe[j].triGrade*0。
3+s[i].score_talbe[j]。
examGrade*0。
7;
//声明文件流对象
ofstreamoutFile;
//将基本信息写入文件test
outFile.open("
D:
\\test。
txt"
ios:
out|ios:
binary);
if(!
outFile)//使用错误流对象输出错误信息
〈”文件无法打开"
abort();
else
//将内存中从a[i]地址开始的sizeof(d[i])的内容写入文件中
i++)
outFile。
write((char*)&d[i],sizeof(StuInfo));
outFile.close();
//关闭文件
outFile。
open(”D:
\\data。
txt”,ios:
out|ios:
binary);
”文件无法打开"
{
outFile。
write((char*)&
s[i],sizeof(StuGraInfo));
close();
}
voidsearch()
{intn,k,i,j,sum=0,t=0;
charm,a[20];
ifstreaminfile;
〈”1:
查询基本信息"
endl〈〈setw(40)〈<
2:
查询成绩”〈〈endl<
”3:
退出"
cout〈〈setw(60)〈〈”--——-—-—-—-——————-—-—---—-—--———-—————”〈〈endl;
n;
while(!
(n〈=3&&n〉=1))/*输入不在1到3之间无效*/
”数据输入错误,请重新选择(1~3):
;
infile。
open("
,ios:
in|ios:
if(!
infile)
cout〈〈"
test.txt文件不能打开"
abort();
for(i=0;
infile.peek()!
=EOF;
i++)//将文件中的数据读出放在d[i]
//从文件中读字节到指定的存储器区域.
read((char*)&
d[i],sizeof(StuInfo));
infile。
close();
switch(n)
{
case1:
cout〈〈"
按学号查询请输入a,按姓名查询输入b,按宿舍号查询输入c”〈〈endl;
m;
if(m=='
a’)
{
cout<
”请输入学号"
〉k;
for(i=0;
stuNum;
if(d[i].stuNo==k)
{
cout〈〈”该学生学号:
”〈〈d[i]。
stuNo<
cout〈<
”该学生姓名:
〈d[i]。
name<
”该学生性别:
〈d[i].sex<
cout<
〈”该学生宿舍号:
〈d[i]。
domNum〈<
〈”该学生电话:
〈〈d[i]。
tel<