毕业设计(论文)-基于C++的学生成绩管理系统设计.doc

上传人:李主任 文档编号:3282891 上传时间:2019-08-07 格式:DOC 页数:32 大小:287.52KB
返回 下载 相关 举报
毕业设计(论文)-基于C++的学生成绩管理系统设计.doc_第1页
第1页 / 共32页
毕业设计(论文)-基于C++的学生成绩管理系统设计.doc_第2页
第2页 / 共32页
毕业设计(论文)-基于C++的学生成绩管理系统设计.doc_第3页
第3页 / 共32页
毕业设计(论文)-基于C++的学生成绩管理系统设计.doc_第4页
第4页 / 共32页
毕业设计(论文)-基于C++的学生成绩管理系统设计.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)-基于C++的学生成绩管理系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于C++的学生成绩管理系统设计.doc(32页珍藏版)》请在三一文库上搜索。

1、目录1.概述.31.1项目背景.31.1功能需求分析.3 1.2编写目的.3 1.3开发环境.32.需求分析.42.1功能需求分析.42.2环境需求分析.42.3方法需求分析.43.概要设计.43.1系统功能模块图.43.2设计思想.54.主要代码描述54.1显示主菜单.64.2显示排序方式.64.3输入学生信息.74.4删除学生信息.84.5详细代码叙述.95.调试过程296.结束语31参考文献.32摘要随着计算机技术的发展,可视编程技术占有了越来越重要的作用。Visual C+6.0 是一种功能强大行之有效的可视化编程工具。因此此软件是在Visual C+6.0环境下编写的。对于我们,随着

2、学习的深入,已经大体掌握了Visual C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于Visual C+6.0环境的软件开发,先以字符统计软件作为开始,对Visual C+6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个员工培训系统软件的开发进行的更加顺利。本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。学生成绩管理系统能方便用户迅速、准确处理学生的成绩,得到想要的数据并能将学生的信息以文档保存。本文介绍了简易学生成绩管理系统在Micro

3、soft Visual C+ 6.0环境下的实现过程:系统的分析,功能模块的设计,系统的调试和测试。此系统的主要管理的信息有:学生的班级,学号,姓名和三(可以更改)门课的成绩。本系统的主要功能有学生成绩的添加、删除、插入、显示,能对学生成绩按分数或学号进行排序,可以根据用户的要求按班级,姓名,学号查询学生的成绩信息,计算每位学生的总分和均分,计算所有同学的总分和平均分,分类汇总统计每门课的的总分均分能保存信息到文件以及从文件中读取信息等功能。关键词:项目;学生成绩管理系统;功能模块(函数).Abstract:With the development of computer technology

4、, visual programming technology occupy a more and more important role. Visual c + + 6.0 is a powerful effective Visual programming tools. Therefore this software is in Visual c + + 6.0 environment benefit. For us, with learning deeply, has generally grasped Visual c + + 6.0 environment program devel

5、opment. To make our programming ability elevated to a higher level, deepening of object-oriented programming thinking and problem-solving ability, in the curriculum design of weeks, based on Visual c + + 6.0 environment of software development, first in character statistical software for Visual c +

6、+, as a start 6.0 environment and object-oriented progam design, makingmemories and familiar with on the basis of the next employee training software development of more smoothly. This document from the outline design, detailed design, reference source code and display the program runs the screensho

7、ts aspects detailed introduces the software development process. Students performance management system can convenient user fast, accurate processing students scores, the desired data and students information according to the document preservation. This paper introduces the simple student performanc

8、e management system in Microsoft Visual c + + 6.0 environment of realization process: system analysis, function module design, system commissioning and testing. The systems main management information are: student class, student id, name and three (can change) course grades. The systems main functio

9、n of the students grade add, delete, insert, display, can according to the grades of student achievement or student id sorting, can according to the users requirements according to class, name, student id inquires the student performance information, calculate each students overall score and partiti

10、oning, computing all classmate of total score peace, collect classified statistical divide each course total score alike can store information from the document to the file and read information, and other functions.Keywords: projects;Students performance management system;Function Modle function.1概述

11、本系统是基于VC平台开发的,用C来完成此课题。深入了解数据的组织,存储,处理逻辑及数据的显示。在用C完成课题的过程中去体会数据是如何组织和存储的,数据是如何显示的,数据的处理逻辑是什么。该系统的功能是以菜单方式工作,用户通过选择数字来选择学生信息录入功能-输入学生基本信息,学生信息浏览功能-输出学生的基本信息,查询、排序功能-算法,按学号查询,按姓名查询。学生信息的删除与修改(可选项)的等基本的功能,从而实现用户的想法。在各项基本功能之下我们可以看到各种小的模块来满足用户的各种需求,达到快速方便的效果。1.1 项目背景随着现代科技的发展,互联网时代的到来,电脑给人们带来了很大的便利。学生信息管

12、理系统可以为学校师生提供查询、修改、统计等服务,为学校管理提供了极大的方便。1.2 编写目的通过对学生信息管理系统的编写,实现对学生信息的快速查找,添加,删除统计等功能,同时通过此次课程设计进一步加深对数据处理的各方面理解。1.3 开发环境采用Visual C+6.02.需求分析2.1功能需求分析学生信息包括:姓名,班级,学号,性别,出生年月(其它信息可酌情增加)需要完成的各项功能:(1)添加学生信息:输入并保存学生信息 (2)显示学生信息:出现“显示学生信息子菜单”,供操作者选择 (3)删除学生信息:显示现有的学生信息,让操作者输入要删除学生的学号,将其删除后再次显示其余的学生信息 (4)查

13、询学生信息:出现“查询学生信息子菜单”,供操作者选择 (5)修改学生信息:出现“修改学生信息子菜单”,供操作者选择(6)统计学生信息:统计并显示优、良、中、及格、不及格的人数与比例,以及总人数、及格率、最高分、最低分、平均分(包括一个学生多门课的学生成绩,和某一门课的学生平均成绩)。2.2 环境需求分析:操作系统: Windows 7开发软件: Visual C+ 6.02.3 方法需求分析由于数组存放数据的时候要先确定数组的规模,不能动态的分配内存空间,而单链表是非连续存放的,可以对内存空间进行动态分配,此系统是用单链表完成的。然后定义链表的结点类型为结构就可以实现对学生学号、姓名、成绩、班

14、级等学生信息保存。每次只要返回头指针,就可以对整个链表进行操作,因此选链表来存放学生信息。3概要设计3.1 系统功能模块图系统功能单元: 学生成绩管理系统添加学生信息显示学生信息删除学生信息查询学生信息修改学生信息统计学生信息1.按名字2.按学号3.按英语成绩4.按平均成绩1.按名字2.按学号3.模糊查找1.英语成绩2.java成绩3.数学成绩4.语文成绩5.C成绩5学生成绩统计各个功能单元完成情况良好,均能准确并且快速的实现课题所需功能。3.2 设计思想:(1)学生信息管理系统的功能为显示主要操作页面。学生信息处理功能包括输入学生信息,显示学生的个人信息,学生信息条件查询(分为:按学生姓名进

15、行查询,按学生学号进行查询),更新学生个人信息。(2)学生信息管理系统的功能模块有:系统登陆界面,美观大方,按enter键进入主菜单选择框架界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。1. 添加学生信息。2. 显示学生信息3. 删除学生4. 查询学生信息。5. 修改学生信息6. 统计学生信息0. 退出程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。学生信息管理系统是用面向对象的方法设计,由于数组的存放是连续的,而单链表是非连续存放的,是动态分配内存空间,因此此系统采用单链表来完成。各个功能模块的实现主要转变到对单链表的遍历,添加和删除结点。4主

16、要代码描述 4.1显示主菜单void DisplayMainMenu()/作者:闾泽民printf(系统的主菜单:n);printf(n欢迎来到学生成绩管理系统!在该系统你可以。n);printf(nt1:添加学生信息n);printf(nt2:显示学生信息n);printf(nt3:删除学生信息n);printf(nt4:查询学生信息n);printf(nt5:修改学生信息n);printf(nt6:统计学生信息n);printf(nt0:退出系统n);printf(nt请选择:);4.2显示排序方式void Name(Student stu,int Max)/按名字排序/作者:不详int

17、i,j;Student p;for(i=0;iMax;i+)for(j=0;j0)p=stuj;stuj=stuj+1;stuj+1=p;Display(stu,Max);void Sort(Student stu,int Max)/按学号排序/作者:不详int i,j;Student p;for(i=0;i Max;i+)for(j=0;j stuj+1.num)p=stuj;stuj=stuj+1;stuj+1=p;Display(stu,Max);4.3输入学生信息 int InforInput(Student stu,int id)/学生信息输入/作者:不详 int number,i,

18、m;printf(nt请输入本次录入的学生人数:);scanf(%d,&number);m=number+id;if(numberMaxNum)printf(输入人数太多,请重新输入!n);return (0);for(i=id;inumber+id;i+)printf(nt请输入第%d个学生人数的学号:,i+1);scanf(%d,&stui.num);printf(nt姓名:);scanf(%s,stui.name); printf(nt班级:);scanf(%d,&stui.classes);printf(nt性别: ); scanf(%s,stui.sex);printf(nt请依次输

19、入英语,JAVA,语文,C,数学的成绩:);scanf(%f%f%f%f%f,&stui.mark.English,&stui.mark.Java,&stui.mark.Chinese,&stui.mark.C,&stui.mark.Math);printf(nt你输入的信息是:n);SaveStu(stu,i);for(i=id;inumber+id;i+)printf(nt姓名:%st班级:%dt学号:%dt性别:%sn,stui.name,stui.classes,stui.num,stui.sex);printf(nt学生成绩信息:n);printf(ntEnglish:%.2ftja

20、va:%.2ftChinese:%.2ftC:%.2ftMath:%.2fn,stui.mark.English,stui.mark.Java,stui.mark.Chinese,stui.mark.C,stui.mark.Math); return (i); 4.4 删除学生信息int Delete(Student stu,int Max)/作者:不详int j,i;int findnum;printf(nt请输入要删除的学号:);scanf(%d,&findnum);while(findnum!=0)if(i=FindStuNum(stu,findnum,Max)!=-1)for(j=i;

21、jMax-1;j+)stuj.num=stuj+1.num;strcpy(stuj.name,stuj+1.name);stuj.classes=stuj+1.classes;strcpy(stuj.sex,stuj+1.sex);stuj.mark.English=stuj+1.mark.English;stuj.mark.Java=stuj+1.mark.Java;stuj.mark.Chinese=stuj+1.mark.Chinese;stuj.mark.C=stuj+1.mark.C;stuj.mark.Math=stuj+1.mark.Math;Max=Max-1;SaveStu(

22、stu,Max);printf(nt删除完毕!n);elseprintf(nt没有你输入的学号!n);printf(nt请输入要删除的学号,退出请按0:);scanf(%d,&findnum);Display(stu,Max);return (Max);4.5详细代码描述#include#include#include#include#include#define MaxNum 2000#define FileName Student.txt/定义结构体struct score float English;float Java;float Chinese;float C;float Math;

23、typedef struct STUDENTint num;char name10;int classes;char sex10;struct score mark;Student;/函数void SaveStu(Student stu,int Max);void DisplayStuInf(Student stu,int Max);void DisplayMainMenu();int Delete(Student stu,int Max);int InforInput(Student stu,int id);int Read(Student stu);void Sort(Student st

24、u,int Max);int FindStuNum(Student stu,int findunm,int Max);int FindStuName(Student stu,char findname,int Max);void QueryInformation(Student stu,int Max);/查询学生信息void Edit(Student stu,int Max);void Name(Student stu,int Max);void EnglishCore(Student stu,int Max);void AverageCore(Student stu,int Max);vo

25、id Display(Student stu,int Max);void Count(Student stu,int Max);void English(Student stu,int Max);void Java(Student stu,int Max);void Chinese(Student stu,int Max);void C(Student stu,int Max);void Math(Student stu,int Max);void StuCore(Student stu,int Max);void Count(Student stu,int Max)int select;pr

26、intf(nt1.英语成绩统计nnt2.Java成绩统计nnt3.语文成绩统计nnt4.C成绩统计nnt5.数学成绩统计nnt6.学生成绩统计nnt0.退出nt);printf(nt请选择:);scanf(%d,&select);while(select!=0)switch(select)case 1:English(stu,Max);break;case 2:Java(stu,Max);break;case 3:Chinese(stu,Max);break;case 4:C(stu,Max);break;case 5:Math(stu,Max);break;case 6:StuCore(st

27、u,Max);break;default:printf(nt输入错误!请重新输入!n);printf(nt);scanf(%d,&select);void English(Student stu,int Max)int i,you,liang,zhong,jige,buji;float high,low,sum,n,av;sum=0;you=0;liang=0;zhong=0;jige=0;buji=0;low=stu0.mark.English;high=stu0.mark.English;printf(nt英语成绩统计:n);printf(nt优t良t中t及格t不及格t最高分t最低分t平均

28、分t及格率n);for(i=0;ihigh)high=stui.mark.English;if(stui.mark.English=90)you+;else if(stui.mark.English=80)liang+;else if(stui.mark.English=70)zhong+;else if(stui.mark.English=60)jige+;elsebuji+;n=100*(Max-buji)/(float)Max;av=sum/Max;printf(nt%dt%dt%dt%dt%dt%.2f t%.2f t%.2ft %.1f%n,you,liang,zhong,jige,

29、buji,high,low,av,n);void Java(Student stu,int Max)int i,you,liang,zhong,jige,buji;float high,low,sum,n,av;sum=0;you=0;liang=0;zhong=0;jige=0;buji=0;low=stu0.mark.Java;high=stu0.mark.Java;printf(ntJava成绩统计:n);printf(nt优t良t中t及格t不及格t最高分t最低分t平均分t及格率n);for(i=0;ihigh)high=stui.mark.Java;if(stui.mark.Java=

30、90)you+;else if(stui.mark.Java=80)liang+;else if(stui.mark.Java=70)zhong+;else if(stui.mark.Java=60)jige+;elsebuji+;n=100*(Max-buji)/(float)Max;av=sum/Max;printf(t%dt%dt%dt%dt%dt%.2ft%.2ft%.2ft%.1f%n,you,liang,zhong,jige,buji,high,low,av,n);void Chinese(Student stu,int Max)int i,you,liang,zhong,jige

31、,buji;float high,low,sum,n,av;sum=0;you=0;liang=0;zhong=0;jige=0;buji=0;low=stu0.mark.Chinese;high=stu0.mark.Chinese;printf(nt语文成绩统计:n);printf(nt优t良t中t及格t不及格t最高分t最低分t平均分t及格率n);for(i=0;ihigh)high=stui.mark.Chinese;if(stui.mark.Chinese=90)you+;else if(stui.mark.Chinese=80)liang+;else if(stui.mark.Chin

32、ese=70)zhong+;else if(stui.mark.Chinese=60)jige+;elsebuji+;n=100*(Max-buji)/(float)Max;av=sum/Max;printf(nt%dt%dt%dt%dt%dt%.2ft%.2ft%.2ft%.1f%n,you,liang,zhong,jige,buji,high,low,av,n);void C(Student stu,int Max)int i,you,liang,zhong,jige,buji;float high,low,sum,n,av;sum=0;you=0;liang=0;zhong=0;jige

33、=0;buji=0;low=stu0.mark.C;high=stu0.mark.C;printf(ntC成绩统计:n);printf(nt优t良t中t及格t不及格t最高分t最低分t平均分t及格率n);for(i=0;ihigh)high=stui.mark.C;if(stui.mark.English=90)you+;else if(stui.mark.C=80)liang+;else if(stui.mark.C=70)zhong+;else if(stui.mark.C=60)jige+;elsebuji+;n=100*(Max-buji)/(float)Max;av=sum/Max;p

34、rintf(nt%dt%dt%dt%dt%dt%.2ft%.2ft%.2ft%.1f%n,you,liang,zhong,jige,buji,high,low,av,n);void Math(Student stu,int Max)int i,you,liang,zhong,jige,buji;float high,low,sum,n,av;sum=0;you=0;liang=0;zhong=0;jige=0;buji=0;low=stu0.mark.Math;high=stu0.mark.Math;printf(nt数学成绩统计:n);printf(nt优t良t中t及格t不及格t最高分t最低

35、分t平均分t及格率n);for(i=0;ihigh)high=stui.mark.Math;if(stui.mark.Math=90)you+;else if(stui.mark.Math=80)liang+;else if(stui.mark.Math=70)zhong+;else if(stui.mark.Math=60)jige+;elsebuji+;n=100*(Max-buji)/(float)Max;av=sum/Max;printf(nt%dt%dt%dt%dt%dt%.2ft%.2ft%.2ft%.1f%n,you,liang,zhong,jige,buji,high,low,

36、av,n);void StuCore(Student stu,int Max)int i,j;float sum=0;Student p;float av;printf(nt学生成绩统计:n);for(i=0;iMax;+i)for(j=0;jstuj+1.mark.English+stuj+1.mark.Chinese+stuj+1.mark.Math+stuj+1.mark.C+stuj+1.mark.Java)p=stuj;stuj=stuj+1;stuj+1=p;for(i=0;iMax;i+)av=(stui.mark.English+stui.mark.Chinese+stui.mark.Math+stui.mark.C+stui.mark.Java)/5;printf(nt名字t学号t英语t语文t数学tCtJavat平均分n);printf(nt%st%dt%.2ft%.2ft%.2ft%.2ft%.2ft%.2fn,stui.name,stui.num,stui.mark.English,stui.mark.Chinese,stui.mark.Math,stui.mark.C,stui.mark.Java,av);/显示主菜单void DisplayMainMenu()printf(系统的主菜单:n);printf(n欢迎来

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

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1