- 260.53 KB
- 20页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'学生信息管理系统软件学院项目报告书课 程:专业实训项目名称:学生信息管理系统专业年级:软件工程Java2级姓名:××学号:×××××指导教师:××2011年06月14日19
学生信息管理系统目录第1章 问题描述21.1课题背景21.2需求分析31.2.1功能需求31.2.2性能需求41.3本章小结4第2章总体设计52.1系统介绍52.2主程序执行流程图6第3章代码设计73.1程序运行结果截图73.2程序源代码113.3本章小结17第4章总结18参考文献1919
学生信息管理系统第1章 问题描述1.1课题背景管理系统是使用电子计算机执行管理和决策功能的服务系统,是六十年代以后,随着系统科学,信息技术以及计算机科学的进展,适应现代化管理的需要而形成的一门边缘学科。它是将计算机硬件,软件,人工规程,管理制度,决策模拟以及管理人员等组合在一起的一个人--机系统。学生信息管理系统,是针对目前学生信息处理工作的实际情况,结合数据技术,设计开发的学生信息管理系统;能够实现创建、添加、插入、排序、查找、修改学生信息等。学生信息管理系统是典型的信息管理系统,其开发主要包括前端应用程序的开发和后台数据库的建立和维护两个方面。对前者要求应用功能完备,容易使用,界面友好等;而对后者则要求建立起数据库一致性和完整性强,数据安全性好的数据库。学生信息管理系统是教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说至关重要,能够为学校的管理者提供充足的学生信息和快捷的查询手段。19
学生信息管理系统1.2需求分析1.2.1功能需求学生信息管理系统创建新链表并按总成绩排序按学号或者姓名来查询学生信息删除学生(删除后自动排序)添加学生(添加后自动排序)计算学生总数以及男女生人数(1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,可以方便管理员的修改与维护。(2)本系统操作方便、灵活、简单。操作人员只需录入学生的基本信息和考试成绩的数据。(3)本系统可高效、快速的查询到学生的基本信息和考试成绩,便于管理员管理工作的开展。19
学生信息管理系统(4)本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、添加,另外还考虑到学生考试成绩,针对这些要求设计了学生信息管理系统。本系统主要包括信息录入、信息维护、信息查询、报表打印、关闭系统这几部分。其功能主要有:⒈有关学生信息的录入,包括录入学生基本信息、学生考试成绩等。⒉学生信息的维护,包括添加修改学生基本信息、考试成绩信息。⒊学生信息的查询,包括查询学生的个人基本信息、科目考试成绩。⒋信息的报表打印,包括学生的基本信息的报表打印、考试成绩的报表打印。1.2.2性能需求本项目是一个学生信息管理系统,运行环境VC++6.0,项目运行速率正常,可以满足用户需求。1、时间特性要求:响应时间要低于5秒2、便捷性:在程序运行过程中,系统自动提示用户进行每一步操作,程序功能明了简洁!1.3本章小结本章介绍了学生信息管理系统的背景意义,并对本系统功能需求和性能需求进行了分析,可以清晰看到学生信息管理系统在进行信息管理时的优越性。19
学生信息管理系统第2章总体设计2.1系统介绍1.学生信息管理系统主要涉及到查询等各的功能,需要通过磁盘读写数据,虽然本系统仅实现了简单的功能,但也需要按照系统整体性来设计。程序可以查询、修改、增添、删除学生信息,并将之保存在磁盘文件中,信息数据不易丢失;2.为了提高系统的稳定性和可重用性,程序采用子函数调用的形式完成各项功能,并用单向动态链表存储从磁盘文件读取到的信息;3.屏幕设计:屏幕作为信息的显示,通过输出格式的控制,界面更简洁、合理!19
学生信息管理系统定义链表指针、结构体及相关变量调用链表创建函数调用排序函数输出功能选项输入选择项r调用查询函数输入新学生信息并调用插入函数调用排排序函数调用修改函数调用排序函数调用写入函数调用写入函数调用删除函数调用浏览函数判断程序是否结束0#include#include#defineNULL0#defineLENsizeof(structstudent)//建立动态链表.cppusingnamespacestd;structstudent{intnum;charname[20];charsex[5];floatmath;floatenglish;intorder;structstudent*next;};intn;intmale=0;intfamale=0;structstudent*creat(void){structstudent*head,*p1,*p2;n=0;p1=p2=(structstudent*)malloc(LEN);cout<<"下面开始创建链表:"<>p1->num>>p1->name>>p1->sex>>p1->math>>p1->english;head=NULL;while(p1->num!=0){if(strcmp(p1->sex,"男")==0)male++;elsefamale++;n++;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(structstudent*)malloc(LEN);19
学生信息管理系统cin>>p1->num>>p1->name>>p1->sex>>p1->math>>p1->english;}p2->next=NULL;if(head==NULL){cout<<"创建失败,请重建:"<num<name<sex<math<english<math+p->english<next;}while(p!=NULL);}//链表结点的删除操作structstudent*del(structstudent*head){if(n==0){cout<<"无链表可删除"<>num;while(num!=0){structstudent*p1,*p2;p1=head;while(num!=p1->num&&p1->next!=NULL){p2=p1;p1=p1->next;}if(num==p1->num){19
学生信息管理系统if(p1==head){if(strcmp(p1->sex,"男")==0)male--;elsefamale--;head=p1->next;}else{if(strcmp(p1->sex,"男")==0)male--;elsefamale--;p2->next=p1->next;}cout<>num;}if(n==0){cout<<"此时链表已为空!"<>stu->num>>stu->name>>stu->sex>>stu->math>>stu->english;while(stu->num!=0){if(strcmp(stu->sex,"男")==0)male++;elsefamale++;n++;structstudent*p0,*p1,*p2;p1=head;p0=stu;if(head==NULL){head=p0;p0->next=NULL;}else{while(p0->num>p1->num&&p1->next!=NULL)19
学生信息管理系统{p2=p1;p1=p1->next;}if(p0->numnum){if(head==p1){head=p0;}elsep2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}stu=(structstudent*)malloc(LEN);cin>>stu->num>>stu->name>>stu->sex>>stu->math>>stu->english;}returnhead;}//根据学号查找voidSearchNum(structstudent*head){intnum;structstudent*p;p=head;cout<<"请输入要查找的学生的“学号”:";cin>>num;while(p->num!=num&&p->next!=NULL){p=p->next;}if(p->num==num){cout<<"该生的信息为:"<order<num<name<sex<math<english<math+p->english<>name;while(strcmp(p->name,name)!=0&&p->next!=NULL){p=p->next;}if(strcmp(p->name,name)==0){cout<<"该生的信息为:"<order<num<name<sex<math<english<math+p->english<next;max=(p2->math+p2->english);while(p0->next!=NULL){while(p1!=NULL){if((p1->math+p1->english)>max){max=(p1->math+p1->english);p2=p1;}p1=p1->next;};p2->order=++NO;19
学生信息管理系统max=p2->order;p2->order=p0->order;p0->order=max;max=p2->num;p2->num=p0->num;p0->num=max;max=p2->math;p2->math=p0->math;p0->math=max;max=p2->english;p2->english=p0->english;p0->english=max;strcpy(temp,p2->name);strcpy(p2->name,p0->name);strcpy(p0->name,temp);strcpy(temp,p2->sex);strcpy(p2->sex,p0->sex);strcpy(p0->sex,temp);p0=p0->next;p2=p0;p1=p2->next;max=(p2->math+p2->english);}if(p0->next==NULL)p2->order=++NO;returnhead;}//链表的输出voidprint2(structstudent*head){cout<<"此时链表的内容为:"<num<name<sex<math<english<math+p->english<next;No++;}while(p!=NULL);cout<>a;if(a==0)cout<<"已经退出程序!"<6)cout<<"无该选项,请从0~6中选择"<