C语言大作业电子1201班姓名 蔡浩学号1230340110.docx
《C语言大作业电子1201班姓名 蔡浩学号1230340110.docx》由会员分享,可在线阅读,更多相关《C语言大作业电子1201班姓名 蔡浩学号1230340110.docx(16页珍藏版)》请在冰豆网上搜索。
C语言大作业电子1201班姓名蔡浩学号1230340110
C语言程序设计报告
题目:
学生成绩管理系统
设计者:
蔡浩
专业班级:
电子1201
学号:
10
2013年6月1日
湖南工学院电信学院
1
目录
一·封面.........................................1
二·概述.........................................3
三.作业任务书......................................4
四.本组课题及本人任务.................................5
5.程序功能简介......................................6
6.主体内容..........................................7
2
一、概述
1.设计背景
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。
这种管理方式存在着许多缺点,如:
效率低、保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成绩的弊端也越来越明显。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率。
所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。
2. 设计目的
1、掌握运用数据库原理进行系统分析和设计的方法; 2、掌握关系数据库的设计方法;3、加强C语言的编程能力
3. 设计内容
1.设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。
2.设计用户的操作界面,主要实现数据的查询,录入,显示,修改,删除,统计基本功能。
3
三.作业任务书
根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理。
开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。
目前,学校工作繁杂、资料重多。
目前,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。
因此,开发一套适和大众的、兼容性好的系统是很有必要的。
四.本组课题及本人任务
“学生成绩管理系统”包括九个模块:
输入学生资料,输出学生资料,学生
姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。
这九个模块既相互联系又相互独立。
4
五.程序功能简介
学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息,查看留言、提交留言。
教师可以通过成绩管理系统查阅学生成绩信息,教师信息,查看教师留言、学生留言、提交留言、留言的管理等相关操作。
系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改,数据库的备份、数据库的还原等相关操作。
6.主体内容
1.程序源代码
#include
#include
#include
#include
#defineSTUSIZE10
voidstuCover();//程序封面
voidmainmenu();
voideditmenu();//编辑子菜单
voiddispmenu();//查看子菜单
voidcompmenu();//计算子菜单
voidsortmenu();//排序子菜单5
voidOpen();//打开文件函数声明
voidSave();//保存文件函数声明
voidAdd();//增加学生记录函数声明
voidDel();//删除学生记录函数声明
voidModify();//修改学生记录函数声明
voidDispOne();//查看一个记录函数声明
voidDispAll();//显示全部记录函数声明
voidAsceSort(floatarray[],intn);//按升序排列函数声明
voidDropSort();//按降序排列函数声明
voidNotElig();//查找不及格记录函数声明
voidCompSum();//计算总成绩和平均成绩函数声明
voidSearchMax();//查找最高成绩函数声明
voidSearchMin();//查找最低成绩函数声明
voidExplain();//程序说明函数声明
voidQuit(int);//退出函数声明
voidgotoxy(intx,inty);//光标定位函数声明
voidmain()
{
intchoose,editnum,dispnum,compnum,sortnum;//定义5个输入变量
floatstuscore[STUSIZE]={65.5,80,97.5,55,85,77.5,89,95,68.5,88};
system("cls");
stuCover();
getch();
while
(1)//外循环
{
mainmenu();//调用主菜单函数
printf("\t\t请输入序号:
");
scanf("%d",&choose);
switch(choose)//主菜单的switch
{
case1:
Open();break;
case2:
Save();break;
case3:
do//内循环1
{
editmenu();//调用编辑子菜单函数
printf("\t\t请输入序号:
");
scanf("%d",&editnum);
switch(editnum)//编辑子菜单switch
{
case1:
Add();break;
case2:
Del();break;6
case3:
Modify();break;
case0:
Quit(0);break;
}//编辑子菜单switch结束
}while(editnum!
=0);//内循环1结束
break;
case4:
do//内循环2
{
dispmenu();//调用查看子菜单函数
printf("\t\t请输入序号:
");
scanf("%d",&dispnum);
switch(dispnum)//显示子菜单switch
{
case1:
DispOne();break;
case2:
DispAll();break;
case3:
do//内循环3
{
sortmenu();//调用排序子菜单函数
printf("\t\t请输入序号:
");
scanf("%d",&sortnum);
switch(sortnum)//排序子菜单switch
{
case1:
AsceSort(stuscore,STUSIZE);break;
case2:
DropSort();break;
case0:
Quit(0);break;
}//排序子菜单switch结束
}while(sortnum!
=0);//内循环3结束
break;
case4:
NotElig();break;
case'0':
Quit(0);break;
}//显示子菜单switch结束
}while(dispnum!
=0);//内循环2结束
break;
case5:
do//内循环4
{
compmenu();//调用计算子菜单函数
printf("\t\t请输入序号:
");
scanf("%d",&compnum);
switch(compnum)//计算子菜单switch
{
case1:
CompSum();break;
case2:
SearchMax();break;7
case3:
SearchMin();break;
case0:
Quit(0);break;
}//计算子菜单switch结束
}while(compnum!
=0);//内循环4结束
break;
case6:
Explain();break;//程序说明
case0:
Quit
(1);break;
}//主菜单的switch结束
}//外循环结束
}
voidOpen()//打开文件函数
{
printf("打开文件!
\n");getch();
}
voidSave()//保存文件函数
{
printf("保存文件!
\n");getch();
}
voidAdd()//增加学生记录函数
{
printf("增加记录!
\n");getch();
}
voidDel()//删除学生记录函数
{
printf("删除记录!
\n");getch();
}
voidModify()//修改学生记录函数
{
printf("修改记录!
\n");getch();
}
voidDispOne()//查看一个记录函数
{
printf("查看选定记录!
\n");getch();
}
voidDispAll()//显示全部记录函数
{
printf("显示全部记录!
\n");getch();
}
voidAsceSort(floatarray[],intn)//按升序排列函数
{
inti,j;
floatt;8
system("cls");
for(i=0;i{
for(j=0;j{
if(array[j]>array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
}
gotoxy(40,5);
printf("学生成绩排序结果");
gotoxy(10,7);
for(i=0;iprintf("%5.1f",array[i]);
getch();
}
voidDropSort()//按降序排列函数
{
printf("按降序排序!
\n");getch();
}
voidNotElig()//显示不及格记录函数
{
printf("显示不及格记录!
\n");getch();
}
voidCompSum()//计算总成绩和平均成绩函数
{
printf("计算总成绩和平均成绩!
\n");getch();
}
voidSearchMax()//查找最高成绩函数
{
printf("计算最高分!
\n");getch();
}
voidSearchMin()//查找最低成绩函数
{
printf("计算最低分!
\n");getch();
}
voidgotoxy(intx,inty)//光标定位函数
{9
COORDc;
c.X=x-1;
c.Y=y-1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
voidQuit(intflag)//退出
{
charyn;
if(flag==1)
{
system("cls");
printf("返回上级菜单");
getch();
}
else
if(flag==0)
{
system("cls");
printf("你真的要退出吗?
(y/n)");
getchar();//吃掉键盘上的回车
scanf("%c",&yn);
if((char)yn=='y'||(char)yn=='Y')
{
system("cls");
printf("\n\n\n\t\t\t谢谢使用!
\n");
exit(0);
}
}
else
{
system("cls");
printf("输入错!
");
}
}
voidExplain()//程序说明
{
system("cls");
gotoxy(10,3);//光标定位函数
printf("这是一个教学程序。
它以开发班级学生成绩管理系统为主要项目,");
gotoxy(10,5);10
printf("旨在通过简单学生成绩管理系统软件的开发,使读者了解并掌握用C语");
gotoxy(10,7);
printf("言开发程序的方法与技巧。
");
gotoxy(10,9);
printf("该项目由15个任务来完成,将C语言基本知识与理论熔入到任务中,");
gotoxy(10,11);
printf("完成15个任务后就完成整个项目的设计。
通过任务驱动和项目导向教学,");
gotoxy(10,13);
printf("最终实现教学目的,达到培养目标。
");
gotoxy(10,15);
printf("该项目实施贯穿在整个教学过程中,它将重点与难点分散在各个任务");
gotoxy(10,17);
printf("中,达到循序渐进,逐个突破的目的,教学最后将安排一定的时间归纳汇");
gotoxy(10,19);
printf("总。
");
getch();
}
voidstuCover()//程序封面
{
system("cls");
printf("\n\n\n");
printf("\t\t********************\n\n");
printf("\t\t*学生成绩管理系统*\n\n");
printf("\t\t*设计者:
蔡浩*\n\n");
printf("\t\t*学号:
10*\n\n");
printf("\t\t*班级:
电子1201*\n\n");
printf("\t\t*专业:
电子信息工程*\n\n");
printf("\t\t*版本号:
1.0*\n\n");
printf("\t\t*2013年6月*\n\n");
printf("\t\t*期末程序设计*\n");
printf("\n\n");
printf("\t\t********************\n\n");
printf("\t按任意键进入班级学生成绩管理系统主菜单!
");
}
voidmainmenu()
{
system("cls");//C++清屏函数
printf("\n\n\n");
printf("|*****学生成绩管理系统*****|\n");
printf("|....................................|\n");
printf("|请选择菜单序号(0~6)|\n");11
printf("|....................................|\n");
printf("|1----打开文件|\n");
printf("|2----保存文件|\n");
printf("|3----编辑数据|\n");
printf("|4----显示数据|\n");
printf("|5----数据计算|\n");
printf("|6----程序说明|\n");
printf("|0----退出系统|\n");
printf("|....................................|\n");
}
voideditmenu()//编辑子菜单
{
getchar();
system("cls");
printf("\n\n\n");
printf("|*******编辑子菜单******|\n");
printf("|....................................|\n");
printf("|请选择菜单序号(0~3)|\n");
printf("|....................................|\n");
printf("|1----增加记录|\n");
printf("|2----删除记录|\n");
printf("|3----修改记录|\n");
printf("|0----返回上级菜单|\n");
printf("|....................................|\n");
}
voiddispmenu()//查看子菜单
{
system("cls");
printf("\n\n\n");
printf("|*******查看子菜单******|\n");
printf("|....................................|\n");
printf("|请选择菜单序号(0~4)|\n");
printf("|....................................|\n");
printf("|1----查看选定记录|\n");
printf("|2----显示全部记录|\n");
printf("|3----显示排序记录|\n");
printf("|4----显示不及格记录|\n");
printf("|0----返回上级菜单|\n");
printf("|....................................|\n");
}12
voidcompmenu()//计算子菜单
{
system("cls");
printf("\n\n\n");
printf("|*******计算子菜单******|\n");
printf("|....................................|\n");
printf("|请选择菜单序号(0~3)|\n");
printf("|....................................|\n");
printf("|1----计算总成绩和平均成绩|\n");
printf("|2----计算最高分|\n");
printf("|3----计算最低分|\n");
printf("|0----返回上级菜单|\n");
printf("|....................................|\n");
}
voidsortmenu()//排序子菜单
{
system("cls");
printf("\n\n\n");
printf("|*******排序子菜单******|\n");
printf("|....................................|\n");
printf("|请选择菜单序号(0~2)|\n");
printf("|....................................|\n");
printf("|1----按升序排序|\n");
printf("|2----按降序排序|\n");
printf("|0----返回上级菜单|\n");
printf("|....................................|\n");
}
13
2.工作流程
3.实验效果图
14
15
4.设计体会
第一次体验这种设计性的题目,确实感觉有点吃力,不过在多方工具和资料的帮助下,勉强做出了这个含有很多不足和错误的文件,在设计实验中,我充分体验到了C语言程序设计的诸多优点,看到了许多的可观之处,让我更坚定了学习这门课程的信心!
希望在以后的学习中我将不断地成长和进步!
16