班级档案管理系统报告文档.docx
《班级档案管理系统报告文档.docx》由会员分享,可在线阅读,更多相关《班级档案管理系统报告文档.docx(15页珍藏版)》请在冰豆网上搜索。
班级档案管理系统报告文档
班级档案管理系统报告文档
题目:
班级档案管理系统
一、设计任务与目标
对一个有N个学生的班级,经过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
功能要求:
(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
学号、姓名、性别、年龄、备注。
(2)本系统显示这样的菜单:
请选择系统功能项:
a学生基本信息录入
b学生基本信息显示
c学生基本信息保存
d学生基本信息删除
e学生基本信息修改(要求先输入密码)
f学生基本信息查询
(1)按学号查询
(2)按姓名查询
(3)按性别查询
(4)按年龄查询
g.退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将学生基本信息保存到文件中。
(5)进入系统之前要先输入密码。
二、方案设计与论证
主要采用结构体数组,经过scanf函数从键盘输入学生各种信息,每当修改学生信息时需要调用密码验证函数。
定义了一个文件指针,密码验证函数中,经过fopen打开已有文本文件,然后经过fgetc逐个读取该文件中的字符来实现。
退出系统时向学生信息文件中写入数据并关闭文件就实现了保存文件的功能。
三、程序框图或流程图,程序清单与调用关系
输入密码
输出”密码错误”
输出”信息录入
(1)退出系统(7)”
输出”请选择”输入”7”
结束
结束
输出”请选择”输入”1”
输出”显示
(2)保存(3)删除(4)修改(5)查询(6)”
输入”5”
输入密码
输出”该生不存在”
输出”修改信息,输入学号”
进行修改
输出”请选择”输入”2”
显示信息
输入”4”
输入学号?
输出”该生不存在”
进行删除
输出”请选择”
输入”2”
显示修改后的学生信息
输入”6”
输出”经过学号姓名性别年龄进行查询”
分别查询
NY
N
NY
四、全部源程序清单
#include
#include
#include
#include
#defineN3
structstudent
{
charname[10];
charno[10];
charsex;
intage;
charbnote[100];
};
voidprint(boolmenu)//打印基本信息
{
if(!
menu)
{
printf("学生基本信息录入,press1\n");
}
else
{
printf("学生基本信息显示,press2\n");
printf("学生基本信息保存,press3\n");
printf("学生基本信息删除,press4\n");
printf("学生基本信息修改,press5\n");
printf("学生基本信息查询,press6\n");
}
printf("退出学生信息系统,press7\n");
}
boolCheck(charpas[6])//密码验证
{
FILE*fp;//定义一个文件指针fp,建立一个字符文件
charch;
chara[7]={""};
inti=0;
if((fp=fopen("c:
\\密码.txt","r"))==NULL)//打开密码.txt
{
printf("文件打开失败!
\n");
exit(0);
}
ch=fgetc(fp);
while(ch!
=EOF&&i<6)
{
a[i]=ch;
ch=fgetc(fp);
i++;
}
a[6]='\0';
if(!
strcmp(pas,a))
{
returntrue;
}
else
{
printf("密码错误\n");
returnfalse;
}
fclose(fp);
}
voidGetInformation(structstudent*arr,intn)//学生基本信息录入
{
for(inti=0;i{
printf("输入学生的基本信息:
namenosexagebnote\n");
scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
}
}
voidDisplay(structstudent*arr,intn)//学生基本信息显示
{
printf("学生信息:
namenOsexagenote\n");
for(inti=0;i{
printf("%5s%5s%5c%5d%5s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
}
}
voidSave(structstudent*arr,intn)//学生基本信息保存,保存在c:
\\student.txt
{
FILE*fp;
fp=fopen("c:
\\student.txt","w+");
if(fp==NULL)
{
printf("文件不存在!
\n");
exit(0);
}
fwrite(arr,sizeof(structstudent)*n,n,fp);
fclose(fp);
}
voidModfiy(structstudent*arr,intn)//学生基本信息修改
{
charnumber[10];
boolflag=false;
charpass[6];
printf("请输入密码:
\n");
scanf("%s",pass);
if(Check(pass))
{
printf("修改学生信息:
\n");
printf("请输入学号:
\n");
scanf("%s",number);
for(inti=0;i{
if(!
strcmp(number,arr[i].no))
{
printf("学生信息:
namenosexagenote\n");
printf("%10s%10s%10c%10d%10s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
printf("请输入学生信息:
\n");
scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
Save(arr,n);
flag=true;
}
}
if(flag==false)
{
printf("该学生不存在!
\n");
}
}
}
voidDelete(structstudent*arr,intn)//学生基本信息删除
{
charnumber[10];
boolflag=false;
printf("删除学生信息:
\n");
printf("请输入学号:
\n");
scanf("%s",number);
for(inti=0;i{
if(!
strcmp(number,arr[i].no))
{
strcpy(arr[i].name,"");
strcpy(arr[i].no,"");
strcpy(arr[i].bnote,"");
arr[i].sex='';
arr[i].age=0;
Save(arr,n);
flag=true;
}
}
if(flag==true)
{
printf("该学生不存在!
:
\n");
}
}
voidSearch(structstudent*arr,intn)//学生基本信息查询
{
inttemp,i;
boolflag=false;
printf("---------------经过学号查询,press1-------------\n");
printf("---------------经过姓名查询,press2-----------\n");
printf("---------------经过性别查询,press3------------\n");
printf("---------------经过年龄查询,press4------------\n");
printf("---------------退出,press5------------\n");
scanf("%d",&temp);
switch(temp)
{
case1:
//按照学号查询
{
charnum[10];
printf("请输入学号:
\n");
scanf("%s",num);
for(i=0;i{
if(!
strcmp(num,arr[i].no))
{
printf("%10s%10s%10c%10d%10s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag=true;
}
}
if(!
flag)
{
printf("该学生不存在.\n");
}
}
break;
case2:
//按照姓名查询
{
charnum[10];
printf("请输入姓名:
\n");
scanf("%s",num);
for(i=0;i{
if(!
strcmp(num,arr[i].name))
{
printf("%10s%10s%10c%10d%10s",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag=true;
}
}
if(!
flag)
{
printf("该学生不存在.\n");
}
}
break;
case3:
//按照性别查询
{
charch;
printf("请输入性别:
\n");
//scanf("%c",&ch);
ch=getch();
for(i=0;i{
if(ch==arr[i].sex)
{
printf("%10s%10s%10c%10d%10s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag=true;
}
}
if(!
flag)
{
printf("该学生不存在.\n");
}
}
break;
case4:
//按照年龄查询
{
charnum_age;
printf("请输入年龄:
\n");
scanf("%d",&num_age);
for(i=0;i{
if(num_age==arr[i].age)
{
printf("%10s%10s%10c%10d%10s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag=true;
}
}
if(!
flag)
{
printf("该学生不存在.\n");
}
}
break;
default:
break;
}
}
voidmain()
{
structstudentarr[N];
charps[6];
boolflag=false;
printf("请输入密码:
\n");
scanf("%s",ps);
flag=Check(ps);
if(flag)
{
intselect;
print(false);
scanf("%d",&select);
while(0