学生学籍信息管理系统Word文档下载推荐.doc
《学生学籍信息管理系统Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《学生学籍信息管理系统Word文档下载推荐.doc(35页珍藏版)》请在冰豆网上搜索。
02李成华女10187723112
03王成凤女10187723112
04张明明男50287734333
05陈东男50187732111
06李果男50287734333
07张园园女10287756112
学生成绩基本信息文件(B.TXT)极其内容:
.....................................................................................................................
学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分
01A01大学物理3667882
02B03高等数学478-190
01B03高等数学445-188
02C01VF3657666
................................................................................................................
功能要求极其说明:
(1)数据录入功能:
录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。
实得成绩、实得学分根据条件自动运算。
综合成绩的计算:
a.如果本课程的实验成绩为-1,则表无实验成绩,综合成绩=平时成绩*30%+卷面成绩*70%
b.如果实验成绩不为-1,表示本课程有实验成绩,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70%
实得学分的计算:
采用等级学分制。
综合成绩在90~100之间,应得学分=学分*100%
综合成绩在80~90之间,应得学分=学分*80%
综合成绩在70~80之间,应得学分=学分*75%
综合成绩在60~70之间,应得学分=学分*60%
综合成绩在60分以下,应得学分=学分*0%
(2)查询功能:
分为学生基本情况查询和成绩查询两种
学生基本情况查询:
输入一个学号或姓名(可实现选择)查出此学生的基本信息并显示输出。
输入一个宿舍号码,可查出本室所有学生的基本信息并显示输出。
称号查询:
输入一个学号时,查出此学生所有课程情况,格式如下:
XX课程名称:
XXXX综合成绩:
XX实得学分:
XXX
...............................................................................
共修:
X科,实得总分为:
(3)删除功能:
当在A.TXT中删除一个学生时,自动地在B.TXT中删除此学生所有信息。
(4)排序功能:
能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
[提示]
数据结构采用结构体数组,提供学生基本信息和学生成绩基本信息结构体数组。
二,需求分析
根据题目要求,该程序应具备的功能有:
分为学生基本情况查询和成绩查询两种
三,程序总体设计
学生学籍信息管理系统
MENU(菜单)
退出
排序功能模块
删除功能模块
查询功能模块
数据录入功能模块
按学分降序排列
按综合成绩降序排列
按综合成绩升序排列
按学分升序排列
四,程序详细设计
⒈主函数
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
[流程图]
[程序]
voidmain()
{
while
(1)
{
printf("
\n<
<
welcometousestudentmanage>
>
\n\n"
);
*=========================================================*\n"
*1>
input2>
chazhao*\n"
*3>
delete4>
paixuxianshi*\n"
*5>
exit*\n"
**\n"
*---------------------------------------------------------*\n"
Pleaseinputwhichyouwant(1-5):
"
ch=getch();
switch(ch)
{
case'
1'
:
input();
break;
2'
search();
getch();
3'
delete();
getch();
break;
case'
4'
sort();
5'
exit(0);
default:
continue;
}
}
}
⒉个功能模块设计
⑴数据录入。
[数据结构]
我们需要录入的信息数据有两类:
一类是学生基本信息,包括学号,学号姓名性别宿舍号码电话号码,存放在文件S_INFO.TXT中。
另一类信息是学生成绩基本信息,包括学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。
这些信息存放在文件S_SCORE.TXT中。
学生基本信息的存放格式为:
structinfo
{
intsMingci;
//名次
charxuehao[8];
charname[10];
charsex[2];
chard_num[4];
//宿舍号码
chartel_num[9];
//宿舍电话号码
}data,s_info[100];
成绩基本信息的存放格式为:
structcourse
charxuehao[8];
charcourse_No[6];
//课程代号
charcourse_name[10];
//课程名字
floatxuefen;
//学分
floatp_chengji;
//平时成绩
floats_chengji;
//实验成绩
floatj_chengji;
//卷面成绩
floatz_chengji;
//综合成绩
floats_xuefen;
//实际学分
}course_data,s_course[100];
[需求分析]
数据录入模块的功能是用户通过输入选项在基本信息和成绩信息的输入之间进行选择。
[程序]
voidinput()
while
(1)
{
printf("
\nwhichinformationdoyouwanttoinput:
b(base)s(socre)e(exit)"
ch=getch();
if(ch=='
b'
||ch=='
B'
)
{
if((fp=fopen("
s_info.txt"
"
at+"
))==NULL)
{
printf("
cannotopenthisfile.\n"
getch();
\nPleaseinputxuehao:
gets(sn);
while((fread(&
data,sizeof(data),1,fp))==1)
{
if(strcmp(sn,data.xuehao)==0)
{
flag=1;
}
}
if(flag==1)
{
printf("
\nthenumberhasexist,pressangkeycontinue:
\n"
flag=0;
getch();
continue;
}
else
strcpy(data.xuehao,sn);
Pleaseinputname:
gets(data.name);
Pleaseinputsex:
M(male)/F(female):
gets(data.sex);
PleaseinputyourdormitoryNo:
gets(data.d_num);
PleaseinputtelephoneNumber:
gets(data.tel_num);
fwrite(&
data,sizeof(data),1,fp);
//写入数据
fclose(fp);
}//if
elseif(ch=='
s'
S'
if((fp1=fopen("
s_score.txt"
))==NULL||(fp=fopen("
rt"
{
printf("
getch();