语c言课程设计说明书学生成绩管理系统大学毕设论文Word文档下载推荐.docx
《语c言课程设计说明书学生成绩管理系统大学毕设论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《语c言课程设计说明书学生成绩管理系统大学毕设论文Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
v具有插入、删除和修改功能
v具有输出文件数据信息的功能
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天
选择课程设计题目,分析课题的要求
第二天
编程
第三天
编程及调试
第四天
写课程设计报告
第五天
提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
目录
内蒙古科技大学课程设计任务书I
第一章需求分析4
1.1引言4
1.2任务概述4
1.3数据描述4
1.4功能需求4
1.5性能需求5
第二章概要设计6
2.1总体设计6
2.2数据类型设计(或数据结构设计)6
2.3接口设计//函数声明7
2.4运行界面设计8
第三章详细设计9
3.1输入模块设计9
3.2输出模块设计10
3.3查找模块设计11
3.4排序模块设计11
第四章测试分析13
4.1测试程序执行情况13
第五章用户手册(可选)15
5.1使用说明15
第六章课程设计总结16
附录:
程序代码16
参考文献27
致谢28
第一章需求分析
1.1引言
近年来,随着学校规模的不断扩大,学生数量也相应增加,有关学生考试的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致学生成绩管理上的混乱,人力物力过度浪费,学生成绩管理费用的增加,从而使学校的负担过重,影响整个学校的运作和控制管理,因此,必须制定一套合理、有效、规范和实用的学生成绩管理系统,对学生进行集中统一的管理。
系统开发的总的设计目标是学生学生成绩管理系统的系统化、规范化和自动化,实现对学生成绩的集中统一的管理。
1.2任务概述
假设某班级有n名学生,每名学生有5门课程,分数确定。
试设计一个学生成绩管理系统,有如下功能。
1:
增加学生记录
2:
修改学生记录
3:
删除学生记录
4:
查找学生记录
5:
排序
1.3数据描述
学号姓名数学英语C语言体育计算机平均分
101小明999999999999
102小华888888888888
1.4功能需求
根据要求用户需要设计一个关于学生成绩管理系统程序,使学校可以通过老师简单地输入个人成绩信息,便可方便的显示出来,并且完成平均分的计算。
该程序还要实现以下功能:
A:
按学号查找
B:
按姓名查找
1.5运行需求
系统的运行对于环境的要求是:
1.硬件环境
目前,我们所开发的系统主要是应用在中小规模的学校内部,因此,一般配置的计算机硬件就可以满足系统需求。
考虑到学校规模的扩大和硬件价格的降低,为本系统配置在较优秀的服务器硬件,可以充分发挥本系统性能。
处理器:
IntelPentium43.06GX或更高
内存:
256M(推荐)
硬盘空间:
40GB
显卡:
SVGA显示适配器
2.软件环境
操作系统:
Windows2000/XP
开发软件:
MicrosoftVisualStudio.NET2005
数据库:
MicrosoftSQLServer2005
第二章概要设计
2.1
总体设计
2.2数据类型设计(或数据结构设计)
structStudent/*定义学生结构体*/
{
charID[20];
charName[20];
floatMark1;
floatMark2;
floatMark3;
floatMark4;
floatMark5;
floatAverage;
};
2.3接口设计
函数名
函数格式
函数功能
Student_SearchByIndex(charid[]);
int
通过学号返回数组下标
Student_SearchByName(charname[])
通过姓名返回数组下标
Student_Insert()
void
输入学生信息
Student_Modify()
修改学生信息
Student_Delete()
删除学生信息
Student_Select()
按姓名查询
Student_Search()
按学号查询
Student_SortByAverage()
按平均成绩排序
Student_Display()
显示学生信息
IO_ReadInfo()
将学生信息从文件读出
IO_WriteInfo()
将学生信息保存到文件
2.4运行界面设计
第三章详细设计
3.1输入模块设计
voidStudent_Insert()/*插入学生信息*/
while
(1)
{
system("
cls"
);
printf("
请输入学号:
"
scanf("
%s"
&
students[num].ID);
getchar();
printf("
请输入姓名:
scanf("
students[num].Name);
getchar();
请输入数学成绩:
%f"
students[num].Mark1);
请输入英语成绩:
students[num].Mark2);
请输入C语言成绩:
students[num].Mark3);
请输入体育成绩:
students[num].Mark4);
请输入计算机成绩:
students[num].Mark5);
students[num].Average=Avg(students[num]);
num++;
增加学生信息成功!
\n"
是否继续增加?
(y/n)"
if(getchar()=='
n'
)
{
break;
}
}
}
3.2查找模块设计
voidStudent_Select()/*按姓名查询*/
{
COLOR2f"
charname[20];
intindex;
请输入要查询的学生的姓名:
name);
index=Student_SearchByName(name);
if(index==-1)
printf("
学生不存在!
else
查找成功!
你要查询的学生信息为:
Student_DisplaySingle(index);
是否继续?
if(getchar()=='
}
voidStudent_Search()//按学号查询
charid[20];
请输入要查询的学生的学号:
id);
index=Student_SearchByIndex(id);
3.3排序模块设计
voidStudent_SortByAverage()/*按平均值排序*/
inti,j;
structStudenttmp;
for(i=0;
i<
num;
i++)
for(j=i+1;
j<
j++)
{
if(students[i].Average<
students[j].Average)
{
tmp=students[i];
students[i]=students[j];
students[j]=tmp;
}
}3.4保存及读取模块设计
voidIO_ReadInfo()/*将学生信息从文件读出*/
FILE*fp;
inti;
if((fp=fopen("
Database.txt"
"
rb"
))==NULL)
不能打开文件!
return;
if(fread(&
num,sizeof(int),1,fp)!
=1)
num=-1;
else
for(i=0;
fread(&
students[i],sizeof(structStudent),1,fp);
fclose(fp);
voidIO_WriteInfo()/*将学生信息写入文件*/
wb"
if(fwrite(&
写入文件错误!
if(fwrite(&
students[i],sizeof(structStudent),1,fp)!
第四章测试分析
4.1测试程序执行情况
主程序菜单运行良好
修改程序运行良好
删除程序运行良好
查找程序运行良好
排序程序运行良好
第五章用户手册(可选)
5.1使用说明
在主界面选择所需功能(1-7),先需增加学生记录,然后对有错误的进行修改、删除。
还可进行查找。
第六章课程设计总结
经过一个星期的上机实践学习,使我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;
再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
程序代码
#include<
stdio.h>
#include<
string.h>
stdlib.h>
floatAvg(structStudentstu);
intStudent_SearchByIndex(charid[]);
intStudent_SearchByName(charname[]);
voidStudent_DisplaySingle(intindex);
voidStudent_Insert();
voidStudent_Modify();
voidStudent_Delete();
/*删除学生信息*/
voidStudent_Select();
voidStudent_Search();
voidStudent_SortByAverage();
voidStudent_Display();
voidIO_ReadInfo();
voidIO_WriteInfo();
structStudentstudents[1000];
/*声明学生数组及学生数量*/
intnum;
floatAvg(structStudentstu)/*求平均值*/
return(stu.Mark1+stu.Mark2+stu.Mark3+stu.Mark4+stu.Mark5)/5;
intStudent_SearchByIndex(charid[])/*通过学号返回数组下标*/
if(strcmp(students[i].ID,id)==0)
returni;
return-1;
intStudent_SearchByName(charname[])/*通过学号返回数组下标*/
if(strcmp(students[i].Name,name)==0)
voidStudent_DisplaySingle(intindex)/*显示单条学生记录*/
system("
COLOR4f"
-------------------------------------------------------------------------------\n"
%10s%10s%8s%8s%8s%8s%8s%10s\n"
"
学号"
姓名"
数学成绩"
英语成绩"
C语言成绩"
体育成绩"
计算机成绩"
平均成绩"
%10s%10s%8.2f%8.2f%8.2f%8.2f%8.2f%10.2f\n"
students[index].ID,
students[index].Name,
students[index].Mark1,
students[index].Mark2,
students[index].Mark3,
students[index].Mark4,
students[index].Mark5,
students[index].Average);
--------------------------------------------------------------------------------\n"
voidStudent_Modify()/*修改学生信息*/
/*floatmark1,mark2,mark3;
*/
COLOR1f"
请输入要修改的学生的学号:
你要修改的学生信息为:
--请输入新值--\n"
scanf("
students[index].ID);
getchar();
students[index].Name);
students[index].Mark1);
students[index].Mark2);
students[index].Mark3);
students[index].Mark4);
students[index].Mark5);
students[index].Average=Avg(students[in