学生信息管理系统7788Word格式.docx

上传人:b****6 文档编号:16532375 上传时间:2022-11-24 格式:DOCX 页数:35 大小:207.09KB
下载 相关 举报
学生信息管理系统7788Word格式.docx_第1页
第1页 / 共35页
学生信息管理系统7788Word格式.docx_第2页
第2页 / 共35页
学生信息管理系统7788Word格式.docx_第3页
第3页 / 共35页
学生信息管理系统7788Word格式.docx_第4页
第4页 / 共35页
学生信息管理系统7788Word格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

学生信息管理系统7788Word格式.docx

《学生信息管理系统7788Word格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统7788Word格式.docx(35页珍藏版)》请在冰豆网上搜索。

学生信息管理系统7788Word格式.docx

2、主界面的设计13

四课程设计体会15

五源代码:

16

正文

一课程设计及简介

1.1意义

系统必须实现相应的学生信息包括:

学号、姓名、性别、年龄、五门课程成绩,使操作人员更加方便的进行操作。

1.2系统的主要功能如下:

1、注册管理员用户

2、管理员用户登陆

3、1输入学生信息

4、2显示所有学生信息或根据条件查询学生信息

5、3修改学生信息

6、删除指定的学生信息

7、根据成绩进行排序

8、统计不及格学生人数并显示具体名单

9、将学生信息保存到磁盘文件

10、从磁盘文件读取数据

二、设计方案

按照需求分析所得,学生成绩管理系统有以下几个功能模块:

输入学号、姓名、性别、年龄、五门课程成绩

显示出输入的学号,姓名,性别,年龄,五门成绩

按照学生的总成绩来进行从大到小的排序。

按学生的学号进行查找。

按照学生的学号来进行删除操作。

可以对学生的号进行修改。

保存所有学生的信息到“student.txt”中

安全退出学生成绩管理系统。

三,具体设计及截屏图

(一)类的设计

根据上述需求分析,有用户类和学生信息类

1、用户类

classUser

{

private:

stringname;

stringpassword;

User*next;

public:

User(stringna="

"

stringpa="

User*ne=NULL){name=na;

password=pa;

next=ne;

}

voidinput()

{

cout<

<

"

请输入你的用户名:

;

cin>

>

name;

请输入你的密码:

password;

}

voidoutput()

{cout<

name:

name<

endl;

password:

password<

string&

getName(){returnname;

getPassword(){returnpassword;

friendvoidregist();

friendvoidlogin();

};

#endlif

2,学生信息类

classStudent

booluseing;

//是否使用

stringnum;

charsex;

intage;

floatscore[5];

floatsum;

Student*next;

friendclassStudentArray;

voidinput()//输入学生信息

请输入学号、姓名、性别、年龄、五门成绩:

num>

name>

sex>

age;

for(inti=0;

i<

5;

i++)

cin>

score[i];

voidoutput()//输出学生信息

{

num<

姓名:

性别:

sex<

年龄:

age<

五门成绩:

cout<

score[i]<

stringgetnum(){returnnum;

stringgetname(){returnname;

chargetsex(){returnsex;

intgetage(){returnage;

floatgetscore()

{return0;

classStudentArray//班级类

Studentstu[50];

//学生的最大人数

intn;

//学生的实际人数

Student*head;

//声明一个空链表

StudentArray()

请输入学生的实际人数:

n;

friendclassStudent;

voidinput();

//1输入信息

voidoutput();

//2输出

voidsearch();

//3(查找学生信息)

voidmodify();

//4(修改学生信息)

voiddelet();

//5(删除指定学生信息)

voidsort();

//6(排序*)

voidcount();

//7统计不及格学生人数成绩

voidsave();

//8保存信息

voidread();

//9(从文件读取信息)

voidaddnumber();

//(增加)

voidStudentArray:

:

input()//菜单里,输入

{head=newStudent;

//创建一个带头结点的空链表

head->

next=NULL;

//头节点的下一个为空

while

(1)//循环语句

{chary;

Student*s=newStudent;

//创建一个新结点为student;

s->

input();

s->

next=head->

next;

//

(1)

head->

next=s;

//

(2)

继续输入吗(y/n)?

y;

if(y=='

n'

||y=='

N'

)//访问的条件

break;

//否则停止

output()//菜单里,输出

{Student*p;

inti=0;

//以下代码用于显示链表中的所有结点,

for(p=head->

p!

=NULL;

p=p->

next,i++)//p指向头结点的下一个,p不等于空节点。

i是次数

p->

output();

count()//统计

{Student*t;

intunpass[5]={0,0,0,0,0};

//确定成绩不通过的数组

//以下代码逐个判断每人每科成绩

for(t=head->

t!

t=t->

next)//确定下一个人的数

for(intj=0;

j<

j++)//确定五门科的成绩

if(t->

score[j]<

60)//判断是不是每门科是不是小于60

unpass[j]++;

//记录小于60的

cout<

不及格人数:

//输出不及格的

for(intj=0;

j++)//

unpass[j]<

\t"

search()//查找

{

chary;

Student*p;

stringnums;

请输入学号进行查找:

nums;

while

(1)//循环语句

for(p=head->

=NULL&

&

p->

num!

=nums;

next);

//头结点指向下一个,p不等于空并且p不等于学号,确定下一个查找的对象

if(p->

num==nums)//如果指向学号等于学生信息

p->

//就输出学生信息

else

cout<

该学号不存在"

//否则输出学生信息

想继续输入学号吗(y/n)?

}

sort()//按总分排序

Students;

Student*k;

Studentsum;

//以下代码排序

next)

sum=0;

j++)

p->

sum+=p->

score[j];

}

for(k=p->

k!

k=k->

if(p->

sum<

k->

sum)

{

s=*p;

*p=*k;

*k=s;

}

inti=0;

next,i++)

第"

i+1<

名是:

getname()<

总分为:

save()//从文件写信息

{

//创建或打开文件

Student*q;

ofstreamoutfile;

outfile.open("

Student.txt"

ios:

in);

//写入数据

for(q=head->

q!

q=q->

{

outfile<

q->

getnum()<

getsex()<

getage()<

for(intk=0;

k<

k++)

outfile<

score[k]<

outfile.close();

//结束语句

read()//从文件读取信息

{inti=0;

ifstreaminfile;

infile.open("

);

while(!

infile.eof())//读取文件中的信息(括号中的代码意思是:

当文件读取未结束)

Student*s=newStudent;

infile>

s->

for(intk=0;

infile>

score[k];

if(s->

num!

="

{

s->

head->

}

i++;

//记录读取文件的条数

一共读取了"

条记录"

modify()//修改功能

{stringnums;

stringstd;

chary;

while

(1)

{

cin>

for(k=head->

if(k==NULL)

该学号不存在!

!

else

k->

修改成功"

想继续输入学号修改吗(y/n)?

break;

//否则停

请输入修改的学号:

cin>

delet()//删除功能

charesc;

Student*b;

inti;

请输入学号进行删除:

std;

for(b=head->

b!

b->

b=b->

//for(inti=0;

i++)

if(std!

=b->

getnum());

break;

if(b=NULL)

该学号不存在!

{

b->

for(intk=i;

stu[k]=stu[k+1];

n=n-1;

#endif

(二)界面设计

1、登陆界面的设计

登陆界面中显示提出输入用户名和密码。

学生成绩管理系统登陆界面如图

图1—1登陆界面

2、主界面的设计

主界面中显示学生成绩管理系统的全部信息,输入信息,查找信息,删除学生信息,排序学生信息,修改学生信息,保存学生信息,统计学生信息,输出学生信息,保存学生信息,读取学生信息,安全退出系统。

学生成绩管理系统主界面如图1—2所示:

图1—2

查找学生信息

、修改学生信息

四课程设计体会

接近四周的C++实训课今天就要结束了,到了我们该自我总结的时候了。

这次我最大的体会就是体验到了开发软件人员的艰辛,虽说我们的程序严格来说并称不上软件开发,但我却深刻体验到了其中的困难和辛苦。

因为我现在最初的梦想就是将来可以进一个软件公司继续我的计算机深造,所以我很重视这次的实训,这也算是我第一次接触大型的编程设计。

在这次的体验,虽说有时候感觉很累,但我觉得过的很充实,我很快乐,在其中遇到了困难,请教老师,或查阅资料。

学到了许多我们课本上学不到的东西。

其实真正实验报告并不只是一个简单的源代码就完了,我还要做为源代码做备注,让外界人员可以看懂,看书学着画类流程图,做各个模块的功能总结等等,这些都是我们以前没有涉及到的,这让我学会了一些新的知识。

通过这次实训,我深刻体验到了自己学习中的不足,知识面的狭窄,这无疑对我来说是一种打击,但我并

没有因此而郁闷,因为我及时认识到了这一点,并学会了许多新东西,我应该感到庆幸。

一次实训让我欢喜让我忧啊!

我感觉到了我的梦想和现实生活的差距,但我不会放弃,我会吸取这次的教训,为我以后的梦想继续努力。

————————潘贸俭

#if!

defined(Student_h)

#defineStudent_h

#include<

iostream>

fstream>

string>

stdlib.h>

usingnamespacestd;

k

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1