程序设计基础课程设计报告
课程名称:
程序设计基础课程设计
课程设计题目:
学生信息管理系统
姓 名:
系:
计算机科学技术系
专 业:
计算机网络技术
年 级:
学 号:
指导教师:
职 称:
讲师
201
设计题目及要求。
1、题目:学生信息管理系统
2、要求:
1)建立学生信息的结构体
2)学生信息的初始化(可以从文件获取)
3)学生信息的添加、修改、查找
4)学生信息的输出
5)对学生信息按学号排序
6)计算一门课的平均分和总分
7)将学生信息保存为文件
设计算法设计分析。
主要功能模块:添加模块、查找模块、修改模块、排序模块
添加模块:
从键盘中输入添加学生的人数n.
从键盘中输入学生的学号和各科成绩,分别存入一维数组sum和二维数组score中。
计算各科的总分和平均分,分别存入一维数组sum和aver中。
判断各个学生的三科成绩是否都大于90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。
添加模块结果图
查找模块
从键盘中输入要查找的学生的学号k..
编写程序使num[i]与k一一对比,直到num[i]==k,输出该生的学号及相应成绩。
查找模块结果图
修改模块:
从键盘中输入要修改的学生的学号x..
编写程序使num[i]==x,输出该生的成绩,选择你要修改的科目并输入你修改后的新分数,重新计算该生的总分和平均分。
重新判断该生的三门课成绩是否都大于90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。
修改模块的结果图
程序编码实现。源代码与执行结果2部分
/*函数功能:添加一个或几个学生的成绩,查找某个学生的成绩,修改某个学生的成绩
函数参数:长整型数组num,存储每个学生的学号
整型数组score,存储每个学生的成绩
整型数组sum,存储每个学生的总分
实型数组aver,存储每个学生的平均分
字符型数组c,标志每个学生能否获得奖学金
整型数n,存储学生总数
函数返回值:无
*/
void Find(long num[],int score[][3],int sum[],float aver[],char c[],int n)
{
long x,t,k;
int i,j;
printf("请选择您要实现的功能:1-添加,2-查找,3-修改\n");
scanf("%ld",&t);
if(t==1)
{
printf("请输入你要添加的人数:");
scanf("%d",&A);
printf("Enter No and Score as: MT EN PH\n");
for(i=n;i
{
scanf("%ld",&num[i]);
for(j=0;j<3;j++)
{
scanf("%d",&score[i][j]);
}
sum[i]=0;
for(j=0;j<3;j++)
{
sum[i]=sum[i]+score[i][j];
}
aver[i]=(float)sum[i]/3;
if((score[i][0]>=90)&&(score[i][1]>=90)&&(score[i][2]>=90))
{
c[i]='Y';
}
else
{
c[i]='N';
}
}
}
if(t==2)
{
printf("请输入学号:");
scanf("%ld",&k);
for(i=0;i
{if(num[i]==k)
{
printf("result:\n");
printf("学号\t数学\t英语\t物理\t总分\t平均成绩\t>90\n");
printf("%4ld\t",num[i]);
for(j=0;j<3;j++)
{
printf("%4d\t",score[i][j]);
}
printf("%5d\t%6.1f\t\t%c\n",sum[i],aver[i],c[i]);
}
}
}
if(t==3)
{
printf("请输入学号:");
scanf("%ld",&x);
for(i=0;i
{
if(x==num[i])
{
printf("请输入你要修改的选项所对应的数字:0-MT,1-EN,2-PH\n");
scanf("%d",&j);
printf("你将修改为:");
scanf("%d",&score[i][j]);
sum[i]=0;
for(j=0;j<3;j++)
{
sum[i]=sum[i]+score[i][j];