班级成绩管理C语言课程设计Word文档格式.docx

上传人:b****6 文档编号:18235192 上传时间:2022-12-14 格式:DOCX 页数:22 大小:215.24KB
下载 相关 举报
班级成绩管理C语言课程设计Word文档格式.docx_第1页
第1页 / 共22页
班级成绩管理C语言课程设计Word文档格式.docx_第2页
第2页 / 共22页
班级成绩管理C语言课程设计Word文档格式.docx_第3页
第3页 / 共22页
班级成绩管理C语言课程设计Word文档格式.docx_第4页
第4页 / 共22页
班级成绩管理C语言课程设计Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

班级成绩管理C语言课程设计Word文档格式.docx

《班级成绩管理C语言课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《班级成绩管理C语言课程设计Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

班级成绩管理C语言课程设计Word文档格式.docx

当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能在人类社会的各个领域并发挥着越来越重要的作用.学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流.

二.开发学生成绩管理的必要性

开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化.现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素.在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替.一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的成绩.

三.课程设计内容

⑴问题描述:

一个有N个学生的班级,每个学生有M门课程。

该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。

⑵功能要求:

①、本系统采用一个结构体数组,每个数据的结构应当包括:

学号、姓名、M门课程名称。

②、本系统显示这样的菜单:

请选择系统功能项:

a、成绩录入

b、成绩显示

c、成绩保存

d、成绩排序

e、成绩修改(要求先输入密码)

f、成绩统计

Ⅰ、显示每门课程成绩最高的学生的基本信息

Ⅱ、显示每门课程的平均成绩

g、退出系统

③、执行一个具体的功能之后,程序将重新显示菜单。

④、将学生成绩保存到文件中。

⑶算法提示:

①、数据结构:

结构体类型数组。

②、数据库结构:

下表构成该系统的基本数据库。

姓名

学号

课程名称1

课程名称2

●●●●●●

char

Char

float

⑷测试数据:

学生人数N=10

课程门数M=4

课程名:

数学、语文、英语、政治

⑸其它

该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。

四.课程设计要求及分组安排。

1.课程设计要求

1).设计正确,方案合理。

2).界面友好,使用方便。

3).程序精炼,结构清晰。

4).设计报告5000字以上,含程序设计说明、用户使用说明,系统的功能框图、流程图、源程序清单等。

5).上机演示。

6).每个学生在规定的时间内独自完成相关课题的C源程序编写,调整和运行。

源程序及编译生成各文件均保存在软盘中;

7).实际操作过程中遇到的问题及解决方法:

设计总结及心得体会.

8).按任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。

并用A4的复印纸打印并装订。

2.分组及安排

所选题目(共8题)根据学生学号顺序选课题号,四个人一道题,相邻四个学号的同学选同一道题,32号以后的同学按学号每人选一题。

如你的学号为15,则所选题目号为:

第四题。

3.成绩评定

程序设计方案是否合理;

程序设计是否正确;

调试结果;

设计说明书的质量高低;

答辩时回答问题情况;

课程设计周表现情况;

总评成绩记入“课程设计成绩评分表”。

五.进度安排

第一周星期四:

课题讲解,查阅资料。

第二周星期一:

总体设计,详细设计。

星期二:

编程,上机调试,修改程序。

星期三:

上机调试,完善程序。

星期四:

星期五:

答辩。

星期六—星期天:

撰写课程设计报告。

第二章:

系统需求分析

1.程序的功能:

对一个有N个学生的班级,每个学生有M门课程。

本系统采用一个包含N个结构的数组,每个数据结构应当包括:

学号、姓名、M个课程名称。

2.输入输出要求:

在菜单选项中1-7,选择功能项,进行对应选项的函数调用.

输入1,输入学生的基本信息存入磁盘文件中;

输入2,输出已存盘的学生信息;

输入3,输出用户所要选择科目的提问,输入科目后输出该科目一排好的学生成绩;

输入4,修改功能,输入密码.错误输出是否继续输入密码.正确则逐个输出是否想要修改学生信息;

输入5,输出三项功能的介绍,输入你的选择后输出实现的结果;

每执行一个具体的程序后都要重新显示菜单。

第三章:

系统概要设计

1.程序的模块组成

第一个模块:

先定义好一些必要的全局变量以及调用的函数和结构体数组。

第二个模块:

设计一个菜单函数menu();

实现能供用户选择功能项。

第三个模块:

用enter()函数实现成绩的输入。

第四个模块:

用save()函数实现成绩的保存。

第五个模块:

用print()函数实现成绩输出。

第六个模块:

用cort()函数实现成绩排序功能。

第七个模块:

用modify()函数实现成绩修改功能。

第八个模块:

用count()函数实现成绩统计功能。

2.学生信息结构数组

structstu

{

charname[20];

intnum;

intscore[M];

};

3.各个程序的功能介绍

1:

为便于用户使用,先定义一个常数N表示人数,学生信息的结构体数组,以及调用功能项的函数。

2:

在menu()函数中,用switch来选择要执行的功能项用do…while实现每种具体功能后能返回菜单。

3:

Enter()函数,用scanf依次输入学生信息,在输入多门成绩成绩时,用for循环来实现,结尾调用save()函数保存。

4:

Print()函数中为使界面美观对学生成绩用%5d输出,且用换行实现,学生信息整齐排列。

5:

Save()函数使用文件保存。

6:

Cort()函数先定义choice1,输出想要排序的科目的序号,用选择排序法实现函数学生成绩的排序。

7:

Modify()函数,先定义好一个密码以及flag=0;

如果输入的密码错误则flag=1,用do..while实现是否重新输入密码,密码准确后调用modi()函数,实现修改功能。

8:

Count()函数用menu1函数实现一个菜单功能。

用switch实现,用户选择想执行的功能,从而调用Show1()Show2()Show3();

第四章:

系统详细设计

1.总流程图

2.统计函数流程图

第五章:

测试

1.系统调试

1:

在enter()函数中对学生成绩的输入用scanf(“%d”,s);

当输入一门成绩后就会跳回,使接下来的程序无法运行,改为for(j=1;

j<

=M;

j++)scanf(“%d”,&

s[i].score[j]);

将错误解决.

2:

在enter函数中,输入姓名用scanf(“%s”,&

s[i].name);

错误,在scanf函数中的输入项如果是字符数组名代表该数组的起始地址.则应改为scanf(“%d”,s[i].name);

在运行print()函数时,第四门课显示出来的分数并非输入项:

错误,在定义时将j=1,应改为j=0。

学生成绩定义为浮点型,但与scanf连接不起来。

是由于所使用的系统不支持该项操作。

在count()函数中,show3();

输出的人数比实际的多一人,因为b++:

在循环结束之后会自增一次,则比实际的大一。

2.结果分析

为了使调试程序简便,先定义班级的人数N为3人,编译连接后,显示出菜单桌面,先输入学生成绩保存起来.

选择2.在用循环输出学生的基本信息的最后加printf(“\n”);

则输出学生的基本信息是每行显示一位同学的信息.

选择5.修改函数中用getchar()来覆盖原有的,则就可输出修改的信息.

选择6.用一个选择菜单

intmenu1()

intchoice1;

printf("

\n*******\n"

);

xianshimeikechengjizuigaodexueshengxinxi\n"

xianshimeikepingjunchengji\n"

xianshichaogoupingjunchengjiderenshu\n"

quit\n"

********\n"

}

选择<

1>

.输入选择的科目用标记法找出成绩最高的的学生则输出其基本信息.

2>

.用for循环,先求出了每门的总成绩再除以人数的到平均成绩用一个数组接收.再用循环则的到结果.

3>

.先定义了一个数组b[M].用循环如果出现超过平均成绩的人就自增一次,接收到b[M]中,用循环输出b[M]则得到每门超过平均成绩的人数.

在modify()函数中,当输入一个错误的密码时会出现死循环,因为跳出的位置错误了

第六章:

该系统使用说明

1.运行时进入主界面,系统根据输入的数字选项来调用相应的函数。

主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。

以下为该介面;

2.当录入完成输入显示学生成绩功能时,运行结果如下图:

3.当输入输入成绩统计功能时,运行结果如下图:

3.成绩修改时需要输入密码才能进行,密码错误时不能进行该操作,只有输入正确的密码才能运行,运行结果如下图:

第七章:

总结

不经一番寒彻骨,哪得梅花扑鼻香。

一周的C语言课程设计已接近尾声了,现在回想起来真是五味俱全,从开

始的懵懂无知到现在做出一本挺有厚度的资料,我不但实践了课本的知识,还编出小程序,虽然很多人帮了我的忙,仍旧感觉自己对C语言有了深入的了解,还是有所成长,有所收获,在实践中,自己编程常会犯错误,并总结一些克服缺点的方法。

深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。

只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。

在这段时间里,我门匆匆忙忙为了它准备了很多,其中不免有叹息声,但是总的来说让我么学到了很多,也懂得了很多,不仅在知识方面,还在有人的生活态度,目标上。

这次的C语言课程设计充分展示了C的魅力,用一些小小的实现合成一个系统从而融入到生活中解决实际问题。

同时也教会了我应站在用户的角度去设计程序。

在此次设计过程中必不可少的出现了很多问题,整体规划,模块与模块之间的调用与划分,标识符的使用。

单词的拼写错误,结构体数组的使用,正确的使用循环的限制条件….。

这些问题大多是因为平时上课很少听讲的原因,以至于很多概念混淆不清。

这次的课程设计让我看到自己对C语言研究地少之又少。

这次的班级成绩管理系统仍旧存在着不足。

记得开始课设的第一天,我糊里糊涂地在机房呆了一个上午,对老师要求做的课程设计束手无策,上网搜了几个,但觉得没点意思,最后还是没有用。

但相对于别人的做的系统,我的好像简单多了。

但后来还是不得不去看书,因为很多东西还牛毛都不知道。

比如,做这个课程设计时候,最好使用链表,而链表我们还没有深入去熟悉它,在说这个课程设计牵涉到前面我们学过的所有内容,如,一些基本函数的运用,函数的调用及指针,结构体。

内容多而复杂,如果没有对教材有个很好的了解掌握,是不可能篇好这个程序的。

我还在把书本重新温习了一遍,对照程序一一翻书,试图找到一中解释来说明程序当中一些函数的作用和结构。

接下来的一段时间里对这段程序进行了修改,经过东凑西凑,拼拼剪剪,终于可以在电脑上运行了,但是它的功能不是很完善,需要进一步完善。

后来怀着疑问去询问老师才发现其实很多问题都想比较简单的,比如在运行程序时发现无论我怎么输入成绩,第四门课的成绩都与我输入的分数不同,自己也尝试用很多方法去解决,最终不了了之。

同学看过以后告诉我是我在定义的时候把初始值定义错了。

在修该以后,再次运行便没看见以前的错误了。

后来有用这种方法把后面的两个警告解决了一个。

在这个过程中,也试图自己独立完成这个课程,偶尔发现书本上第11章节里面,有介绍链表的使用,而且书本上关于这个课程的一些基本函数功能在本章节都有说明,比如,链表的创建,节点的插入,删除,一些基本信息的修改都有。

最终完成的课程的设计,马马虎虎的,完成的,但是还是受益匪浅。

其中老

师与同学的教导让我刻苦铭心。

不管其结果怎么样,但至少这个过程,让我们明白了,懂得了很多。

虽然有点挫折很艰辛在里面,但是那都是短暂的,美丽的,它教会了我们不经过自己的努力,是达不到预期的结果的,不经过自己的实践操作,是体验不到其中的美妙的。

不仅如此,还给了我们一个警告,对待学习不可马马虎虎,否则完成不了应有的任务,得不到理想的结果,半途而废是失败的首要原因,不要什么事情都觉得满不在乎,踏踏实实的学习,踏踏实实的工作,拥有积极乐观的态度去应对一切挫折,最终会让你走想成功的前沿。

因为:

“胜利永远是属于永不放弃的人!

附录

1.参考文献

《C程序设计(第三版)》谭浩强著清华大学出版社

《C语言程序设计实用指南》谭浩强著清华大学出版社

《C语言大学实用教程学习指导》苏小红著电子工业出版社

2.源代码

#include<

stdio.h>

/*I/O函数*/

string.h>

/*字符串函数*/

#defineM4/*课程数*/

#defineNUM3/*人数*/

#defineNULL0

#include<

intavar[M];

structstu

charname[20];

voidenter(structstus[],intn);

/*进入*/

voidprint(structstus[],intn);

/*输入文件*/

voidsave(structstus[],intn);

/*保存文件*/

voidsort(structstus[],intn);

/*排序*/

voidmodify(structstus[],intn);

/*修改*/

voidcount(structstus[],intn);

/*统计*/

intmenu();

voidmain()

voidclrscr();

structstustudent[NUM];

for(;

;

switch(menu())

{

case1:

enter(student,NUM);

break;

case2:

print(student,NUM);

case3:

save(student,NUM);

case4:

sort(student,NUM);

case5:

modify(student,NUM);

case6:

count(student,NUM);

case7:

return;

}

intmenu()

intchoice;

\n**************************级成绩管理***************************\n"

1成绩录入\n"

2成绩显示\n"

3成绩保存\n"

4成绩排序\n"

5成绩修改\n"

6成绩统计\n"

7退出系统\n"

学生人数级NUM课程数学0语文1英语2政治3\n"

***************************************************************\n"

do

printf("

\nchoice1-7:

"

scanf("

%d"

&

choice);

while(choice<

1||choice>

7);

returnchoice;

voidenter(structstus[],intn)//成绩录入

charc;

inti=0;

intj;

do

pleaseenterthemessage:

\n"

getchar();

entername:

%s"

s[i].name);

enternum:

s[i].num);

enterscore:

for(j=0;

M;

j++)

按Y继续录入,按N结束录入!

%c"

c);

if(c!

='

Y'

&

c!

y'

)//可以选择是否继续录入

break;

++i;

}while(i!

=n);

voidsave(structstus[],intn)//文件存储数据

FILE*fp;

inti;

charsave[20];

enterthefilename:

save);

/*输入选择项*/

if((fp=fopen("

stu-list"

"

wb"

))==NULL)

printf("

cannotopenfile\n"

return;

else

for(i=0;

i<

n;

i++)

if(fwrite(&

s[i],sizeof(structstu),1,fp)!

=1);

filewriteerror\n"

fclose(fp);

success\n"

voidprint(structstus[],intn)//成绩显示

inti,j;

for(i=0;

{

数学语文英语政治\n"

s[i].num);

%5d"

s[i].score[j]);

voidsort(structstus[],intn)/*排序*/

inti,j,min,temp,k;

pleasechoicesubject1-4:

k);

n-1;

min=i;

for(j=i+1;

if(s[min].score[k]>

s[j].score[k])

{

temp=s[min].score[k];

s[min].score[k]=s[j].score[k];

s[j].score[k]=temp;

}

\nThesortednumbers:

s[i].score[k]);

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

当前位置:首页 > PPT模板 > 动态背景

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

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