C语言学生成绩管理系统设计报告.docx

上传人:b****5 文档编号:29032554 上传时间:2023-07-20 格式:DOCX 页数:13 大小:144.24KB
下载 相关 举报
C语言学生成绩管理系统设计报告.docx_第1页
第1页 / 共13页
C语言学生成绩管理系统设计报告.docx_第2页
第2页 / 共13页
C语言学生成绩管理系统设计报告.docx_第3页
第3页 / 共13页
C语言学生成绩管理系统设计报告.docx_第4页
第4页 / 共13页
C语言学生成绩管理系统设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言学生成绩管理系统设计报告.docx

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

C语言学生成绩管理系统设计报告.docx

C语言学生成绩管理系统设计报告

 

课程设计报告

课程名称《C语言程序设计》

课题名称学生成绩管理系统

专业网络工程

班级2011级网络工程1班

学号

姓名

 

目录

1、C语言课程设计任务书1

1.1、题目与要求1

1.2、本程序涉及的知识点1

2、总体设计1

2.1、功能模块设计1

2.2、所有功能模块的流程图1

3、详细设计3

3.1、输入函数3

3.2、输出函数3

4、调试与测试:

4.1、调试方法与步骤:

4.2、测试结果的分析与讨论:

4.3、测试过程中遇到的主要问题及采取的解决措施:

5、源程序清单和执行结果4

6、C程序设计总结5

7、致谢5

1、C语言课程设计任务书

1.1、题目与要求

本课程设计任务是编写学生成绩管理系统程序。

要求完成应用程序运行后,要在屏幕上显示一个菜单、要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

为各项操作功能设计一个菜单。

应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。

用户进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。

1.2、本程序涉及的知识点

变量的定义、输入和输出函数、数据结构的定义、if语句、switch语句、转意字符的使用等等。

2、总体设计

2.1、功能模块设计

根据课程设计题目的功能要求,各个功能模块的组成框图如下:

输入密码进入菜单

 

根据提示选择操作项

 

进行操作

用continue语句实现循环操作

2.2、所有功能模块的流程图

3、详细设计

模块功能说明:

如函数功能、入口及出口参数说明,函数调用关系描述等;

3.1、输入函数及写入文件

(1)、函数原形:

scanf(“%d”,&),fprintf(fp,“%ld%s%s”,stu[i].studentID,stu[i].studentName,stu[i].studentSex),

(2)、功能:

scanf()函数利用取地址符号&完成对程序中某个变量的赋值,进而程序中判断循环的功能。

Fprintf()函数利用write将数据写入文件中

(3)、变量及类型:

intn,m:

整型形参变量,接收函数传过来的数字。

inti,j,k:

循环控制变量。

(4)、说明:

输入字符后需要按回车键,待系统做出判断后往下执行。

3.2、输出函数

(1)、函数原形:

printf(“%d”,x),fscanf(fp,“%ld%s%s”,stu[i].studentID,stu[i].studentName,stu[i].studentSex),

(2)、功能:

输出相关提示信息及最后结果。

(3)说明:

输出时要把要输出的信息用双引号括起来,输出数字时要在其代表变量前加逗号。

4、调试与测试:

4.1、调试方法与步骤:

进入第一步出现如下信息:

输入密码(密码是:

123)

选择y后,进入第二步。

用户输入要操作的选项。

第三步:

执行操作

用户输入数据进行操作

第四步:

输出结果

屏幕显示出用户输入的数据

4.2、测试结果的分析与讨论:

(测试要写出测试用例及每个用例结果的的截图)

5、源程序清单和执行结果

(清单中应有足够的注释)

#include

#include#include

#defineN30

typedefstructstudent//创建学生信息结构体

{

longstudentID;

charstudentName[10];

charstudentSex[5];

intscore[3];

intsum;

floataver;

}STUDENT;

voidMenu(void);//菜单功能

voidinputscore(STUDENTstu[],intn,intm);//从键盘输入n个学生的学号、姓名、性别、各科成绩、总分、平均分到结构体stu中

voidwritetofile(STUDENTstu[],intn,intm);//输入学生的学号、姓名、性别、各科成绩、总分、平均分,并保存记录到文件

intreadtofile(STUDENTstu[],intm);//函数功能:

从文件中读出学生的学号、姓名、性别、各科成绩、总分、平均分到结构体数组stu中并返回学生数

voidprintscore(STUDENTstu[],intn,intm);//函数功能:

输出n个学生的学号、姓名、性别、各科成绩、总分、平均分到屏幕上

voidnamepaixu(STUDENTstu[],intn,intm);//函数功能:

选择排序法按姓名升序排序

intnamechaxun(STUDENTstu[],charname[],intn);//函数功能:

查找输入的姓名

voidintput(STUDENTstu[],inti);//函数功能:

输入待查信息

voidxiugai(STUDENTstu[],inti,intk);//函数功能:

修改学生成绩

voidhighorlow(STUDENTstu[],intn,intm);//函数功能:

计算语文、数学、英语的最高分和最低分

voidtotaloraver(STUDENTstu[],intn,intm);//函数功能:

计算语文、数学、英语的总分和平均分

voidpassorbast(STUDENTstu[],intn,intm);//函数功能:

统计语文、数学、英语的及格人数及优秀人数

voidpaiming(STUDENTstu[],intn);//函数功能:

计算每个人的总成绩、平均分、排名,并输出到屏幕上

voidaverage(STUDENTstu[],intn);//函数功能:

按平均分由高到低的顺序显示全部学生的学号和姓名voidnumber(STUDENTstu[],intn,intm);

voiddayin();//函数功能:

将各科最高分、最低分、总分、平均分、及格人数、优秀人数显示到屏幕上

//..............................................................

intmain()

{

STUDENTstu[N];

intch,mm,i=0;

intn,k;

charname[10];

printf("请输入密码:

");//密码是123

while

(1)

{

i++;

scanf("%d",&mm);

if(mm==123)

break;

elseif(i==3)

exit(0);

else

printf("密码错误,请重新输入:

");

}

Menu();

do{

printf("请选择序号:

");

scanf("%d",&ch);

switch(ch)

{

case1:

printf("Howmanystudents?

:

");

scanf("%d",&n);

inputscore(stu,n,3);

writetofile(stu,n,3);

break;

case2:

n=readtofile(stu,3);

printscore(stu,n,3);

break;

case3:

n=readtofile(stu,3);

namepaixu(stu,n,3);

printscore(stu,n,3);

printf("输入你想查寻的姓名:

");

scanf("%s",&name);

i=namechaxun(stu,name,n);

intput(stu,i);

break;

case4:

n=readtofile(stu,3);

namepaixu(stu,n,3);

printscore(stu,n,3);

printf("输入你要修改的人的姓名:

");

scanf("%s",&name);

i=namechaxun(stu,name,n);

printf("你想要修改的科目:

\n");

printf("1:

语文\n2:

数学\n3:

英语\n");

printf("请选择:

");

scanf("%d",&k);

xiugai(stu,i,k);

break;

case5:

n=readtofile(stu,3);

highorlow(stu,n,3);

totaloraver(stu,n,3);

passorbast(stu,n,3);

dayin();

break;

case6:

n=readtofile(stu,3);

paiming(stu,n);

break;

case7:

n=readtofile(stu,3);

average(stu,n);

break;

case8:

n=readtofile(stu,3);

number(stu,n,3);

break;

//.........................................................................................................

case0:

printf("谢谢使用,再见\n");

exit(0);

break;

default:

printf("输入错误\n");

break;

}

}while

(1);

return0;

}

6、C程序设计总结

本程序在刚开始调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。

在刚开始的几次调试中曾经出现过不能运行、不能进行循环输入、不能进行数据储存、不能输出有效的数据等等问题。

经过我的努力及同学的帮助,这些问题得到克服,并且使程序的功能也得到了一定的完善。

现在它能进行了数据输入储存、数据打印等等。

在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识。

从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。

除此之外,我还得到了一些有用的教训:

写程序时必须要细心,不能输错一个字符标点,就连花括号的输入也得注意。

在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。

7、致谢

能够完成这次课程设计必须感谢C语言课程老师江家保、王东良、李飞龙同学(他们帮我修改了几处重要错误,同时启发我完善了该程序的功能)。

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

当前位置:首页 > 外语学习 > 法语学习

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

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