篇一 : C语言学生成绩管理系统实验报告
实 验 四:结构体(6学时) 实验目的:
1.更加灵活的使用数组作为函数参数;
2.初步掌握开发一个小型实用系统的基本方法;
3.初步掌握书写程序设计开发文档的能力。(]
实验内容:
程序一:学生成绩管理系统
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。
(1)计算每个学生的总分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,包括名次、学生编号、各科分数、总分;
要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、打印(成绩查找等),在选择某项功能后执行相应的操作。 小组分工情况
一 需求分析
I设计一个学生成绩管理系统至少具有以下功能:
(1)菜单功能:采用文本菜单界面。
(2)计算每个学生总分功能:可以显示出通讯录里的姓名、电话号码等详细信息。
(3)成绩排序功能:按总分成绩由高到低排出成绩的名次。
(4)打印名次表功能:打印出名次表,包括名次、学生编号、各科分数、总分。
II数据库结构
c语言学生成绩管理系统 C语言学生成绩管理系统实验报告
struct student{ int num; int mt; int en; int ph;
int sum;}stu[30];
二 总体设计(visio)
框架结构图(系统的功能结构图)
c语言学生成绩管理系统 C语言学生成绩管理系统实验报告
三、详细设计
(流程图!!!)
四、程序源代码
#include
#include
int n; int a[30][6];
int luru()
{int i=0,bianhao,MT,EN,PH;
printf("please input bianhao MT EN PH\n");
scanf("%d%d%d%d",&bianhao,&MT,&EN,&PH); while(bianhao!=-1)
{a[i][0]=bianhao;
a[i][1]=MT;
a[i][2]=EN;
a[i][3]=PH;
a[i][4]=MT+EN+PH;
scanf("%d%d%d%d",&bianhao,&MT,&EN,&PH); i++;
}
n=i;
}
paixu( )
{ int i,j,t,k;
for(i=0;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
if(a[i][4]
for(k=0;k<6;k++)
{t=a[i][k];a[i][k]=a[j][k];a[j][k]=t;}
shuchu(a);
}
shuchu( )
{int i,j;
printf("\t\tbianhao MT EN PH zf mingci\n"); for(i=0;i
{a[i][5]=i+1;
printf("\t\t");
for(j=0;j<6;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
chazhao( )
c语言学生成绩管理系统 C语言学生成绩管理系统实验报告
{int i,j,bianhao;
printf("please bianhao:");
scanf("%d",&bianhao);
printf("\t\tbianhao MT EN PH zf mingci\n"); printf("\t\t");
for(i=0;i
{ if(a[i][0]==bianhao)
{ for(j=0;j<6;j++)
printf("%5d",a[i][j]);
break;
}
}
printf("\n");
}
void main()
{int k=1,*p;
system("cls");
while(k!=-1)
{ printf("\n\n\n");
printf("\t\tStudent achievement management system\n"); printf("\n");
printf("\t\t*************************************\n"); printf("\t\t\t1:chengji luru\n");
printf("\t\t\t2:chengji paixu\n");
printf("\t\t\t3:chengji chazhao\n");
printf("\t\t\t0:tuichu\n");
printf("\t\t*************************************\n"); printf("please select:");
scanf("%d",&k);
switch(k)
{case 1:luru();break;
case 2:paixu();break;
case 3:chazhao();break;
case 0:return;
}
}
}
/*某班期末考试科目为数学(MT)、英
语(EN)和物理(PH),有最多不超过30人参加考试。(]
(1)计算每个学生的总分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,包括名次、学生编号、各科分数、总分;
c语言学生成绩管理系统 C语言学生成绩管理系统实验报告
要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的操作。()
*/
#include
#include
typedef struct student
{int num;
int mt;
int en;
int ph;
int sum;
}st; st stu[30];int n;
void main()
{ int x;
void zongfen(st stu[],int n);
void paixu(st stu[] ,int n);
void dayin(st stu[],int n);
void input();
printf("***************************\n");
printf("1.input\n");
printf("2. zongfen\n");
printf("3 paixu\n");
printf("4.dayin\n");
printf("***************************\n");
printf("please select:(1--4)");
scanf("%d",&x);
while(x>0){
switch(x)
{case 1: input(); break;
case 2: zongfen(stu,n);break;
case 3: paixu(stu,n); break;
case 4:dayin(stu,n); break;
}
printf("please select:(1--4)");
scanf("%d",&x);
}
}
void input(){
int i;
printf("请输入学生人数:(n<=30)\n");
scanf("%d",&n);
c语言学生成绩管理系统 C语言学生成绩管理系统实验报告
for(i=0;i
{printf("请输入。(]。。成绩");
scanf("%d%d%d%d",&stu[i].num,&stu[i].mt,&stu[i].en,&stu[i].ph);
}
/*for(i=0;i
{stu[i].sum=stu[i].mt+stu[i].en+stu[i].ph;
printf("学生%d的总成绩为%d\n",stu[i].num,stu[i].sum);}*/
}
void zongfen(st stu[],int n)
{int i;
for(i=0;i
{stu[i].sum=stu[i].mt+stu[i].en+stu[i].ph;
printf("学生%d的总成绩为%d\n",stu[i].num,stu[i].sum);}
}
void paixu(st stu[] ,int n)
{ int i,j; st temp;
for(i=0;i
for(j=0;j
if(stu[i].sum>stu[i+1].sum)
{temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
for(i=0;i
printf("%d,%d,%d,%d,%d\n",stu[i].num,stu[i].sum,stu[i].mt,stu[i].en,stu[i].ph);
}
void dayin(st stu[],int n)
{void paixu(st stu[] ,int n);
int i;
paixu(stu,n);
for(i=0;i
printf("第%d名,%d,%d,%d,%d,%d\n",i+1,stu[i].num,stu[i].sum,stu[i].mt,stu[i].en,stu[i].ph);
}
/*某班期末考试科目为数学(MT)、英
c语言学生成绩管理系统 C语言学生成绩管理系统实验报告
语(EN)和物理(PH),有最多不超过30人参加考试。(]
(1)计算每个学生的总分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,包括名次、学生编号、各科分数、总分;
要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的操作。
*/
#include
#include
typedef struct student
{int num;
int mt;
int en;
int ph;
int sum;
}st; st stu[30];int n;
void main()
{ int x;
void zongfen(st stu[],int n);
void paixu(st stu[] ,int n);
void dayin(st stu[],int n);
void input();
printf("***************************\n");
printf("1.input\n");
printf("2. zongfen\n");
printf("3 paixu\n");
printf("4.dayin\n");
printf("***************************\n");
printf("please select:(1--4)");
scanf("%d",&x);
while(x>0){
switch(x)
{case 1: input(); break;
case 2: zongfen(stu,n);break;
case 3: paixu(stu,n); break;
case 4:dayin(stu,n); break;
}
printf("please select:(1--4)");
scanf("%d",&x);
}
}
c语言学生成绩管理系统 C语言学生成绩管理系统实验报告
void input(){
int i;
printf("请输入学生人数:(n<=30)\n");
scanf("%d",&n);
for(i=0;i
{printf("请输入。[)。。成绩");
scanf("%d%d%d%d",&stu[i].num,&stu[i].mt,&stu[i].en,&stu[i].ph);
}
/*for(i=0;i
{stu[i].sum=stu[i].mt+stu[i].en+stu[i].ph;
printf("学生%d的总成绩为%d\n",stu[i].num,stu[i].sum);}*/
}
void zongfen(st stu[],int n)
{int i;
for(i=0;i
{stu[i].sum=stu[i].mt+stu[i].en+stu[i].ph;
printf("学生%d的总成绩为%d\n",stu[i].num,stu[i].sum);}
}
void paixu(st stu[] ,int n)
{ int i,j; st temp;
for(i=0;i
for(j=0;j
if(stu[i].sum>stu[i+1].sum)
{temp=stu[i];
stu[i]=stu[i+1];
stu[i+1]=temp;
}
for(i=0;i
printf("%d,%d,%d,%d,%d\n",stu[i].num,stu[i].sum,stu[i].mt,stu[i].en,stu[i].ph);
}
void dayin(st stu[],int n)
{void paixu(st stu[] ,int n);
int i;
paixu(stu,n);
for(i=0;i
printf("第%d名,%d,%d,%d,%d,%d\n",i+1,stu[i].num,stu[i].sum,stu[i].mt,stu[i].en,stu[i].ph);
篇二 : C语言学生成绩管理系统源代码
程序代码:#include#include#include#define SIZE 3 /*定义常量SIZE便于以后的修改*/struct student /*定义一个结构体数组存放学生的信息*/{ int number; /*学号*/ char name[20];/*名字*/ char xueyuan[20];/*学院*/ int cla;/*班级*/ int score[3];/*分数*/ int sum;/*总分*/ int average;/*平均分*/}stu[SIZE]; void menu();/*调用菜单函数*/void write();/*读入信息*/void save(int x);/*保存stud.dat文件函数*/void SaveOneStudent(int i);/*保存一个学生信息*/void SaveAllStudent(int n);/*保存全部学生信息*/void inturn (struct student c[]);/*用于对学生的信息按学号排序的函数*/void save2();/*将排序后的信息存入student.dat文件中*/int AddStudent(int n);/*增加学生信息*/void InputOnestudent(int i);/*输入一个同学信息*/int DelStudent(int n);/*删除学生信息*/void ModifyStudent(int n);/*修改学生信息*/void OutputOneStudent(int i);/*查询一个学生信息*/void SearchMenu(int n);/*查询学生信息操作*/void SearchNumber(int n);/*按学号查询学生信息*/void SearchName(int n);/*按姓名查询学生信息*/void SearchXueyuan(int n);/*按所在学院查询学生信息*/void SearchCla(int n);/*按所在班级查询学生信息*/void tongji();/*学生信息统计操作*/void tongji2();/*统计不及格率操作*/void zfsc();/*总分排序操作*/void avecz();/*按平均分统计人数操作*/void avecz();/*按平均分统计人数操作*/void search();/*查找最高成绩操作*/void tongji2();/*统计不及格率操作*/void read();/*读取student.dat文件文件中学生的信息*/ /*主函数************************************************************************************/void main(){ int n=SIZE; int choice;/*用户选择变量*/ printf("*******************************************************************************\n"); printf("* *\n"); printf("* Hwadee &学生成绩文件管理& Hwadee *\n"); printf("* *\n"); printf("*******************************************************************************\n\n\n"); printf("******************************●●欢迎使用●●*********************************"); while (1) { menu();/*调用菜单函数形成操作界面*/ printf("请选择:"); scanf("%d", &choice); if ( choice==0 ) { printf("\t\t\t\t谢谢使用!!!"); break; } switch(choice) /*多重选择实现功能不同的功能*/ { case 1: write(); inturn(stu); save(SIZE); break; case 2: AddStudent(n); break; case 3: DelStudent(n); break; case 4: ModifyStudent(n); break; case 5: SearchMenu(n); break; case 6: tongji(); break; case 0: printf("\n谢谢使用!再见!\n"); default: printf("\n按键错误!请重新选择!\n"); }/*结束switch*/ }/*结束while*/} 部分程序清单/*菜单函数*************************************************************************************/void menu(){ printf("************请输入所需操作***********\n");/*选择功能菜单*/ printf("*************************************\n"); printf("1.学生成绩写入及排序\n"); printf("2.增加学生信息\n"); printf("3.删除学生信息\n"); printf("4.修改学生信息\n"); printf("5.查询学生信息\n"); printf("6.学生成绩统计操作\n"); printf("0.退出系统\n"); printf("**************************************\n");} /*写入函数*************************************************************************************/void write(){ int i;/*计数变量*/ for(i=0;im[j].number) { temp=m[i]; m[i]=m[j]; m[j]=temp; } } printf("\n排序后的学生信息:\n\n"); for (i=0;i0&&x<6) { switch(x) { case 1: zfsc();break;/*选择按总分排序操作*/ case 2: avecz();break;/*选择按平均分统计人数操作*/ case 3: search();break;/*选择按查找最高成绩操作*/ case 4: tongji();break;/*选择按统计部及格率操作*/ case 0: printf("谢谢使用!再见!\n"); return;/*选择退出操作*/ default: printf("输入错误!请重新输入\n");/*提示错误信息*/ } }} /*总分排序操作*************************************************************************************/void zfsc(){ FILE *wj,*fp; int i,j; struct student temp; if((fp=fopen("student.dat","wb"))==NULL) { printf("文件打开失败!\n"); exit(1); } for(i=0;i59&&stu[i].average<70) { m=i;/*找到平均分69~69学生,并用m记下其下标*/ OutputOneStudent(m); k++;/*k为平均分60~69分人数*/ } printf(" 平均分60~69分的同学信息输出结束\n"); printf("共%d人\n",k); printf(" **********************************************************"); } printf("平均分70~79分的同学有:\n"); for(i=0;i69&&stu[i].average<80) { m=i;/*找到平均分70~79学生,并用m记下其下标*/ OutputOneStudent(m); k++;/*k为平均分70~79分人数*/ } printf(" 平均分70~79分的同学信息输出结束\n"); printf("共%d人\n",k); printf(" **********************************************************"); } printf("平均分80~89分的同学有:\n"); for(i=0;i79&&stu[i].average<90) { m=i;/*找到平均分80~89学生,并用m记下其下标*/ OutputOneStudent(m); k++;/*k为平均分80~89分人数*/ } printf(" 平均分80~89分的同学信息输出结束\n"); printf("共%d人\n",k); printf(" **********************************************************"); } printf("平均分90~100分的同学有:\n"); for(i=0;i89&&stu[i].average<=100) { m=i;/*找到平均分90~100学生,并用m记下其下标*/ OutputOneStudent(m); k++;/*k为平均分90~100分人数*/ } printf(" 平均分90~100分的同学信息输出结束\n"); printf("共%d人\n",k); printf(" **********************************************************"); }} /*查找最高成绩操作****************************************************************************/void search(){ int i=0,x,k=0; printf("********************输入查找选项**********************\n");/*选择功能菜单*/ printf(" 查找高数成绩最高学生请按:1\n"); printf(" 查找英语成绩最高学生请按:2\n"); printf(" 查找C语言成绩最高学生请按:3\n"); scanf("%d",&x);/*用户选择变量*/ if(x==1) { for(i=0;istu[k].score[0]) i=k; } printf("高数成绩最高学生信息如下:\n"); OutputOneStudent(k); printf(" 输出结束\n"); printf(" **********************************************************"); } if(x==2) { for(i=0;istu[k].score[1]) i=k; } printf("英语成绩最高学生信息如下:\n"); OutputOneStudent(k); printf(" 输出结束\n"); printf(" **********************************************************"); } if(x==3) { for(i=0;istu[k].score[2]) i=k; } printf("C语言成绩最高学生信息如下:\n"); OutputOneStudent(k); printf(" 输出结束\n"); printf(" **********************************************************"); }} /*统计不及格率操作*****************************************************************************/void tongji2(){ int x,i,k; printf("********************输入统计选项**********************\n"); /*选择功能菜单*/ printf("统计高数成绩不及格率请按:1\n"); printf("统计英语成绩不及格率请按:2\n"); printf("统计C语言成绩不及格率请按:3\n"); scanf("%d",&x);/*用户选择变量 */ if(x==1) { for(i=0;i
扩展:c语言管理系统源代码 / 学生成绩管理系统代码 /