学生信息管理系统实验报告.docx

上传人:b****7 文档编号:10619947 上传时间:2023-02-21 格式:DOCX 页数:16 大小:342.31KB
下载 相关 举报
学生信息管理系统实验报告.docx_第1页
第1页 / 共16页
学生信息管理系统实验报告.docx_第2页
第2页 / 共16页
学生信息管理系统实验报告.docx_第3页
第3页 / 共16页
学生信息管理系统实验报告.docx_第4页
第4页 / 共16页
学生信息管理系统实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

学生信息管理系统实验报告.docx

《学生信息管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

学生信息管理系统实验报告.docx

学生信息管理系统实验报告

程序设计技能强化实验报告

指导教师:

才智杰

班级:

14级C班

实践时间:

2015.9.7~2015.9.30

学号:

20142111439

组长:

索朗

成员:

尕藏才让才让东周达瓦次里多吉占堆

 

 

小组实验报告

--------学生成绩管理系统

实验日期:

实验成绩:

1、实验目的

1.熟练掌握数据的输入和输出语句。

2.在程序中熟练使用选择结构。

3.熟练使用for语句循环对矩阵进行操作。

4.熟练掌握函数的编写和调用,正确编写题目要求的查找函数和输出函数,实现题目的要求。

5.掌握查找方法。

6.掌握结构体数组的定义和使用。

7.掌握文件的打开、关闭和读写操作。

8.掌握冒泡排序方法和选择排序方法。

9.掌握函数指针的使用。

2、实验环境

MicrosoftVisualStudio2008

三、实验原理

根据“制作讲解”与老师的程序代码进行编写,用C++语言编写。

4、实验步骤

1.打开c++,新建一个工作界面。

2.进行编程。

3.编译。

4.链接。

5.运行。

五、实验结果分析

实验结果与预期一致,实验正确。

六、实验结论

本程序作为一个学生成绩管理系统,用户可以首先使用管理员模式初始化该系统。

初始化完成之后,用户可以对学生成绩进行查找、删除等记录,系统将自动储存所记录的学生成绩,然后用户可根据不同需要来选择不同的功能来使用程序的功能。

7、实验结果

1.运行之后,出现题目,要求输入密码。

2.输入密码,进入系统,就会出现一新的工作界面。

3.选择不同的功能按不同的字母,可以完成多个管理。

诸如:

七、附件1:

程序源代码

#include

#include

#include

#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");

printf("学生信息管理系统\n");

printf("________________________________________________________________________________\n");

printf("|[题目]:

学生成绩数据表的数据项主要包括:

学号、姓名、年级、专业、成绩1、成绩2、|\n|成绩3、平均成绩、总成绩。

|\n");

printf("|要求具有以下功能:

|\n");

printf("|

(1)能添加、删除、修改任意个记录。

|\n");

printf("|

(2)显示、保存记录。

|\n");

printf("|(3)排序功能:

打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡排序法|\n|将平均成绩和总成绩排序后生成一个新文件(从大到小),存盘并显示这个|\n");

printf("|文件的全部记录。

|\n");

printf("|(4)查询功能:

a、能够使用学号和姓名进行查询;b、打开总成绩排序文件,用折半|\n|查找法统计出给定分数的人数并显示。

|\n");

printf("|(5)根据上述功能设计菜单并显示,按照菜单提示操作,并要求程序具有一定的容错|\n|性。

|\n");

printf("|==============================================================================|\n");

if(!

ma())

exit(0);

f0(a);//加载文件中学生的信息

while(xz!

='x')

{menu();

switch(xz)

{case'a':

f1(a);//输入

break;

case'b':

f2(a);//删除某条记录

break;

case'c':

f3(a);//修改某条记录

break;

case'd':

f4(a);//显示记录

break;

//case'e':

//f5(a);//保存学生信息

//break;

case'f':

f6(a);//排序学生记录

break;

case'g':

f7(a);//按学号查询记录

break;

case'h':

f8(a);//按学号查询记录

break;

case'x':

printf("\n\n系统安全退出,谢谢使用!

\n");

getch();

exit(0);//按学号查询记录

//break;

default:

printf("\n\n选择的值不正确,请按回车后重新选择!

\n");

getch();

}

xz='a';

}

getch();

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;

printf("*");

}

a[j]='\0';

if(strcmp(a,b)==0)

return

(1);

else

if(i<3)

printf("\n\n密码不正确!

\n");

}

printf("\n\n3次密码输入错误,无法使用系统!

\n");

getch();

return(0);

}

menu()

{

system("cls");//清屏

printf("欢迎登录学生信息查询系统:

\n\n\n");

printf("+++++++++++++++++++++++++++++++++++++++++++\n");

printf("++___________________++\n");

printf("++菜单++\n");

printf("++=====================++\n");

printf("++|a.添加学生信息|++\n");

printf("++|b.删除学生信息|++\n");

printf("++|c.修改学生信息|++\n");

printf("++|d.显示学生信息|++\n");

printf("++|e.保存学生信息|++\n");

printf("++|f.排序学生信息|++\n");

printf("++|g.按学号查询|++\n");

printf("++|h.按姓名查询|++\n");

printf("++|x.退出系统|++\n");

printf("++=====================++\n");

printf("===========================================\n");

printf("\n请选择:

%c\b",xz);

xz=getch();

if(xz=='\r')

xz='a';

}

f0(stua[])//加载文件中学生信息

{FILE*fp;

inti;

if((fp=fopen("STU.DAT","r"))==NULL)

return(0);

fscanf(fp,"%d",&n);

for(i=0;i

fscanf(fp,"%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;

system("cls");//清屏

do

{printf("请输入学生的学号、姓名、专业、年级和三门课成绩。

\n");

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;

printf("\n");

printf("学号:

%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++;

printf("是否要继续输入?

\n");

printf("Y|是|N|否|\n");

fflush(stdin);

c=getch();

}while((c=='N')||(c=='Y'));

system("cls");//清屏

printf("\n\n\n\n\n\n\n\n\是否保存?

(1/0)");

scanf("%d",&k);

if(k==1)

{if((fp=fopen("STU.DAT","w"))==NULL)

{printf("cannotopenfile!

!

\n");

exit(0);}

for(i=0;i

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);

printf("\n学生信息已保存到文件中!

\n");

getch();

fclose(fp);}

else

printf("没有保存!

");

//fprintf(fp,"%d",n);

getch();

}

f2(stua[])//删除某条记录

{inti,k;

floatmax;

system("cls");//清屏

printf("请输入要删除的学生的序号。

\n");

scanf("%d",&k);

fflush(stdin);

if(k<=0||k>n)

{printf("输入的序号不正确!

\n");

getch();

return(0);

}

for(i=k-1;i

a[i]=a[i+1];

n--;

}

f3(stua[])//修改

{intk;

system("cls");//清屏

printf("请输入要修改的学生序号。

\n");

scanf("%d",&k);

fflush(stdin);

if(k<=0||k>n)

{printf("输入的序号不正确!

\n");

getch();

return(0);

}

printf("请重新输入第%d个学生的学号、姓名、专业、年级和三门课成绩\n",k);

scanf("%s%s%s%s%f%f%f",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;

system("cls");//清屏

printf("学生信息如下:

\n");

for(i=0;i

printf("学号:

%s\n姓名:

%s\n专业:

%s\n年级:

%s\n成绩1:

%.2f\n成绩2:

%.2f\n成绩3:

%.2f\n平均成绩:

%.2f\n总分成绩:

%.2f\n\n\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);

getch();

}

f5(stua[])//保存学生信息,将学生信息与到文件中

{FILE*fp;

inti;

if((fp=fopen("STU.DAT","w"))==NULL)

{printf("cannotopenfile!

!

\n");

exit(0);}

fprintf(fp,"%d",n);

for(i=0;i

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);

printf("\n学生信息已保存到文件中!

\n");

getch();

fclose(fp);

}

f6(stua[])//按总分排序

{inti,j;

stut;

FILE*fp;

for(i=0;i

for(j=i+1;j

if(a[i].zfcj

{t=a[i];

a[i]=a[j];

a[j]=t;

}

if((fp=fopen("STUPX.DAT","w"))==NULL)

{printf("cannotopenfile!

!

\n");

exit(0);}

fprintf(fp,"%d",n);

for(i=0;i

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);

printf("\n排序后的学生信息已保存到文件中!

\n");

printf("\n排序结果为:

\n");

for(i=0;i

printf("%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);

getch();

fclose(fp);

}

f7(stua[])//按学号查询

{inti;

chark[10];

printf("\n请输入要查找学生的学号:

");

scanf("%s",k);

printf("\n找到的学生信息为:

\n");

for(i=0;i

if(strcmp(k,a[i].xh)==0)

printf("学号:

%s\n姓名:

%s\n专业:

%s\n年级:

%s\n成绩1:

%.2f\n成绩2:

%.2f\n成绩3:

%.2f\n平均成绩:

%.2f\n总分成绩:

%.2f\n\n\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);

getch();

}

f8(stua[])//按姓名查询

{inti;

chark[10];

printf("\n请输入要查找学生的姓名:

");

scanf("%s",k);

printf("\n找到的学生信息为:

\n");

for(i=0;i

if(strcmp(k,a[i].xm)==0)

printf("%s%s%s%s%f%f%f%f%f\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);

getch();

}

 

实验总结

通过对这一课题的设计和实现,我对Micosoft Visual C++环境进行了深一步的了解,并逐渐开始熟练Micosoft Visual C++环境的工作界面,以及对每一个快捷键的熟悉。

并认识到,熟悉这些快捷键,极为便捷编写程序,但是还要更加熟悉。

 编程时要养成良好的风格,注意相同内容的缩进和对齐。

这样做,可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的行,利于很好的修改。

 通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同人员之间的协作。

 这个程序设计主要涉及到了C语言中的结构体、指针及文件操作等内容,只有充分掌握了C语言中的结构体、指针及文件操作等内容,才有可能组织好这些代码,使之符合运算逻辑,得到理想的结果。

 善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高,生活就是这样,汗水预示着结果也见证着收获。

劳动是人类生存生活永恒不变的话题。

通过实际动手做,我们才真正领略到“艰苦奋斗”这一词的真正含义,我们想说,编程确实有些辛苦,但苦中也有乐,在这个团队的任务中,一起的工作可以让我们有说有笑,相互帮助,配合默契。

对我们而言,知识上的收获重要,精神上的丰收是可喜的。

挫折是一份财富,经历是一份拥有。

这次实际操作必将成为我们人生旅途上一个非常美好的回忆!

 回顾起此次课程设计,至今仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针……通过这次课程设计之后,我把前面所学过的知识又重新温故了一遍。

 同时,在老师的身上我学得到很多实用的知识,在此表示感谢!

同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1