学生成绩管理应用程序设计C语言课设毕业设计论文.docx
《学生成绩管理应用程序设计C语言课设毕业设计论文.docx》由会员分享,可在线阅读,更多相关《学生成绩管理应用程序设计C语言课设毕业设计论文.docx(23页珍藏版)》请在冰豆网上搜索。
学生成绩管理应用程序设计C语言课设毕业设计论文
语言程序设计课程设计任务书
一、设计题目、内容及要求
1、设计题目:
学生成绩管理应用程序设计
2、设计内容及要求:
利用C语言中数组、指针、结构体等基本知识,设计一个学生成绩管理应用程序,其具有以下功能:
①实现菜单功能(必须实现的功能)。
②编程实现相应记录的添加、删除、修改、浏览和查询等功能(可实现部分的功能)。
③实现记录的存储,可以用文件来实现(选作功能)。
二、要求的设计成果(课程设计说明书、设计实物、图纸等)
1、用C语言进行编码,实现应用程序的功能。
注重编码质量,代码要有适当的注释;
2、撰写课程设计说明书一份,不少于2000字。
课程设计说明书应包括封面、任务书、正文(设计的基本思路、设计的步骤及主要代码解释)、参考文献(资料)等内容。
三、进程安排
1月11日:
确定程序功能,确立程序设计思想
1月12日~1月13日:
进行详细设计,实现编码
1月14日:
进行程序测试,完善编码;撰写设计说明书,准备答辩
1月15日:
答辩
四、主要参考资料
[1]严蔚敏.数据结构C语言版.清华大学出版社,2002
[2]张磊.C语言程序设计.北京:
高等教育出版社,2005
[3]谭浩强.C语言程序设计.第2版.北京:
清华大学出版社,2008
[4]谭浩强.C程序设计(二级)教程.北京:
清华大学出版社,2002
[5]陈少波.C语言设计.机械工业出版社,2006
指导教师(签名):
教研室主任(签名):
注:
可以附页
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表现(20分)
课设答辩(20分)
设计成果(60分)
总成绩(100分)
提问
(答辩)
问题
情况
综
合
评
定
指导教师签名:
年月日
1程序总体设计
1.1程序功能
学生记录包括学号、姓名、3门考试成绩。
该程序有以下功能:
1.增加学生记录
2.修改学生记录
3.删除学生记录
4.按姓名查询学生记录
5.退出本程序
1.2程序功能图
程序功能图如图1所示。
总函数
退出本程序
按姓名查询学生记录
删除学生记录
修改学生记录
增加学生记录
图1程序功能图
1.3主函数流程图
开始
输入数字choice
No
1?
Yes
执行输出语句
判断choice的数值
Choice=5
Choice=4
Choice=3
Choice=2
Choice=1
退出
查询
删除
修改
插入
结束
图2主函数流程图
2程序详细设计
2.1插入函数的实现
插入前如图3所示。
图3插入前状况图
输入一条记录信息如图4所示。
图4输入信息状况图
插入后如图5所示。
图5插入后状况图
开始
代码流程图如图6所示。
1
Yes
执行输出,输入
No
num++
输入y/n
No
n
结束
Yes
图6插入函数代码流程图
源程序代码:
voidStudent_Insert()
{
while
(1)
{
printf("请输入学号:
");
scanf("%s",&students[num].ID);
getchar();
printf("请输入姓名:
");
scanf("%s",&students[num].Name);
getchar();
printf("请输入语文:
");
scanf("%f",&students[num].Mark1);
getchar();
printf("请输入数学:
");
scanf("%f",&students[num].Mark2);
getchar();
printf("请输入外语:
");
scanf("%f",&students[num].Mark3);
getchar();
num++;
printf("是否继续?
(y/n)");
if(getchar()=='n')
{
break;
}
}
}
2.2修改函数的实现
修改前如图7所示。
图7修改前状况图
输入一条记录信息如图8所示。
图8输入信息状况图
修改后如图9所示。
图9修改后状况图
代码流程图如图10所示。
开始
No
1
Yes
输入id
赋值index
0
index=-1
1
执行输入输出
输出“学生不存在”
输入y/n
No
n
Yes
结束
图10修改函数代码流程图
源程序代码:
voidStudent_Modify()
{
floatmark1,mark2,mark3;
while
(1)
{
charid[20];
intindex;
printf("请输入要修改的学生的学号:
");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf("学生不存在!
\n");
}
else
{
printf("你要修改的学生信息为:
\n");
Student_Display(index);
printf("--请输入新值--\n");
printf("请输入学号:
");
scanf("%s",&students[index].ID);
getchar();
printf("请输入姓名:
");
scanf("%s",&students[index].Name);
getchar();
printf("请输入语文:
");
scanf("%f",&students[index].Mark1);
getchar();
printf("请输入数学:
");
scanf("%f",&students[index].Mark2);
getchar();
printf("请输入外语:
");
scanf("%f",&students[index].Mark3);
getchar();
}
printf("是否继续?
(y/n)");
if(getchar()=='n')
{
break;
}
}
}
2.3删除函数的实现
删除前如图11所示。
图11删除前状况图
输入一条记录信息如图12所示。
图12输入信息状况图
删除后如图13所示。
图13删除后状况图
开始
代码流程图如图14所示。
No
1
Yes
输入id
赋值index
0
index=-1
非0
执行输出
输出“学生不存在”
输入y/n
No
y
i=index
Yes
0
i非0
students[i]=students[i+1]
n
i++
No
Yes
结束
图14删除函数代码流程图
源程序代码:
voidStudent_Delete()
{
inti;
while
(1)
{
charid[20];
intindex;
printf("请输入要删除的学生的学号:
");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf("学生不存在!
\n");
}
else
{
printf("你要删除的学生信息为:
\n");
Student_Display(index);
printf("是否真的要删除?
(y/n)");
if(getchar()=='y')
{
for(i=index;i{
students[i]=students[i+1];
}
num--;
}
getchar();
}
printf("是否继续?
(y/n)");
if(getchar()=='n')
{
break;
}
}
}
2.4查询函数的实现
查询前如图15所示。
图15查询前状况图
输入一条记录信息如图16所示。
图16输入信息状况图
查询后如图17所示。
图17查询后状况图
代码流程图如图18所示。
开始
No
1
Yes
输入id
赋值index
0
index=-1
非0
执行输出
输出“学生不存在”
输入y/n
Yes
n
No
结束
图18查询函数代码流程图
源程序代码:
voidStudent_Select()
{
while
(1)
{
charname[20];
intindex;
printf("请输入要查询的学生的姓名:
");
scanf("%s",&name);
getchar();
index=Student_SearchByName(name);
if(index==-1)
{
printf("学生不存在!
\n");
}
else
{
printf("你要查询的学生信息为:
\n");
Student_Display(index);
}
printf("是否继续?
(y/n)");
if(getchar()=='n')
{
break;
}
}
}
2.5退出函数的实现
退出前如图19所示。
图19退出前状况图
输入一条记录信息如图20所示。
图20输入信息状况图
退出后如图21所示。
图21退出后状况图
代码流程图如图22所示。
结束
图22退出函数代码流程图
源程序代码:
exit(0)
参考文献
[1]严蔚敏.数据结构C语言版.清华大学出版社,2002
[2]张磊.C语言程序设计.北京:
高等教育出版社,2005
[3]谭浩强.C语言程序设计.第2版.北京:
清华大学出版社,2008
[4]谭浩强.C程序设计(二级)教程.北京:
清华大学出版社,2002
[5]陈少波.C语言设计.机械工业出版社,2006