最新学生学籍信息管理系统C语言设计Word格式.docx
《最新学生学籍信息管理系统C语言设计Word格式.docx》由会员分享,可在线阅读,更多相关《最新学生学籍信息管理系统C语言设计Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
5.总结
6.答辩记录
7.教师意见
8.附录主程序
1.设计目的与要求:
1.1【要求】:
使用下面的数据,设计一个简单的学籍信息管理系统。
学生基本信息文件(A.TXT)及其内容:
A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成
学号姓名性别宿舍号码电话号码
01张成成男50187732111
02李成华女10187723112
03王成凤女10187723112
04张明明男50287734333
05陈东男50187732111
06李果男50287734333
07张园园女10287756122
学生成绩基本信息文件(B.TXT)及其内容
学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩学分
01A01大学物理3667882
02B03高等数学478-190
01B03高等数学445-188
02C01VF3657666
功能要求及说明:
(1)数据录入功能:
对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据.综合成绩、学分由程序根据条件自动运算。
(2)综合成绩的计算:
如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;
如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70%。
实综合成绩在90-100之间,应得学分=学分*100%得学分的计算:
采用等级学分制.
综合成绩在80-90之间,应得学分=学分*80%
综合成绩在70-80之间,应得学分=学分*75%
综合成绩在60-70之间,应得学分=学分*60%
综合成绩在60以下,应得学分=学分*0%
(2)查询功能:
分为学生基本情况查询和成绩查询两种
A:
学生基本情况查询:
A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。
A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。
B:
成绩查询:
B1:
输入一个学号时,查询出此生的所有课程情况,格式如下:
学号:
xx姓名:
xxxxx
课程编号:
xxx课程名称:
xxxxx综合成绩:
xxxx实得学分:
xx
共修:
xx科,实得总学分为:
xxx
(3)删除功能:
当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。
(4)排序功能:
能实现选择按综合成绩或实得学分升序或降序排序并显示数据
1.2【目的】:
实现对于学生学籍信息的查询以及管理。
自动录入,方便快捷。
数据录入功能,综合成绩的计算,查询功能(学生基本情况查询,成绩查询),删除功能,排序功能等为一体。
使学生学籍和成绩等信息实现信息化快捷管理。
2.总体设计:
经过分析整个系统,可以将系统分为五大模块:
信息输入模块,信息修改模块,信息排序模块,设备查找模块和退出模块。
其中主要是前五大个模块。
3.详细设计:
3.1主函数:
//******主函数******
#include<
stdio.h>
string.h>
stdlib.h>
conio.h>
malloc.h>
voidmenu()
{
intc,w1;
do
{
puts("
\t\t*********************MENU*********************\n\n"
);
\t\t\t\t1.Inputdata"
/*输入模块*/
\t\t\t\t2.Searchdata"
/*查找模块*/
\t\t\t\t3.Deletedata"
/*删除模块*/
\t\t\t\t4.Sortdata"
/*排序模块*/
\t\t\t\t5.Exit"
/*退出*/
\n\n\t\t**********************************************\n"
printf("
Choicenumber(1-5):
[]\b\b"
scanf("
%d"
&
c);
if(c<
1||c>
6)
{
w1=1;
getchar();
}
elsew1=0;
}
while(w1==1);
switch(c)
case1:
enter();
break;
case2:
search();
case3:
del();
case4:
sort();
case5:
exit(0);
}
voidmain()
menu();
3.2公共函数:
所用到的六个公共函数
intload_info()/*A文件加载函数*/
inti;
FILE*fp;
if((fp=fopen("
A.txt"
"
r"
))==NULL)
\nCannotopenfile\n"
return0;
for(i=0;
!
feof(fp);
i++)
fscanf(fp,"
%s%s%s%s%s"
stu[i].num,stu[i].name,stu[i].sex,stu[i].room,stu[i].tel);
fclose(fp);
return(i);
intsave_info(intn)/*A文件保存函数*/
w"
i<
n;
if(strcmp(stu[i].num,"
-1"
)!
=0)
fprintf(fp,"
%s%s%s%s%s\n"
intload_score()/*B文件加载函数*/
floatca_mark(inti);
voidca_score(inti);
inti,j;
B.txt"
%s%s%s%d"
scr[i].num,scr[i].subnum,scr[i].subject,&
scr[i].oscore);
for(j=0;
j<
3;
j++)
scr[i].mark[j]);
ca_mark(i);
ca_score(i);
intsave_score(intm)/*B文件保存函数*/
m;
if(strcmp(scr[i].num,"
%s%s%s%d%d%d%d%d%d\n"
scr[i].num,scr[i].subnum,scr[i].subject,scr[i].oscore,scr[i].mark[0],scr[i].mark[1],scr[i].mark[2],(int)scr[i].totalmark,(int)scr[i].gscore);
voidprintone(inti)/*显示数据结构项目的函数(公共函数)*/
{printf("
\n\t%-4s\t%-6s\t%-4s\t%-8s\t%-8s"
voidprintface()/*公共函数,一个函数结束时的选择浏览还是返回的函数*/
\n\t学号\t姓名\t性别\t宿舍号码\t电话号码\n"
3.3功能模块的设计:
/////*******信息删除模块********
voiddel()//删除模块
voidmenu();
inti,j,c,flag=0;
chars[6];
printface();
printone(i);
\n\n"
\nInputthedeletenumber:
"
%s"
s);
\n\nSure?
\t1).Sure\t2).No\t3).Back\t[]\b\b"
if(c==1)
if(judge(s,stu[i].num))
{
flag=1;
strcpy(stu[i].num,"
if(judge(s,scr[i].num))strcpy(scr[i].num,"