学生选课管理系统报告.docx

上传人:b****8 文档编号:9386078 上传时间:2023-02-04 格式:DOCX 页数:13 大小:18.42KB
下载 相关 举报
学生选课管理系统报告.docx_第1页
第1页 / 共13页
学生选课管理系统报告.docx_第2页
第2页 / 共13页
学生选课管理系统报告.docx_第3页
第3页 / 共13页
学生选课管理系统报告.docx_第4页
第4页 / 共13页
学生选课管理系统报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

学生选课管理系统报告.docx

《学生选课管理系统报告.docx》由会员分享,可在线阅读,更多相关《学生选课管理系统报告.docx(13页珍藏版)》请在冰豆网上搜索。

学生选课管理系统报告.docx

学生选课管理系统报告

辽宁石油化工大学

计算机与通信工程学院

课程设计说明书

课程名称:

面向对象程序设计1-课程设计

题目:

学生选课系统

年级/专业/班:

软件1001班

学生姓名:

王琳

学  号:

1011030127

指导教师:

石元博

开始时间:

2011年12月05日

完成时间:

2011年12月10日

课设成绩:

摘要3

引言3

1.任务与分析3

2.程序运行平台4

3.系统设计4

4.系统实现4

4.1课程类的声明4

4.2教师类的声明5

4.3学生类的声明6

4.4主要实现7

4.4.1选课端验证7

4.4.2选课端8

4.4.3退选课程10

4.4.4查看选课12

4.4.5密码验证12

4.4.6选课端添加14

4.4.7选课端删除14

4.4.8管理员查看15

5.结论15

摘要

随着计算机的普及,各高校均采用计算机进行学生选课。

而对学生选课相关信息的管理由学生选课管理系统实现。

经过分析其学生选课端和系统管理端的各项功能,利用面向对象的C++编程实现了学生选课管理系统。

该系统选课端具有学生选课、退选课程、查看已选课程、打印选课信息等功能,而管理端具有对学生、教师、备选课程等信息的管理,主要包括增加,删除,查看等功能。

引言

1.任务与分析

学生选课管理系统实现对学生选课相关信息的管理,能处理学生、教师、课程信息的管理及选课操作。

1.每个学生包括有学号、姓名、总学分等内容;

2.每个教师包括工作证号、姓名、职称等信息;

3.课程包括课程号、课程名、任课教师、学分等信息;

4.能提供若干门课,由学生进行选择,打印出学生选课情况。

本课题主要的目的是通过面向对象的C++编程,实现学生选课管理系统对学生选课相关信息的管理,能处理学生、教师、课程信息的管理及选课操作。

其中每个学生包括有学号、姓名、已选课程和总学分;每个教师包括工作证号、姓名、职称等信息;课程包括课程号、课程名、任课教师、学分等信息;最终要实现能通过管理端提供若干门课,供学生进行选择,退选,并打印出学生选课情况。

在功能实现的基础上,还要设计出良好的界面。

2.程序运行平台

VC++6.0。

具体操作如下:

打开VC++6.0,新建一个空工程,添加相应的源文件,再编译,链接,执行。

3.系统设计

学生选课管理系统:

(1)学生选课端{选择课程、退选课程、查看已选课程、返回主菜单、退出系统}

(2)系统管理端:

管理员验证:

{增加学生、查看所有学生、删除学生、增加课程、查看所有课程、删除课程、增加教师、查看所有教师、删除教师、返回主菜单、退出系统}

(3)退出系统

 

4.系统实现

4.1课程类的声明

classsubject//课程信息类

{Course*head;//头指针

Course*p;//当前指针

public:

subject(){head=p=NULL;};

voidAdd();//增加课程

voidDelete();//删除课程

intSearch(charnu[]);//根据课程号查找课程

voidReadFile();//从文件中读取课程信息

voidWriteFile();//向文件写入课程信息

voidDisplay();//在屏幕中输出全部课程信息

friendXS;

friendJS;

friendvoidxuanke(XSP,charnu[],charna[]);

};

4.2教师类的声明

classJS//教师信息类

{Teacher*head;//头指针

Teacher*p;//当前指针

public:

JS(){head=p=NULL;};

voidAdd();//增加教师

voidDelete();//删除教师

voidSearch(charna[]);//通过教师姓名查找任课教师

intSearch1(charnu[]);//通过教师号查找教师

voidReadFile();//从文件中读取教师信息

voidWriteFile();//向文件写入教师信息

voidDisplay();//在屏幕中输出全部教师信息

friendXS;

};

4.3学生类的声明

classstu//学生信息类

{Student*head;//头指针

Student*p;//当前指针

public:

stu(){head=p=NULL;};

voidAdd();//增加学生

voidDelete();//删除学生

intSearch(charnu[],charna[]);//按学生学号和姓名查找

intSearch(charnu[]);//按学生学号查找

voidReadFile();//将所有学生的信息写入文件

voidWriteFile();//从文件读出学生信息

voidDisplay();//显示所有学生

friendXS;

};

classXS//学生类

{charnum[10];//学号

charname[20];//姓名

Course*head;//已选课程头指针

Course*p;//已选课程当前指针

floattcredit;//已选课程总学分

public:

XS(){head=p=NULL;tcredit=0;};

voidset(charnu[],charna[])

{strcpy(num,nu);strcpy(name,na);};

voidAddcourse(charnu[]);//学生选课

intSearch(charnu[]);//按课程号查找以选课程

voidDeletecourse(charnu[]);//退选

voidShowcourse();//显示已选课程

floatget_tcredit();//获取已选课程总学分

voidReadFilecourse();//读取已选课程

voidWriteFilecourse();//将已选课程写入文件

friendvoidtuixuan(XSP,charnu[],charna[]);

};

4.4主要实现

4.4.1选课端验证

intb1,b2,b0=menu();

stup1;subjectp2;JSp3;XSp;

if(b0==1)

{system("cls");

p1.ReadFile();

charnu[10],na[20];

cout<<"\n\n\t\t请输入您的学号:

";cin>>nu;

cout<<"\n\n\t\t请输入您的姓名:

";cin>>na;

if(p1.Search(nu,na)==0)

{cout<<"\n\n\t\t对不起,学号或姓名输入错误!

按任意键返回..";

getchar();getchar();gotoP0;}

else

{P1:

b1=menu1();

4.4.2选课端

voidxuanke(XSP,charnu[],charna[])//选课功能函数

{system("cls");

JSJ;

J.ReadFile();

subjectsub;

sub.ReadFile();

sub.Display();

P.set(nu,na);

P.ReadFilecourse();

Loop1:

cout<<"请输入要选择的课程号:

";

charkh[10];

cin>>kh;

cout<<"是否查看任课教师信息(y/n):

";

charY_N;

Loop3:

cin>>Y_N;

if(Y_N=='Y'||Y_N=='y')

{chart[20];

Course*kc=sub.head;

while(kc!

=NULL)

{if(strcmp(kc->um,kh)==0)break;

kc=kc->next;

}

if(kc!

=NULL)

{strcpy(t,kc->kecheng.cteacher);

J.Search(t);

}

else

cout<<"没有此任课教师的信息!

"<

}

else

if(Y_N!

='N'&&Y_N!

='n')

{cout<<"输入不正确,请重新输入:

";gotoLoop3;}

P.Addcourse(kh);

getchar();

cout<<"\n\t是否继续选课(y/n):

";

Loop2:

cin>>Y_N;

if(Y_N=='Y'||Y_N=='y')gotoLoop1;

else

if(Y_N=='N'||Y_N=='n')P.WriteFilecourse();

else

{cout<<"输入不正确,请重新输入:

";gotoLoop2;}

getchar();

cout<<"按任意键继续....";

getchar();

}

4.4.3退选课程

voidtuixuan(XSP,charnu[],charna[])//退选课程功能函数

{system("cls");

P.set(nu,na);

P.ReadFilecourse();

Loop3:

if(P.head!

=NULL)

{system("cls");

P.Showcourse();

cout<<"请输入要退选的课程号:

";

charkh[10];

cin>>kh;

P.Deletecourse(kh);

P.WriteFilecourse();

getchar();

cout<<"是否继续退选课程(y/n):

";

charY_N;

Loop4:

cin>>Y_N;

if(Y_N=='Y'||Y_N=='y')gotoLoop3;

else

if(Y_N!

='N'&&Y_N!

='n')

{cout<<"输入不正确,请重新输入:

";gotoLoop4;}

}

elsecout<<"\n\n\t\t没有已选课程,不能退选!

"<

getchar();

cout<<"按任意键继续....";

getchar();

}

4.4.4查看选课

voidlookyixuan(XSP,charnu[],charna[])//查看学生已选课程函数

{system("cls");

P.set(nu,na);

P.ReadFilecourse();

P.Showcourse();

getchar();

cout<<"按任意键继续....";

getchar();

}

4.4.5密码验证

voidpassword()//密码检查功能函数

{intk=0,i;

charA[]="000000",B[10],a;

system("cls");

for(i=0;i<6;i++)

cout<

printf("\t\t\t请输入管理员密码:

");

while(k<=2)

{i=0;

while

(1)

{a=getch();

if(a==13)break;

B[i]=a;

i++;

printf("*");

}

B[i]='\0';

if(strcmp(A,B)==0)return;

else

{k++;

if(k<3)

cout<<"\n\n\t\t\t密码错误!

请重新输入:

";

}

if(k>=3)

{cout<<"\n\n\t\t\t输入错误密码超过三次!

请按任意键退出..";

getch();

tuichu();

}}}

4.4.6选课端添加

template//增加功能函数模板

voidADD(TP)

{system("cls");

P.ReadFile();

intN,i;

cout<<"请问您需要增加几个:

";

cin>>N;

for(i=0;i

{cout<<"第"<

"<

P.Add();

cout<

P.WriteFile();

getchar();

cout<<"按任意键继续....";

getchar();

}

4.4.7选课端删除

template//删除功能函数模板

voidDELETE(TP)

{system("cls");

P.ReadFile();

P.Display();

P.Delete();

P.WriteFile();

getchar();

cout<<"按任意键继续....";

getchar();

}

4.4.8管理员查看

template//查看功能函数模板

voidLOOK(TP)

{system("cls");

P.ReadFile();

P.Display();

getchar();

cout<<"按任意键继续....";

getchar();

}

5.结论

对于这次的课程设计任务,我感觉自己完成的不是太好。

在做报告的过程中,我发现我学的知识太少了,对链表,对指针的应用显得特别的生疏,频繁出错。

知道快完成时才发现好多功能无法实现,我有点灰心丧气,有时候想要放弃不写了。

可是这是我应该学习的,我不应该放弃。

后来,我经过几天的调试和请教,终于下定决心重新再来写一次。

通过网络和翻阅书籍,我又学到了很多东西,最终有了清晰地思路去完成“学生选课管理系统”的设计和编程。

经过多次的删改,终于实现了其基本功能,但是还不够完善,我又请教了几个同学,接受了她们的一些建议,对程序进行了完善。

可能由于现在知识能力的限制,程序还存在些许不足,有待改进的地方还很多,比如对程序运行时内存空间的清理做的不是很好。

通过本次的课程设计,让我体会到了自己做出一个软件后的乐趣,让我对C++充满了好奇心和无比的兴趣。

除此之外,这次的课程设计也增加了我学习计算机编程的信心。

在今后的学习中,我会更加努力地去学习,学习在C++课程设计里体现的知难而进,不耻下问,主动积极,持之以恒的态度,今后我的成绩也会越来越好。

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

当前位置:首页 > PPT模板 > 其它模板

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

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