学生信息管理系统实验报告.docx
- 文档编号:10619947
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:16
- 大小:342.31KB
学生信息管理系统实验报告.docx
《学生信息管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
学生信息管理系统实验报告
程序设计技能强化实验报告
指导教师:
才智杰
班级:
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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)