首页 > 软件 > 编写程序,实现学生成绩管理:要求实现以下功能: 1

编写程序,实现学生成绩管理:要求实现以下功能: 1

软件 2022-04-25

C语言编程,学生成绩管理系统,要求实现以下功能,急求大佬帮忙,

#include
#include
#include
#include
#include
voidmenu(structstudent*parr,intlen);
voidsore(structstudent*parr,intlen);
voidoutput(structstudent*parr,int*len);
voidinput(structstudent*parr,intlen);
voidwrite(structstudent*parr,intlen);
voidread(structstudent*parr,intlen);
voidfind(structstudent*parr,intlen);
voidlogout(structstudent*parr,intlen);
voidexit(structstudent*parr,intlen);
voidmodify(structstudent*parr,intlen);
voidinsert(structstudent*parr,int*len);
structstudent
{
intnumber;//学号
floatscore;//成绩
charname[10];//姓名
};
intmain(void)
{
structstudent*parr;
intlen=0;
charch='\0';
printf("请输入需要存入的学生人数:");
scanf("%d",&len);

parr=(structstudent*)malloc((sizeof(structstudent)*len));

menu(parr,len);
printf("按回车键继续\n");
while(1)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t|******************************************|\n");
printf("\t\t|---------------学生管理系统-------------|\n");
printf("\t\t|------------1.写入学生信息---------|\n");
printf("\t\t|------------2.查看全部学生信息---------|\n");
printf("\t\t|------------3.按成绩排序---------|\n");
printf("\t\t|------------4.按学号查找---------|\n");
printf("\t\t|------------5.修改学生信息---------|\n");
printf("\t\t|------------6.添加学生---------|\n");
printf("\t\t|------------7.保存---------|\n");
printf("\t\t|------------0.退出---------|\n");
printf("\t\t|******************************************|\n");
printf("\t\t\n");
scanf("%c",&ch);
switch(ch)
{
case'1': input(parr,len); break;
case'2': output(parr,&len); break;
case'3': sore(parr,len); break;
case'4': find(parr,len); break;
case'5': modify(parr,len); break;
case'6': insert(parr,&len); break;
case'7': write(parr,len); break;
case'0': exit(parr,len); break;
default: printf("\n\t输入错误!按回车键返回主菜单!");
getch();
}
}

free(parr);
return0;
}
//函数功能:实现按成绩排序
voidsore(structstudent*parr,intlen)
{
inti,j;
structstudentt;
for(i=0;i {
for(j=0;j if(parr[j+1].score>parr[j].score)
{
t=parr[j+1];
parr[j+1]=parr[j];
parr[j]=t;
}
}
output(parr,&len);
return;
}
//函数功能:打印信息
voidoutput(structstudent*parr,int*len)
{
inti;
for(i=0;i<*len;i++)
printf("姓名:%s成绩:%.2f学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
printf("\n");
getchar();
getchar();
return;
}
//函数功能:输入数据
voidinput(structstudent*parr,intlen)
{ inti;
for(i=0;i {
printf("请输入第%d个学生信息:",i+1);
printf("姓名:");
scanf("%s",parr[i].name);//name是数组名本身就是地址
printf("成绩:");
scanf("%f",&parr[i].score);
printf("学号:");
scanf("%d",&parr[i].number);
}
printf("\n");
return;
}
/*函数功能:将数据写入文件*/
voidwrite(structstudent*parr,intlen)
{
inti;//控制循环
FILE*fp=NULL;//定义文件指针
fp=fopen("D:\\student.txt","w");//打开文件并使文件指针指向它,以写的方式
if(fp==NULL)//如果文件没有打开,提示错误并退出
{
printf("\n\t文件没有打开!程序结束!");
getchar();//等待用户观察
exit(0);//结束整个程序
}
else
{
for(i=0;i {
fprintf(fp,"姓名:%s成绩:%.2f学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
}
}
printf("已将学生信息保存在了D盘根目录下的student.txt文件中。\n");
getch();
fclose(fp);
return;
}
/*函数功能:读取文件数据*/
voidread(structstudent*parr,intlen)
{
inti;
FILE*fp=NULL;
fp=fopen("D:\\student.txt","r");//以只读的方式打开文件
if(fp==NULL)
{
printf("数据读取失败!\n");
getchar();
exit(0);
}
else
{
for(i=0;i {
fscanf(fp,"%s,%d,%.2f\n",parr[i].name,parr[i].number,parr[i].score);
}
}
fclose(fp);
return;
}
/*函数功能:按学号找学生信息*/
voidfind(structstudent*parr,intlen)
{
intnumber=0;
inti;

printf("请您输入需要查找的学号:");
scanf("%d",&number);

for(i=0;i {
if(number==parr[i].number)
{
printf("姓名:%s成绩:%.2f学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
}

}
getch();
return;
}
/*函数功能:注销学生信息*/
voidlogout(structstudent*parr,intlen)
{
charch='\0';
find(parr,len);
printf("您确定要注销该学生吗?确定请按Y,返回主菜单请按N!\n");
scanf("%d",&ch);
if((ch=='Y')||(ch=='y'))
{

}
return;
}
voidmenu(structstudent*parr,intlen)
{
printf("\t\t||=========================================||\n");
printf("\t\t||-----------------------------------------||\n");
printf("\t\t||-----------欢迎使用学生管理系统----------||\n");
printf("\t\t||-----------------------------------------||\n");
printf("\t\t||=========================================||\n");
getchar();
getchar();
system("cls");
return;
}
/*函数功能:结束整个程序*/
voidexit(structstudent*parr,intlen)
{// getchar();
charch='\0';
do
{
printf("您确定要退出!(y/n):");
scanf("%c",&ch);
}while((ch!='Y')&&(ch!='y')&&(ch!='N')&&(ch!='n'));
if((ch=='Y')||(ch=='y'))
{
exit(0);
}

return;
}
/*函数功能:修改学生信息*/
voidmodify(structstudent*parr,intlen)
{
intnumber=0;
charch='\0';
inti;
printf("请您输入要修改的学生的学号:");
scanf("%d",&number);
for(i=0;i {
if(number==parr[i].number)
{
printf("姓名:%s成绩:%.2f学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
printf("您确定要修改该学生信息(y/n)");
scanf("%c",&ch);
if(ch=='y')
{
printf("请输入姓名:");
scanf("%s",parr[i].name);
printf("请输入成绩:");
scanf("%f",&parr[i].score);
printf("请输入学号:");
scanf("%d",&parr[i].number);
printf("姓名:%s成绩:%.2f学号:%d\n",parr[i].name,parr[i].score,parr[i].number);
printf("修改成功!");
getch();
}
else
{
printf("没有找到该学生");
getch();
break;
}

}

}
return;
}
/*函数功能:添加学生*/
voidinsert(structstudent*parr,int*len)
{
intnumber=0;//添加学生的个数
inti;
printf("请输入您要添加几个学生信息:");
scanf("%d",&number);
parr=(structstudent*)malloc((sizeof(structstudent)*(*len+number)));
for(i=*len;i<*len+number;i++)
{
printf("请输入第%d个学生信息:",i+1);
printf("姓名:");
scanf("%s",parr[i].name);
printf("成绩:");
scanf("%f",&parr[i].score);
printf("学号:");
scanf("%d",&parr[i].number);
}
output(parr,&*len);
}

用C语言编程实现学生成绩管理程序,要求可以根据选择实现以下功能:(90分) 1、输入5个学生的姓名

//仅作参考
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#include"string.h"
intstudentNum=0;
#defineMAXSTUDENT(1024)
#defineCheckData()\
{\
if(!studentNum)\
{\
printf("没有学生数据,按任意键返回……\n");\
getch();\
return;\
}\
}\
typedefstructStudent
{
intid;
intcScore;
intmathScore;
}Student;
voidClearStudent(Student*student)
{
memset((void*)student,0,sizeof(*student));
}
voidShowMainMenu()
{
system("cls");
printf("1.增加记录\n2.计算每个学生的总成绩\n3.计算每门课程的平均成绩\n4.按座号查询学生的成绩\n5.按总分排名\n6.输出前n名的学生的成绩\n7.修改成绩\n0.退出\n");
}
voidShowCountScore(constStudent*student)
{
system("cls");
CheckData();
for(inti=0;iprintf("学生%04d的总成绩:%d\n",(student+i)->id,(student+i)->cScore+(student+i)->mathScore);
printf("\n按任意键继续……");
getch();
}
voidShowClassAvg(constStudent*student)
{
system("cls");
CheckData();
doublesumc=0;
doublesummath=0;
for(inti=0;i{
sumc+=(student+i)->cScore;
summath+=(student+i)->mathScore;
}
printf("C语言平均成绩为:%lf\n",sumc/studentNum);
printf("数学平均成绩为:%lf\n",summath/studentNum);
printf("\n按任意键继续……");
getch();
}
voidAddStudent(Student*student)
{
system("cls");
if(studentNum==MAXSTUDENT)
{
printf("人数已满,按任意键返回……\n");
getch();
}
printf("分别录入座号、C语言成绩、数学成绩:\n");
intid=0;
intcScore=0;
intmathScore=0;
scanf("%d%d%d",&id,&cScore,&mathScore);
for(inti=0;iif((student+i)->id==id)
{
printf("座号重复,按任意键返回……\n");
getch();
return;
}
(student+studentNum)->id=id;
(student+studentNum)->cScore=cScore;
(student+studentNum)->mathScore=mathScore;
studentNum++;
}
voidSelectFromID(constStudent*student)
{
system("cls");
CheckData();
printf("输入查询ID:\n");
intid=0;
scanf("%d",&id);
printf("查询结果:\n");
for(inti=0;iif(id==(student+i)->id)
{
printf("C语言成绩为:%d\n数学成绩为:%d\n",(student+i)->cScore,(student+i)->mathScore);
break;
}
printf("\n按任意键继续……");
getch();
}
voidSortForCount(Student*student)
{
system("cls");
CheckData();
for(inti=0;i{
for(intj=studentNum-1;j>i;j--)
if(((student+j)->cScore+(student+j)->mathScore)>((student+j-1)->cScore+(student+j-1)->mathScore))
{
Studentstu;
stu=*(student+j);
*(student+j)=*(student+j-1);
*(student+j-1)=stu;
}
}
}
voidSortForN(Student*student,intn)
{
SortForCount(student);
if(!studentNum)
return;
n=n>studentNum?studentNum:n;
for(inti=0;iprintf("第%d名:\nID:%d\nC语言成绩为:%d\n数学成绩为:%d\n总分为:%d\n\n",i+1,(student+i)->id,(student+i)->cScore,(student+i)->mathScore,(student+i)->cScore+(student+i)->mathScore);
printf("\n按任意键继续……");
getch();
}
voidUpdateScore(Student*student)
{
system("cls");
CheckData();
printf("输入修改ID:\n");
intid=0;
scanf("%d",&id);
inti=0;
for(;iif(id==(student+i)->id)
break;
if(i==studentNum)
printf("\n查无此人,按任意键继续……");
else
{
printf("输入欲修改的C语言成绩、数学成绩:\n");
intcScore=0;
intmathScore=0;
scanf("%d%d",&cScore,&mathScore);
(student+i)->cScore=cScore;
(student+i)->mathScore=mathScore;
printf("\n按任意键继续……");
}
getch();
}
voidRunStudent(Student*student)
{
while(1)
{
ShowMainMenu();
charchGet=getch();
switch(chGet)
{
case'1':
AddStudent(student);
break;
case'2':
ShowCountScore(student);
break;
case'3':
ShowClassAvg(student);
break;
case'4':
SelectFromID(student);
break;
case'5':
SortForCount(student);
for(inti=0;iprintf("第%d名:\nID:%d\nC语言成绩为:%d\n数学成绩为:%d\n总分为:%d\n\n",i+1,(student+i)->id,(student+i)->cScore,(student+i)->mathScore,(student+i)->cScore+(student+i)->mathScore);
printf("\n按任意键继续……");
getch();
break;
case'6':
{
intn=0;
printf("输入N:\n");
scanf("%d",&n);
SortForN(student,n);
}
break;
case'7':
UpdateScore(student);
break;
case'0':
return;
default:
break;
}
}
}
intmain()
{
Student*allStudent=(Student*)malloc(MAXSTUDENT*sizeof(Student));
memset((void*)allStudent,0,MAXSTUDENT*sizeof(Student));
RunStudent(allStudent);
return0;
}

用c语言编写的学生成绩管理系统。 学生成绩管理系统要求实现如下功能:(1)录入学生基本信息,包含:学生

#include #include #include #include #include #define MAX 80 void input(); void sort(); void display(); void insert(); void del(); void average(); void find(); void save(); void read(); void del_file(); void average(); void modify(); int now_no=0; struc

如何用C语言编一个学生成绩管理系统

#include "stdio.h" #include "stdlib.h" #include "string.h" #define NULL 0 int shoudsave=0; struct student { char num[10]; char name[20]; char sex[4]; int cgrade; int mgrade; int egrade; int totle; int ave; char neartime[10]; }; typedef struct node { struct student data; struct node *next; }Node,*Lin

编写一个学生成绩管理的程序,从文件导入学生数据,然后进行以下的功

这个要求比较多,我先给你个我以前写的,只有一部分的功能,你参考下吧 运行界面如下: //2.C++学生成绩管理系统 #include #include #include using namespace std; #define F "e:\\a.txt" #define N 5 /*本程序需要在E盘根目录下创建一个a.txt的文件,文件内容格式为: 姓名 学号 语文成绩 数学成绩 英语成绩 以行为单位,比如第一行输入 张三 1 90 80 70 本程序就能对数据进行处理 */ void caidan(); //菜单函数 void su

标签:编程 编程语言 信息技术 CC++ C(编程语言)

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved.