C语言课程设计 学生成绩管理系统Word格式.docx
《C语言课程设计 学生成绩管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 学生成绩管理系统Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
![C语言课程设计 学生成绩管理系统Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/11/33571565-bc9e-4c8a-a7d0-3de7704fe594/33571565-bc9e-4c8a-a7d0-3de7704fe5941.gif)
五总体设计(包含几大功能模块)...........................5
六详细设计(各功能模块的具体实现算法——流程图)………….6
七调试分析(包含各模块的测试用例,及测试结果)…………….7
八总结………………………………………………………………...8
十参考资料…………………………………………………………….9
一设计目的
进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。
二课程设计的内容
对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:
(1)学生的学号
(2)学生的姓名(3)学生的成绩。
假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。
学习相关开发工具和应用软件,熟悉系统建设过程。
三课程设计的要求与数据
1、用C语言实现系统;
2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.
3、学生信息包括:
其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:
(1)每一条记录包括一个学生的学号、姓名、3门课成绩
(2)、成绩信息录入功能:
(成绩信息用文件保存,可以一次完成若干条记录的输入。
)
(3)、成绩信息显示浏览功能:
完成全部学生记录的显示。
(4)、查询功能:
完成按姓名查找学生记录,并显示。
(5)成绩信息的删除:
按学号进行删除某学生的成绩.
(6)、排序功能:
按学生平均成绩进行排序。
(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
四课程设计应完成的工作
(1)编写算法;
(2)算法测试,并有具体的测试结果和结果分析;
(3)撰写课程设计报告。
内容包括:
1)封面扉页
2)设计任务书
3)目录
4)总体设计方案(包括流程图)
5)使用说明及运行实例(包括界面)
6)成员设计内容简介
7)项目源程序代码(注意注释的使用)
8)指导教师评语
五总体设计(包含几大功能模块)
1、成绩录入功能
2、成绩输出功能
3、成绩查询功能
4、删除模块
5、排序功能
6、统计功能
7、退出系统
六详细设计(各功能模块的具体实现算法——流程图)
各函数的功能和实现
1、输入初始的学生信息:
输入信息包括学生的姓名、学号以及学生的成绩等相关信息;
可用函数voidinput(STUDENT*data,int*len)来实现此操作。
2、成绩输出模块:
输出学生的信息以及成绩voidoutput(STUDENT*data,intlen):
通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage()?
、maverage()?
、eaverage()?
和comaverage()?
来输出成绩的平均分数、最高和最低分数。
3、成绩查询模块:
可用voidfind(STUDENT*data,intlen)?
来实现。
找到就输出此学生全部信息。
4、删除模块:
用函数voiddelete_item(STUDENT*data,int*len)来实现
5、排序模块:
用函数voidsort(STUDENT*data,intlen)来实现
6、统计功能能:
用函数voidstat(STUDENT*data,intlen)来实现
7、退出系统:
可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
如图
图
七调试分析(包含各模块的测试用例,及测试结果)
源程序
#include<
>
#defineMAXN35
#defineMAX_NAME256
typedefstructstudent;
printf("
%s\n"
"
格式:
\n学号\n"
);
姓名语文数学英语"
putchar('
\n'
如:
\n"
1\n"
杨江彬939589\n"
scanf("
%d"
&
no);
while(no!
=-1){
data[*len].no=no;
scanf("
%s%lf%lf%lf"
data[*len].name,&
data[*len].Chinese,&
data[*len].math,&
data[*len].English);
data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len].English)/;
data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len].English;
(*len)++;
}
/*---------------输出信息子程序---------------*/
voidoutput(STUDENT*data,intlen)
{
inti;
system("
cls"
%8s"
学号"
姓名"
语文"
数学"
%10s"
英语"
%12s"
平均分"
总分"
for(i=0;
i<
80;
i++)
='
for(i=0;
i<
len;
{
%8d"
data[i].no);
data[i].name);
%"
data[i].Chinese);
data[i].math);
data[i].English);
data[i].mark_ave);
data[i].mark_tot);
}
按回车键继续."
getchar();
}
/*--------------排序子程序------------*/
voidsort(STUDENT*data,intlen)
inti,j,k;
STUDENTtemp;
for(i=0;
len-1;
i++){
for(k=i,j=i+1;
j<
len;
j++)
if(data[k].mark_ave>
data[j].mark_ave)k=j;
if(k!
=i){
temp=data[i];
data[i]=data[k];
data[k]=temp;
}
/*--------------------搜索子程序-----------------------*/
voidfind(STUDENT*data,intlen)
intfind_no,result;
lab:
result=0;
printf("
请输入需要查找的学生的学号,退出当前菜单请输入-1."
find_no);
if(find_no==-1)return;
/*exitthefinesubprogram*/
while(data[result].no!
=find_no&
&
result<
len)result++;
if(result>
=len){
printf("
未查询到相关信息"
gotolab;
}
else{
system("
查询信息如下:
"
for(i=0;
putchar('
putchar('
data[result].no);
data[result].name);
data[result].Chinese);
data[result].math);
data[result].English);
data[result].mark_ave);
data[result].mark_tot);
for(i=0;
/*-----------------插入子程序-------------*/
voidinsert(STUDENT*data,int*len)
intno,pos;
doubleChinese,math,English,mark_ave,mark_tot;
charname[MAX_NAME];