学生信息管理系统实验报告Word文档下载推荐.docx
《学生信息管理系统实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统实验报告Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。
2.进行编程。
3.编译。
4.链接。
5.运行。
五、实验结果分析
实验结果与预期一致,实验正确。
六、实验结论
本程序作为一个学生成绩管理系统,用户可以首先使用管理员模式初始化该系统。
初始化完成之后,用户可以对学生成绩进行查找、删除等记录,系统将自动储存所记录的学生成绩,然后用户可根据不同需要来选择不同的功能来使用程序的功能。
7、实验结果
1.运行之后,出现题目,要求输入密码。
。
2.输入密码,进入系统,就会出现一新的工作界面。
3.选择不同的功能按不同的字母,可以完成多个管理。
诸如:
七、附件1:
程序源代码
#include<
stdio.h>
conio.h>
windows.h>
#defineN6
typedefstructstu
{charxh[10];
charxm[10];
charzy[20];
charnj[6];
floatcj1,cj2,cj3,pjcj,zfcj;
}stu;
intn=0;
//全局变量,表示人数
charxz='
a'
;
//保存菜单选项
main()
{stua[N],b[N];
system("
color3F"
);
//3A"
printf("
________________________________________________________________________________\n"
学生信息管理系统\n"
|[题目]:
学生成绩数据表的数据项主要包括:
学号、姓名、年级、专业、成绩1、成绩2、|\n|成绩3、平均成绩、总成绩。
|\n"
|要求具有以下功能:
|
(1)能添加、删除、修改任意个记录。
|
(2)显示、保存记录。
|(3)排序功能:
打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡排序法|\n|将平均成绩和总成绩排序后生成一个新文件(从大到小),存盘并显示这个|\n"
|文件的全部记录。
|(4)查询功能:
a、能够使用学号和姓名进行查询;
b、打开总成绩排序文件,用折半|\n|查找法统计出给定分数的人数并显示。
|(5)根据上述功能设计菜单并显示,按照菜单提示操作,并要求程序具有一定的容错|\n|性。
|==============================================================================|\n"
if(!
ma())
exit(0);
f0(a);
//加载文件中学生的信息
while(xz!
='
x'
)
{menu();
switch(xz)
{case'
:
f1(a);
//输入
break;
case'
b'
f2(a);
//删除某条记录
c'
f3(a);
//修改某条记录
d'
f4(a);
//显示记录
//case'
e'
//f5(a);
//保存学生信息
//break;
f'
f6(a);
//排序学生记录
g'
f7(a);
//按学号查询记录
h'
f8(a);
printf("
\n\n系统安全退出,谢谢使用!
\n"
getch();
exit(0);
//break;
default:
\n\n选择的值不正确,请按回车后重新选择!
}
xz='
getch();
}
ma()//验证登录密码
{chara[7],b[7]="
123456"
inti,j;
for(i=1;
i<
=3;
i++)
{printf("
\n\n请输入6位登录密码:
"
//scanf("
%s"
a);
for(j=0;
j<
6;
j++)
{a[j]=getch();
if(a[j]=='
\r'
break;
*"
}
a[j]='
\0'
if(strcmp(a,b)==0)
return
(1);
else
if(i<
3)
\n\n密码不正确!
printf("
\n\n3次密码输入错误,无法使用系统!
getch();
return(0);
menu()
{
cls"
//清屏
欢迎登录学生信息查询系统:
\n\n\n"
+++++++++++++++++++++++++++++++++++++++++++\n"
++___________________++\n"
++菜单++\n"
++=====================++\n"
++|a.添加学生信息|++\n"
++|b.删除学生信息|++\n"
++|c.修改学生信息|++\n"
++|d.显示学生信息|++\n"
++|e.保存学生信息|++\n"
++|f.排序学生信息|++\n"
++|g.按学号查询|++\n"
++|h.按姓名查询|++\n"
++|x.退出系统|++\n"
===========================================\n"
\n请选择:
%c\b"
xz);
xz=getch();
if(xz=='
xz='
f0(stua[])//加载文件中学生信息
{FILE*fp;
inti;
if((fp=fopen("
STU.DAT"
"
r"
))==NULL)
return(0);
fscanf(fp,"
%d"
&
n);
for(i=0;
n;
%s%s%s%s%f%f%f%f%f"
a[i].xh,a[i].xm,a[i].zy,a[i].nj,&
a[i].cj1,&
a[i].cj2,&
a[i].cj3,&
a[i].pjcj,&
a[i].zfcj);
fclose(fp);
f1(stua[])//输入并求出平均成绩
{charc;
FILE*fp;
inti,k;
do
请输入学生的学号、姓名、专业、年级和三门课成绩。
scanf("
%s%s%s%s%f%f%f"
a[n].xh,a[n].xm,a[n].zy,a[n].nj,&
a[n].cj1,&
a[n].cj2,&
a[n].cj3);
a[n].zfcj=a[n].cj1+a[n].cj2+a[n].cj3;
a[n].pjcj=a[n].zfcj/3;
\n"
学号:
%s姓名:
%s专业:
%s年级:
%s成绩1:
%.2f成绩2:
%.2f\n成绩3:
%.2f平均成绩:
%.2f总分成绩:
%.2f\n\n\n"
a[n].xh,a[n].xm,a[n].zy,a[n].nj,a[n].cj1,a[n].cj2,a[n].cj3,a[n].pjcj,a[n].zfcj);
n++;
是否要继续输入?
Y|是|N|否|\n"
fflush(stdin);
c=getch();
}while((c=='
N'
)||(c=='
Y'
));
\n\n\n\n\n\n\n\n\是否保存?
(1/0)"
k);
if(k==1)
{if((fp=fopen("
w"
cannotopenfile!
!
fprintf(fp,"
%s%s%s%s%.2f%.2f%.2f%.2f%.2f\n"
a[i].xh,a[i].xm,a[i].zy,a[i].nj,a[i].cj1,a[i].cj2,a[i].cj3,a[i].pjcj,a[i].zfcj);
\n学生信息已保存到文件中!
没有保存!
//fprintf(fp,"
%d"
n);
f2(stua[])//删除某条记录
{inti,k;
floatmax;
请输入要删除的学生的序号。
if(k<
=0||k>
n)
输入的序号不正确!
for(i=k-1;
n-1;
a[i]=a[i+1];
n--;
f3(stua[])//修改
{intk;
请输入要修改的学生序号。
请重新输入第%d个学生的学号、姓名、专业、年级和三门课成绩\n"
k);
a[k-1].xh,a[k-1].xm,a[k-1].zy,a[k-1].nj,&
a[k-1].cj1,&
a[k-1].cj2,&
a[k-1].cj3);
a[k-1].zfcj=a[k-1].cj1+a[k-1].cj2+a[k-1].cj3;
a[k-1].pjcj=a[k-1].zfcj/3;
f4(stua[])//输出
{inti;
学生信息如下:
%s\n姓名:
%s\n专业:
%s\n年级:
%s\n成绩1:
%.2f\n成绩2:
%.2f\n成绩3:
%.2f\n平均成绩:
%.2f\n总分成绩:
f5(stua[])//保存学生信息,将学生信息与到文件中
f6(stua[])//按总分排序
{inti,j;
stut;
FILE*fp;
for(j=i+1;
if(a[i].zfcj<
a[j].zfcj)
{t=a[i];
a[i]=a[j];
a[j]=t;
}
STUPX.DAT"
\n排序后的学生信息已保存到文件中!
\n排序结果为:
f7(stua[])//按学号查询
chark[10];
\n请输入要查找学生的学号:
"
\n找到的学生信息为:
N;
if(strcmp(k,a[i].xh)==0)
f8(stua[])//按姓名查询
\n请输入要查找学生的姓名:
if(strcmp(k,a[i].xm)==0)
%s%s%s%s%f%f%f%f%f\n"
实验总结
通过对这一课题的设计和实现,我对Micosoft
Visual
C++环境进行了深一步的了解,并逐渐开始熟练Micosoft
C++环境的工作界面,以及对每一个快捷键的熟悉。
并认识到,熟悉这些快捷键,极为便捷编写程序,但是还要更加熟悉。
编程时要养成良好的风格,注意相同内容的缩进和对齐。
这样做,可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的行,利于很好的修改。
通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同人员之间的协作。
这个程序设计主要涉及到了C语言中的结构体、指针及文件操作等内容,只有充分掌握了C语言中的结构体、指针及文件操作等内容,才有可能组织好这些代码,使之符合运算逻辑,得到理想的结果。
善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高,生活就是这样,汗水预示着结果也见证着收获。
劳动是人类生存生活永恒不变的话题。
通过实际动手做,我们才真正领略到“艰苦奋斗”这一词的真正含义,我们想说,编程确实有些辛苦,但苦中也有乐,在这个团队的任务中,一起的工作可以让我们有说有笑,相互帮助,配合默契。
对我们而言,知识上的收获重要,精神上的丰收是可喜的。
挫折是一份财富,经历是一份拥有。
这次实际操作必将成为我们人生旅途上一个非常美好的回忆!
回顾起此次课程设计,至今仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针……通过这次课程设计之后,我把前面所学过的知识又重新温故了一遍。
同时,在老师的身上我学得到很多实用的知识,在此表示感谢!
同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!