有一小学生成绩管理系统
① 那有学生成绩管理系统模板
我用过这个的。你网络搜索下学生成绩管理系统永久免费版,里面还有完整的视频帮助
② 求一个一个学生成绩管理系统
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
struct student_type
{
char name[8];
int num;
int clss;
float score[3];
double ave;
}stud[10];
char ar[100]={"学号 姓名 班级 课程1 课程2 课程3 平均成绩\n"};
int n;//学生人数。
int main()
{
void write ();
void save ();
void display ();
int n=0;
while (1)
{
printf ("\n\t\t\t\t学生成绩管理\n\n");
printf ("\t1:请输入学生的成绩记录\n");
printf ("\t2:显示成绩记录\n");
printf ("\t3:退出系统\n");
printf ("\t输入操作选项序号:");
scanf ("%d",&n);
switch (n)
{
case 1 : write (); break;
case 2 : display (); break;
case 3 : printf("\n\t\t\t**************谢谢使用!**************\n");break;
default : printf("\n请输入1、2或3!!!");
}
if (n==3) break;
}
//system("pause");
return 0;
}
/* *********输入学生成绩**********/
void write()
{
int i=0, j=0;
printf("请输入需要输入的人数:");
scanf("%d",&n);
for(i=0; i<n ;i++)
{
printf("请输入学号 姓名 班级 :");
scanf("%d%s%d",&stud[i].num, &stud[i].name, &stud[i].clss);
for(j=0; j<3; j++)
{
printf("请依次输入课程成绩 :");
scanf("%f", &stud[i].score[j]);
}
stud[i].ave = (stud[i].score[0] + stud[i].score[1]
+ stud[i].score[2]) / 3;
}
printf ("\n\t\t是否保存?\n\t\t\t是:1;\n\t\t\t否:2.\n");
scanf("%d",&i);
if(i==1)
save();
else
main();
}
/**********读出文件资料***********/
void display ()
{
int i=0;
FILE *fp;
fp =fopen("score.txt","r");
if ((fp=fopen("score.txt","r")) == NULL)
{
printf("cannot open this score");
exit(0);
}
fread(&ar,sizeof(ar),1,fp);
for(i=0;i<n;i++)
{
//fscanf(fp, "%11d%s%2d%5.2f%5.2f%5.2f%5.2f\n",&stud[i].num, &stud[i].name[i],
// &stud[i].clss, &stud[i].score[0], &stud[i].score[1], &stud[i].score[2],
// &stud[i].ave);
fread(&stud[i],sizeof(struct student_type),1,fp);
printf("%s",ar);
printf("%11d %s %2d %5.2f %5.2f %5.2f %5.2f \n", stud[i].num, stud[i].name,
stud[i].clss, stud[i].score[0], stud[i].score[1], stud[i].score[2],
stud[i].ave);
}
fclose(fp);
}
/**********资料写入文件**********/
void save()
{
int i=0;
FILE *fp = NULL;
fp=fopen ("score.txt","w+");
//fputs("学号 姓名 班级 课程1 课程2 课程3 平均成绩\n",fp);
fwrite(&ar,sizeof(ar),1,fp);
for(i=0;i<4;i++)
{
//fwrite(&stud[i], sizeof(struct student_type), 1, fp);
//fprintf(fp,"%11d %s %2d %5.2f %5.2f %5.2f %5.2f \n", stud[i].num, stud[i].name,
// stud[i].clss, stud[i].score[0], stud[i].score[1], stud[i].score[2],
// stud[i].ave);
fwrite(&stud[i],sizeof(struct student_type),1,fp);
}
fclose(fp);
printf ("\n\n*******************恭喜,保存完成!*******************\n\n");
}
好人啊,,谢了啊
③ 一个学生成绩管理系统
#include<stdio.h>
#include<string.h>
#include<math.h>
struct student_type
{
char name[8];
int num;
int Class; /*把class第一个字母大写了,因为在VC中class为类关键字*/
float score[3];
double ave;
}stud[4];
int main()
{
void Write (); /*把write第一个字母大写了,因为C语言中有write函数 */
void save ();
void display ();
int n=0;
while (1)
{
printf ("\n\t\t\t\t学生成绩管理\n\n");
printf ("\t1:请输入学生的成绩记录\n");
printf ("\t2:显示成绩记录\n");
printf ("\t3:退出系统\n");
printf ("\t输入操作选项序号:");
scanf ("%d",&n);
switch (n)
{
case 1 : Write (); break;
case 2 : display (); break;
case 3 : printf("\n\t\t\t**************谢谢使用!**************\n");break;
default : printf("\n请输入1、2或3!!!");
}
if (n==3) break;
}
system("pause");
return 0;
}
/* *********输入学生成绩**********/
void Write()
{
int i=0, j=0;
for(i=0; i<4 ;i++)
{
printf("\n请输入学号 姓名 班级 :");
scanf("%d%s%d",&stud[i].num, &stud[i].name, &stud[i].Class);
printf("\n请依次输入课程成绩 :"); /*这句话从循环中移了出来 */
for(j=0; j<3; j++)
{
scanf("%f", &stud[i].score[j]);
}
stud[i].ave = (stud[i].score[0] + stud[i].score[1]
+ stud[i].score[2]) / 3;
}
printf ("\n\t\t是否保存?\n\t\t\t是:1;\n\t\t\t否:2.\n");
scanf ("%d", &i); /* i前面加& */
if (i==1)
save();
else
main();
}
/**********读出文件资料***********/
void display ()
{
int i=0;
FILE *fp;
fp = fopen ("score.txt","r");
if ((fp=fopen("score.txt","r")) == NULL)
{
printf("cannot open this score");
exit (0);
}
for (i=0; i<4; i++)
{
fscanf (fp, "%11d%s%2d%5.2f%5.2f%5.2f%5.2f\n", &stud[i].num, &stud[i].name[i],
&stud[i].Class, &stud[i].score[0], &stud[i].score[1], &stud[i].score[2],
&stud[i].ave);
printf ("%11d%s%2d%5.2f%5.2f%5.2f%5.2f\n", stud[i].num, stud[i].name[i],
stud[i].Class, stud[i].score[0], stud[i].score[1], stud[i].score[2],
stud[i].ave);
}
fclose (fp);
}
/**********资料写入文件**********/
void save()
{
FILE *fp ; /* fp无需赋NULL */
int i=0; /* i定义在开始会好些 * /
fp = fopen ("score.txt","w");
fprintf (fp,"学号 姓名 班级 课程1 课程2 课程3 平均成绩\n");
for (i=0; i<4; i++)
{
//fwrite(&stud[i], sizeof(struct student_type), 1, fp);
fprintf (fp, "%11d%s%2d%5.2f%5.2f%5.2f%5.2lf\n", stud[i].num, stud[i].name,
stud[i].Class, stud[i].score[0], stud[i].score[1], stud[i].score[2],
stud[i].ave); /*把stud[i].name[i] 改成了stud[i].name */
}
fclose (fp);
printf ("\n\n*******************恭喜,保存完成!*******************\n\n");
}
④ 谁有学生成绩管理系统,烦死了
概要设计说明书的编写提示
(参考件)
E.1 引言
E.1.1 编写目的
说明编写这份概要设计说明书的目的,指出预期的读者。
E.1.2 背景
说明:
a. 待软件系统的名称;
b. 列出此项目的任务提出者、者、用户以及将运行该软件的计算站(中心)。
E.1.3 定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
E.1.4 参考资料
列出有关的参考文件,如:
a. 本项目的经核准的计划任务书或合同,上级机关的批文;
b. 属于本项目的其他已发表文件;
c. 本文件中各处引用的文件、资料,包括所要用到的软件标准。
列出这些文件的标题、文件编、发表日期和出版单位,说明能够得到这些文件资料的来源。
E.2 总体设计
E.2.1 需求规定
说明对本系统的主要的输入输出项目、处理的功能性能要求,详细的说明可参见附录C。
E2.2 运行环境
简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定,详细说明参见附录C。
E2.3 基本设计概念和处理流程
说明本系统的基本设计概念和处理流程,尽量使用图表的形式。
E.2.4 结构
用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系。
E.2.5 功能需求与程序的关系
本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
程序1 程序2 …… 程序m
功能需求1 √
功能需求2 √
功能需求 √ √
E.2.6 人工处理过程
说明在本软件系统的工作过程中不得不包含的人工处理过程(如果有的话)。
E.2.7 尚未解决的问题
说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。
E.3 接口设计
E.3.1 用户接口
说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。
E.3.2 外部接口
说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。
E.3.3 内部接口
说明本系统之内的各个系统元素之间的接口的安排。
E.4 运行设计
E.4.1 运行模块组合
说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块和支持软件。
E.4.2 运行控制
说明每一种外界的运行控制的方式方法和操作步骤。
E.4.3 运行时间
说明每种运行模块组合将占用各种资源的时间。
E.5 系统数据结构设计
E.5.1 逻辑结构设计要点
给出本系统内所要使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。
E.5.2 物理结构设计要点
给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系(索引、设备、存储区域)、设计考虑和保密条件。
E.5.3 数据结构与程序的关系
说明各个数据结构与访问这些数据结构的各个程序之间的对应关系,可采用如下的矩阵图形式:
程序1 程序2 …… 程序m
功能需求1 √
功能需求2 √ √
功能需求 √ √
E.6 系统出错处理设计
E.6.1 出错信息
用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
E.6.2 补救措施
说明故障出现后可能采取变通措施,包括:
a. 后备技术 说明准备采用的后备技术,当原始系统数据数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术;
b. 降效技术 说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录;
E.6.3 系统维护设计
说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。
⑤ 小型学生成绩管理系统
#include"stdio.h"
#include<stdlib.h>
#include<string.h>
#include"process.h"
#include"ctype.h"
struct Student
{
char num[10];
char name[10];
int chinese;
int math;
int english;
int dianlu;
double aver;
};
Student stu[99];
int bianji();
int chaxun();
void chaxun_pingjun(Student stud[],int n);
void chaxun_xingming(Student stud[],int n);
int menu();
int paixu();
void paixu_chinese(Student stud[],int n);
void paixu_dianlu(Student stud[],int n) ;/*按电路成绩排序*/
void paixu_english(Student stud[],int n) ;/*按英语成绩排序*/
void paixu_math(Student stud[],int n); /*按数学成绩排序*/
void paixu_pingjun(Student stud[],int n); /*按平均成绩排序*/
void paixu_xuehao(Student stud[],int n) ;/*按学号排序*/
int shanchu(Student stud[],int n) ;/*按姓名查找,删除一条记录*/
int shuru(Student stud[],int n);/*输入若干条记录*/
void tongji(Student stud[],int n);//按分数段统计人数
int wenjian();
void wenjian1(Student stud[],int n); /*将所有记录写入文件*/
int wenjian2(Student stud[],int n) ;/*从文件中读入数据*/
void xianshi(Student stud[],int n); /*显示所有记录*/
void xiugai(Student stud[],int n);/*修改*/
void main() /*主函数*/
{
int n=0;
for(;;)
{
for(;;)
{
switch(menu())
{
case 1: switch(bianji())
{
case 1:n=shuru(stu,n);xianshi(stu,n); break;
case 2:xiugai(stu ,n);xianshi(stu,n); break;
case 3:shanchu(stu ,n);xianshi(stu,n); break;
} break;
case 2:xianshi(stu,n);break;
case 3:
switch(chaxun())
{
case 1:chaxun_xingming(stu,n);break;
case 2:chaxun_pingjun(stu ,n);break;
} break;
case 4: switch(paixu())
{
case 1:paixu_xuehao(stu,n);xianshi(stu,n); break ;
case 2:paixu_chinese(stu ,n);xianshi(stu,n);break;
case 3:paixu_math(stu ,n);xianshi(stu,n); break;
case 4:paixu_english(stu ,n);xianshi(stu,n); break;
case 5:paixu_dianlu(stu ,n);xianshi(stu,n); break;
case 6:paixu_pingjun(stu ,n);xianshi(stu,n); break;
} break;
case 5:tongji(stu,n);break;
case 6:
switch(wenjian())
{
case 1:n=wenjian2(stu,n);break;
case 2:wenjian1(stu ,n);break;
} break;
case 0:
exit(0); /*结束程序*/
}
}
}
}
int shuru(Student stud[],int n)/*输入若干条记录*/
{
int i=0;
char sign,x[10];
double a=0.0;
while(sign!='n'&&sign!='N')
{
printf("输入学生学号:");
scanf("%s",stu[n+i].num);
printf("输入学生姓名:");
scanf("%s",stu[n+i].name);
printf("输入学生的语文、数学、英语、电路分数:");
scanf("%d%d%d%d",&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu);
a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+stu[n+i].dianlu)/4;
stu[n+i].aver=a;
gets(x); /*清除多余的输入*/
printf("是否继续输入?(Y/N):\n");
scanf("%c",&sign);
i++;
}
return(n+i);
}
void xianshi(Student stud[],int n) /*显示所有记录*/
{
int i ;
printf("----------------------------------------------------------\n"); /*格式头*/
printf("学号 姓名 语文 数学 英语 电路 平均成绩 \n");
printf("----------------------------------------------------------\n");
for(i=0;i<n;i++)
{
printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
}
}
void xiugai(Student stud[],int n)/*修改*/
{
int i=0,choice=1;
char x[10];
while(choice!=0)
{ printf("请输入您要修改的学生的学号:\n");
scanf("%s",x);
for(i=0;;i++)
{
if(strcmp(stu[i].num,x)==0) break;
}
printf("请选择您要修改的内容:\n");
printf(" ---------------------- \n");
printf("| 姓名 请按 1 |\n");
printf("| 语文 请按 2 |\n");
printf("| 数学分数 请按 3 |\n");
printf("| 英语分数 请按 4 |\n");
printf("| 电路 请按 5 |\n");
printf("| 退出 请按 0|\n");
printf("+----------------------+\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch(choice)
{
case 0:break;
case 1:
printf("请输入新姓名:");
scanf("%s", stu[i].name);
break;
case 2:
printf("请输入新的语文分数:");
scanf("%d", &stu[i].chinese);
break;
case 3:
printf("请输入新的数学分数:");
scanf("%d",&stu[i].math);
break;
case 4:
printf("请输入新的英语分数:");
scanf("%d", &stu[i].english);
break;
case 5:
printf("请输入新的电路分数:");
scanf("%d", &stu[i].dianlu);
break;
default:
printf("\n无效选项!");
break;
} break;
}
return;
}
int shanchu(Student stud[],int n) /*按姓名查找,删除一条记录*/
{ char s[20];
int i;
int j;
i=0;
printf("输入要删除记录的姓名:");
scanf("%s",s);
while(strcmp(stu[i].name,s)!=0&&i<n) i++;
if(i==n)
{printf("not find!\n");
return(n); }
for(j=i;j<n-1;j++) /*删除操作*/
{
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j].name,stu[j+1].name);
stu[j].chinese=stu[j+1].chinese;
stu[j].math=stu[j+1].math;
stu[j].english=stu[j+1].english;
stu[j].dianlu=stu[j+1].dianlu;
stu[j].aver=stu[j+1].aver;
}
printf("Delete Successed!\n");
return(n-1);
}
void chaxun_xingming(Student stud[],int n) /*按姓名查找并显示一个记录*/
{ char s[20];
int i=0;
printf("输入姓名:");
scanf("%s",s);
while(strcmp(stu[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{printf("not find!\n"); /*输入失败信息*/
return; }
printf("他的姓名、学号是:%s %s\n",stu[i].name,stu[i].num); /*输出该学生信息*/
printf("语文 高数 英语 电路 平均成绩是:%d,%d,%d,%d,%lf\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
}
void chaxun_pingjun(Student stud[],int n) /*按平均成绩查找并显示一个记录*/
{ double s;
int i=0;
printf("输入平均成绩:");
scanf("%lf",&s);
while(stu[i].aver!=s && i<n) i++;
if(i==n)
{ printf("not find!\n"); /*输入失败信息*/
return;
}
printf("他的学号是:%s\n",stu[i].num); /*输出该学生信息*/
printf("他的姓名是:%s\n",stu[i].name);
printf("他的语文、数学、英语、电路分数是:%d %d %d %d \n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu);
}
void paixu_xuehao(Student stud[],int n) /*按学号排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(strcmp(stud[j].num,stud[j+1].num)>0)
{ strcpy(t,stud[j].num);
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j+1].num,t);
strcpy(x,stud[j].name);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j+1].name,x);
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
}
return;
}
void paixu_pingjun(Student stud[],int n) /*按平均成绩排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].aver>stu[j+1].aver)
{ y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_chinese(Student stud[],int n) /*按语文成绩排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].chinese>stu[j+1].chinese)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_english(Student stud[],int n) /*按英语成绩排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].english>stu[j+1].english)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_math(Student stud[],int n) /*按数学成绩排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].math>stu[j+1].math)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void paixu_dianlu(Student stud[],int n) /*按电路成绩排序*/
{ int i,j,p,q,r,w;
double y;
char x[20],t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(stu[j].dianlu>stu[j+1].dianlu)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
void tongji(Student stud[],int n)//按分数段统计人数
{ int i,j,a,max,min,k,l,q,p,w;
k=0,l=0,p=0,q=0,w=0;
printf("你想统计哪科成绩: 1语文 2数学 3英语 4电路 5平均 \n");
scanf("%d",&j);
printf("input 2 score:\n");
scanf("%d%d",&max,&min);
if(max<min)
{
a=max;max=min;min=a;
}
if(j==1)
{
for(i=0;i<99;i++)
{
if(stu[i].chinese>min&&stu[i].chinese<max) k++;
}
printf("分数段的人数为 :%d",k);
}
else if(j==2)
{
for(i=0;i<99;i++)
{
if(stu[i].math>min&&stu[i].math<max) l++;
}
printf("分数段的人数为 :%d",l);
}
else if(j==3)
{
for(i=0;i<99;i++)
{
if(stu[i].english>min&&stu[i].english<max) p++;
}
printf("分数段的人数为 :%d",p);
}
else if(j==4)
{
for(i=0;i<99;i++)
{
if(stu[i].dianlu>min&&stu[i].dianlu<max)
w++;
}
printf("分数段的人数为 :%d",w);
}
else if(j==5)
{
for(i=0;i<99;i++)
{
if(stu[i].aver>min&&stu[i].aver<max) q++;
}
printf("分数段的人数为 :%d",q);
}
return;
}
int wenjian2(Student stud[],int n) /*从文件中读入数据*/
{ int i=0,num;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("\t\t\tInput the filename:");
scanf("\t\t\t%s",filename); /*输入文件名*/
if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/
{ printf("\t\t\tcann't open the file\n"); /*打开失败信息*/
printf("\t\t\t");
system("pause");
return(n);
}
fscanf(fp,"%d",&num); /*读入总记录量*/
while(i<num) /*循环读入数据*/
{
fscanf(fp,"%s %s %d %d %d %d %lf\n",stu[n+i].num,stu[n+i].name,&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu,&stu[n+i].aver);
i++;
}
n+=num;
fclose(fp); /*关闭文件*/
printf("\t\t\tSuccessed!\n");
printf("\t\t\t");
system("pause");
return(n);
}
void wenjian1(Student stud[],int n) /*将所有记录写入文件*/
{
int i=0;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("Input the filename:");/*输入文件名*/
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL) /*打开文件*/
{
printf("cann't open the file\n");
return;
}
fprintf(fp,"%d\n",n); /*循环写入数据*/
while(i<n)
{
fprintf(fp,"%s %s %d %d %d %d %lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
i++;
}
fclose(fp); /*关闭文件*/
printf("Successed!\n"); /*返回成功信息*/
}
int menu() /*菜单函数*/
{
int c;
do{
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 0. 退出 \n");
printf("************************************************************\n");
printf("\t\t\t请选择(0-6):");
scanf("%d",&c);
}while(c<0||c>6);
return(c-0); /*返回选择*/
}
int bianji()
{
printf("\t\t 1. 录入\n");
printf("\t\t 2 .修改\n");
printf("\t\t 3. 删除 \n");
printf("\t\t 按其它数字键退出 \n");
int i;
scanf("%d",&i);
return i;
}
int chaxun()
{
printf("\t\t 1. 按姓名查询\n");
printf("\t\t 2 .按平均成绩查询\n");
printf("\t\t 按其它数字键退出\n");
int i;
scanf("%d",&i);
return i;
}
int paixu()
{
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按其它数字键退出\n");
int i;
scanf("%d",&i);
return i;
}
int wenjian()
{
printf("\t\t 1. 从文件中读入数据\n");
printf("\t\t 2 .将所有记录写入文件\n");
printf("\t\t 按其它数字键退出 \n");
int i;
scanf("%d",&i);
return i;
}
⑥ 要一个学生成绩管理系统(VC++)
我的QQ是645352457,好像记得发了一个到你邮箱哟!
⑦ 这是一个学生成绩管理的系统,相当简单,可是有两处错误!请您帮帮忙!
你的代码真是让人无语啊,我根据你写的稍微改动一下,但是功能没给你改,做个c语言的小课程设计还可以,注释给你加上了。看起来应该挺清晰的。看不懂了再问我。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char name[20];
int number;
double Chinese;
double Maths;
double English;
double History;
double Average;
double Sum;
}student;
//输入单个人的信息
void in_person(student *t){
int i = 0;
char ch;
printf("请输入学生姓名(以空格结束):\t");
for(; i<20; i++){
ch = getchar();
if(ch == '\n' || ch == ' ')
break;
else
t->name[i] = ch;
}
printf("请输入学生的学号:\t\t");
scanf("%d", &(t->number));
printf("请输入学生的语文成绩:\t\t");
scanf("%lf", &(t->Chinese));
printf("请输入学生的数学成绩:\t\t");
scanf("%lf", &(t->Maths));
printf("请输入学生的英语成绩:\t\t");
scanf("%lf", &(t->English));
printf("请输入学生的历史成绩\t\t");
scanf("%lf", &(t->History));
printf("================================================================\n");
getchar();
t->Average = 0.0;
t->Sum = 0.0;
}
//输出单个人的信息
void out_person(student *p){
student *q=p;
if(q->name!=""){
printf("姓名:\t\t");
printf("%s\n",q->name);
printf("学号:\t\t");
printf("%d\n",(*q).number);
printf("语文:\t\t");
printf("%lf\n",(*q).Chinese);
printf("数学:\t\t");
printf("%lf\n",(*q).Maths);
printf("英语:\t\t");
printf("%lf\n",(*q).English);
printf("历史\t\t");
printf("%lf\n",(*q).History);
printf("平均成绩:\t");
printf("%lf\n",(*q).Average);
printf("总成绩:\t\t");
printf("%lf\n",(*q).Sum);
printf("\n");
}
}
//计算单个人的总成绩
void sum_person(student *p){
int i;
for(i=0;i<4;i++){
p->Sum=p->Chinese+p->Maths+p->English+p->History;
}
}
//计算单个人的平均成绩
void avg_person(student *p){
p->Average=p->Sum/4.0;
}
//输入自定个数人的信息
void Input(student *s,int num){
int i=0;
for(i;i<num;i++){
in_person(&s[i]);
sum_person(&s[i]);
avg_person(&s[i]);
}
}
//输出所有人的信息
void Output(student *s,int num){
int i=0;
for(i;i<num;i++){
out_person(s);
s++;
}
printf("-------------------------------------------------\n");
}
//交换两个学生的信息
void swapStudent(student* s1, student* s2){
student tmp;
strcpy(tmp.name, s1->name);
tmp.number = s1->number;
tmp.Chinese = s1->Chinese;
tmp.English = s1->English;
tmp.Maths = s1->Maths;
tmp.History = s1->History;
tmp.Average = s1->Average;
tmp.Sum = s1->Sum;
strcpy(s1->name, s2->name);
s1->number = s2->number;
s1->Chinese = s2->Chinese;
s1->English = s2->English;
s1->Maths = s2->Maths;
s1->History = s2->History;
s1->Average = s2->Average;
s1->Sum = s2->Sum;
strcpy(s2->name, tmp.name);
s2->number = tmp.number;
s2->Chinese = tmp.Chinese;
s2->English = tmp.English;
s2->Maths = tmp.Maths;
s2->History = tmp.History;
s2->Average = tmp.Average;
s2->Sum = tmp.Sum;
}
//根据语文成绩排序
void sortByCh(student *p,int num){
int i,j;
for(j=0;j<num-1;j++)
for(i=0;i<num-j-1;i++)
if(p[i].Chinese>p[i+1].Chinese){
swapStudent(&p[i],&p[i+1]);
}
}
//根据平均成绩排序
void sortByAvg(student *p,int num){
int i,j;
student t;
for(j=0;j<num-1;j++)
for(i=0;i<num-j-1;i++)
if(p[i].Average>p[i+1].Average){
swapStudent(&p[i],&p[i+1]);
}
}
//按名字首字母查找
void Search(student *p,char ch){
int i=0;
for(i=0;i<4;i++)
if(ch==p[i].name[0])
break;
out_person(&p[i]);
}
int main(){
char ch;
student *l =(student*) malloc(sizeof(student)*10);
Input(l,4);
Output(l,4);
sortByCh(l,4);
Output(l,4);
sortByAvg(l,4);
Output(l,4);
printf("请输入要查找的人名首字母:\n");
scanf("%c",&ch);
Search(l,ch);
free(l);
l=NULL;
return 0;
}
⑧ .编写一个小型学生成绩管理系统。
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#define len (sizeof(struct Student))
#define isdigest(c) ((c)>='0'&&(c)<='9')
typedef struct Student
{
int num;
int number;
char name[80];
int chinese;
int English;
int Math;
int term;
int score;
char grade_class[20];
struct Student *next;
}Stud;
//Stud *create_list();
int insert_list(Stud *head,int term,char *grade_class,int number,char *name,int chinese,int English,int Math,int n);
int del_list(Stud *head,int number);
del_list_class(Stud *head,char *grade_class);
Stud *find_list(Stud *head,int number);
Stud *find_list1(Stud *head,char *name);
Stud *find_list2(Stud *head,int term);
void brow_list(Stud *head);
int change_number(Stud *p);
int choice;
int mark1;
int number;
int term;
char name[80];
char grade_class[20];
char choice_char[1];
int fan_list(Stud *head);
int chinese_list(Stud *head);
int English_list(Stud *head);
int Math_list(Stud *head);
int grade_class_list(Stud *head);
int term_list(Stud *head);
void paixu_list(Stud *head,int mark_sub);
void main_menu();
void son_menu(Stud *head);
void view_menu(Stud *head);
void view_menu_view();
void save_list(Stud *head);
Stud *open_list();
void main()///////////////////////////////////////////////////////////////////////////主函数
{
Stud * head;
char *yes_no;
int chinese;
int English;
int Math;
head=NULL;
yes_no=(char*)malloc(sizeof(char)*10);
main_menu();
do
{
printf("\n请选则操作(输入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0]))
{
printf("输入错误!\07\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
head=open_list();
// head=create_list();
}
else
{
printf("库已存在连接!\07\n");
// printf("\n\n\t\t按任意键返回....");
// getch();
}
break;
case '2':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
while(1)
{
printf("请输入班级:");
scanf("%s",grade_class);
fflush(stdin);
if(strcmp(grade_class,"0")==0)
{
break;
}
lable1: printf("请输入学号(输入0结束!):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
printf("请录入学期:");
scanf("%d",&term);
printf("姓名:");
scanf("%s",name);
printf("请录入语文成绩:");
scanf("%d",&chinese);
printf("请录入英语成绩:");
scanf("%d",&English);
printf("请录入数学成绩:");
scanf("%d",&Math);
insert_list(head,term,grade_class,number,name,chinese,English,Math,-1);
printf("是否为同一班级?(Y)or(N):");
fflush(stdin);
gets(yes_no);
fflush(stdin);
if(yes_no[0]=='Y'||yes_no[0]=='y')
{
goto lable1;
}
else
{
}
}
break;
case '3':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
son_menu(head);
// printf("输入姓名:");
// scanf("%s",name);
// find_list(head,name);
break;
case '4':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
brow_list(head);
break;
case '5':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
fan_list(head);
break;
case '6':
main_menu();
break;
case '7':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
view_menu(head);
}
break;
case '8':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
case '9':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
head=NULL;
printf("已经断开连接!\n");
printf("\n\n\t\t按任意键返回....");
getch();
}
break;
default:
return;
}
}while(1);
}
void main_menu()///////////////////////////////////////////////////////////////主菜单
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (学生成绩管理系统) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、建立虚拟数据库连接并载入数据. *\n");
printf("* 2、插入新学生数据. *\n");
printf("* 3、查询、删除与修改学生信息窗口. *\n");
printf("* 4、数据浏览. *\n");
printf("* 5、逆序排列学生. *\n");
printf("* 6、查看菜单内容. *\n");
printf("* 7、高级排列查询窗口. *\n");
printf("* 8、保存数据. *\n");
printf("* 9、断开连接. *\n");
printf("* 0、退出程序. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (高级排列查询系统) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、排列学生信息(按语文成绩). *\n");
printf("* 2、排列学生信息(按英语成绩). *\n");
printf("* 3、排列学生信息(按数学成绩). *\n");
printf("* 4、排列学生信息(按班级). *\n");
printf("* 5、排列学生信息(按学期). *\n");
printf("* 6、排列学生信息(按总分). *\n");
printf("* 7、保存信息. *\n");
printf("* 8、查看菜单内容. *\n");
printf("* 9、浏览数据. *\n");
printf("* 0、回到主菜单. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void son_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
printf("* *\n");
printf("* (学生成绩查询系统) *\n");
printf("* *\n");
printf("* *\n");
printf("* 1、查找学生信息(按学号). *\n");
printf("* 2、查找学生信息(按姓名). *\n");
printf("* 3、查找学生信息(按班级). *\n");
printf("* 4、删除学生资料(按学号). *\n");
printf("* 5、删除学生资料(按班级). *\n");
printf("* 6、查看菜单内容. *\n");
printf("* 7、浏览数据. *\n");
printf("* 8、保存数据. *\n");
printf("* 0、回到主菜单. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu(Stud *head)/////////////////////////////////////排列子菜单
{
view_menu_view();
do
{
printf("\n请选则操作(输入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'9')
{
printf("输入有误,请重新输入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
chinese_list(head);
printf("排列成功!\n");
}
break;
case '2':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
English_list(head);
printf("排列成功!\n");
}
break;
case '3':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
Math_list(head);
printf("排列成功!\n");
}
break;
case '4':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
grade_class_list(head);
printf("排列成功!\n");
}
break;
case '5':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
term_list(head);
printf("排列成功!\n");
}
break;
case '6':
printf("对不起,此功能靠你自己实现了\07\n");
break;
case '7':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
case '8':
view_menu_view();
break;
case '9':
if(head==NULL)
{
printf("库未建立连接!\07\n");
break;
}
brow_list(head);
break;
default:
main_menu();
return;
}
}while(1);
}
void son_menu(Stud *head)////////////////////////////////////////////////查询子菜单
{
son_menu_view();
do
{
printf("\n请选则操作(输入0~8):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'8')
{
printf("输入有误,请重新输入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
do{
printf("\n请输入学号(按0结束):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
find_list(head,number);
}while(1);
break;
case '2':
do{
printf("\n请输入姓名(按0结束):");
scanf("%s",&name);
fflush(stdin);
if(strcmp(name,"0")==0)
{
break;
}
find_list1(head,name);
}while(1);
break;
case '3':
do{
printf("\n请输入学期(按0结束):");
scanf("%d",&term);
fflush(stdin);
if(term==0)
{
break;
}
find_list2(head,term);
}while(1);
break;
case '4':
if(head==NULL)
{
printf("库未建立连接!\007\n");
break;
}
printf("输入学号:");
scanf("%d",&number);
fflush(stdin);
del_list(head,number);
break;
case '5':
if(head==NULL)
{
printf("库未建立连接!\07\n");
}
printf("输入班级:");
scanf("%s",&grade_class);
fflush(stdin);
del_list_class(head,grade_class);
break;
case '6':
son_menu_view();
break;
case '7':
if(head==NULL)
{
printf("库未建立!\07\n");
break;
}
brow_list(head);
break;
case '8':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
default:
main_menu();
return;
}
}while(1);
}
Stud *open_list()//////////////////////////////////////////载入数据
{
Stud *head;
char temp_char[8
⑨ 1;学生成绩管理系统.
工作量太大了
有点报酬可能还会有人帮
而且你也没说明白用什么语言来写