c语言课程设计学生成绩簿,c语言课程设计—学生成绩管理系统
0;
}
else printf("没有该条件的选项!\n");
return 0;
}
void incharge(int a,int b) //交换函数。
{
struct stu t;
t=pro[a];
pro[a]=pro[b];
pro[b]=t;
}
void het(int m,int n,int c) //快排函数
{ if(m>n) return;
int i=m-1;
for(int j=m;jnum,p->num);
strcpy(q->name,p->name);
for(int j=0;j<3;j++)
q->score[j]=p->score[j];
q->sum=p->sum;
}
void remove() //删除个人信息函数
{ int b;
char tag[10];
if(N==0){
printf("记录表为空!\n");
return;
}
b=lookout();
if(b)
{
printf("是否要删除(y/n):");
gets(tag);
if(tag[0]=='y'||tag[0]=='Y')
{
N--;
for(int j=b;j<=N;j++)
copyrecored(&pro[j+1],&pro[j]);
printf("删除成功!\n");
falg=0;
}
else printf("删除失败!\n");
}
}
void change() //修改个人信息函数
{ int m,k,f;
if(N==0)
{printf("记录表为空!\n");return;}
k=lookout();
if(k)
{
printf("1.学号 2.姓名 3科目成绩 4.全部修改 0.退出\n请输入要修改的信息:");
scanf("%d",&f);
switch(f)
{
case 1:printf("请重新输入学号:");
scanf("%s",&pro[k].num );falg=0;break;
case 2:getchar();
printf("请重新输入姓名:");
scanf("%s",&pro[k].name);falg=0;break;
case 3:printf("0.语文 1.数学 2.英语\n请选择科目:");
scanf("%d",&m);
if(m==0||m==1||m==2)
{
printf("请输入%s成绩:",classname[m]);
scanf("%f",&pro[k].score[m]);
falg=0;
}
else printf("输入无效!\n");
pro[k].sum=pro[k].score[0]+pro[k].score[1]+pro[k].score[2];
break;
case 4:newsect(k);break;
default:printf("修改失败!"); break;
}
}
}
void save() //文件保存函数
{
FILE *fp;
char fname[30];
if(N==0)
{
printf("没有记录可存!\n");return;
}
loop:printf("请输入要存入的文件(直接回车保存在默认文件中):");
gets(fname);
if(strlen(fname)==0)
strcpy(fname,"stu_info");
if((fp=fopen(fname,"wb"))==NULL){
printf("不能存入文件!\n");goto loop;
}
printf(" 文件保存中....\n");
for(int i=1;i<=N;i++)
if((fwrite(&pro[i],sizeof(STU),1,fp))==0)
{printf("保存失败!\n");break;}
fclose(fp);
printf("文件已保存!\n");
falg=1;
}
void loadrecords() //读取文件函数
{
FILE *fp;
void abc(int s);
char fname[10];
int c;
struct stu records[100];
printf("请输入要打开的文件名(直接回车打开默认文件):");
gets(fname);
if(strlen(fname)==0)
strcpy(fname,"stu_info");
if((fp=fopen(fname,"rb"))==NULL)
{
printf("文件打不开!\n");return;
}
printf("1.覆盖新建的信息 2.添加到新的信息中 3.查看保存的信息\n请选择:");
scanf("%d",&c);
if(c==3){
printf("\n┏┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┓\n");
printf("┃学号 姓名 总成绩 语文 数学 英语 ┃ \n");
for(int i=0;fread(&records[i],sizeof(STU),1,fp)!=0;i++)
{
printf("┃%-12s% -11s% -9.1f ",records[i].num ,records[i].name,records[i].sum );
for(int j=0;j<3;j++)
printf(j==2?"%-5.1f":"%-8.1f",records[i].score [j]);
printf(" ┃\n");
}
printf("\n┗┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┛\n");
}
if(c==1){
abc(0);
for( N=1;fread(&pro[N],sizeof(STU),1,fp)!=0;N++);
N--; //跳出循环,N实际比得到人数要大一,故要减一。
falg=0;
fclose(fp);
showlist();
}
if(c==2){falg=0;
for(++N;fread(&pro[N],sizeof(STU),1,fp)!=0;N++)
if(N>arrysize){
pro=(STU*)realloc(pro,sizeof(STU)*(arrysize+size)); //超出内存,就分配新的内存。
}
arrysize+=size;
N--; //跳出循环,N实际比得到人数要大一,故要减一。
fclose(fp);
showlist();
}
}
void abc(int s) //信息保存判断函数 s代表要进行的相应操作。
{ char v[10];
if(N!=0&&falg!=1)
{
printf("新建信息尚未保存!,继续将会使新建的信息消失,");
printf("是否先保存(y/n):");
while(1){
gets(v);
if(v[0]=='y'||v[0]=='Y') {save();break;}
if(v[0]=='n'||v[0]=='N') break;
else printf("输入有误!请重新输入:");
}
}
if(s==1){
printf("请输入统计人的个数:");
scanf("%d",&N);
gets(v); //消除违规数据。
for(int i=1;i<=N;i++)
newsect(i);
}
else return;
}
void main() //主函数
{ char v[10];
int choice,c;
pro=(STU*)malloc(size*sizeof(STU));
if(pro==NULL)
{
printf("内存分配出错!\n");
return;
}
printf("\t\t\t\t学生成绩管理系统\n\n");
do
{ choice=-1;
printf("\n0.新建\t\t1.添加\t\t\t2.查找\t3.删除\n4.列表输出\t5.排序\t\t\t6修改\n7.文件保存\t8.读取保存的记录文件\t9退出\n请选择相应的操作:");
scanf("%d",&choice);
gets(v); //消除违规数据,防止变成死循环
switch(choice)
{case 0:abc(1);break;
case 1:++N;newsect(N);break;
case 2:lookout();break;
case 3:remove();break;
case 6:change();het(1,N,1);break;
case 5:if(N==0){printf("记录为空!\n");break;}
else {printf("1.按成绩降序 2.按成绩升序 3.按学号升序 4.按学号降序\n请选择相应功能:");
scanf("%d",&c);het(1,N,c);}
case 4:showlist();break;
case 7:save();break;
case 8:loadrecords();break;
case 9:abc(0);printf("谢谢使用!\n");break;
default:printf("选择无效!\n");break;
}
}
while(choice!=9);
}
c语言课程设计学生成绩簿,c语言课程设计—学生成绩管理系统相关推荐
- 学生成绩统计c语言课程设计,学生成绩管理系统-C语言课程设计
记一次课程设计作业 学生成绩管理系统#include #include #include #include /* 学生成绩管理系统介绍 2017C语言课程设计 202160936 1.支持将数据保存 ...
- c语言else if设计一个成绩表,c语言 学生成绩管理系统设计学生成绩信息包括:学号,姓名,三门课程成绩(数学、英语和计算机)等。主要功能:(1) 计算各...
共回答了9个问题采纳率:88.9% 希望对你有所帮助. #include"stdio.h" #include"stdlib.h" #include"s ...
- C语言课程设计学生籍贯信息,C语言课程设计 学生籍贯信息记录簿设计.doc
C语言与程序设计课程设计 学生籍贯信息记录簿设计 学 院 信息工程 班 级 物联1301班 学 号 131408119 姓 名 滕玲 一.设计目的 该软件主要是编辑一个学生籍贯信息记录簿记录每个学生信 ...
- 求两门成绩平均c语言,数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩...
数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩 关注:69 答案:2 mip版 解决时间 2021-02-04 09:43 提问者孤城古巷 2021-02- ...
- c语言求三门课程的平均成绩,C语言求三个学生四门课每个学生的平均成绩和每门课的平均成绩,并存入cx.txt中...
C语言求三个学生四门课每个学生的平均成绩和每门课的平均成绩,并存入cx.txt中 # 求平均成绩 ```c #includestdio.h #includestring.h void input(fl ...
- (C语言)有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)
有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数) #define _C ...
- 【C语言习题】有3个学生,上4门课程,要求输入全部学生的各门课成绩,并分别求出每门课的平均成绩(用二维数组编程)
题目内容:有3个学生,上4门课程,要求输入全部学生的各门课成绩,并分别求出每门课的平均成绩.[要求:使用二维数组存学生成绩,行:学生,列:单科成绩] 输入样例: 输出样例:第1门课的平均成绩是:76. ...
- c语言综合程序设计省市邮政编码,《C语言程序设计课程设计报告》_课程教学大纲...
<<C语言程序设计课程设计报告>_课程教学大纲>由会员分享,可在线阅读,更多相关<<C语言程序设计课程设计报告>_课程教学大纲(6页珍藏版)>请在人人文 ...
- 上海应用技术学院c语言实验报告5,上海应用技术学院课程设计报告
<上海应用技术学院课程设计报告>由会员分享,可在线阅读,更多相关<上海应用技术学院课程设计报告(14页珍藏版)>请在人人文库网上搜索. 1.上海应用技术学院课程设计报告课程名称 ...
最新文章
- 3.5 集束搜索的误差分析-深度学习第五课《序列模型》-Stanford吴恩达教授
- [Asp.net]站点地图SiteMap
- linux常见基本命令
- 硬件模块化开发的例子:LD3320语音模块与Source Insight的使用
- java打乱一组正序数字,Leetcode︱4.Median of Two Sorted Arrays寻找两个正序数组的中位数.java...
- Docker 拉取镜像慢解决
- ubuntu新建一个账户并将其加入sudo用户组
- 问题四十七:怎么用ray tracing画superellipsoid (2)
- Tomcat内存设置方法(转载并实践)
- python做算法题_Python 笔试常见基础算法题
- 阿斯克码表ACSII对照表
- 公有云Docker镜像P2P加速之路:安全篇
- 最全UnityHub下载链接Unity2022~2017各版本+Unity5.x【间歇性更新】
- 三步骤快速开发 iOS资讯类App
- 传奇单机版批量修改爆率. 把所有物品爆率都改成1/10, 需要的话可以自己改更高....
- 1.TPC-C测试工具一——TPC-C简介
- 将字符串中的中文转为拼音(java)
- 2021-09-10 网安实验-XCTF真题实战之密码学
- 图解关于路由器限速设置的具体方法
- fstat、stat和lstat用法