项目程序代码Word文档下载推荐.docx
《项目程序代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《项目程序代码Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
![项目程序代码Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/24/0f609181-f313-4357-ac68-3c372bac267c/0f609181-f313-4357-ac68-3c372bac267c1.gif)
voidsavedb();
//把内存中结构体数组中的学生数据保存到外存中
voidzhumulu();
//显示程序主目录
voiddisplay();
//显示所有学员信息
voidinput();
//录入新学员信息
intfind(charstr[80]);
//查找指定学号的学员,找到返回该学员在数组中的下标,没找到返回-1,str代表指定学号;
在多个模块中用到该函数
voidquery();
//根据学号查找,并显示学员信息
voidupdate();
//修改学员信息
voiddel();
//删除学员信息
voidsort();
//对学员进行排序
voidaverage();
//求学生成绩平均值
voidguake();
//不及格学生
//函数定义
voidmain()
{
//程序进入“欢迎界面”
printf("
\n\n\n\n\n\t\t欢迎进入========学员信息管理系统========\n"
);
//按任意键初始化学员信息
\n\t\t\t按任意键初始化学员信息...\n\n"
getch();
//从键盘收任一个字符即返回,该函数在conio.h中
readdb();
//初始化学员信息,把外存中学生数据读入到内存中
\t\t\t共有%d条学员信息"
scount);
//scount是实际学生数量
\n\n\t\t\t按任意键进入主目录..."
zhumulu();
//调出“程序主目录”
}
voidzhumulu()
charselect;
//代表用户所选择的子目录号
do
{
system("
cls"
printf("
========学员信息管理系统========\n\n"
以下是程序主目录,请选择功能\n\n"
1)显示\n2)查找\n3)录入\n4)修改\n5)删除\n6)排序\n7)求学生成绩的平均值\8)不及格学生\n0)退出\n\n"
键入功能前的数字后,按\"
Enter\"
键:
"
select=getchar();
switch(select)
{
case'
1'
:
system("
display();
printf("
break;
2'
query();
break;
//查询学员信息
3'
input();
//录入新学员信息
4'
update();
break;
//修改学员信息
5'
del();
//删除学员信息
6'
sort();
//对学员进行排序
case‘7’:
average();
case‘8’:
guake();
//求挂科学生
0'
//退出
default:
printf("
请选择功能前的数字\n"
break;
}
}while(select!
='
voidreaddb()//初始化学员信息,把外存中学生数据读入到内存中
{
FILE*fp;
if((fp=fopen("
studb.txt"
"
r"
))==NULL)
{printf("
文件有错误!
!
程序不能运行!
\n"
return;
}
scount=0;
//scount是数据库中实际学生数量,是全局变量
while(!
feof(fp))//no是学号,name是姓名,)core是成绩
{
//stu是学生结构体数组,全局变量
fscanf(fp,"
%s%s%f%f%f"
stu[scount].no,stu[scount].name,&
stu[scount].score[0],&
stu[scount].score[1],&
stu[scount].score[2]);
if(strcmp(stu[scount].no,"
)!
=0)scount++;
//去掉学号为空字符串
fclose(fp);
//把内存中结构体数组中的学生数据保存到外存中
voidsavedb()
inti;
w"
))==NULL)//以写的方式打开文件,覆盖原文件
for(i=0;
i<
scount;
i++)//scount代表实际的学生数量,stu是表示学生信息的结构体数组名
if(strcmp(stu[i].no,"
=0)//去掉学号为空字符串的信息
printf(fp,"
%-8s%-10s%-10.1f%-10.1f%-10.1f\n"
stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
voiddisplay()//显示所有学员信息
inti;
\n%-8s%-10s%-10s%-10s%-10s\n"
学号"
姓名"
语文"
数学"
英语"
%-8s%-10s%-10s%-10s%-10s\n"
"
===="
i++)
//在printf中,“-”表示数据左对齐,“.1”中的表示输出宽度,“1”表示输出位小数
//查找指定学号的学员,代表指定学号(str)的下标,如果指定学号不存在,返回-1;
intfind(charstr[80])
if(strcmp(str,stu[i].no)==0)returni;
return-1;
voidquery()//根据学号查找,并显示学员信息
charstr[80];
intn;
system("
\n请输入要查询的学生的学号:
scanf("
%s"
str);
n=find(str);
if(n==-1)//find函数返回值,n代表指定学号的下标,如果指定学号不存在,返回-1
\n对不起,您要查找的学员不存在\n"
else
stu[n].no,stu[n].name,stu[n].score[0],stu[n].score[1],stu[n].score[2]);
//显示完毕,提示用户返回主程序
voidinput()//录入新学员信息
STUs;
//代表新学员信息
//先显示已有学员信息
当前学员信息如下:
//在printf中,“-”表示数据左对齐,“.2”中的表示输出宽度,“.2”表示表示输出两位小数
//下面输入新学员信息
\n\n\n请输入\"
学号\"
,\"
不允许为空字符串:
&
s.no);
\n请输入\"
姓名\"
注意\"
里不能加空格:
s.name);
语文成绩\"
:
%f"
s.score[0]);
数学成绩\"
s.score[1]);
英语成绩\"
s.score[2]);
//把临时结构体变量s赋到结构体数组中;
同时把表示学员数量的变量scount增加
stu[scount++]=s;
savedb();
voidupdate()//修改学员信息
intn;
charstr[80];
STUs;
当前学员信息