C课程设计报告学生上机管理系统.docx

上传人:b****3 文档编号:11560629 上传时间:2023-06-01 格式:DOCX 页数:23 大小:152.60KB
下载 相关 举报
C课程设计报告学生上机管理系统.docx_第1页
第1页 / 共23页
C课程设计报告学生上机管理系统.docx_第2页
第2页 / 共23页
C课程设计报告学生上机管理系统.docx_第3页
第3页 / 共23页
C课程设计报告学生上机管理系统.docx_第4页
第4页 / 共23页
C课程设计报告学生上机管理系统.docx_第5页
第5页 / 共23页
C课程设计报告学生上机管理系统.docx_第6页
第6页 / 共23页
C课程设计报告学生上机管理系统.docx_第7页
第7页 / 共23页
C课程设计报告学生上机管理系统.docx_第8页
第8页 / 共23页
C课程设计报告学生上机管理系统.docx_第9页
第9页 / 共23页
C课程设计报告学生上机管理系统.docx_第10页
第10页 / 共23页
C课程设计报告学生上机管理系统.docx_第11页
第11页 / 共23页
C课程设计报告学生上机管理系统.docx_第12页
第12页 / 共23页
C课程设计报告学生上机管理系统.docx_第13页
第13页 / 共23页
C课程设计报告学生上机管理系统.docx_第14页
第14页 / 共23页
C课程设计报告学生上机管理系统.docx_第15页
第15页 / 共23页
C课程设计报告学生上机管理系统.docx_第16页
第16页 / 共23页
C课程设计报告学生上机管理系统.docx_第17页
第17页 / 共23页
C课程设计报告学生上机管理系统.docx_第18页
第18页 / 共23页
C课程设计报告学生上机管理系统.docx_第19页
第19页 / 共23页
C课程设计报告学生上机管理系统.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C课程设计报告学生上机管理系统.docx

《C课程设计报告学生上机管理系统.docx》由会员分享,可在线阅读,更多相关《C课程设计报告学生上机管理系统.docx(23页珍藏版)》请在冰点文库上搜索。

C课程设计报告学生上机管理系统.docx

C课程设计报告学生上机管理系统

学生上机管理系统

1.需求分析

实现的目标

课程设计的任务:

制作一个小型的学生上机管理系统,要求制作一个菜单,实现数据的录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统计,数据的修改,系统的退出。

系统的设计要求用到C++面向对象的程序设计,要求用到类来实现,同时每一个功能用到一个函数。

基本功能:

学生基本信息(学号,姓名,上机对应的设备编号,设备名称,设备状态)

扩展功能:

学生数据的添加、修改、与删除

学生数据的读取与存储

系统特点:

系统要能够对相应的数据进行很好的测试,系统的统计对设备的状态,人数都进行了统计;系统数据的录入除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,姓名;程序中查找运用了两种查找方式即学号查找和姓名查找。

系统实现方案

第一步:

分析题目,建立类并派生出它的子类,画出类图。

第二步:

画出流程,根据流程图编写程序清单

第三步:

上机调试程序(使用单步调试,设置断点、分块调试的方法)。

第五步:

及时整理资料,撰写课程设计报告中有关这个题目的内容。

界面设计与数据

程序对学生上机据处理要求

1能够输入并浏览学生的基本信息;

2能够实现对学生信息的查询和修改;

3能够对成绩进行统计;

4能够对学号排序;

5能够对学生的信息进行保存;

现行的系统功能:

资料维护:

系统维护包括对各学生信息和成绩的录入操作。

资料维护:

对数据表中的信息进行浏览。

系统查询:

可以对学生的姓名,学号,设备信息来查询。

2.概要设计

1.现行系统组织结构图:

 

2.系统功能结构图:

3.详细设计

1.类设计

类:

student

数据成员

学号,姓名,性别,设备编号,设备名称

类:

school

成员函数

录入函数Input():

输入编号到计算机的成绩;

统计函数count():

统计各科的总成绩,计算平均成绩,统计各科的及格率;

查询函数found():

按学号或姓名查找学生的记录;

修改函数mend():

修改指定学号学生成绩记录;

统计函数ncount():

统计学生人数;

排序函数sort():

按学号排序;

删除函数del():

删除指定学号学生记录;

输出函数show():

输出班级所有学生成绩记录;

UML图:

2.界面设计

1.界面设计

程序运行后会出现一个简捷的窗口,便于用户查询数据。

2.功能设计

通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。

应用系统主控界面包括学生信息录入,查找等功能模块。

学生信息录入功能完成学生信息和成绩的输入。

记录查询功能可以对数据各分类的记录进行查询。

3.系统主界面:

4.调式分析

本程序基本完成了题目要求的功能。

但是由于显示的限制,我未完成统计的运行功能,老师指导下完成了,要动脑子。

程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。

解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。

此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。

首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。

程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。

根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。

理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。

我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。

5.用户使用说明

按1录入

按2显示

按3查找

按4删除

按5统计

等等来操作的学生上机管理系统的

6.测试结果

7.附录

""

classstudent

{

protected:

intnumber;

charname[20];

chardevicestatus[8];

chardeviceid[10];

chardevicename[20];

public:

student*next;

friendvoidschool:

:

sort();

student()

{

}

~student()

{

}

char*getname()

{

returnname;

}

intgetnumber()

{

returnnumber;

}

voidinput()

{

inte=1;

cout<<"\t\t\t按提示输入:

"<

cout<<"\t\t输入编号:

";

cin>>number;

cout<<"\t\t输入姓名:

";

cin>>name;

do

{

cout<<"\t\t输入设备状态:

";

cin>>devicestatus;

if(strcmp(devicestatus,"开")==0||strcmp(devicestatus,"关")==0)

{

cout<<"\t\t输入设备编号:

";

cin>>deviceid;

cout<<"\t\t输入设备名称:

";

cin>>devicename;

e=0;

}

else

{

cout<<"\t\t\t无此类型状态!

重新输入!

"<

e=1;

}

}

while(e);

return;

}

voidinput(ifstream&is)

{

is>>number>>name>>devicestatus>>deviceid>>devicename;

();

}

voidoutput()

{

cout<<"学生基本信息如下:

"<

cout<<"编号:

"<

"<

"<

"<

<<"设备名称:

"<

}

voidoutput(ofstream&os)

{

os<

<

}

};

school:

:

school()

{

head=newstudent;

head->next=NULL;

key=0;

}

school:

:

~school()

{

deletehead;

}

 

voidschool:

:

input()//录入函数

{

student*p,*p2=NULL;

p=head;

intn;

while(p->next)

p=p->next;

while(n)

{p2=newstudent;

p2->input();

p->next=p2;

p2->next=NULL;

p=p->next;

school:

:

setkey

(1);

cout<<"\t\t\t按1继续,按0返回:

";

cin>>n;

}

}

intschool:

:

find(student**p1,intnum,char*pn)//子查找函数

{

student*p;

p=head;

while(p->next)

{

(*p1)=p;

if((p->next)->getnumber()==num||!

strcmp((p->next)->getname(),pn))

return1;

p=p->next;

}

return0;

}

voidschool:

:

found()//查找函数

{

student*p;

intnum=-1,n=9;

charname[20]="^";

do

{cout<<"\t\t1:

按编号查找,2:

按姓名查找:

";

cin>>n;

}

while(n<1||n>2);

if(n==1)

{

cout<<"\t\t\t输入编号:

";

cin>>num;

}

if(n==2)

{

cout<<"\t\t\t输入姓名:

";

cin>>name;

}

if(!

find(&p,num,name))

{

cout<<"\t\t找不到你要查找的内容!

"<

return;

}

(p->next)->output();

}

voidschool:

:

del()//删除函数

{

student*p,*p2;

intnum;

cout<<"\t\t\t输入编号:

";

cin>>num;

if(!

find(&p,num,"^"))

{

cout<<"\t\t找不到你要删除的内容!

"<

return;

}

(p->next)->output();

p2=p->next;

p->next=p2->next;

deletep2;

school:

:

setkey

(1);

}

intschool:

:

ncount()//统计函数

{

student*p;

p=head;

intamount=0;

while(p->next)

{

p=p->next;

amount++;

}

returnamount;

}

voidschool:

:

sort()//排序函数

{

student*p1;

student*temp=newstudent;

student*temp1;

student*temp2;

inti,j,count;

intn=ncount();

for(j=0;i

{

p1=head;

for(i=0;i

{

count=i;

while(count!

=0)

{

p1=p1->next;

count--;

}

if(p1->number>p1->next->number)

{

temp1=p1->next;

temp2=p1->next->next;

memcpy(temp,p1,sizeof(student));

memcpy(p1,p1->next,sizeof(student));

p1->next=temp1;

memcpy(p1->next,temp,sizeof(student));

p1->next->next=temp2;

}

}

}

}

 

voidschool:

:

show()//显示函数

{

student*p;

p=head;

intn=0;

while(p->next)

{

(p->next)->output();

p=p->next;

n++;

}

}

voidschool:

:

mend()//修改函数

{

student*p;

intnum=-1,n;

charname[20]="^";

do

{

cout<<"\t\t1:

按编号修改,2:

按姓名修改:

";

cin>>n;

}

while(n<1||n>2);

if(n==1)

{

cout<<"\t\t\t输入编号:

";

cin>>num;

}

if(n==2)

{

cout<<"\t\t\t输入姓名:

";

cin>>name;

}

if(!

find(&p,num,name))

{

cout<<"\t\t找不到你要修改的内容!

"<

return;

}

(p->next)->output();

(p->next)->input();

school:

:

setkey

(1);

}

voidschool:

:

save()//保存函数

{

student*p;

p=head;

ofstreamos("",ios:

:

out);

if(school:

:

getkey()==1)

{

while(p->next)

{

(p->next)->output(os);

p=p->next;

}

}

cout<<"\t\t\t文件已保存!

"<

school:

:

setkey(0);

}

voidschool:

:

begin()//初始化函数

{

student*p,*p2;

p=head;

clear();

longt;

ifstreamis("",ios:

:

in);

if(!

is)

{

ofstreamos("",ios:

:

out);

();

return;

}

intnum=-1;

while

(1)

{

num=-1;

t=();

is>>num;

(t);

if(num<0)

{

();

return;

}

p2=newstudent;

p2->input(is);

p->next=p2;

p2->next=NULL;

p=p->next;

}

}

voidschool:

:

clear()//清空函数

{

student*p,*p2;

p=head->next;

while(p)

{

p2=p;

p=p->next;

deletep2;

}

}

charschool:

:

mainmenu()//主选菜单函数

{

charn[8];

cout<<"\n\n☆☆☆☆欢迎进入学生上机管理系统☆☆☆☆"<

<<"****************************"<

<<"****************************"<

<<"**1:

录入学生信息**"<

<<"**2:

显示学生信息**"<

<<"**3:

查找学生信息**"<

<<"**4:

删除学生信息**"<

<<"**5:

统计学生数量**"<

<<"**6:

学生学号排序**"<

<<"**7:

修改学生信息**"<

<<"**8:

保存学生信息**"<

<<"**0:

退出系统**"<

<<"****************************"<

<<"****************************"<

<<"请选择:

";

cin>>n;

returnn[0];

}

student;

classschool

{

public:

school();

~school();

voidinput();

voidmend();

voiddel();

intfind(student**p,intnum,char*pn="^");

voidfound();

intncount();

voidsort();

voidshow();

voidsave();

voidbegin();

voidclear();

charmainmenu();

intgetkey(){returnkey;}

voidsetkey(intk){key=k;}

private:

student*head;

intkey;

};

""

voidmain()//主函数

{

schoolpp;

intk=1;

charn;

();

while(k==1)

{

n=();

switch(n)

{

case'1':

();break;

case'2':

();break;

case'3':

();break;

case'4':

();break;

case'5':

();break;

case'6':

();break;

case'7':

();break;

case'8':

();break;

case'0':

if()==1)

{

cout<<"\t\t\t是否保存?

1:

保存0:

不保存:

";

cin>>k;

if(k==1)

();

}

();

k=0;

break;

}

}

}

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2