C语言实现学生成绩管理系统Word下载.docx

上传人:b****4 文档编号:16897212 上传时间:2022-11-27 格式:DOCX 页数:19 大小:154.98KB
下载 相关 举报
C语言实现学生成绩管理系统Word下载.docx_第1页
第1页 / 共19页
C语言实现学生成绩管理系统Word下载.docx_第2页
第2页 / 共19页
C语言实现学生成绩管理系统Word下载.docx_第3页
第3页 / 共19页
C语言实现学生成绩管理系统Word下载.docx_第4页
第4页 / 共19页
C语言实现学生成绩管理系统Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言实现学生成绩管理系统Word下载.docx

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

C语言实现学生成绩管理系统Word下载.docx

第二天~第四天

功能分析,编写程序,调试程序、运行系统;

第五天

程序验收、答辩;

撰写设计报告。

具体要求

1.课程设计报告按统一通用格式书写,具体内容如下:

①设计任务与要求

②总体方案与说明

③软件主要模块的流程图

④源程序清单与注释

⑤问题分析与解决方案(包括调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想);

⑥小结与体会

附录:

①源程序(必须有简单注释)②使用说明③参考资料

2.每位学生应独立完成各自的任务且每天至少在设计室工作半天;

指导教师签名:

年6月22日

教研室主任(或责任教师)签名:

6月24日

1.设计题目及要求

1.1设计题目

用C语言实现成绩统计程序的设计。

1.2具体任务

对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:

(1)学生的学号

(2)学生的姓名(3)学生的成绩。

假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。

学习相关开发工具和应用软件,熟悉系统建设过程。

2.系统设计思想

2.1系统设计思想

在编写成绩统计管理系统程序的过程中运用结构体,把问题中所涉及的变量定义在结构体中,利用函数来管理学生成绩,循环语句控制所选择的选择界面,case语句进行选择。

然后利用相关变量函数把学生成绩记录下来,利用循环语句再回到选择界面,利用查找函数,统计函数来查找统计学生成绩,利用冒泡排序法来对学生平均成绩进行排序。

然后按成绩高低对学生进行排名。

2.2系统算法设计

2.2.1系统模块结构图

系统结构如图2-1所示

图2-1系统结构图

2.2.2主函数流程图

主函数如图2-2所示

t=3

输入选择操作

t=1

t=4

t=2

判断输入数

输入

信息

输出信息

查找

插入数据

选择排序法排序平均数

按学号删除

保存文件

输出平均分成绩

记载相应模块并进行处理

图2-2主函数流程图

3.系统调试与运行

3.1开发环境

VisualC++6.0,MicrosoftWindowsXP

3.2程序调试

3.2.1主界面调试

选择界面如图3-1所示

图3-1选择界面截图

3.2.2成绩录入模块成绩录入界面

录入界面如图3-2所示

图3-2成绩录入模块

3.2.3成绩查询模块

成绩查询界面如图3-3所示

图3-3成绩查询模块

3.2.4成绩统计模块

成绩统计界面如图3-4所示

图3-4成绩统计模块

4.设计评价与修改

在数据结构课程设计过程中,许多知识点都没有学过,都要靠自己到课外的资料中去查找。

在用的时候难免出现这样那样的错误。

如开始设计出来的菜单不是预想的那样,而是窗中出现混乱,要经过自己一遍遍的调试与修改,和老师同学的帮助下逐渐改进完善,最后才渐渐的成型。

运行的也基本达到所需要的运算要求。

5.心得与体会

回顾起此次课程设计,我感慨颇多,从拿到题目到完成整个编程,从理论到实践,在整整一个礼拜的日子里,能够学到很多很多的东西,同时不但能够巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

经过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,能够说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体。

经过这次课程设计之后,一定把以前所学过的知识熟悉了,本次课程设计结束了,我们经过这次实践学到了许多知识。

学到了设计一个简单的系统。

要注意哪些方面。

也使我们知道自己哪些方面做得还不够。

这不但是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!

在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。

每一次的课程设计都是一次对自己曾经学习知识的检验,经过每次的实践,使自己认识之前的不足与缺点,利于以后的改正与今后学习的发展方向,希望每一次的课程设计都能有一个很好的提高

参考文献

[1]詹春华李小艳黄启荃•《计算机应用基础》•科学出版社.5

[2]詹春华杨沙•《C语言程序设计》•科学出版社.8

[3]谭浩强·

C语言程序设计·

北京·

清华大学出版社,1月。

[4]徐孝凯魏荣•《数据结构》•机械工业出版社•1996年

[5]徐孝凯•《数据结构简明教程》•清华大学出版社•1995年

[6]陈文博朱青•《数据结构与算法》•机械工业出版社•1996年

程序代码

#include<

stdlib.h>

stdio.h>

string.h>

#defineMAXN35

#defineMAX_NAME256

typedefstructstudent//学生信息

{

intno;

charname[MAX_NAME];

doubleChinese;

doublemath;

doubleEnglish;

doublemark_ave;

doublemark_tot;

}STUDENT;

/*-----------输入信息子程序---------*/

voidinput(STUDENT*data,int*len)

putchar('

\n'

);

printf("

%s\n"

"

请输入新的记录,如果需要退出当前菜单请输入-1."

格式:

\n学号\n"

姓名语文数学英语"

如:

\n"

1\n"

小明939589\n"

scanf("

%d"

&

no);

while(no!

=-1){

data[*len].no=no;

scanf("

%s%lf%lf%lf"

data[*len].name,&

data[*len].Chinese,&

data[*len].math,&

data[*len].English);

data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len].English)/3.0;

data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len].English;

(*len)++;

}

}

/*---------------输出信息子程序---------------*/

voidoutput(STUDENT*data,intlen)

inti;

system("

cls"

%8s"

学号"

姓名"

语文"

数学"

%10s"

英语"

%12s"

平均分"

总分"

for(i=0;

i<

80;

i++)

='

for(i=0;

i<

len;

{

%8d"

data[i].no);

data[i].name);

%8.1lf"

data[i].Chinese);

data[i].math);

%10.1lf"

data[i].English);

%12.1lf"

data[i].mark_ave);

data[i].mark_tot);

}

按回车键继续."

getchar();

/*--------------排序子程序------------*/

voidsort(STUDENT*data,intlen)

inti,j,k;

STUDENTtemp;

for(i=0;

len-1;

i++){

for(k=i,j=i+1;

j<

len;

j++)

if(data[k].mark_ave>

data[j].mark_ave)k=j;

if(k!

=i){

temp=data[i];

data[i]=data[k];

data[k]=temp;

}

/*--------------------搜索子程序-----------------------*/

voidfind(STUDENT*data,intlen)

intfind_no,result;

lab:

result=0;

printf("

请输入需要查找的学生的学号,退出当前菜单请输入-1."

find_no);

if(find_no==-1)return;

/*exitthefinesubprogram*/

while(data[result].no!

=find_no&

&

result<

len)result++;

if(result>

=len){

printf("

未查询到相关信息"

gotolab;

}

else{

system("

查询信息如下:

"

for(i=0;

putchar('

putchar('

data[result].no);

data[result].name);

data[result].Chinese);

data[result].math);

data[result].English);

data[result].mark_ave);

data[result].mark_tot);

/*-----------------插入子程序-------------*/

voidinsert(STUDENT*data,int*len)

intno,pos;

doubleChinese,math,English,mark_ave,mark_tot;

输入新的记录,退出当前菜单请输入-1."

姓名语文数学英语"

if(no==-1)return;

name,&

Chinese,&

math,&

English);

mark_ave=(Chinese+math+English)/3.0;

mark_tot=Chinese+math+English;

pos=0;

while((data[pos].mark_ave<

mark_ave)&

(pos<

*len))

pos++;

for(i=*len-1;

i>

=pos;

i--)

data[i+1]=data[i];

data[pos].no=no;

strcpy(data[pos].name,name);

data[pos].Chinese=Chinese;

data[pos].math=math;

data[pos].English=English;

data[pos].mark_ave=mark_ave;

data[pos].mark_tot=mark_tot;

gotolab;

/*-------------删除子程序--------------*/

voiddelete_item(STUDENT*data,int*len)

intno,i,pos;

pos=0;

输入需要删除的学生的学号,退出当前菜单请输入-1."

while((data[pos].no!

=no)&

*len))pos=pos+1;

if(pos>

=*len){

未找到需要删除的学生"

for(i=pos+1;

i<

*len;

data[i-1]=data[i];

*len=*len-1;

if(*len==0){

printf("

没有任何记录,请按回车键返回."

getchar();

return;

/*---------------统计子程序------------*/

voidstat(STUDENT*data,intlen)

intno_59=0,no_69=0,no_79=0,no_89=0,no_100=0;

if(data[i].mark_ave<

=59)no_59++;

elseif(data[i].mark_ave<

=69)no_69++;

elseif(data[i].mark_ave<

=79)no_79++;

=89)no_89++;

elseno_100++;

分数"

0--59"

60--69"

70--79"

80--89"

90--100"

学生"

%10d"

no_59);

no_69);

no_79);

no_89);

no_100);

按回车键返回"

/*---------------显示信息子程序------------*/

voidpaint()

%55s\n"

武汉理工大学华夏学院学生成绩管理系统\n"

制作者:

武汉理工大学华夏学院软件1121班钟伟\n"

1输入信息2输出信息\n"

3按平均分排序4按学号查找\n"

5插入6按学号删除\n"

7按平均分输出统计信息8保存到文件\n"

0退出\n"

=79;

请输入各操作对应的序号:

voidsave(STUDENT*data,intlen)//将数据保存到文件

FILE*fp;

fp=fopen("

成绩统计表.txt"

"

w"

fprintf(fp,"

%10s\n"

========================================================================\n"

%10.1lf\n"

fclose(fp);

文件已保存到\"

成绩统计表.txt\"

getchar();

/*-----------主程序--------------*/

voidmain()

STUDENTdata[MAXN];

intlen=0;

charctrl_ch;

paint();

%c"

ctrl_ch);

while(ctrl_ch!

='

0'

){

switch(ctrl_ch){

case'

1'

:

input(data,&

len);

break;

2'

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

当前位置:首页 > 医药卫生 > 临床医学

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

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