学生成绩管理系统报告.docx

上传人:b****3 文档编号:5360293 上传时间:2022-12-15 格式:DOCX 页数:33 大小:188.46KB
下载 相关 举报
学生成绩管理系统报告.docx_第1页
第1页 / 共33页
学生成绩管理系统报告.docx_第2页
第2页 / 共33页
学生成绩管理系统报告.docx_第3页
第3页 / 共33页
学生成绩管理系统报告.docx_第4页
第4页 / 共33页
学生成绩管理系统报告.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统报告.docx

《学生成绩管理系统报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统报告.docx(33页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统报告.docx

学生成绩管理系统报告

成绩:

《C语言案例教学》

课程设计报告

课程名称:

C语言案例教学

实验项目:

学生成绩管理系统

姓名:

专业:

计算机

班级:

12级2班

学号:

计算机科学与技术学院

2012年12月

C程序案例报告

1.功能需求分析

这里提供了一个简单的学生成绩管理系统,能够实现登陆,查询,删除,修改,保存,读入,一系列的功能。

主要功能需求描述如下:

(1)系统登录界面

首先先注册一个账号以及密码,然后进入登陆界面,进行登陆功能。

(2)添加学生成绩信息

用户根据提示输入学生的信息,包括学号.姓名.英语成绩,数学成绩。

(3)显示学生信息

当输入完所有的信息时。

程序会自动显示学生的信息。

(4)查询学生信息

可以分别按学号,姓名对学生的所有信息进行查询。

(5)删除学生信息

首先提示用户输入要进行修改操作的人数,然后依次输入每个学生的学号进行删除。

如果没有找到要修改学生的学号,系统会给出提示,检查输入是否正确。

(6)新增学生信息

首先提示用户输入要修改的人数,然后依次输入这几个学生的个人信息包括(姓名,学号,英语成绩,数学成绩)

(7)显示学生成绩单

系统给两种显示学生信息的方法,一是根据学号显示,一是根据成绩显示。

(8)显示学生成绩的均分,最高低分

显示各科的成绩的平均分最高分,以及总成绩平均分。

以及各科的最高分以及最低分。

(9)文件保存

把学生信息保存的文件里去

(10)退出退出系统

2.总体设计

1.功能模块设计

(1).输入学生信息

在主菜单中调用voidInput(structstudentstu[])函数,输入学生信息。

首先输入

人数,依次输入学号.姓名.英语成绩,数学成绩。

(2).显示学生信息

在主菜单中调用voidOutput(structstudentstu[])函数,显示学生信息。

(3).查询学生信息

在主菜单中调用voidsearch(structstudentstu[])函数,查询学生信息。

包括学好或姓名两种方式。

如果用户输入的学号或姓名所对应的学生信息存在,系统会出现“恭喜!

找到了!

”。

如果用户输入的学号或姓名找不到对应的学生信息的话,则会出现找不到的情况。

(4).删除学生信息

在主菜单中调用voiddel(structstudentstu[])函数,以删除学生信息。

首先需要删除的人数,然后输入要删除的学号,如果没找到这个学生的信息,会出现这样的提示“请查明后再输入,本班无此学生!

!

!

”。

如果查到学生信息,会先显示学生信息,然后删除学生信息。

(5).新增学生学生信息

在主菜单中调用voidinsert(structstudentstu[])函数,来新增学生信息。

首先提示用户输入要修改的人数,然后依次输入这几个学生的个人信息包括(姓名,学号,英语成绩,数学成绩)。

(6).计算学生成绩

(1)在主菜单中调用voidsum(structstudentstu[])函数进行求和功能。

(2)调用voidaver(structstudentstu[])函数进行求平均分的功能。

(7).显示学生成绩单

(1).按学号排名

(2).按名次排名

(1).在主菜单中调用voidsort_num(structstudentstu[])函数按学号排序。

然后调用voidout_sort_num(structstudentstu[])按学号排名输出。

(2).调用voidsort_score(structstudentstu[])函数进行名次排序。

调用voidscore_ord(structstudentstu[])函数来求名次。

调用voidout_sort_score(structstudentstu[])函数按名次排名的输出。

(8).显示学生的均分,以及最高最低分

(1)全班各科成绩平均最高分及总分平均分。

(2)个人的均分

(3)各科的最高最低分

调用voidaver(structstudentstu[])函数求每个人的均分。

调用voidaverage(structstudentstu[])函数求全班各科的平均分及总分的平均分。

调用voidhilo(structstudentstu[])函数求各科最高分最低学生的信息。

(9).文件保存及调出

当用户输入学生信息的时候,文件将自动保存在程序的目录下。

调用voidxianshi(structstudentstu[])函数,把存在文件的学生信息读取出来。

(10).退出

退出系统

 

2.详细设计与程序实现

(1).预处理

#include

#include

#include

#include

#defineNUM30

intSIZE=0;

inti;

(2).数据结构定义

structstudent/*结构体的声明*/

{

intnum;/*成员名单*/

charname[20];

intscore_eng;

intscore_math;

intsum_d;

floataver_d;

intscore_ord;

}stu[NUM];

(3).函数及变量声明

1.主要函数声明

intmenu_select();

voidopen();

voidenter(structstudent[]);

voidInput(structstudent[]);

voidOutput(structstudent[]);

voidinsert(structstudent[]);

voiddel(structstudent[]);

voidsum(structstudent[]);

voidaver(structstudent[]);

voidsearch(structstudent[]);

voidhilo(structstudent[]);

voidsort_score(structstudent[]);

voidsort_num(structstudent[]);

voidaverage(structstudent[]);

voidout_sort_score(structstudent[]);

voidscore_ord(structstudent[]);

voidout_sort_num(structstudent[]);

voidsave(structstudent[]);

voidxianshi(structstudent[]);

2.系统调用函数

//进入系统调用

voidenter(structstudentstu[])

{

for(;;)

switch(menu_select())

{

case1:

search(stu);

break;

case2:

out_sort_num(stu);

break;

case3:

out_sort_score(stu);

break;

case4:

average(stu);

break;

case5:

hilo(stu);

break;

case6:

insert(stu);

break;

case7:

del(stu);

break;

case8:

xianshi(stu);

case9:

printf("Goodbye!

\n");

exit(0);

}

}

3.菜单选择函数

//菜单选择操作

intmenu_select()

{

chars;

intcn;

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.拜拜!

");

printf("选择你要进行的操作的序号,1~9:

");

printf("\n");

do

{

s=getchar();

cn=(int)s-48;

}while(cn<0||cn>8);

returncn;

}

4.主函数

intmain()

{

open();

}

5.登录函数

voidopen()

(4)代码实现。

#include

#include

#include

#include

#defineNUM30

intSIZE=0;

inti;

//声明结构体

structstudent/*结构体的声明*/

{

intnum;/*成员名单*/

charname[20];

intscore_eng;

intscore_math;

intsum_d;

floataver_d;

intscore_ord;

}stu[NUM];

/*定义结构体数组和指针*/

//声明函数

intmenu_select();

voidopen();

voidenter(structstudent[]);

voidInput(structstudent[]);

voidOutput(structstudent[]);

voidinsert(structstudent[]);

voiddel(structstudent[]);

voidsum(structstudent[]);

voidaver(structstudent[]);

voidsearch(structstudent[]);

voidhilo(structstudent[]);

voidsort_score(structstudent[]);

voidsort_num(structstudent[]);

voidaverage(structstudent[]);

voidout_sort_score(structstudent[]);

voidscore_ord(structstudent[]);

voidout_sort_num(structstudent[]);

voidsave(structstudent[]);

voidxianshi(structstudent[]);

//主函数

intmain()

{

open();

}

 

//注册(用户名和密码)

voidopen()

{

intflag=0,m=0,n;

charkey_1[40],key_2[40],key_3[40],or_name[20],name[20];

charchange;

printf("\t\t\t欢迎使用成绩管理系统\n\n\n\n");

printf("\t************************请注册!

************************\n\n");

printf("\t\t请设置用户名:

");

gets(or_name);

printf("\n");

printf("\t\t请设置密码(可以为数字与字母组合):

");

for(i=0;(change=getch())!

='\r';)

{

key_1[i++]=change;

printf("*");

}

key_1[i]='\0';

printf("\n\n");

printf("\t\t验证密码:

");

for(i=0;(change=getch())!

='\r';)

{

key_2[i++]=change;

printf("*");

}

key_2[i]='\0';

printf("\n\n");

if(strcmp(key_1,key_2)==0)

printf("\t*****************恭喜^-^,已注册成功!

******************\n\n\n");

else

{

printf("\t************抱歉,由于密码验证错误,注册失败!

***********\n\n\n");

exit(0);

}

printf("\t************************请登录!

************************\n\n");

do

{

printf("\t\t请输入用户名:

");

gets(name);

printf("\n");

printf("\t\t请输入密码:

");

for(i=0;(change=getch())!

='\r';)

{

key_3[i++]=change;

printf("*");

}

key_3[i]='\0';

printf("\n\n");

if(strcmp(or_name,name)==0&&strcmp(key_1,key_3)==0)

{

printf("\t*****************恭喜^-^,已成功登录!

******************\n\n\n");

Input(stu);

Output(stu);

enter(stu);

break;

}

else

{

printf("\t************对不起~-~,登录失败!

**************\n\n");

n=2-m;

printf("\t********请从新登录!

仅有%d次机会了哟!

!

**********\n\n",n);

m++;

continue;

}

}while(m<2);

printf("\t\t请输入用户名:

");

gets(name);

printf("\n");

printf("\t\t请输入密码:

");

for(i=0;(change=getch())!

='\r';)

{

key_3[i++]=change;

printf("*");

}

key_3[i]='\0';

printf("\n\n");

if(strcmp(or_name,name)==0&&strcmp(key_1,key_3)==0)

{

printf("\t*****************恭喜^-^,已成功登录!

*****************\n\n\n");

Input(stu);

Output(stu);

score_ord(stu);

enter(stu);

}

elseprintf("\t****************对不起~-~,登录失败!

*******************\n");

}

 

//进入系统调用

voidenter(structstudentstu[])

{

for(;;)

switch(menu_select())

{

case1:

search(stu);

break;

case2:

out_sort_num(stu);

break;

case3:

out_sort_score(stu);

break;

case4:

average(stu);

break;

case5:

hilo(stu);

break;

case6:

insert(stu);

break;

case7:

del(stu);

break;

case8:

xianshi(stu);

case9:

printf("Goodbye!

\n");

exit(0);

}

}

//菜单选择操作

intmenu_select()

{

chars;

intcn;

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.拜拜!

");

printf("选择你要进行的操作的序号,1~9:

");

printf("\n");

do

{

s=getchar();

cn=(int)s-48;

}while(cn<0||cn>8);

returncn;

}

 

//输入学生信息

voidInput(structstudentstu[])

{

ints,i;//FILE*fp;

//fp=fopen("e:

\\c语言程序\\v.txt","w");

printf("\t\t\t成绩管理系统\n\n\n");

printf("请输入全班的学生人数:

");

scanf("%d",&SIZE);

printf("\n");

for(i=0;i

{

printf("请输入第%d个学生的信息\n",(i+1));

printf("学号:

");

scanf("%d",&stu[i].num);

printf("姓名:

");

s=getchar();

gets(stu[i].name);//fprintf(fp,"%s",i);

printf("英语成绩:

");

scanf("%d",&stu[i].score_eng);//fprintf(fp,"%.2f",i);

printf("数学成绩:

");

scanf("%d",&stu[i].score_math);

}

}

 

//输出学生信息

voidOutput(structstudentstu[])

{

sum(stu);

aver(stu);inti;FILE*fp;

printf("学生信息如下:

\n");

printf("\t学号\t姓名\t英语\t数学\t总分\t均分\n");

printf("-----------------------------------------------------------------------------\n");

for(i=0;i

{printf("\t%d\t%s\t%d\t%d\t%d\t%3.2f\t\n",

stu[i].num,stu[i].name,stu[i].score_eng,stu[i].score_math,

stu[i].sum_d,stu[i].aver_d);}

fp=fopen("e:

\\c语言程序\\l.txt","w");

//fprintf(fp,"学生信息如下:

\n");

//fprintf(fp,"\t学号\t姓名\t英语\t数学\t总分\t均分\n");

//fprintf(fp,"-----------------------------------------------------------------------------\n");

for(i=0;i

{fprintf(fp,"%d%s%d%d%d%3.2f\n",

stu[i].num,stu[i].name,stu[i].score_eng,stu[i].score_math,

stu[i].sum_d,stu[i].aver_d);}

fclose(fp);

//printf("\t%d\t%s\t%d\t%d\t%d\t%3.2f\t\n",

//stu[i].num,stu[i].name,stu[i].score_eng,stu[i].score_math,

//stu[i].sum_d,stu[i].aver_d);

 

}

voidxianshi(structstudentstu[])

{FILE*fp;

fp=fopen("e:

\\c语言程序\\l.txt","r");

//fprintf(fp,"学生信息如下:

\n");

//fprintf(fp,"\t学号\t姓名\t英语\t数学\t总分\t均分\n");

//fprintf(fp,"-----------------------------------------------------------------------------\n");

for(i=0;i

{fscanf(fp,"%d%s%d%d%d%f",

&stu[i].num,stu[i].name,&stu[i].score_eng,&stu[i].score_math,

&stu[i].sum_d,&stu[i].aver_d);

printf("%d%s%d%d%d%3.2f\n",

stu[i].num,stu[i].name,stu[i].score_eng,stu[i].score_math,

stu[i].sum_d,stu[i].aver_d);}

}

 

//求和

voidsum(structstudentstu[])

{

for(i=0;i

{

stu[i].sum_d=0;

stu[i].sum_d=stu[i].score_eng+stu[i].score_math;

}

}

 

//求每个人的平均分

voidaver(structstudentstu[])

{

sum(stu);

for(i=0;i

{

stu[i].aver_d=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1