程序设计基础课程设计报告
20##年1月1日
一、设计题目及要求。
1、题目:学生信息管理系统
2、要求:
1)建立学生信息的结构体
2)学生信息的初始化(可以从文件获取)
3)学生信息的添加、修改、查找
4)学生信息的输出
5)对学生信息按学号排序
6)计算一门课的平均分和总分
7)将学生信息保存为文件
二、设计算法设计分析。
1、 主要功能模块:添加模块、查找模块、修改模块、排序模块
添加模块:
(1)从键盘中输入添加学生的人数n.
(2)从键盘中输入学生的学号和各科成绩,分别存入一维数组sum和二维数组score中。
(3)计算各科的总分和平均分,分别存入一维数组sum和aver中。
(4)判断各个学生的三科成绩是否都大于90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。
添加模块结果图
查找模块
(1)从键盘中输入要查找的学生的学号k..
(2)编写程序使num[i]与k一一对比,直到num[i]==k,输出该生的学号及相应成绩。
查找模块结果图
修改模块:
(1)从键盘中输入要修改的学生的学号x..
(2)编写程序使num[i]==x,输出该生的成绩,选择你要修改的科目并输入你修改后的新分数,重新计算该生的总分和平均分。
(3)重新判断该生的三门课成绩是否都大于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<n+A;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<n;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<n;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];
}
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';
}
}
}
}
}
/*函数功能:按学号对学生排序
函数参数:长整型数组num,存储每个学生的学号
整型数组score,存储每个学生的成绩
整型数组sum,存储每个学生的总分
实型数组aver,存储每个学生的平均分
字符型数组c,标志每个学生能否获得奖学金
整型数n,存储学生总数
函数返回值:无
*/
void order(long num[],int score[][3],int sum[],float aver[],char c[],int n)
{
int i,j,t,x;
long k;
float g;
char h;
for(i=0;i<n+A-1;i++)
{
for(t=n+A-1;t>i;t--)
{
if(num[t]<num[i])
{k=num[i];num[i]=num[t];num[t]=k;
x=sum[i];sum[i]=sum[t];sum[t]=x;
g=aver[i];aver[i]=aver[t];aver[t]=g;
h=c[i];c[i]=c[t];c[t]=h;
for(j=0;j<3;j++)
{
x=score[i][j];
score[i][j]=score[t][j];
score[t][j]=x;
}
}
}
执行结果(1):
(2)
四、程序调试过程中出现的问题:
开始运用添加功能时,虽然添加了,但在输出结果中不显示。
解决办法:将最后的输出中的i<n改为i<n+A
五、总结
在课程设计的这段日子里,我真正体会到什么叫失败是成功之母,因为在编写程序时会出现这样或那样的错误,有的是语法错误,有的是逻辑错误,还有的是由于自己粗心漏掉或多加了一些符号等等,但只要你能静下心来慢慢寻找原因,慢慢修改,最后终能成功。但如果你在编程时格外细心,你将会减少许多麻烦,同时也会节省很多时间。
第二篇:C语言程序设计课程设计报告_模板
五邑大学课程设计报告
课程类别: 本科
课程名称: C语言程序设计课程设计 课程代号: 0800090
指导教师:
XXXX系统设计与实现
姓名:
学号:
院系:
专业:
课程设计报告提交时间:20xx年 11月 20
日
目 录
1
2 课程设计内容 ....................................................................................................... 1 课程设计要求 ....................................................................................................... 1
2.1 功能要求 ..................................................................................................... 1
2.2 技术要求 ..................................................................................................... 1
3 概要设计 .............................................................................................................. 1
3.1 功能模块图 .................................................................................................. 1
3.2 功能模块描述 .............................................................................................. 2
4 详细设计 .............................................................................................................. 2
4.1 功能流程图 .................................................................................................. 2
4.2 重点设计 ..................................................................................................... 2 5
6 测试与调试 ........................................................................................................... 2 心得体会 .............................................................................................................. 2
参考文献 ..................................................................................................................... 2
I
C语言程序设计课程设计报告 XXXX系统设计与实现
XXXX系统设计与实现
1 课程设计内容
设计并实现XXXX系统,具备以下功能模块:
(1) 功能模块1…
(2) 功能模块2…
(3) 功能模块3…
2 课程设计要求
2.1 功能要求
(1) 功能要求1…
(2) 功能要求2…
(3) 功能要求3…
2.2 技术要求
(1) 技术要求1….
(2) 技术要求2…
(3) 技术要求3…
…
3 概要设计
3.1 功能模块图
1
C语言程序设计课程设计报告 XXXX系统设计与实现
3.2 功能模块描述
…
4 详细设计
4.1 功能流程图
4.2 重点设计
…
5 测试与调试
6 心得体会
通过本次课程设计,本人…
…
参考文献
[1]
[2]
[3]
[4]
[5]
[6] 谭浩强. C程序设计(第4版). 清华大学出版社, 2010. 苏小红. C语言程序设计(第1版). 高等教育出版社, 2011. (美)H.M.Deitel & P.J.Deitel. C程序设计教程. 机械工业出版社, 2005. 龚沛增 杨志强. C/C++程序设计教程[M]. 北京:高等教育出版社, 2004. 高潮. C++程序设计. 冶金工业出版社, 2010. 谭浩强. C程序设计题解与上机指导(第三版). 清华大学出版社, 2005.
2