教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

c语言程序---学生成绩管理系统(2)

来源:网络收集 时间:2026-08-25
导读: printf(\n\t请选择: ); scanf(%d,op); if(op == 0) { break; } switch(op) { case 1: insertById(1); //按学号插入 break; case 2: insertById(2); //按平均分插入 break; default: printf(\n\t您输入的选项无效!!!

printf("\n\t请选择: ");
scanf("%d",&op);
if(op == 0)
{
break;
}
switch(op)
{
case 1:
insertById(1); //按学号插入
break;
case 2:
insertById(2); //按平均分插入
break;
default:
printf("\n\t您输入的选项无效!!!按任意键重新输入...\n");
fflush(stdin);
getch();
}
}while(1); //死循环

}
//插入学生数据
void insertById(int id)
{
int i;
struct student s = input(); //调用函数,接收要插入的信息
//(1) 查找要插入的数组中的下标位置
for(i=0;i<count;i++)
{
if(id==1) //按学号插入
{
if(s.stuNo<stu[i].stuNo)
break;
}
else if(id==2) //按平均分的降序插入
{
if(s.avgScore > stu[i].avgScore)
break;
}
}

//(2) 循环平移操作---->为要出入的元素预留空间
int j;
for(j=count-1;j>=i;j--)
{
stu[j+1] = stu[j];
}
//(3) 将要插入的元素放入该位置
stu[i] = s;
//(4) 将当前学生人数++
count++;

printf("\n\t学生数据插入完成,按任意键继续...\n");
fflush(stdin);
getch();
}
//删除功能
void del()
{
char ans;
int i;
int sno;//学号

do
{
system("cls");//清屏
printf("主界面>>>删除界面\n");
printf("\n\t*******************************************\n");
printf("\n\t\t请输入需要删除的学号: ");
scanf("%d",&sno);
//1) 查找被删除的学生的学号是否已存在,如果不存在,i即其下标
for(i=0;i<count;i++)
{
if(stu[i].stuNo == sno)
break;
}
//2) 判断是否找到
if(i<count) //找到了
{
//显示需要删除的学生的信息
printf("\n\t需要删除的学生信息如下:\n");
printf("\n\t\t学号\t姓名\tC
\tJava\tSQL\t总分\t平均分\n");
printf("\n\t------------------------------------------------\n");
printf("\n\t\t%d\t%s\t%5.2f\t%

5.2f\t%5.2f\t%5.2f\t%5.2f\n",
stu[i].stuNo,stu[i].name,stu[i].cScore,stu[i].javaScore,
stu[i].sqlScore,stu[i].sumScore,stu[i].avgScore);

//提示是否正确删除
printf("\n\t确认删除该学生信息吗?<y|n>:");
fflush(stdin);
ans = getchar();
if(ans == 'y' || ans =='Y')
{
//如果确认删除,则执行相应的删除操作
int j;
for(j = i;j>count-1 ; j++)
{stu[j] = stu[j+1];}
//将当前学生人数 --
count--;
printf("\n\t\t\t删除操作完成,按任意键继续...");
fflush(stdin);
getch();
}
}
else //没有找到
{
printf("\n\t\tSorry,没有找到对应的学号,无法删除...\n");
fflush(stdin);
getch();
}

//是否继续删除
printf("\n\n\t\t\t是否继续执行删除操作?<y|n>:");
fflush(stdin);
ans = getchar();
if(ans == 'y'||ans == 'Y')
continue; //继续提示删除的学号
else
break; //跳出循环,回到主界面
}while(1);
}


//保存文件
void writeFile()
{
FILE *fp; //定义文件指针变量
fp = fopen("stu.dat","wb"); //以创建文件形式关联

int i;

for(i=0;i<count;i++)
{
//循环将结构数组stu中的记录写入到fp所指向的文件中去
fwrite(&stu[i],sizeof(struct student),1,fp);
}

fclose(fp);//关闭文件
printf("\n\t\t\t文件保存完毕,按任意键继续...\n");
printf("\n");
fflush(stdin);
getch();
}


//读取文件
void readFile()
{
FILE *fp; //定义文件指针
fp = fopen("stu.dat","rb"); //以读取文件形式关联

if(fp==NULL)
{
printf("\n\t\t\tSorry,您要打开的文件不存在。按任意键继续\n");
fflush(stdin);
getch();
}
else //文件存在时
{
//将文件指针移到文件末尾
fseek(fp,0,2);
//计算文件中的记录数
count= ftell(fp)/sizeof (struct student);
//将文件指针移到文件开始,便于读取文件
rewind(fp);
int i;
for(i=0;i<count;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
}
fclose(fp); //关闭文件
printf("\n\t\t\t文件打开完成,按任意键返回...\n");
printf("\n");
fflush(stdin);
getch();
}

}

//分页显示
void dispByPage()
{
char op;
int i;
int size = 5; //每页显示的记录数 size--->5
int sumPages; //总页数 sumPage
// sumPage = count%size==0 ? count/size : count/size+1;
int p=1; //当前的页码 ---> p--> 1
sumPages = count/size;
if(count%size!=0)
{
sumPages++;
}
do
{
system("cls");//清屏
printf("\n\t\t ===分页显示===\n");
printf("\n\t***************************************************\n");
printf("\n\t学号\t姓名\tC\tJava\tSQL\t总分\t平均分\n");
printf("\t-----------------------------------------------------\n");
for(i=5*(p-1);i<5*p && i<
;count ;i++)
{
printf("\t%d\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",
stu[i].stuNo,stu[i].name,stu[i].cScore,stu[i].javaScore,stu[

i].sqlScore,
stu[i].sumScore,stu[i].avgScore);
}
printf("\t====================================================\n");
printf("\t\t\t 第【 %d 】页\n",p);
printf("\n 1.首页 2.上一页 3.下一页 4.末页 0.退出");
fflush(stdin);
op = getch();
if(op=='0')
break;
switch(op)
{
case '1':
p=1;
break;
case 2:
p--;
if(p<1)
{
printf("\n\n\t\t\t当前已经是第一页了...");
p++;
fflush(stdin);
getch();
}
break;
case 3:
p++;
if(p>sumPage
s)
{
printf("\n\n\t\t当前已经是最后一页 …… 此处隐藏:1869字,全部文档内容请下载后查看。喜欢就下载吧 ……

c语言程序---学生成绩管理系统(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/279027.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)