欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    软件工程学生成绩管理系统.doc

    • 资源ID:15444       资源大小:523.52KB        全文页数:25页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程学生成绩管理系统.doc

    目录第1章绪论2第2章系统分析32.1 系统目标32.2 功能要求32.3 可行性研究方法32.4 系统可行性分析3第3章需求分析43.1 引言43.2 任务概述43.2.1 编写目的43.2.2 背景43.3 功能需求43.3.1 管理功能局部43.3.1.1 管理员功能43.3.1.2 学生功能43.4 数据流图53.5 学生成绩管理系统逻辑结构图53.6 用例6第4章概要设计8设计目标84.2 编写目的84.3 任务概述84.4 总体设计94.4.1 系统设计思想94.4.2 学生成绩管理系统顺序图104.5 接口设计11第5章详细设计125.1 根本任务125.2 程序流程图125.3 详细设计说明14第六章软件测试16第七章实验结果截图显示18第八章程序源代码20第九章实验总结28第十章参考文献28第1章 绪论随着互联网的开展,利用INTERNET 技术来实现“无纸办公这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和教学结果查询是校园网建设的核心目标和核心价值,本系统立足于校园实际,争取做出一个方便快捷的成绩管理系统,实现成绩信息的管理。该项目主要是服务于学生成绩管理方面,进一步方便教师的工作和学生的成绩查询,从而从侧面达到提高学校的管理质量。它具有使用围广,实用性强,使用简单,所花经费少等优点。主要功能有两个方面:管理员,登陆,进入系统,可以进展管理员操作,进展学生信息与成绩信息的编辑、查询、删除、修改、添加、排序等操作。学生,登陆,进入系统,可以进展查询等操作。软件系统目标:1本系统具有很强的可靠行,可以对录入的学生信息进展效验,对数据进展修改、删除,规定各种权限。2本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。3本系统操作方便、灵活、简单。4本系统可高效、快速的查询到学生的根本信息。第2章 系统分析2.1 系统目标学生用户和管理员用户可以进入不同的管理模块,并且只有密码输入正确才能进入功能模块,学生用户只能查询学生信息,管理员用户可以对学生成绩实行各种操作。2.2 功能要求1. 性能:学生成绩的增加、删除、修改,排序与查询2. 输入:学生管理员密码3. 输出:学生成绩信息4. 根本的数据流程和处理流程:事务事务管理员学生成绩管理系统学生图2-1 根本数据和处理流程5. 安全与要求:登录系统时,需验证密码;不同身份的登录者,具有不同的使用权限。2.3 可行性研究方法主要为对现有成绩管理系统的分析和研究比拟的方法。2.4 系统可行性分析可行性分析是为了去除的了解系统开发是否能够实际进展,是否能够带来一定效益,是否值得实现。因而进展可行性分析是非常必要的,从下面几个方面来进展分析。1. 技术可行性:设置不同权限,提高了数据的安全性。2. 运行可行性:本系统作为一个小型的学生成绩管理系统,所消耗的资源非常的小。 已有软件和硬件配置均能满足需要。3. 经济可行性:服务端与客户端的支出使用原有设备即可。但是对软件有一次性软件费用支出和定期性软件维护支出。软件使用后,能够减少人力的支出和维护。4. 法律可行性:本软件属项目组开发,符合法律的各项规定。5. 使用可行性:软件针对学校以与学院,对使用人员没有特殊限制,管理教师、学生等均可使用。界面友好,操作简单,能够保证大多数用户使用该系统的要求。2.5 结论通过可行性的一系列分析可得出结论,在现有的条件下,系统的开发方案是可行的。开发条件具备,可以开始进展实际开发。第3章 需求分析3.1 引言 随着互联网的开展,利用INTERNET技术来实现“无纸办公这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子设备等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网将设的核心目标和核心价值,本系统立足于校园实际,着眼于未来开展,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面的“软件质量。3.2 任务概述3.2.1 编写目的 解决学校对学生信息进展处理时,对各种数据的需求,并且能够有助于学校方面对学生的管理。主要解决学生系你想查询困难等问题。确定学生信息管理系统功能的需求,数据需求与软、硬件需求。确定学生成绩管理系统所能实现的功能,本系统中主要是对数据进展操作,如学生信息与成绩的增加,删除,修改,查看,排序等功能。3.2.2 背景 这次待开发的系统名称为:学生成绩管理系统 本次项目任务的完成者:瑶、纳、千玲、周石花 用户:管理教师,学生3.3 功能需求3.3.1 管理功能局部 从业务流程图可以看出,学生成绩挂历系统分为大的两个方面:管理员模块,学生模块,其主要管理功能有:3.3.1.1 管理员功能 管理员进入学生成绩管理的主要功能是:实现对学生信息与成绩的添加,删除,修改,查询和排序等根本功能。3.3.1.2 学生功能学生进入学生成绩管理系统的主要功能是:每个学生登录系统后可以查询自己的个人信息以与成绩信息,查询的时候可以通过也可以通过学号查询,同时学生登录时需要密码。3.4 数据流图 图 3-1 数据流顶层图图3-2 数据流细化图3.5 学生成绩管理系统逻辑结构图 用户操作 学生成绩管理系统 业务逻辑 数据存储图3-3 逻辑结构图3.6 用例主要参与者与用例表3-1 表3-1 学生成绩管理系统用例表参与者用例编号用例 管理员1登录2浏览信息3按成绩排序4查询5对学生成绩增、删、改学生1登录2浏览信息3查找成绩 用例图 图3-4 学生成绩系统用例图3.7 类图 图3-5 类图的初步设计第4章 概要设计 概要设计师软件开发过程中的一个阶段就,在这个阶段需要完成一些明确的事情。概要设计阶段的根本目的是回答“概括的说,系统应该如何实现?。通过这个阶段,确定系统的组成模块。本学生成绩管理系统由管理员、学生两个大模块组成。每个模块又由自己的子模块组成。4.2 编写目的基于现在的学生越来越多,教师的工作量越来越大。伴随着网络信息化,学生成绩管理也必须迈进一个更加进步的时代。那就是用网络来管理学生成绩,实现一个电子管理学生成绩的平台,减轻教师的负担,也便利教务处的管理工作。在本系统中,学生可以选课,退课,查询成绩;教师在期中期末的时候给学生打分,并按百分比计算,提交之前可以修改学生的成绩;管理员可以对教师、学生、课程的信息进展增、删、查、改,并且可以发布公告,新闻。如果学生,教师,管理员想进入这个系统,必须先进展登录,新用户要注册,可以进展个人信息的维护,如密码的修改等。4.3 任务概述4.3.1 目标(1) 本系统具有很强的可靠行,可以对录入的学生的成绩,对学生成绩进展修改、删除,并且可以对学生成绩进展排序。2本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。3本系统操作方便、灵活、简单。4本系统可高效、快速的查询到学生的根本信息。4.3.2 需求概述学生成绩管理系统是为方便教师学生实时掌握成绩、课程等相关信息,学生可以方便快捷的查询自己的成绩而研发的系统,旨在大幅度节约教师和学生们时间,提升教务系统办事效率。4.4 总体设计4.4.1 系统设计思想 总模块软件结构 图4-1 学生成绩管理系统主模块根据上面的需求分析,可以将这个系统分为以下模块:学生子模块和管理员子模块学生成绩管理系统管理员子模块学生子模块学生成绩排序浏览学生成绩修改学生信息删除学生成绩查询个人成绩图4-2 学生成绩管理系统层次图表4-1 模块功能学生子模块学生可以在该模块中查询自己的成绩管理员子模块管理员可以再此模块中浏览学生的成绩,对学生的成绩信息进展管理,并且可以对学生的成绩进展排序。4.4.2 学生成绩管理系统顺序图 图4-3 学生成绩信息顺序图4.4.3 学生成绩管理系统协作图 图4-4 学生成绩信息协作图4.4.4 学生成绩管理系统状态图 图4-5 学生成绩信息状态图4.5 接口设计4.5.1 外部接口与用户界面在用户界面局部,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以与出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用Visual C+进展编程。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。4.5.2 部接口部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进展信息传递。具体参数的结构将在下面数据结构设计的容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。第5章 详细设计5.1 根本任务依据软件工程的根本原理,详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的准确描述,具体来说就是把经过总体设计得到的各个模块详细的加以描述。5.2 程序流程图1. 系统主程序流程图图5-1 主程序流程图2. 学生登录模块图5-2 学生用户流程图3. 管理员管理流程图图5-3 管理员管理流程图4. 系统类图图5-4 成绩管理系统类图5.3 详细设计说明管理模块包括以下容:界面设计用户登陆:该系统根据用户的身份实现了不同的功能,用户登陆时需要选择一种登陆方式默认情况下是学生,系统再根据用户选择的登陆方式到相应的表中去搜索。例如,登陆时选择了教师登陆方式,系统将会在教师信息表中搜索是否存在与该用户的输入相符的信息,如果存在如此进入教师主页,否如此提示用户输入有误,请重新输入。学生用户界面学生可以查询自己指定的学号查询成绩,方便学生了解成绩情况。学生可以查询自己指定查询成绩,方便学生了解自身情况。管理员界面管理员可以增加某个学生的某门科目的成绩。管理员可以显示所有学生所有科目的成绩。管理员可以根据学生成绩进展排序和统计。管理员可以查询某个学生的成绩。管理员可以删除某个学生的成绩。管理员可以修改学生的成绩。第六章 软件测试测试用例设计表6-1用例编号C001测试对象“学生登录功能用例目的测试学生登录系统的功能是否正确实现输入/动作预期输出/结果实际结果选择学生登录,输入错误密码提示“输入错误密码,请重新输入提示“输入错误密码,请重新输入选择学生登录,输入密码,输入错误名字提示“无法找到该学生提示“无法找到该学生选择学生登录,输入账号,输入密码,单击登录进入学生登录子系统进入学生登录子系统表6-2 用例编号C002测试对象“管理员登录子系统界面用例目的测试管理员登录子系统界面的功能是否正确实现输入/动作预期输出/结果实际结果选择管理员登录,输入错误密码提示“输入错误密码,请重新输入提示“输入错误密码,请重新输入选择管理员登录,输入密码进入管理员登录子系统进入管理员登录子系统观察界面是否正确显示操作按钮显示“增加学生成绩,“显示学生成绩,“排序统计成绩,“查找学生成绩,“删除学生成绩,“修改学生信息显示“增加学生成绩,“显示学生成绩,“排序统计成绩,“查找学生成绩,“删除学生成绩,“修改学生信息表6-3 用例编号C003测试对象“管理员登录子系统增加学生成绩功能用例目的测试“管理员登录子系统增加学生成绩功能是否正确实现输入/动作预期输出/结果实际结果在“教师登录子系统中选择增加学生成绩功能显示要增加的学生的和学号和各科成绩显示要增加的学生的和学号和各科成绩表 6-4 用例编号C004测试对象“管理员登录子系统排序统计学生成绩功能用例目的测试“管理员登录子系统排序统计学生成绩功能是否正确实现输入/动作预期输出/结果实际结果在“管理员登录子系统中选择排序查询功能显示排序成功显示排序成功表6-5用例编号C005测试对象“管理员登录子系统显示学生成绩功能用例目的测试“管理员登录子系统显示学生成绩功能是否正确实现输入/动作预期输出/结果实际结果在“教师登录子系统中选择显示学生成绩功能显示所有学生的和学号和各科成绩显示所有学生的和学号和各科成绩第七章 实验结果截图显示 图7-1 图7-2 图7-37.3 管理员模块显示 图 7-4第八章 程序源代码# include <fstream> # include <string.h> #include <conio.h>/用getch(); #include<iostream> using namespace std; /Student类 class Student public: char name20; char Id20; int um; /C+课程得分 int Mnum; /汇编课程得分 int Enum; /嵌入式操作系统课程得分 int sum; /总分 Student * Next; void Input() cout<<"tt请输入学生的:" cin>>name; cout<<"tt请输入学生的学号:" cin>>Id; cout<<"tt请输入C+课程的成绩:" cin>>um; cout<<"tt请输入汇编课程的成绩:" cin>>Mnum; cout<<"tt请输入嵌入式操作系统课程的成绩:" cin>>Enum; sum=um+Mnum+Enum; void ReadFile(istream & in) in>>name>>Id>>um>>Mnum>>Enum>>sum; void Show() cout<<":"<<name<<endl<<"学号:"<<Id<<endl<<"C+:"<<um<<endl <<"汇编:"<<Mnum<<endl<<"嵌入式操作系统:"<<Enum<<endl<<"总成绩:"<<sum<<endl<<endl<<endl; ; /Studentmassage类 class Studentmassage public: Studentmassage(); Studentmassage(); void ShowMenu(); void Find(); void Save(); void ModifyItem(); void RemoveItem(); void Swap(Student *,Student *); void Sort(); int ListCount(); void Display() for(Student * p=Head->Next;p!=End;p=p->Next) p->Show(); cout<<"输入任意字符!继续" getch(); void AddItem() End->Input(); End->Next=new Student; End=End->Next; cout<<"添加成功!"<<endl; cout<<"输入任意字符!继续" getch(); private: Student * Head,* End; ifstream in; ofstream out; Student *FindItem(char * name) for(Student * p=Head;p->Next!=End;p=p->Next)/匹配成功如此返回上一个指针,不成功就返回空 if(!strcmp(p->Next->name,name)return p; return NULL; Student *FindID(char * Id) for(Student * p=Head;p->Next!=End;p=p->Next)/匹配成功如此返回上一个指针,不成功就返回空 if(!strcmp(p->Next->Id,Id)return p; return NULL; ; /构造函数 Studentmassage:Studentmassage() Head=new Student; Head->Next=new Student; End=Head->Next; in.open("sort.txt"); if(!in) cout<<"这是一个新系统,无学生信息。请先输入。"<<endl; else while(!in.eof() End->ReadFile(in); if(End->name0='0')break; End->Next=new Student; End=End->Next; in.close(); /析构函数 Studentmassage:Studentmassage() Save(); for(Student * temp;Head->Next!=End;) temp=Head->Next; Head->Next=Head->Next->Next; delete temp; delete Head,End; /菜单 void Studentmassage:ShowMenu() cout<<"*"<<endl; cout<<" 学 生 成 绩 管 理 系 统 "<<endl; cout<<""<<endl; cout<<" 1.增加学生成绩 "<<endl; cout<<" 2.显示学生成绩 "<<endl; cout<<" 3.排序统计成绩 "<<endl; cout<<" 4.查找学生成绩 "<<endl; cout<<" 5.删除学生成绩 "<<endl; cout<<" 6.修改学生信息 "<<endl; cout<<" 0.安全退出系统 "<<endl; cout<<"nttntt请选择:" /查找函数 void Studentmassage:Find() char name20 ,Id10; int x; Student * p=NULL; cout<<"ntt*n" cout<<"tt 1.按学生的查找ntt 2.按学生学号查找" cout<<"ntt*n请选择:" cin>>x; switch(x) case 1:cout<<"tt请输入要查找的学生的:"cin>>name; if(p=FindItem(name) p->Next->Show(); cout<<"输入任意字符!继续" getch(); else cout<<"tt没有找到该的学生!"<<'n'<<endl; cout<<"输入任意字符!继续" getch(); break; case 2: cout<<"tt请输入要查找的学生的学号:" cin>>Id; if(p=FindID(Id) p->Next->Show(); cout<<"输入任意字符!继续" getch(); else cout<<"tt没有找到该学好的学生!"<<'n'<<endl; cout<<"输入任意字符!继续" getch(); break; /修改信息 void Studentmassage:ModifyItem() /修改信息 char name20; Student * p=NULL; cout<<"tt请输入要修改的人的:"cin>>name; if(p=FindItem(name) cout<<"tt已找到学生的信息,请输入新的信息!"<<endl; p->Next->Input(); cout<<"修改成功!"<<endl; cout<<"输入任意字符!继续" getch(); else cout<<"tt没有找到!"<<endl; cout<<"输入任意字符!继续" getch(); /删除信息 void Studentmassage:RemoveItem() / 删除信息 char name20; Student * p=NULL,*temp=NULL; cout<<"tt请输入要删除的学生的:"<<endl;cin>>name; if(p=FindItem(name) temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"tt删除成功!"<<endl; cout<<"输入任意字符!继续" getch(); else cout<<"tt没有找到!"<<endl; cout<<"输入任意字符!继续" getch(); / void Studentmassage:Swap(Student *p1, Student *p2)/交换两个box变量的数据域 Student *temp=new Student; strcpy(temp->name,p1->name); strcpy(temp->Id,p1->Id); temp->um=p1->um; temp->Mnum=p1->Mnum; temp->Enum=p1->Enum; temp->sum=p1->sum; strcpy(p1->name,p2->name); strcpy(p1->Id,p2->Id); p1->um=p2->um; p1->Mnum=p2->Mnum; p1->Enum=p2->Enum; p1->sum=p2->sum; strcpy(p2->name,temp->name); strcpy(p2->Id,temp->Id); p2->um=temp->um; p2->Mnum=temp->Mnum; p2->Enum=temp->Enum; p2->sum=temp->sum; /学生登录模块 void student()int k; cout<<"请输入你的密码:" cin>>k;if(k!=1)do cout << ",输入错误,请重新输入密码" cin >> k;while(k!=1);/管理员登录模块 void manager()int k;cout<<"请输入你的密码:"cin>>k;if(k!=2)do cout << "输入错误,请重新输入密码" cin >> k;while(k!=2);cout<<"登录成功!"/ int Studentmassage:ListCount()/统计当前链表的记录总数,返回一个整数 if(! Head) return 0; int n=0; for(Student * p=Head->Next;p!=End;p=p->Next) n+; return n; / void Studentmassage:Sort()/对当前链表进展排序 cout <<"Sorting."<<endl; Student *p=NULL,*p1=NULL,*k=NULL; int n=Studentmassage:ListCount(); if(n<2) return; for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) if(p->sum>k->sum) Studentmassage:Swap(p,k); cout <<"排序完成!"<<endl; getch(); return; /保存函数 void Studentmassage:Save() out.open("sort.txt"); for(Student *p=Head->Next;p!=End;p=p->Next) out<<p->name<<"t"<<p->Id<<"t"<<p->um<<"t" <<p->Mnum<<"t"<<p->Enum<<"t"<<p->sum<<'n' out.close(); /主函数 int main() int x, i,j; bool quit=false; Studentmassage Grade; cout<<"tt§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl; for(i=0;i<3;i+) cout<<"tttttttt "<<endl; cout<<"tt0学生用户(学生只能读取学生信息)"<<endl;cout<<"tt1管理员用户 "<<endl;for(i=0;i<3;i+) cout<<"tttttttt "<<endl; cout<<"tt§§§§§§§§§§§§§§§§§§§§§§§§§§n"<<endl; cout<<"请选择:"cin>>j;switch(j)case 0:student();Grade.Find(); break; case 1: manager();while(!quit) system("cls"); Grade.ShowMenu(); cin>>x; switch(x) case 0:quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Sort();break; case 4:Grade.Find();break; case 5:Grade.RemoveItem();break; case 6:Grade.ModifyItem();break; break;return 0;第九章 实验总结此次课程设计,我们小组根据教师所给的选题,我们选择的是学生成绩管理系统。小组根据讨论然后分工进展系统分析、需求分析、概要设计和详细设计。之后总结各自的分析设计,进展代码的编写,修正。第一次的代码运行结果就只是对成绩的添加、删除、修改和查询,之后再根据选题的要求将学生、管理员模块添加进去,再添加密码和在管理远程序中按照学生的成绩进展了排序。通过这次的课程设计对系统的分析,我对软件工程有了进一步层次的了解,也让我意识到只有通过实践,才能真正理解计算机很多课程所表示的容,才能真正的去把握这门课程,操作是计算机这门学科必不可少的一门环节。同时我也认识到了团结的重要性,一个人的力量是有限的,一个人的精力也是有限的,只有通过合作才能更快更好的完成任务。第十章 参考文献1、软件工程导论海藩 编著 清华大学2、uml根底与Rose建模星星 编著 清华大学3、数据结构严蔚敏 吴伟民 编著 清华大学

    注意事项

    本文(软件工程学生成绩管理系统.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开