下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、优秀论文审核通过未经允许切勿外传C 语言学生成绩管理系统设计与实现摘 要:本系统依据开发要求主要应用于教育系统, 完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。目前,学校工作繁杂、 资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。本系统在开发过程中,注意使其符合操作的业务流程,并力求
2、系统的全面性、通用性,使得本系统不只适用于一家教育机构。在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计, 而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍【关键词】成绩管理成绩查询C 语言面向过程With the implementation of C language studentachievement management system designAbstract: This
3、 system according to the development requirements are mainly applied in education system of education, the daily work of the digital archives management of student performance. This system can make the college development staff to reduce the working pressure, educational and teaching to the various
4、services and information management, also can reduce the use of force, accelerate query speed, strengthen management, as well as the national departments about the pace of normalization, make each management standardized.At present, the school work multifarious, material more, though various managem
5、ent information system popular, and for students performance management, it a complete and unified system. Therefore, the development of a suitable and the populace, compatibility good system is very necessary.This system in the process of development, pay attention to the operation of the businessp
6、rocess,and strive to system of comprehensive, generalization, makes this system not only applicable to a education institutions. On the choice of methods in the development life cycle method, a method of combining with the prototype, follow the system research and systematic analysis, system design
7、and system implementation, four main stages, and the specific design in the design, taking the evolution as users of prototype, the use of system and the deepening understanding of a part ora few parts for analysis, design and implementation. This thesis mainly from the system analysis, system desig
8、n and system implementation and use etc.【 Key Words】Achievement ManagementAchievement QueryCProgramming Language Procedure-Oriented目录第 1 章绪 论 .1.1学籍管理系统概述 .1.2面向过程编程的基础知识 .第 2 章需求分析 .2.1目标 .2.2要求 .2.3学生成绩管理系统的功能 .第 3 章概要设计 .3.1主模块 .3.2添加学生信息 .3.3显示学生信息 .3.4排序学生信息 .3.5查找学生信息 .第 4 章 详细设计与实现第 5 章 流程图 .
9、第 6 章 源代码 .6.1数据结构与函数声明的头文件.6.2主控程序模块 .6.3添加学生模块 .6.4显示学生模块 .6.5对学生进行排序模块 .6.6查找学生模块 .致谢 .参 考 文 献 .第1章绪论本章介绍学生学籍管理系统的有关知识、面向过程的编程技术以及应用程序的开发方法和开发过程等基础理论知识,这是深入了解后续内容的必要准备。1.1学籍管理系统概述1.1.1管理信息系统的概念管理信息系统( Management Information Systems,简称 MIS ),是一个不断发展的新型学科, MIS 的定义随着计算机技术和通信技术的进步也在不断更新,在现阶段普遍认为MIS 是
10、人为或计算机设备以及其他信息处理手段组成并用于管理信息的系统。包括以下几个基本概念:(1) MIS 的对象就是信息。信息是经过加工的对决策者有价值的数据。信息的主要特征是来源分散,数量庞大。信息来源于生产第一线、社会环境、市场以及行政管理等部门。信息具有时间性。(2) 系统是由相互联系、 相互作用的若干要素按一定的规则组成并具有一定功能的整体。 系统由输入、处理、输出、反馈、控制等五个基本要素组成。(3) 管理信息由信息的采集、信息的传递、信息的储存、信息的加工、信息的维护和信息的使用等五个方面组成。MIS 包括计算机、网络通信设备等硬件成分,也包括操作系统、应用软件包等软件成分,并随着计算机
11、技术和通信技术的迅速发展还会出现更多的内容。1.1.2课题背景该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增 ,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位 (包括学校 ,学院等等 )的学生信息的管理 .目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展 ,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了 ,但功能齐全且易于操作1.1.3目的背景与意义学生信息管理系统是一个教育单位
12、不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点 ,如:效率低、保密性差 ,人工的大量浪费;另外时间一长,将产生大量的文件和数据 ,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识 ,它已进入人类社会的各个领域并发挥着来越重要的作用。作为计算机应用的一部分,使用计算机对学校的各类信息进
13、行管理,具有手工管理所无法比拟的优点.例如 :检索迅速、查询方便、 效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率 ,也是一个单位科学化、 正规化管理 ,与世界接轨的重要条件。1.1.3项目开发的目标建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。1.1.4开发工具的选择现在,市场上可以选购的应用开发产品很多,流行的也有数十种。 目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产 品 有 : Microsoft公
14、司 的Visual C+6.0,TurboC等 。 本 系 统 在Microsoft Visual C+6.0 下开发。1.2面向过程编程的基础知识1.2.1面向过程基本概念面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想 .可以说面向过程是一种基础的方法 .它考虑的是实际的实现 .一般的面向过程是从上往下步步求精 .所以面向过程最重要的是模块化的思想方法 .对比较面向对象 ,面向对象的方法主要是把事物给对象化 , 对象包括属性与行为 .当程序规模不是很大时 ,面向过程的方法还会体现出一种优势 ,因为程序的流程很清楚 ,按着模块与函数的方法可以很好的组织.1.2
15、.2使用面向过程的C 语言简介1. C 语言C 言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所的D.M.Ritchie 于 1972 年推出。 1978 后, C 语言已先后被移植到大、中、小及微型机上。C 语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件, 如 DBASE 都是由 C 语言编写的。用 C 语言加上一些汇编语言子程序, 就更能显示 C 语言的优势了,像 PC-DOS 、WORDSTAR 等就是用这种方法编写的。2. C 语言特点:C 语言是一种成功的系统描述语言,用
16、C 语言开发的 UNIX 操作系统就是一个成功的范例 ;同时 C 语言又是一种通用的程序设计语言, 在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不同版本的C 语言,很多优秀的应用程序也都使用C 语言开发的, 它是一种很有发展前途的高级程序设计语言。1. C 是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、 字节和地址进行操作, 而这三者是计算机最基本的工作单元。2.C 是结构式语言。 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C
17、 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。3.C 语言功能齐全。 具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。4. C 语言适用范围大。适合于多种操作系统, 如 Windows、DOS、UNIX等等;也适用于多种机型。C 语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言, 有一些大型应用软件也是用C 语言编写的。C 语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因
18、此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。5.C 语言文件由数据序列组成,可以构成二进制文件或文本文件常用的 C 语言 IDE (集成开发环境)有Microsoft Visual C+,Dev-C+ ,Code:Blocks,Borland C+,Watcom C+ ,Borland C+ Builder ,GNUDJGPP C+ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc等等 对于一个初学者, Microsoft Visual C+ 是一个比较好的软件。界面友好,功能强大,调试也很方便。第2章需求分析学籍
19、管理系统应具有如下1、能录入学生的基本信息,包括学号、姓名、专业、年级、性别和出生日期信息,保存到结构体数组中。2、能根据输入的学号查找学生,进行信息的修改。3、能根据输入的学号从结构体数组中删除学生的记录。4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。5、能在屏幕上以列表的方式输出所有学生的信息。2.1目标(1)掌握和利用 C 语言进行程序设计的能力。(2)理解和运用结构化程序设计的思想和方法。(3)掌握开发一个小型实用系统的基本方法。(4)学会调试一个较长程序的基本方法。(5)掌握书写程序设计开发文档的能力(书写课程设计报告)。2.2要求(1)用 C 语言实现系统。(
20、2)利用结构体链表实现学生成绩的数据结构设计。(3)系统具有增加、查询、插入、排序等基本功能。(4)系统的各个功能模块要求用文件的形式实现。(5)完成设计任务并书写课程设计报告。(6)将学生成绩信息存在文件中。2.3学生成绩管理系统的功能1-按学号查询学生信息2-按姓名查询学生信息3-显示所有学生信息4-根据学号、姓名、单科成绩进行排序5-添加学生信息6-删除学生信息7-修改学生信息8-保存学生信息文件9-读入学生信息文件0-退出此项目主要考察我们对结构体、指针、文件的操作,以及C 语言算法的掌握,所以完成此题目要求较高的设计能力,尤其是要有大局意识。如何调试程序也非常重要,通过这个程序可学到
21、以前调试程序没有的经验。第3章概要设计将学生成绩管理系统划分为以下几个模块3.1主模块功能概述:1. 提供系统菜单的显示功能2. 提供打开文件,并导入文件记录的功能3. 提供保存文件信息的功能3.2添加学生信息功能:1 根据输入的相关信息,将学生信息添加到单向链表中3.3显示学生信息功能:1. 将链表中的所有信息完全显示3.4排序学生信息功能:(排序分为升序和降序两种排序方式)1. 根据学号进行排序2. 根据姓名进行排序3. 根据单科成绩进行排序4. 根据平均分进行排序3.5查找学生信息功能:(查找学生信息包含根据输入学号进行查找和根据输入的姓名进行查找两种方式,并根据返回的学生信息,进行以下
22、三种操作)1. 查询学生信息,直接返回找到的信息2. 修改学生信息,根据找到的学生信息,对其进行修改3. 删除学生信息,根据找到的相关学生信息,从链表中删除这条记录第 4 章详细设计与实现程序设计中用到的学生信息结构体类型在单独的头文件 stu.;定义 shouldsave全局变量,判断是否需要保存资料(0 为不保存, 1 为保存)int shouldsave = 0;各相关函数的声明extern void append_record(); 添加记录 extern void show_record(); 输出全部记录 extern void delete_record(); 删除记录 exte
23、rn void change_record(); 更改记录 extern void inquire_record(); 查询记录 extern void sort_record(); 记录排序第 5章流程图文件数据输入C语言学籍管理系统文件数据输出录添排修显查退系加改示入找统序出学学学学学主生生生生生系菜信信信信信单息息息息统息按按按学号查询按姓名查询按按各平学姓科均号名成分排排绩查删修排序序排序询除改序学学学生生生信信信息息息图 1.1第 6章源代码6.1数据结构与函数声明的头文件stu.;录入文件的数据格式int shouldsave = 0;判断是否需要保存资料的全局变量extern v
24、oid append_record(); 添加记录 extern void show_record(); 输出全部记录 extern void delete_record(); 删除记录 extern void change_record(); 更改记录 extern void inquire_record(); 查询记录 extern void sort_record(); 记录排序 #endif6.2主控程序模块main.c 源文件:#includestu.(void)void save();void menu();void openfile(); 用于打开文件 ,形成链表int sel;
25、openfile(); 用于打开文件信息,输出到链表里while(1)menu();fflush(stdin);scanf(%d,&sel); 读取输入的 selswitch(sel)case 0:save();break;case 1:append_record();break; * 增加学生*case 2:show_record();break;* 显示学生*case 3:delete_record();break;* 删除学生*case 4:change_record();break;* 修改学生 * case 5:inquire_record();break;* 查询学生 * case
26、 6:sort_record();break;排序default: printf(n 输入无效,请重新输入 n);break;void save()STU *p=NULL;FILE *fp;char *filename=E:student.txt;static int count=0;char y_n;if(shouldsave)printf(n 资料已更改,是否保存? (y or n)n); fflush(stdin);scanf(%c,&y_n);if(y_n!=y & y_n!=Y)printf(n.%c.n 资料未保存 n,y_n);释放空间for(;);return;elsep=(f
27、ilename,w)=NULL)printf(n 文件不能打开 n);return;while(p!=NULL)fprintf(fp,fomat,p-number,p-name,p-sex,p-score0,p-score1,p-sco re2,p-score3,p-score4,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(;);exit(0);elsepr
28、intf(n 你已退出系统,再见 .n);exit(0);void menu()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( 请选择 );void openfile() 用于打开文件 ,形成链表FILE *fp;STU *p1=NULL,*p2=NULL;,*temp=NULL; char y_n;static int count=0
29、; 用于统计记录数char u8IsFileNull;fp=fopen(E:student.txt,r);if(fp=NULL)printf(n= 提示 :文件还不存在,是否创建? (yn)n); scanf(%c,&y_n);if(y_n=y|y_n=Y)fp=fopen(E:student.txt,w);elseprintf(n= 提示 :没有创建文件 .n);exit(0);printf(n= 提示 :创建完成 .n);printf(n= 提示 :文件已经打开 ,正在导入记录 .n););return;rewind(fp);while(!feof(fp)p1=(STU *)malloc(
30、LEN);fscanf(fp,%s %s %c %d %d %d %d %d %fn,p1-number,p1-name, &p1-sex,&p1-score0,&p1-score1,&p1-score2,&p1-score3,&p1 -score4,&p1-average);p1-next=NULL;p2-next=p1;p2=p1;count+;fclose(fp);printf(n=提 示 : 记 录 导 入 完 毕 , 共 导 入 %d条 记录 .n,count);6.3添加学生模块append.c源程序文件:void append_record()STU *p1=NULL,*p2=N
31、ULL; 用 P1 来申请空间, P2 来指向表尾 char y_n=y;int count=0;for(p2=y|y_n=Y)p1=(STU *)malloc(LEN);printf( 请输入学号姓名 性别 语文 数学 英语 计算机C 语言 的信息,以空格分开 n);fflush(stdin);scanf(%s %s %c %d %d %d %d %d,p1-number,p1-name,&(p1-se x),&p1-score0,&p1-score1,&p1-score2,&p1-score3,&p1-score 4);p1-average=(float)(p1-score0+p1-sco
32、re1+p1-score2+p1-score3+p1-score4)5;p1-next=NULL;p2-next=p1;p2=p1;count+;printf(n添加 完成 ,共 添 加 %d条 记录 , 是 否继 续 添 加?YNn,count);shouldsave = 1;fflush(stdin);scanf(%c,&y_n);6.4显示学生模块show.c源程序文件:void show_record()STU *p=NULL;if();for(p=);elseprintf(1: 按学号排序 n);printf(2: 按姓名排序 n);printf(3: 按性别排序n);printf(
33、4: 按语文排序n);printf(5: 按数学排序n);printf(6: 按英语排序n);printf(7: 按计算机排序n);printf(8: 按C 语言排序n);printf(9: 按平均分排序n);printf( 请选择排序关键字和方式,以空格分开为降序 n);fflush(stdin);scanf(%d %d,&sel,&sort);n1为升序,0switch(sel)case 1:for(;);for(q=);scanf(%d,&sel);if( pre;if(sel=1)printf( 请输入学号 n);scanf(%s,number);for(pre= pre;else i
34、f(sel=2)printf( 请输入姓名 n);scanf(%s,name);for(pre= pre;return pre;void inquire_record()查找记录STU *p=find();if(p=NULL)|(p-next=NULL)printf( 没有找到该记录! );elseprintf(n 要查询的记录信息: n 学号 姓名 性别 语文 数学 英语 计算机 C 语言 平均分 n);printf(fomat,p-next-number,p-next-name,p-next-sex,p-next-scor e0,p-next-score1,p-next-score2,p-
35、next-score3,p-next-score 4,p-next-average);void delete_record() 删除记录STU *temp=NULL;STU *p=find();if(p=NULL)|(p-next=NULL)printf( 没有找到该记录! n);elseprintf(n 要删除的记录信息: n 学号 姓名 性别 语文 数学 英语 计算机 C 语言 平均分 n);printf(fomat,p-next-number,p-next-name,p-next-sex,p-ne xt-score0,p-next-score1,p-next-score2,p-next-
36、score3,p-next -score4,p-next-average);temp=p-next;p-next=p-next-next;free(temp);shouldsave = 1;void change_record()更改记录STU *p1=find();if(p1=NULL)|(p1-next=NULL)printf( 没有找到该记录! );elseprintf(n 要修改的记录信息: n 学号 姓名 性别 语文 数学 英语 计算机 C 语言 平均分 n);printf(fomat,p1-next-number,p1-next-name,p1-next-sex,p1-next- score0,p1-next-score1,p1-next-score2,p1-next-score3,p1-nex t-score4,p1-next-average);printf(n请输入学号姓名性别 语文 数学英语 计算机C语言 的信息,以空格分开 n);fflush(stdin);scanf(%s %s %c %d %d %d %d %d,p1-next-number,p1-next-na me,&p1-next-sex,&p1-next-score0,&p1-next-score1,&p1-n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国环保器材设备行业市场前景预测及投资价值评估分析报告
- 2026年中国粮食机行业市场前景预测及投资价值评估分析报告
- 2025重庆市万州区五桥街道办事处招聘非全日制公益性岗位人员2人考试笔试备考试题及答案解析
- 老年医学科长期护理管理指南
- 2025年网络安全技术研发框架合同
- 2026年锦州师范高等专科学校单招职业适应性测试必刷测试卷附答案
- 2026年合肥信息技术职业学院单招职业适应性考试必刷测试卷附答案
- 2026年云南文化艺术职业学院单招职业技能测试必刷测试卷必考题
- 2026年浙江万里学院单招综合素质考试必刷测试卷及答案1套
- 2026年广西理工职业技术学院单招职业倾向性考试必刷测试卷及答案1套
- 关于加强建筑施工从业人员安全生产教育培训工作的通知
- 系统集成测试报告范本
- 2025年金融监管政策解读对金融行业反洗钱工作的影响可行性研究报告
- 2025重庆双福农产品批发市场有限公司招聘综合办公室文员、冻库管理员、招商员等岗位22人考试模拟试题及答案解析
- 2025中国水利水电出版传媒集团有限公司社会招聘10人考试参考试题及答案解析
- 新恒顺交通物流集团招聘信息
- 幼儿园食堂管理汇报
- 浙江安全生产条例培训课件
- 铁路冬季劳动安全培训课件
- 教改课题申报书
- 博物馆人员安全培训课件
评论
0/150
提交评论