毕业设计C语言学生成绩管理系统设计与实现.docx
- 文档编号:8134947
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:26
- 大小:28.13KB
毕业设计C语言学生成绩管理系统设计与实现.docx
《毕业设计C语言学生成绩管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计C语言学生成绩管理系统设计与实现.docx(26页珍藏版)》请在冰豆网上搜索。
毕业设计C语言学生成绩管理系统设计与实现
C语言学生成绩管理系统设计与实现
摘要:
本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。
开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。
目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。
因此,开发一套适和大众的、兼容性好的系统是很有必要的。
本系统在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。
在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。
本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍
【关键词】成绩管理成绩查询C语言面向过程
WiththeimplementationofClanguagestudentachievementmanagementsystemdesign
Abstract:
Thissystemaccordingtothedevelopmentrequirementsaremainlyappliedineducationsystemofeducation,thedailyworkofthedigitalarchivesmanagementofstudentperformance.Thissystemcanmakethecollegedevelopmentstafftoreducetheworkingpressure,educationalandteachingtothevariousservicesandinformationmanagement,alsocanreducetheuseofforce,acceleratequeryspeed,strengthenmanagement,aswellasthenationaldepartmentsaboutthepaceofnormalization,makeeachmanagementstandardized.
Atpresent,theschoolworkmultifarious,materialmore,thoughvariousmanagementinformationsystemhasenteredtheuniversity,buthasnotbeenpopular,andforstudents'performancemanagement,ithasbeenacompleteandunifiedsystem.Therefore,thedevelopmentofasuitableandthepopulace,compatibilitygoodsystemisverynecessary.
Thissystemintheprocessofdevelopment,payattentiontotheoperationofthebusinessprocess,andstrivetosystemofcomprehensive,generalization,makesthissystemnotonlyapplicabletoaeducationinstitutions.Onthechoiceofmethodsinthedevelopmentlifecyclemethod,amethodofcombiningwiththeprototype,followthesystemresearchandsystematicanalysis,systemdesignandsystemimplementation,fourmainstages,andthespecificdesigninthedesign,takingtheevolutionasusersofprototype,theuseofsystemandthedeepeningunderstandingofapartorafewpartsforanalysis,designandimplementation.Thisthesismainlyfromthesystemanalysis,systemdesignandsystemimplementationanduseetc.
【KeyWords】AchievementManagementAchievementQueryCProgrammingLanguageProcedure-Oriented
目 录
第1章绪论
本章介绍学生学籍管理系统的有关知识、面向过程的编程技术以及应用程序的开发方法和开发过程等基础理论知识,这是深入了解后续内容的必要准备。
1.1学籍管理系统概述
1.1.1管理信息系统的概念
管理信息系统(ManagementInformationSystems,简称MIS),是一个不断发展的新型学科,MIS的定义随着计算机技术和通信技术的进步也在不断更新,在现阶段普遍认为MIS是人为或计算机设备以及其他信息处理手段组成并用于管理信息的系统。
包括以下几个基本概念:
(1)MIS的对象就是信息。
信息是经过加工的对决策者有价值的数据。
信息的主要特征是来源分散,数量庞大。
信息来源于生产第一线、社会环境、市场以及行政管理等部门。
信息具有时间性。
(2)系统是由相互联系、相互作用的若干要素按一定的规则组成并具有一定功能的整体。
系统由输入、处理、输出、反馈、控制等五个基本要素组成。
(3)管理信息由信息的采集、信息的传递、信息的储存、信息的加工、信息的维护和信息的使用等五个方面组成。
MIS包括计算机、网络通信设备等硬件成分,也包括操作系统、应用软件包等软件成分,并随着计算机技术和通信技术的迅速发展还会出现更多的内容。
1.1.2课题背景
该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理.
目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作
1.1.3目的背景与意义
学生信息管理系统是一个教育单位不可缺少的部分。
一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:
效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:
检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
1.1.3项目开发的目标
建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。
帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。
1.1.4开发工具的选择
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。
目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:
Microsoft公司的Visual C++6.0,TurboC等。
本系统在Microsoft Visual C++6.0下开发。
1.2面向过程编程的基础知识
1.2.1面向过程基本概念
面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.对比较面向对象,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.
1.2.2使用面向过程的C语言简介
1.C语言
C言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。
它由美国贝尔研究所的D.M.Ritchie于1972年推出。
1978后,C语言已先后被移植到大、中、小及微型机上。
C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。
许多著名的系统软件,如DBASEⅣ都是由C语言编写的。
用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,像PC-DOS、WORDSTAR等就是用这种方法编写的。
2.C语言特点:
C语言是一种成功的系统描述语言,用C语言开发的UNIX操作系统就是一个成功的范例;同时C语言又是一种通用的程序设计语言,在国际上广泛流行。
世界上很多著名的计算公司都成功的开发了不同版本的C语言,很多优秀的应用程序也都使用C语言开发的,它是一种很有发展前途的高级程序设计语言。
1.C是中级语言。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.C是结构式语言。
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全。
具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
另外C语言也具有强大的图形功能,支持多种显示器和驱动器。
而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4.C语言适用范围大。
适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。
它是数值计算的高级语言。
5.C语言文件由数据序列组成,可以构成二进制文件或文本文件 常用的C语言IDE(集成开发环境)有MicrosoftVisualC++,Dev-C++,Code:
:
Blocks,BorlandC++,WatcomC++,BorlandC++Builder,GNUDJGPPC++,Lccwin32CCompiler3.1,HighC,TurboC,C-Free,win-tc等等…… 对于一个初学者,MicrosoftVisualC++是一个比较好的软件。
界面友好,功能强大,调试也很方便。
第2章需求分析
学籍管理系统应具有如下
1、能录入学生的基本信息,包括学号、姓名、专业、年级、性别和出生日期信息,保存到结构体数组中。
2、能根据输入的学号查找学生,进行信息的修改。
3、能根据输入的学号从结构体数组中删除学生的记录。
4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
2.1目标
(1)掌握和利用C语言进行程序设计的能力。
(2)理解和运用结构化程序设计的思想和方法。
(3)掌握开发一个小型实用系统的基本方法。
(4)学会调试一个较长程序的基本方法。
(5)掌握书写程序设计开发文档的能力(书写课程设计报告)。
2.2要求
(1)用C语言实现系统。
(2)利用结构体链表实现学生成绩的数据结构设计。
(3)系统具有增加、查询、插入、排序等基本功能。
(4)系统的各个功能模块要求用文件的形式实现。
(5)完成设计任务并书写课程设计报告。
(6)将学生成绩信息存在文件中。
2.3学生成绩管理系统的功能
1--按学号查询学生信息
2--按姓名查询学生信息
3--显示所有学生信息
4--根据学号、姓名、单科成绩进行排序
5--添加学生信息
6--删除学生信息
7--修改学生信息
8--保存学生信息文件
9--读入学生信息文件
0--退出
此项目主要考察我们对结构体、指针、文件的操作,以及C语言算法的掌握,所以完成此题目要求较高的设计能力,尤其是要有大局意识。
如何调试程序也非常重要,通过这个程序可学到以前调试程序没有的经验。
第3章概要设计
将学生成绩管理系统划分为以下几个模块
3.1主模块
功能概述:
1.提供系统菜单的显示功能
2.提供打开文件,并导入文件记录的功能
3.提供保存文件信息的功能
3.2添加学生信息
功能:
1.根据输入的相关信息,将学生信息添加到单向链表中
3.3显示学生信息
功能:
1.将链表中的所有信息完全显示
3.4排序学生信息
功能:
(排序分为升序和降序两种排序方式)
1.根据学号进行排序
2.根据姓名进行排序
3.根据单科成绩进行排序
4.根据平均分进行排序
3.5查找学生信息
功能:
(查找学生信息包含根据输入学号进行查找和根据输入的姓名进行查找两种方式,并根据返回的学生信息,进行以下三种操作)
1.查询学生信息,直接返回找到的信息
2.修改学生信息,根据找到的学生信息,对其进行修改
3.删除学生信息,根据找到的相关学生信息,从链表中删除这条记录
第4章详细设计与实现
程序设计中用到的学生信息结构体类型
在单独的头文件stu.h中定义相应的数据结构体类型,全局变量,和
宏名:
LEN记录结构体的大小
定义学生结构体STU,包含相关的学生信息
structstudent
{
charnumber[10];
charname[10];
charsex;
intscore[5];//用于记录5门课程的成绩
floataverage;//平均分
structstudent*next;//下个结点
};
typedefstructstudentSTU;
定义*head全局指针,作为链表的头结点
staticSTU*head=NULL;//全局指针
定义fomat字符串变量,作为录入文件的数据格式
char*fomat="%-10s%-10s%2c%4d%4d%4d%4d%4d%5.1f\n";
定义shouldsave全局变量,判断是否需要保存资料(0为不保存,1为保存)
intshouldsave=0;
各相关函数的声明
externvoidappend_record();//添加记录
externvoidshow_record();//输出全部记录
externvoiddelete_record();//删除记录
externvoidchange_record();//更改记录
externvoidinquire_record();//查询记录
externvoidsort_record();//记录排序
第5章流程图
图1.1
第6章源代码
6.1数据结构与函数声明的头文件
stu.h头文件:
#ifndefSTU_H
#defineSTU_H
#include
#include
#include
#defineLENsizeof(STU)//宏,结构体的大小
structstudent
{
charnumber[10];
charname[10];
charsex;
intscore[5];//用于记录5门课程的成绩
floataverage;//平均分
structstudent*next;//下个结点
};
typedefstructstudentSTU;
staticSTU*head=NULL;//全局指针,作为链表的头结点
char*fomat="%-10s%-10s%2c%4d%4d%4d%4d%4d%5.1f\n";//录入文件的数据格式
intshouldsave=0;//判断是否需要保存资料的全局变量
externvoidappend_record();//添加记录
externvoidshow_record();//输出全部记录
externvoiddelete_record();//删除记录
externvoidchange_record();//更改记录
externvoidinquire_record();//查询记录
externvoidsort_record();//记录排序
#endif
6.2主控程序模块
main.c源文件:
#include"stu.h"
#include"sort.c"
#include"show.c"
#include"append.c"
#include"find.c"
voidmain(void)
{
voidsave();
voidmenu();
voidopenfile();//用于打开文件,形成链表
intsel;
openfile();//用于打开文件信息,输出到链表里
while
(1)
{
menu();
fflush(stdin);
scanf("%d",&sel);//读取输入的sel
switch(sel)
{
case0:
save();break;
case1:
append_record();break;/*增加学生*/
case2:
show_record();break;/*显示学生*/
case3:
delete_record();break;/*删除学生*/
case4:
change_record();break;/*修改学生*/
case5:
inquire_record();break;/*查询学生*/
case6:
sort_record();break;//排序
default:
printf("\n输入无效,请重新输入\n");break;
}
}
}
voidsave()
{
STU*p=NULL;
FILE*fp;
char*filename="E:
\\student.txt";
staticintcount=0;
chary_n;
if(shouldsave)
{
printf("\n资料已更改,是否保存?
(yorn)\n");
fflush(stdin);
scanf("%c",&y_n);
if(y_n!
='y'&&y_n!
='Y')
{
printf("\n.......%c........\n资料未保存\n",y_n);
//释放空间
for(;head->next!
=NULL;)
{
p=head->next;
head->next=head->next->next;
free(p);
}
free(head);
exit(0);
}
if(head->next==NULL)
{
printf("\n记录为空\n");
return;
}else
{
p=head->next;
}
if((fp=fopen(filename,"w"))==NULL)
{
printf("\n文件不能打开\n");
return;
}
while(p!
=NULL)
{
fprintf(fp,fomat,p->number,p->name,p->sex,p->score[0],p->score[1],p->score[2],p->score[3],p->score[4],p->average);
p=p->next;
count++;
}
fclose(fp);
printf("保存完毕,共保存%d条记录,是否继续?
\n",count);
fflush(stdin);
scanf("%c",&y_n);
if(y_n=='y'||y_n=='Y')
return;
else
{
//释放空间
for(;head->next!
=NULL;)
{
p=head->next;
head->next=head->next->next;
free(p);
}
free(head);
printf("\n你已退出系统,再见......\n");
exit(0);
}
}
else
{
printf("\n你已退出系统,再见......\n");
exit(0);
}
}
voidmenu()
{
printf("\n****************************\n");
printf("1.添加学生\n");
printf("2.显示学生\n");
printf("3.删除学生\n");
printf("4.修改学生\n");
printf("5,查询学生\n");
printf("6.排序学生\n");
printf("0.退出\n");
printf("******************************\n");
printf("请选择");
}
voidopenfile()//用于打开文件,形成链表
{
FILE*fp;
STU*p1=NULL,*p2=NULL;//,*temp=NULL;
chary_n;
staticint
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 语言 学生 成绩管理系统 设计 实现