学生信息管理系统Word文件下载.docx
《学生信息管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
charname[10];
//姓名
charsex[3];
//性别
intage;
//年龄
charbirthday[40];
//生日
intID;
//学号
chartel[40];
//联系方式
charad[50];
//地址
charmail[50];
//邮箱
intmath;
//数学成绩
intenglish;
//英语成绩
intcomputer_C;
//计算机C语言成绩
intsum;
//成绩总和
}Student;
voidmain()
color2;
intchg=1,n;
gotoxy(10,5);
printf("
**************************************************************"
);
gotoxy(30,6);
欢迎使用本管理系统"
gotoxy(10,7);
gotoxy(35,10);
作者:
郭帅"
Sleep(3000);
//停留3秒
system("
cls"
//清屏
while(chg)
{
Menu();
scanf("
%d"
&
n);
switch(n)
case1:
Infobase();
break;
case2:
Find();
case3:
InfoStat();
case4:
Comp();
case0:
chg=0;
//退出菜单
/t/t谢谢使用!
再见\n"
default:
/t/t选择错误(0~4)?
请重新输入\n"
}
getch();
}
/************************************主菜单画面***********************************************/
voidMenu()
\t┌──────────────────────────────┐\n"
\t│主菜单│\n"
\t├─────┬──────┬─────┬─────┬─────┤\n"
\t│1信息维护│2信息查询│3成绩统计│4成绩排序│0退出菜单│\n"
\t└─────┴──────┴─────┴─────┴─────┘\n"
/*************************************信息维护***********************************************/
voidInfobase()
intn,chg=1;
\t1添加学生信息2修改学生信息3删除学生信息0回到主菜单\n"
Infobase_add();
Infobase_amend();
Delete();
//退回主菜单
default:
\t选择错误请重新输入\n:
"
/****************************光标定位函数*******************************/
voidgotoxy(intx,inty)
CONSOLE_SCREEN_BUFFER_INFOcsbiInfo;
HANDLEhConsoleOut;
hConsoleOut=GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&
csbiInfo);
csbiInfo.dwCursorPosition.X=x;
csbiInfo.dwCursorPosition.Y=y;
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
/*******************************录入信息*****************************************************/
voidInfobase_add()
Studentstu[1];
//定义Student型数组变量
FILE*fp=NULL;
//声明文件指针
fp=fopen("
学生信息.txt"
"
a"
//以追加方式打开
输入姓名性别年龄出生年月学号电话地址邮箱成绩(数学外语C语言)\n"
%s%s%d%s%d%s%s%s%d%d%d"
//接收输入
stu[0].name,
stu[0].sex,
&
stu[0].age,
stu[0].birthday,
stu[0].ID,
stu[0].tel,
stu[0].ad,
stu[0].mail,
stu[0].math,
stu[0].english,
stu[0].computer_C);
\n\n"
stu[0].sum=stu[0].english+stu[0].computer_C+stu[0].math;
//计算总分
if(fprintf(fp,"
%s%s%d%s%d%s%s%s%d%d%d%d\n"
//写入磁盘防错处理
stu[0].age,
stu[0].ID,
stu[0].math,
stu[0].english,
stu[0].computer_C,
stu[0].sum)==0)
写入失败"
fclose(fp);
//关闭文件指针
/*********************************修改信息***************************************************/
voidInfobase_amend()
inti,j;
charch[10];
//声明字符数组以保存需修改的姓名
Studentstu[50];
//声明Student型数组
输入需修改学生的名字"
//提示输入
%s"
ch);
//接收输入姓名
rt+"
//以可读写方式打开
for(i=0;
;
i++)
fscanf(fp,"
%s%s%d%s%d%s%s%s%d%d%d%d"
//从磁盘读入内存
stu[i].name,
stu[i].sex,
stu[i].age,
stu[i].birthday,
stu[i].ID,
stu[i].tel,
stu[i].ad,
stu[i].mail,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum);
if(strcmp(stu[i].name,ch)==0)//判断是否查找所需
rewind(fp);
//指针移到文件开头
输入修改姓名性别年龄出生年月学号电话地址邮箱成绩(数学外语C语言)\n"
//接收输入
stu[i].computer_C);
j=i;
stu[i].sum=stu[i].english+stu[i].computer_C+stu[i].math;
i<
j;
i++)
fprintf(fp,"
//原数据写入磁盘
stu[i].age,
stu[i].ID,
stu[i].math,
stu[i].english,
stu[i].computer_C,
stu[i].sum);
//将修改数据写入磁盘
/**************************************删除信息********************************************/
voidDelete()
inti,j,k=0;
//声明字符数组以保存需删除的姓名
FILE*fp=NULL,*fp1=NULL;
输入需删除学生的名字"
//提示输入
!
feof(fp);
//指针移动到开头
for(;
j<
i-1;
j++)
stu[j]=stu[j+1];
//覆盖需删除的后依次前移
//写入磁盘
fclose(fp);
/***************************************信息查询***********************************************/
voidFind()
//声明chg变量用以循环
\t\t1按学号查询2按姓名查询0退回主菜单\n"
Find_ID();
//调用以学号查找的函数
Find_name();
//调用以姓名查找的函数
printf("
\n选择错误请重新输入\n"
/*********************************按学号查找***************************************************/
voidFind_ID()
intn,i;
//声明Student型数组变量
请输入学号\n"
//提示接收输入
//接收输入学号
rt"
//以只读方式打开
if(fscanf(fp,"
//防止读入内存失败
stu[i].sum)==0)
读取失败"
if(stu[i].ID==n)//判断是否需查找学生
查找到:
%s性别%s年龄%d出生日期%s学号%d电话%s\n\t地址%s邮箱%s数学%d外语%dC语言%d总分%d\n"
//输出查找目标
if(feof(fp))//处理未找到情况
无此学生信息\n"
}fclose(fp);
/******************************按姓名查找*****************************************************/
voidFind_name()
inti;
//声明字符数组以储存查找姓名
请输入姓名\n"
i++)//循环,以文件指针到末尾结束循环
if(strcmp(stu[i].name,ch)==0)//判断是否查找学生
/*********************************信息统计*****************************************************/
voidInfoStat()
intn,m,i,count=0;
charch[15];
//声明字符数组保存课程名
Studentstu[60];
输入课程名(数学外语C)和分数段(格式:
数学x1-x2)\n"
//接收输入课程名
%d-%d"
n,&
m);
//接收输入分数段
i++)//以文件指针到文件末尾结束循环
count++;
/****************************以下输出查找目标**********************************************/
姓名\t性别\t%s\t总分\n"
count;
if(strcmp(ch,"
数学"
)==0&
&
stu[i].math>
=n&
stu[i].math<
=m)
{
%s\t%s\t%d\t%d\n"
外语"
stu[i].english>
stu[i].english<