C语言学生管理系统综合实验报告.docx

上传人:b****7 文档编号:23649105 上传时间:2023-05-19 格式:DOCX 页数:16 大小:56.52KB
下载 相关 举报
C语言学生管理系统综合实验报告.docx_第1页
第1页 / 共16页
C语言学生管理系统综合实验报告.docx_第2页
第2页 / 共16页
C语言学生管理系统综合实验报告.docx_第3页
第3页 / 共16页
C语言学生管理系统综合实验报告.docx_第4页
第4页 / 共16页
C语言学生管理系统综合实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言学生管理系统综合实验报告.docx

《C语言学生管理系统综合实验报告.docx》由会员分享,可在线阅读,更多相关《C语言学生管理系统综合实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

C语言学生管理系统综合实验报告.docx

C语言学生管理系统综合实验报告

实验名称

小型学生信息管理系统

实验报告

 

实验项目

编写一学生信息管理系统,用来管理学生基本信息及成绩信息

 

试验目的

本实验为学生提供了一个既动手又动脑,上机实践的机会。

学生通过分析和解决该实验,将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高学生编写综合系统程序的能力。

实验内容

编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。

系统功能模块如下图:

 

具体要求为:

1.建立学生信息,每个学生的信息应包括:

学号、姓名、性别、班级、至少3门课程的成绩;

2.数据输入:

输入学生的各项信息;

3.数据修改:

根据输入学生的学号可以选择修改该学生的信息;

4.数据处理:

可以选择处理方式为:

排序、查询、统计。

其中:

a)排序:

按学号排序b)查询:

根据学号查询成绩

C)统计:

可以选择统计各学生的平均成绩或统计所有存在不及格科目的学生;

5.数据输出:

输出学生的相应结果信息;

6.退出:

退出整个学生信息管理系统。

7.输出结果截屏的第一条记录一定要反映出你自己的真实信息。

四、

程序清单

程序组织结构图、函数调用关系图

#includevstdio.h>

#include

#includevstring.h>structstudent

charnum[10];

charname[10];

charsex[4];

charclas[20];

intyw,sx,yy;

floatave;

}stu[100];

inti,j;

voidInputDataO

charx;

while

(1)

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

 

printf("\t

姓名:

");

 

 

seanf("%s",stu[i].name);

 

scanf("%s",stu[i].sex);

 

scanf("%s",stu[i].clas);

 

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

 

printf("\t

英语:

");

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

 

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

stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);

if(x=='n'||x=='N')break;

voidEditDataO

intcount=0;

charstr[1O];

printf("\n请输入学生学号:

");

cin>>str;

while(count

if(strcmp(str,stu[count].num)==0)

 

printf("学号

姓名

性别

班级

语文数学

 

 

英语\n");

printf("%-11s",stu[count],num);

Pl1nff(=%—13s-「sucounq.name)八

prinff(=%—8s-「sfurcouna•sex)八

Pl1nff(=%—16s-「sucounq.c-as)八

Pl1nff(=%—6crguaounq.yw=

prinff(=%—6空sfuaounq•sx)-

Pl1m%—4crguaounq.yy=

prinmvrx

prin殳

break-

counf++八

if(counfvHi)

e-se

 

printf("\n\t修改数据:

\n");

 

printf("\t

学号:

");

 

 

seanf("%s",stu[i].num);

 

printf("\t

姓名:

");

 

 

seanf("%s",stu[i].name);

 

scanf("%s",stu[i].sex);

 

scanf("%s",stu[i].elas);

 

printf("\t

数学:

");

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

 

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

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

stu[count].ave=float((stu[count].yw+stu[count].sx+stu[count].yy)/3.0);

voidsx()

structstudenttemp;

inta,b,c;

for(a=0;a

c=a;

for(b=a+1;b

if(stu[b].ave>stu[c].ave)

c=b;

temp=stu[b];

stu[b]=stu[c];

 

sfurc一Hfemp八

Pl1nff(=盘E甸可璋;MR〔云)

priw——

fo「(CHOqrc++)

pl1mf(=%—1」s=guaLnum=

prinff(=%—l3S=gurcLname)八

Pl1mf(=%—8s=gus.sex)-

prinm.%二6s=gus.cas)-

pl1mf(=%—6crguaLyw)-

Pl1mf(=%—6crgus.sx)-

Pl1mf(=%—4crgus.yy)-

prinmvrx

 

printf("

 

 

voidcx()

intcount=0;

charstr[1O];

printf("\n请输入要查询的学生学号:

");

cin>>str;

while(count

printf("学号

姓名

性别

班级

语文数学

if(strcmp(str,stu[count].num)==0)

英语\n");

printf("%-11s",stu[count],num);

printf("%-13s",stu[count],name);

printf("%-8s",stu[count].sex);

printf("%-16s",stu[count].clas);

printf("%-6d",stu[count].yw);

printf("%-6d",stu[count].sx);

printf("%-4d",stu[count].yy);

printf("\n");

printf("

break;

count++;

if(count>=i)

printf("\n无该学号学生");

else

printf("\n");

voidtjpjf()

intcount=0;

stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);

 

printf("

学号

姓名

平均分\n");

 

 

printf("

for(j=0;j

while(count

for(j=0;j

printf("%-21s",stu[count].num);

printf("%-21s",stu[count],name);

printf("%-6.2f",stu[count].ave);

count++;

printf("\n");}

\n");

printf("

voidtjbhgrsO

printf("

学号

姓名

性别

班级

语文数学英语\n");

intj,count=0;

 

\n");

printf("for(j=0;j

if(stu[j].yw<60||stu[j].sx<60||stu[j].yy<60)

 

{printf("%-11s",stu[count],num);

printf("%-13s",stu[count].name);

printf("%-8s",stu[count].sex);

printf("%-16s",stu[count].clas);

printf("%-6d",stu[count].yw);

printf("%-6d",stu[count].sx);

printf("%-4d",stu[count].yy);

printf("\n");

count++;

\n");

printf("voidtj()

charx;

while

(1)

printf("\t1.

统计平均分2.统计不及格学生信息3.返回

{

\n");

printf("\n\t请选择具体的统计内容:

");

cin>>x;

printf("\n");

switch(x)

{

case'1':

tjpjf();break;

case2:

tjbhgrs();break;

case3:

break;

}if(x==3)

break;

printf("\n");

}

}

voidDataProc()

{

charx;

while

(1)

{

printf("\t

处理数据

\n");

printf("\t

 

printf("\t

4.

返回主菜单

\n");

\n");

printf("\t

 

printf("\n\t

请选择具体的处理内容:

");

cin>>x;

printf("\n");

switch(x)

case'1':

sx();break;

case'2':

cx();break;

case3:

tj();break;

case'4':

break;

if(x=='4')

break;

 

printf("\n");

voidDataOutput()

intcount=0;

printf("

学号

姓名

性别

班级

语文数学英语

\n");

printf("

\n");

 

 

while(count

printf("%-11s",stu[count],num);

printf("%-13s",stu[count].name);

printf("%-6d",stu[count].sx);

printf("%-6d",stu[count].yy);

count++;

printf("\n");

\n");

printf("

voidmain()

charx;

while

(1)

{printf("\t********************************************\n");

printf("\t*

1.

输入数据

*\n");

printf("\t*

2.

修改数据

*\n");

printf("\t*

3.

处理数据

*\n");

printf("\t*

4.

输出数据

*\n");

printf("\t*

5.

退出

*\n");

printf("\t*

*\n");

printf("\t********************************************\n");

printf("\n\t

请选择需要进行的操作:

");

cin>>x;printf("\n");

switch(X)

{case'1':

InputData();break;

case2:

EditData();break;

case3:

DataProc();break;

case'4':

DataOutput();break;

if(x=='s')break;

八、

实验总结(调试分析、体会、致谢)

printf("\n");

 

从这一次的综合实验中,我感触很深

可以这么说,为了这个实验花费比较的功夫。

就我个人来说,其实我很害怕与电脑,程序有

关的东西,可能因为一直以来很少接触电脑吧,对于相关的东西比较难理解。

很认真去学,还是感觉很吃力。

每次上课或做实验,发现自己在这方面很跟上大家的脚步。

比如说,我去做了题,但是不能理解,也记不住。

但是,这次的综合实验二做起来相对之前,我发现自己有了进步。

从开始着手做,我就发现这个实验所需要的知识在前面的实验已经做过了。

特别是综合实验一。

我是像做实验一那样去完成这个实验的。

首先把整个函数的结构,关系图先写出来。

在把程序写出来时,先写主函数,然后把第一层函数的空函数写出来,调试主函数与第一层的空函数。

第二步就是按照主菜单的顺序,把第一层函数写出来,输入数据的函数很快就写好,调试也没有任何问题。

在写修改数据的函数就没那么容易,我参照了老师的程序,但是很奇怪,调试没问题,可

当我输入数据后,进行第二的修改数据时,出现的数据一直是学号为1的学生的数据。

我找了一

天是哪的问题,却完全没头绪,然后我就求助舍友了,舍友帮我看了很久,她也找不到。

等我返

”这条件。

接下来就是处

回去看流程图,才发现原来少了“if(strcmp(str,stu[count].num)==O)

理数据的函数,我个人感觉这里,既简单又比较难的。

这个函数里面又包含里按学号排序,查询,统计这三个函数,而统计里面又有统计平均分及统计不及格学生信息两个函数。

像之前一样,我先把第三层函数写好,再写第四层的。

按学号排序那个因为刚好老师讲到相关的那节课很认真听了;做起来虽然有点磕磕碰碰,它的程序调试完全没问题。

在调试查询的时候,我犯了一个特别低级的错误,在没有把上一次的运行窗口关掉就编译,运行,发现程序连接有错误。

我第一反应以为代码出错,就一在代码上找错,但找不到,当我目光放到电脑的任务栏,才恍然大悟,没有把上次运行后的窗口关掉。

并且,这种错误在做综合实验过程中犯了不止一次。

这也提醒着我对于C语言很不熟练。

做统计的函数时我花费了比较长的时间。

其实统计里面的两个函数相对来讲不是特别难,但是因为前面的都忘了,所以在调试老是出错。

后来,函数写出来了,编译,运行也没出错,可是统计出来的平均分就是不正确。

看了又看,都找不到哪里有问题。

我又去求助了问一个同学,找不到,又回来问舍友了。

终于发现了,原来在输入数据那个求平均值那里,我把

stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);

也就是括号放错地方了。

写成了stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy/3.0));

到这里为止,我已经完成了整个系统,开始全面调试,随便输了几组数据,一步一步往下进行操作,整个系统运行正常。

我很开心,至少在自己努力和老师,同学的帮助下完成整个实验。

在这里,我从心里深深表示,感谢在我有困难时,文娴和王瑶对我的帮助,感谢老师在课上的耐心指导,让我对学习C语言有了兴趣与动力。

我在完成这个系统后,我更加认识到:

没什么是学不会的,只在于你自己去不去努力学,我很后悔之前遇到一点小困难就放弃的行为,不过,我不会再如此轻易放弃了,遇到困难要迎难而上。

在这里,再一次对老师和同学表示真心的感谢!

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

当前位置:首页 > 工作范文 > 行政公文

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

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