C语言程序报告 学生学籍信息管理系统Word格式.docx
- 文档编号:19768438
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:24
- 大小:78.45KB
C语言程序报告 学生学籍信息管理系统Word格式.docx
《C语言程序报告 学生学籍信息管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序报告 学生学籍信息管理系统Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
实得学分的计算:
采用等级学分制。
综合成绩在90-100之间,应得学分=学分*100%;
综合成绩在80-90之间,应得学分=-学分*80%;
综合成绩在70-80之间,应得学分=学分*75%;
综合成绩在60-70之间,应得学分=学分*60%;
综合成绩在60以下,应得学分=学分*0%。
(2)查询功能;
分为学生基本情况查询和成绩查询两种
1》学生基本情况查询:
输入一个学生的学号活姓名,查出此生的基本信息并显示输出。
输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。
成绩查询:
输入一个学号时,查询出此生的所有课程情况,格式如下:
学号:
姓名;
课程编号:
课程名称:
综合成绩:
实得学分:
课程名称:
综合成绩:
实得学分:
课程编号;
…………………………..…………
共修:
XX科,实得总学分为:
XXX
删除功能:
当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有的信息
排序功能:
能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
第二部分需求分析
根据题目要求,由于学生信息是存放在文件中,所以应该提供文件的输入、输出等操作;
在程序中要浏览学生的信息,应提供显示、查找、排序等操作;
另外还应该提供键盘式选择菜单实现功能选择。
第三部分总体设计
根据上面的需求分析,可以将这个系统的设计分为以下几个模块:
第四部分详细设计
主函数
主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
【流程图】
[程序]
#include<
stdio.h>
voidmenu()
{intn,w;
do{puts("
\t\t**********MENU***********\n\n"
);
puts("
\t1.browse2.enter3.Search"
\t4.browse25.enter26.Search2"
\t7.exit"
\n\n\t\t*************************\n"
printf("
Choiceyournumber(1-7):
[]\b\b\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
7)/对选择的数字作判断/
{w=1;
getchar();
}
elsew=0;
while(w==1);
switch(n)
{
case1:
browse();
break;
/浏览模块/
case2:
enter();
/输入模块/
case3:
search();
/查找模块/
case4:
browse2();
case5:
enter2();
case6:
search2();
case7:
exit(0);
/退出/
}}
main()
{menu();
2》各功能模块设计
输入模块:
先采用结构体数组存储数据
structa
{intxuehao;
charname[15];
charsex[10];
intshushenum;
inttelenum;
}a[10];
structb
intxuehao;
intkechenghao;
charkechengming[15];
intxuefen;
intpingshichengji;
intshiyanchengji;
intjuanmianchengji;
intzonghechengji;
intshidechengji;
}b[10];
a[10].b[10]中每个数组元素对应一个学生
voidjisuan()
{inti,n,n1,n2,n3,n4;
for(i=0;
i<
10;
i++)
{if(b[i].shiyanchengji==-1)
{b[i].zonghechengji=b[i].pingshichengji*0.3+b[i].juanmianchengji*0.7;
if(b[i].shiyanchengji!
=-1)
{b[i].zonghechengji=b[i].pingshichengji*0.15+b[i].juanmianchengji*0.7+b[i].shiyanchengji*0.15;
break;
if(b[i].zonghechengji>
90&
&
b[i].zonghechengji<
100)
{n4=b[i].xuefen;
b[i].shidechengji=(n4)*
(1);
elseif(b[i].zonghechengji>
80&
90)
{n3=b[i].xuefen;
b[i].shidechengji=(n3)*0.9;
elseif
(b[i].zonghechengji>
70&
80)
{n2=b[i].xuefen;
b[i].shidechengji=(n2)*0.8;
60&
70)
{n1=b[i].xuefen;
b[i].shidechengji=(n1)*0.7;
elseif(b[i].zonghechengji<
60)
{n=b[i].xuefen;
b[i].shidechengji=n*0;
}
}此简单程序计算综合成绩与实得学分
【程序】
enter()
{inti,n;
Howmanychengjijibenxinxidatas(0-%d)?
:
"
10);
\nEnterdatanow\n\n"
for(i=0;
n;
{printf("
\nInput%dthchengjijibenxinxirecord.\n"
i+1);
input(i);
}调用输入函数
if(i!
=0)save(n);
调用保存函数
printf_back();
一个任务结束时让用户选择是浏览还是返回
浏览模块:
该模块的功能是显示所有学生记录信息。
【程序】
browse()浏览全部模块
{inti,j,n;
n=load();
加载记录
printf_face();
调用显示数据结构项目函数
{if(i%10==0){printf("
\n\nPassanykeytocontiune..."
目的是分屏显示
getch();
\n\n"
printf_one(i);
\n"
}调用显示一个记录的函数
\tThereare%drecord.\n"
n);
\nPassanykeytoback...."
按任意键
menu();
browse2()该浏览模块的功能是显示所有学生的成绩基本信息
n=load2();
printf_face2();
printf_one2(i);
查找模块;
该模块的功能是根据输入的学生姓名查找对应的记录,找到以后,增加删除功能。
search()查找学生基本信息的模块
{inti,n,k,w1=1,w2,w3,w4;
structas;
n=load();
do{
do
{k=-1;
\n\nEnternumberthatyouwanttosearch!
number"
s.xuehao);
输入要修改的数据的学号
i++)查找要修改的数据
if(s.xuehao==a[i].xuehao)
{k=i;
printf_one(k);
}调用显示一个记录的函数
if(k==-1)
\n\nNoexist!
please"
\n\nAreyouagain?
\n\t1).Again2)Noandback[]\b\b\b"
w1);
}保证在第一次找的的基础上再查找找不到时能退出
}while(k==-1&
w1==1);
如果W1不等于1时直返回
search2()查找学生成绩基本信息的模块
n=load2();
if(s.xuehao==a[i].xuehao)
printf_one2(k);
删除模块:
该模块的功能是先显示所有学生的信息,考虑到记录的数据较多,建议采用分屏显示
Voiddel()
排序模块:
该功能模块的功能是要求将学生记录的综合成绩或实得分升序或降序排序并显示数据。
假设这里采用选择法排序。
Voidorder()排序模块
{intI,j,n;
Structstudents;
For(i=0;
n-1;
Save(n);
Puts(“\n\n”);
Printf_back();
设计出的程序如下
7)
browse()
search()
w4=0;
w3=0;
if(k!
=-1){printf("
\n\nWhatdoyouwanttodo?
\n\t1.Searchanother2.Modify3.Delete4.Backmenu[]\b\b\b"
w2);
switch(w2)
{case2:
w3=modify(k);
{printf("
\nAreyousure?
\n\t1).sure2).Noandback[]\b\b\b"
w4);
if(w4==1)
b[k].xuehao=0;
b[k].kechenghao=0;
strcpy(b[k].kechengming,"
xxxx"
b[k].xuefen=0;
b[k].pingshichengji=0;
b[k].shiyanchengji=0;
b[k].juanmianchengji=0;
b[k].zonghechengji=0;
b[k].shidechengji=0;
a[i].xuehao=0;
strcpy(a[i].name,"
strcpy(a[i].sex,"
)
;
a[i].shushenum=0;
a[i].telenum=0;
if(w3==1||w4==1)
{save(n);
\n\nSuccessful."
\n\t1).Searchanother2).Back[]\b\b\b"
}while(w2==1);
input(inti)
{scanf("
%d%d%s%d%d%d%d%d%d"
b[i].xuehao,&
b[i].kechenghao,b[i].kechengming,&
b[i].xuefen,&
b[i].pingshichengji,&
b[i].shiyanchengji,&
b[i].juanmianchengji);
jisuan();
save(intn)
{FILE*fp;
inti;
if((fp=fopen("
b.txt"
"
wb"
))==NULL)
{printf("
\nCannotopenfile\n"
returnNULL;
if(a[i].xuehao!
=0)
if(fwrite(&
b[i],sizeof(structb),1,fp)!
=1)
filewriteerror\n"
fclose(fp);
load()
{FILE*fp;
rb"
!
feof(fp);
fread(&
b[i],sizeof(structb),1,fp);
return(i-1);
printf_face()
\n\txuehaokechenghaokechengmingxuefenpingshichengjishiyanchengjijuanmianchengjizonghechengjishidechengji"
printf_one(inti)
{
%5d%5d%15s%5d%5d%5d%5d%5d%5d"
b[i].xuehao,b[i].kechenghao,b[i].kechengming,b[i].xuefen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序报告 学生学籍信息管理系统 语言 程序 报告 学生 学籍 信息管理 系统