注意:必须在你的电脑里建一个文档来存储学生信息,我是再d盘建了一个stu.txt的文档,所以你只要在d盘建一个一样的就可以了。如果你要改变存储路径,就必须把程序中的d:\\stu.txt全都改了
《面向对象课程设计》
课程设计题目:学生信息管理系统
指导教师:
学生学号:
学生姓名:
二〇一一年十二月十日
目 录
1、系统总体框架
2、功能分析
3、模块设计与分析
4、功能测试及其运行图
5、存在的不足与对策
6、程序源代码
7、使用说明
1、系统总体框架
图1
2、功能分析
“学生成绩管理系统”包括七个模块:现实学生信息,插入学生信息,修改学生信息,删除学生信息,查找学生信息,返回主菜单,退出系统。这七个模块既相互联系又相互独立。查找学生信息模块又包括两个子模块:按学号查找和按姓名查找。
本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对学生的各种信息进行管理操作。本系统能对学生的基本信息进行输入和输出;能添加学生信息资料;能根据学生的姓名来查询该学生的信息资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据。
3、模块设计与分析
(1)输出学生资料模块:
这个模块的主要功能是用来对学生的信息进行输出。在系统已经录入了学生信息资料的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的姓名,学号,住址,爱好,性别,年龄。在查看学生的信息各方面的资料后,按找显示的操作就可以返回到主菜单。
(2)输入学生资料模块:
这个模块的主要功能是用来对学生的信息进输入,插入新的学生信息。在按照系统的提示准确输入学生信息后,就可以回到主菜单了,这时该学生的信息已经保存到文档中。注意:该功能每次只支持一个学生信息的输入,输入一个学生的信息后必须返回到主菜单。如果想在次输入另一个学生的信息就必须退出到主界面在次进入此模块才可以。
(3)修改学生信息模块
这个模块的主要功能是用来修改学生信息的。在系统保存了某学生信息的前提下,想要修改该学生的信息,可以输入该学生姓名,系统就会自动找到该学生的各种信息,并且显示出所有的信息让你去改。这样就可以修改该学生的各种信息了。但是,如果你要在系统中修改一个的某个或几个信息,那么你就必须重新输入所有的不需要修改的信息。这样才能完成一个学生信息的修改。
(4)删除学生信息模块
这个模块的主要功能是用来删除学生信息。在系统保存学生信息的前提下,想删除某学生的信息,可以输入学生姓名,系统查找到与该学生相关的信息后,就会自动把这个学生的一切信息删除了。由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化。
(5)查找学生信息模块
这个模块的主要功能是用来查找学生信息。在系统保存了某学生信息的前提下,想要查找该学生资料,可以输入该学生学号或姓名,这样系统就会显示该学生的各种信息。当进入到这个模块的界面时,会出现两个选项:1.输入姓名,2.输入学号,这两个选项表示按姓名查找和按学号查找。你只要选择一个在按照系统提示往下做就可以了。
(6)返回主菜单模块
这个模块的主要功能是当你进入某个子界面,并且完成想要进行的操作,返回到主界面。从而进行下一步的操作。
(7)储存学生资料并退出系统模块
主要功能是用来储存学生信息并退出系统。在对系统进行一系列操作,比如添加、删除、修改学生信息后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。
4、特色功能程序
(1)按学号从小到大的顺序排列,并输出排序后的学生信息情况。
for(int n=0;n<=t;n++) //按学号大小排序
for(int j=n+1;j<=t;j++)
{if(a[n]>a[j])
{ tempt=a[n];
a[n]=a[j];
a[j]=tempt;
}
(2)可以按你需要修改某个学生的错误信息进行修改
注意:每次只能修改某个学生某一个信息,如果需要修改则在次进入。
cout<<"请选择需要修改的学生信息:"<
>n;
switch(n)
{
case 1:
cout<<"姓名:";
cin>>str;strcpy(p->x.name,str);break;
case 2:
cout<<"学号:";
long int m;
cin>>m;p->x.num=m;break;
case 3:
cout<<"年龄:";
int a;
cin>>a;p->x.age=a;break;
case 4:
cout<<"住址:";
cin>>str;strcpy(p->x.add,str);break;
case 5:
cout<<"籍贯:";
cin>>str;strcpy(p->x.native,str);break;
case 6:
cout<<"性别:";
cin>>str;strcpy(p->x.sex,str);break;
}
5、功能测试及运行界面图
图(1):系统的主界面
图(2):显示系统已储存的学生的信息
图(3):添加新的学生信息
图(4):修改学生信息
图(5):删除学生信息
图(6.1)查找学生的主界面并按姓名查找
图(7):退出系统
6、存在的不足与对策
本学生成绩管理系统由七个模块组成,每个模块相互联系又相互独立。这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。而且在每个模块也有不足的地方,比如在输入学生信息时,对每个信息项没有严格的规定,可以输入任何的字符。同时有些模块还不能实现本应该有的功能,这有待以后努力,争能够实现该有的功能。
在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上应用,而且在生活中也是同样得到了广泛在应用。如今,不管是小学、初中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩管理。但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低等因素。因此开发出一个不仅仅是适用于大中专院校以及其它高校通用的学生成绩管理系统是必要的。
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平。为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全,学生在能方便的查看自己的成绩。
7、程序源代码
#include
#include
#include
#include
using namespace std;
void menu()
{
system("cls");
cout<<"******************************************"<
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
***班 *"<next=NULL;
}
void student::insert(data a)
{
node *p;
p=(node *)new(node);
p->x=a;
p->next=head->next;
head->next=p;
}
void student::output()
{
node *p;
int i=0,t,tempt;
long int a[100];
p=head->next;
if(p==NULL)
cout<<"没有学生信息!!"<x.num;
p=p->next;
}
t=i;
for(int n=0;n<=t;n++) //按学号大小排序
for(int j=n+1;j<=t;j++)
{if(a[n]>a[j])
{ tempt=a[n];
a[n]=a[j];
a[j]=tempt;
}}
p=head->next;
if(p!=NULL)
{for(i=0;i<=t;i++) //打印排序后的信息
{ while(p!=NULL)
{if(p->x.num==a[i])
cout<x.name<<'\t'<x.num<<'\t'<x.add<<'\t'<x.native<<'\t'<x.sex<<'\t'<x.age<next;}
p=head->next;}}
p=head->next;
}
}
}
void student::del(char *name)
{
node *p,*per;
int flag=1;
p=head->next;
per=head;
if(p==NULL)
cout<<"空链表,不能删除!!"<x.name,name)==0)
{
per->next=p->next;
cout<<"删除成功!"<next;
}
}
if(flag==1)
cout<<"没有找到该学生!!"<next;
char str[20];
while(p!=NULL)
{
if(strcmp(p->x.name,name)==0)
{
temp=1;
cout<<"请选择需要修改的学生信息:"<>n;
switch(n)
{
case 1:
cout<<"姓名:";
cin>>str;strcpy(p->x.name,str);break;
case 2:
cout<<"学号:";
long int m;
cin>>m;p->x.num=m;break;
case 3:
cout<<"年龄:";
int a;
cin>>a;p->x.age=a;break;
case 4:
cout<<"住址:";
cin>>str;strcpy(p->x.add,str);break;
case 5:
cout<<"籍贯:";
cin>>str;strcpy(p->x.native,str);break;
case 6:
cout<<"性别:";
cin>>str;strcpy(p->x.sex,str);break;
}
}
p=p->next;
}
if(temp==0)
{
cout<<"该学生不存在!"<next;
while(p!=NULL)
{
if(strcmp(str,p->x.name)==0)
{
cout<<"姓名"<<'\t'<<"学号"<<'\t'<<" "<<"住址"<<'\t'<<"籍贯"<<'\t'<<"性别"<<'\t'<<"年龄"<x.name<<'\t'<x.num<<'\t'<x.add<<'\t'<x.native<<'\t'<x.sex<<'\t'<x.age<next;
}
if(temp==0)
cout<<"该学生不存在"<>x.name;
//
file<>x.num;
//
file<>x.age;
//
file<>x.add;
//
file<>x.native;
//
file<>x.sex;
//
file<>name;
H.del(name);
}
void readstu(void)//读文件
{
data x;
char str[200];
ifstream fout;
fout.open("d:\\stu.txt");
if(!fout){
cout<<"读取文件失败!!"<next;
ofstream fin;
fin.open("d:\\stu.txt");
if(!fin)
{
cout<<"读取文件失败"<x.name<<' ';
fin<x.num<<' ';
fin<x.age<<' ';
fin<x.add<<' ';
fin<x.native<<' ';
fin<x.sex<<'\n';
q=q->next;
}
}
void change_stu()//修改学生信息
{
system("cls");
char str[20];
cout<<"请输入要修改的学生的姓名:"<>str;
H.change(str);
}
void find_stu()//查找学生信息
{
system("cls");
char str[20];
cout<<"*****************"<>str;
H.find(str);
}
int main()
{
char w='6';
readstu();//读取文件的内容
while(w!='7'){
switch(w)
{
case '1':cout_stu();break;
case '2':insert_stu();break;
case '3':change_stu();break;
case '4':del_stu();break;
case '5':find_stu();break;
case '6':menu();break;
case '7':w='7';break;
default:cout<<"输入错误"<菜单)"<>w;
}
writestu();
cout<
本文档为【面向对象论文:学生信息管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。