《学生信息管理系统报告.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统报告.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、. .PINGDINGSHAN UNIVERSITY基于Web的Java开发设计项目实践题 目:基于C+语言的学生信息管理系统开发 院 (系): 软件学院 专业年级: 软件工程 2010级 姓 名:X洪亮 学 号:1015302152012年6月10日前言学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,XX性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如
2、这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、XX性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。目录前言1一、系统概述
3、31.1 功能简介31.2 设计思路3第二章系统功能的分析和设计42.1 初始录入功能42.2 添加函数42.3 删除函数42.4 修改函数42.5 查询函数52.5.1 按学号查询52.5.2 按XX查询52.6 显示函数52.7 退出系统5第三章调试及运行结果63.1 主菜单63.2 显示功能63.3 增加功能73.4 删除功能73.5 修改功能83.6 查询功能8进入主菜单后选择1,进入查询功能,如图3-6:8第四章总结94.1 遇到的问题及解决方法94.2 收获和体会9一、系统概述1.1 功能简介本软件是一个简单的学校学生信息管理系统,软件窗口为DOS页面。学生信息管理系统的功能主要是
4、实现学校学生的信息化管理。通过学生信息管理系统,教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。本系统最大的优点就是操作简便快捷等。1.2 设计思路将学生信息定义为一个students结构体,在结构体中包含成员int xuehao;char name8;char xingbie4;char nianji20;char dizhi80;char dianhua16;float yuwen;float shuxue;float yingyu;float zongfen;,分别表示学号、性别、年级、家庭住址、联系。公有成员函数包括bulidline(),chaxun(stu*head)
5、 ,insert(stu *head,stu *std) ,xiugai(stu *head) ,shanchu(stu *head) ,liulan(stu *head),paixu(stu *head),xiufu(stu *head),main(),分别用来实现对学生信息的数据初始录入、增加数据、删除数据、修改数据、查询数据、显示所有数据等功能。主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数。第二章 系统功能的分析和设计在本章中,主要是介绍各个功能函数的设计思路和实现方法。2.1 初始录入功能此函数实现的功能主要是,对学生信息的初始化录入
6、功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,在输入时通过一个if条件语句来实现控制循环,当输入的XX是“0”时,使用break语句就跳出循环,即停止输入学生信息。在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开f1.txt文件,使输入的学生信息都写入文件。2.2 添加函数 此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。2.3 删除函数 此函数实现的功能主要是,删除一个学生的信息。在此函数中,先以
7、读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。2.4 修改函数 此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。2.5 查询函数 在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按XX查询。使用if语句来选择查询条件。2.5.1 按学号查
8、询 根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环。 当无查询结果时,会输出一条提示信息“无此人信息!” 。2.5.2 按XX查询 根据提示信息输入XX后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的XX和输入的XX一样,则输出该学生的信息,由于学生的XX有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。 当无查询结果时,会输出一条提示信息“无此人信息!” 。2.6 显示函数 此函数实现的功能
9、主要是,显示所有学生的信息。先是从文件中读取学生信息,然后在输出到显示窗口中。用一个for循环语句,来把所有学生的信息都输出。2.7 退出系统 当输入“0”时,就能退出系统,这是通过while语句来控制实现的。第三章 调试及运行结果3.1 主菜单主菜单显示如下:图3-1 主菜单3.2 显示功能按4则显示全部信息,如图3-2:图3-2 显示功能3.3 增加功能进入主菜单后选择2,进入增加功能,按要求输入学生信息,增加数据前显示如图3-2:增加后显示如图3-3:图3-3 增加后3.4 删除功能进入主菜单后选择5,进入删除功能,按要求输入要删除的学生信息,删除数据前显示如图3-3:删除数据后显示如图
10、3-4:图3-4 删除后3.5 修改功能进入主菜单后选择4,进入修改功能,按要求输入要修改的学生信息,修改数据前显示如图3-4:修改后如图3-5:图3-5 修改后3.6 查询功能进入主菜单后选择1,进入查询功能,如图3-6:图3-6学号查询第四章 总结4.1 遇到的问题及解决方法 首先,是对文件的处理不够熟练,通过看书和搜集一些资料解决了这个问题;其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决。4.2 收获和体会此次c+面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后
11、是代码设计与调试。程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。参考文献1 C+语言程序设计(第三版),X莉,清华大学,20042C+语言程序设计案例教程,X莉,清华大学,20053C+程序设计教程,钱能主编,清华大学,1999.4 4C+程序设计,谭浩强,清华
12、大学,20045C+程序设计实践指导,谭浩强,清华大学,20056C+程序设计课程设计,X振安,机械工业,2004.8 附录:程序代码#include#include#include#include#include using namespace std;typedef struct studentsint xuehao;char name8;char xingbie4;char nianji20;char dizhi80;char dianhua16;float yuwen;float shuxue;float yingyu;float zongfen;struct students *ne
13、xt;stu;stu *bulidline()stu *head,*p,*q;stu a;head=(stu*)malloc(sizeof(stu);/开辟新空间if(head=NULL)return 0;FILE *fp=fopen(students.txt,r);q=head;dofscanf(fp,%d %s %s %s %s %s %f %f %fn,&a.xuehao,a.name,a.xingbie,a.nianji,a.dizhi,a.dianhua,&a.yuwen,&a.shuxue,&a.yingyu);p=(stu *)malloc(sizeof(stu);p-xueha
14、o=a.xuehao;strcpy(p-name,a.name);strcpy(p-xingbie,a.xingbie);strcpy(p-nianji,a.nianji);strcpy(p-dizhi,a.dizhi);strcpy(p-dianhua,a.dianhua);p-yuwen=a.yuwen;p-shuxue=a.shuxue;p-yingyu=a.yingyu;p-zongfen=a.yuwen+a.shuxue+a.yingyu;q-next=p;q=p;while(!feof(fp);p-next=NULL;fclose(fp);return head;void chax
15、un(stu *head)stu *q,*p;q=head;int xuehao,r=0,i=0;while(1)loop2:coutttt请输入查询学生学号:endl;coutxuehao;system(cls);p=q-next;for(p;p!=NULL;p=p-next)if(p-xuehao=xuehao)coutttt学号:xuehaoendltttXX:nameendlttt性别:xingbieendlttt年级:nianjiendlttt家庭住址:dizhiendlttt联系:dianhuaendlttt语文:yuwenendlttt数学:shuxueendlttt英语:yin
16、gyuendlttt总分:zongfenendl;i=1;break;else i=0;if(i=0)coutttt该生信息不存在或输入错误,请重新输入!endl;goto loop2;loop:coutttt下一步:endl;coutttt1、查询下一个;2、结束endl;coutr;system(cls);if(r=2)return;if(r!=1)coutttt输入有误,请重新输入!next;while(p!=NULL)q=p;p=p-next;q-next=s;s-next=p;s-xuehao=std-xuehao;strcpy(s-name,std-name);strcpy(s-x
17、ingbie,std-xingbie);strcpy(s-nianji,std-nianji);strcpy(s-dizhi,std-dizhi);strcpy(s-dianhua,std-dianhua);s-yuwen=std-yuwen;s-shuxue=std-shuxue;s-yingyu=std-yingyu;s-zongfen=std-yuwen+std-shuxue+std-yingyu;return 0;int xiugai(stu *head)stu *q,*p;q=head;int xuehao,r=0,j=0;while(1)int i=0;coutttt请输入要修改信
18、息学生学号:endl;coutxuehao;system(cls);p=q-next;for(p;p!=NULL;p=p-next)if(p-xuehao=xuehao)coutttt学号:xuehaoendl;couttttXX:nameendl;coutttt性别:xingbieendl;coutttt班级:nianjiendl;loop:coutttt家庭住址:dizhiendl;coutp-dizhi;system(cls);coutttt联系:dianhuaendl;coutp-dianhua;system(cls);coutttt语文:yuwenendl;coutp-yuwen;s
19、ystem(cls);coutttt数学:shuxueendl;coutp-shuxue;system(cls);coutttt英语:yingyuendl;coutp-yingyu;system(cls);loop2:coutttt是否确认修改?endl;coutttt1、是;2、重新输入;3、返回endl;coutr;system(cls);if(r=2)goto loop;else if(r=3)return 0;else if(r!=1)cout选择错误,请重新选择!endl;goto loop2;i=1;break;else i=0;if(i=0)coutttt输入错误!endl;re
20、turn 0;loop3:coutttt修改下一个?endl;coutttt1、是;2否endl;coutj;system(cls);if(j=2)return 0;else if(j!=1)coutttt输入有误,请重新输入!endl;goto loop3;int shanchu(stu *head)stu *p,*q;int xuehao;while(1)int i=0,r=0;coutxuehao;system(cls);q=head;p=q-next;while(p!=NULL&p-xuehao!=xuehao)q=p;p=p-next;coutttt学号:xuehaoendltttX
21、X:nameendlttt性别:xingbieendlttt年级:nianjiendlttt家庭住址:dizhiendlttt联系:dianhuaendlttt语文:yuwenendlttt数学:shuxueendlttt英语:yingyuendlttt总分:zongfenendl;while(1)coutttt是否确认删除?endl;coutttt1、是;2、否endl;coutr;system(cls);if(r=1)break;else if(r=2)return 0;elsecoutttt输入有误,请重新选择!next=p-next;coutttt删除成功!endl;elsecoutt
22、tt该生信息记录不存在!;loop:coutttt是否继续先删除?endl;coutttt1、是;2否endl;couti;system(cls);if(i=2)return 0;else if(i!=1)coutttt输入有误,请重新选择!next;for(p;p!=NULL;p=p-next)couttt第i名:;cout 学号:xuehaoendltttXX:nameendlttt性别:xingbieendlttt年级:nianjiendlttt家庭住址:dizhiendlttt联系:dianhuaendlttt语文:yuwenendlttt数学:shuxueendlttt英语:ying
23、yuendlttt总分:zongfenendl;coutnext;for(p;p!=NULL;p=p-next)for(q=p-next;q!=NULL;q=q-next)if(p-zongfenzongfen)a.xuehao=p-xuehao;strcpy(a.name,p-name);strcpy(a.xingbie,p-xingbie);strcpy(a.nianji,p-nianji);strcpy(a.dizhi,p-dizhi);strcpy(a.dianhua,p-dianhua);a.yuwen=p-yuwen;a.shuxue=p-shuxue;a.yingyu=p-yin
24、gyu;l=p-zongfen;p-xuehao=q-xuehao;strcpy(p-name,q-name);strcpy(p-xingbie,q-xingbie);strcpy(p-nianji,q-nianji);strcpy(p-dizhi,q-dizhi);strcpy(p-dianhua,q-dianhua);p-yuwen=q-yuwen;p-shuxue=q-shuxue;p-yingyu=q-yingyu;p-zongfen=q-zongfen;q-xuehao=a.xuehao;strcpy(q-name,a.name);strcpy(q-xingbie,a.xingbie
25、);strcpy(q-nianji,a.nianji);strcpy(q-dizhi,a.dizhi);strcpy(q-dianhua,a.dianhua);q-yuwen=a.yuwen;q-shuxue=a.shuxue;q-yingyu=a.yingyu;q-zongfen=l;return 0;int xiufu(stu *head)stu *p;FILE*qf=fopen(students.txt,w);for(p=head-next;p!=NULL;p=p-next)fprintf(qf,%d %s %s %s %s %s %f %f %fn,p-xuehao,p-name,p-
26、xingbie,p-nianji,p-dizhi,p-dianhua,p-yuwen,p-shuxue,p-yingyu);fclose(qf);return 0;int main()stu *head;stu s;int r=0,i=0;head=bulidline();coutttt欢迎登陆学生信息管理系统!nnnendl;paixu(head);while(1)lop1:coutttt请选择您要进行的操作:nendl;coutttt1、成绩查询endlttt2、增加新学生信息endl;coutttt3、修改学生信息endl;coutttt4、浏览学生信息endl;coutttt5、删除学
27、生信息记录endl;coutendlr;system(cls);if(r5|r1)coutttt输入错误,请重新选择!endl;goto lop1;switch(r)case 1:chaxun(head);break;case 2:while(1)int i,k;coutttt请依照提示输入相应信息!endl;couts.xuehao;system(cls);coutendls.name;system(cls);coutendls.xingbie;system(cls);coutendls.nianji;system(cls);coutendls.dizhi;system(cls);coute
28、ndls.dianhua;system(cls);coutendls.yuwen;system(cls);coutendls.shuxue;system(cls);coutendls.yingyu;system(cls);insert(head,&s);while(1)coutttt添加完成,是否继续增加?endlttt1、是;2、否endl;couti;system(cls);if(i=1)break;else if(i=2)k=1;break;else if(i!=1)coutttt输入有误,请重新选择!endl;if(k=1)break;xiufu(head);paixu(head);break;case 3:xiugai(head);paixu(head);xiufu(head);break;case 4:liulan(head);break;case 5:shanchu(head);xiufu(head);paixu(head);break;lop:coutttt是否结束程序?endl;coutttt1、是;2、否endl;couti;system(cls);if(i=1)break;else if(i!=2)coutttt输入错误,请重新选择!endl;goto lop;return 0;. .word.