学籍信息管理系统设计源代码Word文档下载推荐.docx
- 文档编号:21483772
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:22
- 大小:23.91KB
学籍信息管理系统设计源代码Word文档下载推荐.docx
《学籍信息管理系统设计源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学籍信息管理系统设计源代码Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
voidsearch_score();
voidprintf_onestu_score(charsnum[]);
voiddelete_one();
voidorder();
voidorder_course_num();
voidorder_course();
voidorder_printf(intk);
/***********菜单***********/
voidmenu()
intw1;
charn;
/*变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/
system("
cls"
);
do
{
puts(”****************************************************************\n\n”);
puts("
\t*****************总菜单*****************\n\n”);
\t***1。
输入学生的基本信息***"
);
\t***2.浏览学生的基本信息***"
puts(”\t***3。
输入学生的成绩基本信息***”);
\t***4。
浏览学生的成绩基本信息***”);
\t***5。
查询信息功能***”);
\t***6.删除信息功能***"
puts(”\t***7.排序:
按综合成绩或实得学分***"
puts(”\t***8。
退出***"
\n\n****************************************************************"
printf(”\n选择要进行的功能代号(1-8):
[]\b\b"
scanf("
%c"
,&n);
if(n〈’1’||n〉'
8'
)/*对选择的数字作判断*/
w1=1;
printf(”\n\n?
?
请输入数字1~8!
\n\n"
}
else
w1=0;
/*选择功能*/
switch(n)
case’1'
:
enter_stu();
break;
/*输入基本信息模块*/
case’2’:
browse_stu();
/*浏览基本信息模块*/
case'
3'
:
enter_score();
break;
/*输入成绩基本信息模块*/
case’4’:
browse_score();
/*浏览成绩基本信息模块*/
5'
search();
/*查找模块*/
6'
delete_one();
/*删除学籍模块*/
case’7'
order();
/*排序模块*/
8’:
exit(0);
}
}while(w1==1);
getch();
}
/**********主函数*********/
voidmain()
menu();
/*进入菜单*/
/*公用函数***********************************************************************/
/*保存所有分数*/
voidsave_score()
inti;
if((fp=fopen(”b.txt”,”w+"
))==NULL)/*以输出方式打开,在此前的记录被覆盖*/
{
printf("
\n不能打开文件."
getch();
for(i=0;
i〈scoremax;
i++)
if(fwrite(&score[i],sizeof(structstuscore),1,fp)!
=1)
\n文件输入错误."
fclose(fp);
printf(”\n输入数据结束。
Pressanykeytocontinue。
.."
getch();
}
/*保存所有学生信息*/
voidsave()
{
inti;
if((fp=fopen(”a.txt”,"
w+”))==NULL)/*以输出方式打开,在此前的记录被覆盖*/
\n不能打开文件”);
i<
stumax;
if(fwrite(&stu[i],sizeof(structstudent),1,fp)!
printf(”\n文件输入错误。
”);
/*显示一个分数,形参i表示显示第i个记录*/
voidprintf_one_score(inti)
\n学号:
%s课程编号:
%s课程名称:
%s学分:
%f\n平时成绩:
%d实验成绩:
%d卷面成绩:
%d综合成绩:
%d实得学分:
%f"
,score[i].num,score[i]。
coursenum,score[i]。
course,score[i].point,score[i]。
nscore,score[i].expscore,score[i].examscore,score[i].comscore,score[i].getpoint);
/*显示一个学生信息,形参j表示显示第j个记录*/
voidprintf_one_stu(intj)
printf(”\n学号:
%s姓名:
%s性别:
%d宿舍号码:
%d电话号码:
%ld"
stu[j]。
num,stu[j]。
name,stu[j].sex,stu[j].room,stu[j]。
tel);
/*删除一个分数,形参i表示删除第i个记录*/
voiddelete_one_score(inti)
printf_one_score(i);
score[i]=score[scoremax];
scoremax—-;
\n删除学生数据成功!
。
.”);
save_score();
/*录入模块***********************************************************************/
/*学生信息录入*/
voidenter_stu()
inti,n,es1;
\n要输入多少学生基本信息(1~%d)?
”,N—1);
scanf(”%d”,&
n);
/*要输入的学生基本信息的个数*/
es1=n+stumax;
/*输入n个后应有的记录个数*/
printf(”\n输入信息:
"
for(i=stumax;
es1;
input_stu(i);
/*调用输入学生基本信息函数*/
\n共输入%d项基本信息.Pressanykeytocontinue。
."
,n);
getch();
menu();
/*提示输入任务结束,按任意键返回主菜单*/
/*录入一个学生信息*/
voidinput_stu(intj)
inti1,k=0,d;
switch((j+1)%10)
case1:
printf("
\nInputthe%dststudent’sinformation:
”,j+1);
case2:
\nInputthe%dndstudent’sinformation:
”,j+1);
default:
printf(”\nInputthe%dthstudent’sinformation:
j+1);
printf(”\n学号姓名性别宿舍号码电话号码\n"
%s%s%d%d%ld"
,stu[j].num,stu[j].name,&stu[j].sex,&
stu[j].room,&stu[j]。
tel);
stumax++;
/*输入一个信息,总数加1*/
for(i1=0;
i1〈stumax;
i1++)
if(i1!
=j&&strcmp(stu[i1]。
num,stu[j]。
num)==0)/*表示学号已存在*/
k=1;
/*k为学号是否已存在标记,k=1表存在*/
printf_one_stu(i1);
/*显示已存在的学号的信息*/
\n此学生存在!
/*提示学号已存在*/
stumax-—;
/*总数减1,删除输入信息*/
\n删除信息成功!
”);
save();
/*调用保存函数*/
break;
if(k==0)/*表示学号不重复*/
\n输入信息成功!
/*提示输入成功*/
save();
/*学生成绩信息录入*/
voidenter_score()
inti,n,es1;
printf(”\n要输入的学生基本信息的个数(1~%d)?
”,M—1);
%d"
&n);
/*要输入的学生基本信息的个数*/
es1=n+scoremax;
/*输入n个后应有的记录个数*/
\n输入数据:
\n"
for(i=scoremax;
input_score(i);
/*调用输入学生成绩基本信息函数*/
save_score();
/*调用保存学生成绩基本信息函数*/
\n共输入了%d项数据。
..”,n);
/*提示输入任务结束,按任意键返回主菜单*/
/*录入一个成绩*/
voidinput_score(inti)
intj,j1,k,c;
floata;
switch((i+1)%10)
\nInputthe%dststudent'
sscore:
,i+1);
\nInputthe%dndstudent'
”,i+1);
printf(”\nInputthe%dthstudent’sscore:
\n学号课程编号课程名称学分平时成绩实验成绩卷面成绩\n”);
scanf(”\n%s%s%s%f%d%d%d"
,score[i].num,score[i]。
coursenum,score[i].course,&a,&score[i].nscore,&score[i].expscore,&
score[i]。
examscore);
score[i].point=a;
com_score(i);
/*调用计算综合成绩、实得学分函数*/
scoremax++;
for(j1=0;
j1<
stumax;
j1++)
if(strcmp(score[i].num,stu[j1]。
num)==0)
break;
if(j1==stumax)/*学生不存在*/
printf(”\n该学生不存在!
delete_one_score(i);
/**************/
else/*学生存在*/
for(k=0;
k〈scoremax;
k++)
if(k!
=i&&strcmp(score[k].num,score[i].num)==0&
&
strcmp(score[k].coursenum,score[i]。
coursenum)==0&&
strcmp(score[k].course,score[i]。
course)==0)/*该学生该课程已存在*/
printf(”\n该学生的此项信息已经存在!
/**************/
if((strcmp(score[k]。
coursenum,score[i]。
strcmp(score[k]。
course,score[i]。
course)!
=0)||(strcmp(score[k]。
coursenum)!
=0&&strcmp(score[k].course,score[i].course)==0))/*该课程编号和课程名称与前面矛盾并提示删除哪一个*/
\n课程编号和课程名称不符:
printf(”\n成绩信息[%d]:
,i);
/*显示矛盾课程*/
\n成绩信息[%d]:
k);
printf_one_score(k);
\n1)删除成绩[%d]2)删除成绩[%d]?
[]\b\b"
,i,k);
scanf(”%d"
,&
c);
switch(c)
case1:
delete_one_score(i);
/*调用删除函数*/
delete_one_score(k);
if(k==scoremax)
\n输入信息成功!
Pressanykeytocontinue。
/*计算综合成绩*/
voidcom_score(inti)
if(score[i].expscore==-1)/*判断是否有实验*/
score[i]。
comscore=score[i].nscore*0.3+score[i].examscore*0.7;
score[i]。
comscore=score[i]。
nscore*0.15+score[i].expscore*0.15+score[i].examscore*0。
7;
switch(score[i]。
comscore/10)
case10:
case9:
getpoint=score[i].point*1.0;
case8:
getpoint=score[i].point*0。
8;
case7:
score[i]。
getpoint=score[i]。
point*0。
75;
case6:
score[i].getpoint=score[i]。
6;
score[i]。
getpoint=0;
}printf(”\n综合成绩计算结束.Pressanykeytocontinue。
.。
/*浏览模块***********************************************************************/
/*浏览学生信息*/
voidbrowse_stu()
for(i=0;
i++)/*stumax为总的学生数*/
printf_one_stu(i);
/*调用显示一个学生基本信息函数*/
\n浏览学生基本信息结束。
menu();
/*浏览学生成绩信息*/
voidbrowse_score()
intj;
for(j=0;
j<
scoremax;
j++)/*stumax为总的学生数*/
printf_one_score(j);
/*调用显示一个学生成绩基本信息函数*/
\n浏览学生成绩信息结束。
/*查找模块***********************************************************************/
/*查找*/
voidsearch()
intc,c1;
\n查找中.。
。
\n选择要查询的信息:
\n1)学生基本信息2)学生成绩3)返回菜单[]\b\b"
&c);
/*选择查找内容*/
if(c>
=1&&
c〈=3)
search_stu();
/*调用查找学生基本信息函数*/
case2:
search_score();
/*调用查找学生成绩基本信息函数*/
default:
\n查询结束.。
.\n是否继续查询?
1)是2)否[]\b\b"
/*询问是否继续查找*/
%d"
c1);
switch(c1)
/*继续查找*/
/*查找学生信息*/
voidsearch_stu()
inti,c;
printf(”\n查找学生信息中。
.\n选择查询方式:
\n1)学号2)姓名3)宿舍编号4)返回查询?
[]\b\b”);
%d”,&c);
/*选择查找方式*/
search_num();
/*调用按学号查询函数*/
search_name();
/*调用按姓名查询函数*/
case3:
search_room();
/*调用按宿舍号查询函数*/
printf(”\n继续查询..。
printf(”\n查询结束。
/*按学号查找学生信息*/
voidsearch_num()
inti,c;
charn1[9];
printf(”\n请输入要查询学生的学号:
"
%s”,&n1);
/*输入要查询的学号*/
if(strcmp(stu[i]。
num,n1)==0)
/*显示查到的记录*/
if(i==stumax)
printf(”\n此学号不存在!
\n查询下一个学号?
1)是2)否[]\b\b”);
/*未查到相应记录,询问是否继续查找*/
scanf(”%d”,&c);
/*继续按此方式查找*/
printf(”\n继续查找.。
\n学生信息查询结束。
/*按姓名查找学生信息*/
voidsearch_name()
inti,c,sn1=0;
charn2[20];
\n输入要查询学生的名字:
scanf(”%s"
&
n2);
if(strcmp(stu[i]。
name,n2)==0)
/*显示查到的记录*/
sn1++;
if(sn1==0)
printf(”\n此学生不存在!
\n查询下一个学生?
1)是2)否[]\b\b"
/*未查到相应记录,询问是否继续查找*/
search_name();
\n继续查询。
.。
Pressanykeytocontinue.。
/*按宿舍查找学生信息*/
voidsearch_room()
inti,c,r,sr1=0;
\n输入要查询学生的宿舍号码:
”);
,&r);
i〈stumax;
if(stu[i].room==r)
printf_one_stu(i);
sr1++;
if(sr1==0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学籍 信息管理 系统 设计 源代码