判断学生能否毕业系统文档格式.docx
《判断学生能否毕业系统文档格式.docx》由会员分享,可在线阅读,更多相关《判断学生能否毕业系统文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
●课程设计任务书
●目录
●需求分析(分析题目的要求)
●程序流程图(总体流程图和主要功能模块流程图)
●核心技术的实现说明及相应程序段
●个人总结
●参考资料
●源程序及适当的注释
指导教师:
____________________
学生签名:
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段………….5四、个人总结……………..…………………….…14
五、参考文献………………………………………....14
六、源程序………………………………….......…15
一、需求分析
通过对题目的分析,本次课程设计的主要功能分为两个部分。
1
录入学生信息并且把信息写入到文件中(首先建立一个文件,并且输入学生信息,之后把学生信息写入到文件中)2判断学生能否毕业
(输入指定学生的编号,在文件中读取该学生信息。
根据学生的院级选修课,系内选修课,必修课判断学生能否毕业,对不能毕业的学生给出理由)
二、程序流程图
三、核心技术的实现说明及相应程序段
包含头文件
#include<
stdlib.h>
stdio.h>
string.h>
定义学生结构体
structstudent
{
charxuehao[20];
//学号
charxingming[20];
//姓名
charbix[5][20];
//必修课
charyuanx[4][20];
//院选课
charxix[4][20];
//系选课
intbixiu[5];
//必修课成绩
intyuanxuan[4];
//院选课成绩
intxixuan[4];
//系选课成绩
intbi;
intyuan;
intxi;
};
voidbaocun(void)
定义文件指针
FILE*fp;
inti,j,shu;
定义结构体变量
structstudentstud;
printf("
\n请输入录入学生的个数:
"
);
scanf("
%d"
&
shu);
建立文件lesson.dat
fp=fopen("
e:
\\lesson.dat"
"
wb"
结构体初始化
for(i=0;
i<
shu;
i++)
{
stud.bi=0;
stud.yuan=0;
stud.xi=0;
}
向文件中写入学生信息
for(i=0;
\n请输入学生学号:
"
%s"
stud.xuehao);
\n请输入学生姓名:
stud.xingming);
\n请输入五门必修课程的成绩"
for(j=0;
j<
5;
j++)
\n输入第%d门课程:
j+1);
stud.bix[j]);
\n输入第%d门课程成绩:
stud.bixiu[j]);
if(stud.bixiu[j]>
60)
stud.bi++;
\n请输入三门院选课程的成绩"
3;
stud.yuanx[j]);
\n输入第%d门课程所得学分:
stud.yuanxuan[j]);
stud.yuan=stud.yuan+stud.yuanxuan[j];
\n请输入四门院选课程的成绩"
4;
stud.xix[j]);
stud.xixuan[j]);
stud.xi=stud.xi+stud.xixuan[j];
}fprintf(fp,"
%s\t%s\t"
stud.xuehao,stud.xingming);
向文件中写入数据
fprintf(fp,"
%s\t"
stud.bix[i]);
stud.yuanx[i]);
stud.xix[i]);
%d\t"
stud.bixiu[i]);
stud.yuanxuan[i]);
stud.xixuan[i]);
%d\t%d\t%d\n"
stud.bi,stud.yuan,stud.xi);
\n院级选修课所得学分为%d"
stud.yuan);
\n必修课所得学分为%d"
stud.bi);
\n专业选修课所得学分为%d"
stud.xi);
关闭文件
fclose(fp);
}
查询
voidsearch()
inti,flag=0;
打开文件
rb"
\n请输入学生学号"
xuehao);
判断文件是否结束
while(!
feof(fp))
在文件中读取学生信息
fscanf(fp,"
stud.bixiu[i]);
stud.yuanxuan[i]);
stud.xixuan[i]);
}fscanf(fp,"
stud.bi,&
stud.yuan,&
stud.xi);
判断学号是否相同
if(strcmp(xuehao,stud.xuehao)==0)
flag++;
if(stud.bi>
=5&
&
stud.yuan>
=6&
stud.xi>
=8)
\n这个学生能正常毕业"
else
printf("
\n这个学生不能正常毕业"
if(stud.bi<
5)
\n必修课没有完成,只完成了%d门"
if(stud.yuan<
6)
\n院级选修课没有完成,只完成了%d学分"
if(stud.xi<
8)
\n系级选修课没有完成,只完成了%d学分"
if(0==flag)
\n没有找到这个同学的信息"
fclose(fp);
菜单
voidmenu()
inti,j;
for(;
;
)
\n0退出"
\n1录入学生信息"
\n2判断学生能否毕业\n"
j);
switch(j)
case0:
exit(0);
break;
case1:
baocun();
case2:
search();
default:
printf("
\n输入错误请重新选择"
voidmain()
menu();
四、个人总结
通过本次课程设计,使我懂得了软件的基本实现方法,认识了程序调适原理及程序调适过程的方法。
在调适程序的过程中,一开始,我对自己编制的程序错误不能了解。
不能找出错误的原因。
后来经过向同学和老师的请教我终于调适完毕。
通过我的不懈努力,终于得到正确的结果。
在这里我感谢同学和老师的帮助。
使我认识到学习要有坚持不懈的精神和毅力。
同时,我也深深意识到自己能力的不足,需要再接再厉,更深入的学习C语言,相信我会有很大的进步。
五、参考文献
1<
数据结构>
柳冬梅机械工业出版社
2<
C语言程序设计>
谭浩强清华大学出版社
六、源程序
}
printf("