C++学生选修课程系统设计Word格式文档下载.docx

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

C++学生选修课程系统设计Word格式文档下载.docx

《C++学生选修课程系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++学生选修课程系统设计Word格式文档下载.docx(51页珍藏版)》请在冰点文库上搜索。

C++学生选修课程系统设计Word格式文档下载.docx

读取功能:

可将保存在文件中的信息读入到当前系统中,供用户进行使用。

2课题总体分析

2.1系统需求分析

我们设计一个程序对学生选课信息进行保存,对学生的选课信息进行可执行操作,如添加、删除、查询等等。

2.2系统功能描述

该程序包括以下功能模块:

学生信息添加模块:

能够输入学生基本信息并保存到文件中。

查看模块:

显示所有可选修课程的信息。

查询:

显示所有符合要求的课程信息。

选课:

显示学生已选课程信息和选课,删除已选课程信息。

退出系统。

为了完善系统,我们还添加了一个登录界面。

考虑到添加课程信息的功能只适合老师,因此我们设置了添加课程的权限设置(必须输入密码)。

我们建立了两个文件用来保存学生信息和课程信息。

(student.txt和subject.txt)

该系统功能说明:

系统以菜单方式工作;

课程信息录入功能(课程信息用文件保存)--输入;

课程信息浏览功能--输出;

查询功能:

至少一种查询方式;

按学分查询,按课程性质查询

2.3系统功能模块图

图2-1系统功能模块图

3课题详细设计

3.1系统类图

图3-1系统类图

3.2系统类的设计

建立两个类,一个课程类,一个学生类,分别用来保存课程信息和学生信息

classsubject//建立一个课程类,保存课程信息

{

public:

intnum;

charname[30];

charcha[20];

intTime,time1,time2,xf;

charkkxq[20];

}S;

classstudent//建立一个学生类,保存学生信息

charnam[10];

charnum[15];

intzxf;

intcnt;

}Stu;

该程序包含的主要函数功能说明:

voidXuanKeMenu();

//声明一个选课主菜单函数

intfind(intno);

//找到想要的课程编号

voidSave();

//保存已选的课程信息

voidDL();

//声明一个登录界面的函数

voidMainMenu();

//主菜单

voidoutput();

//将课程信息输出到屏幕

voidLoad();

//声明载入文件信息的函数

voidLoad2();

//载入学生信息(文件此前已建立)

voidquit();

//退出函数

voidadd();

//添加课程函数

voidChaXun();

//查询主菜单函数

voidchaxun1();

//按学分方式查询

voidchaxun2();

//按课程性质查询

voidxuanke();

//选课函数:

执行选课功能

voidtq1();

//声明提取信息的函数

voidtq2();

voidAddStuInfo();

//声明添加学生信息的函数

voiddel();

//删除已选课程信息

主要的数据结构表:

序号

成员名

数据类型

字段含义

1

nam

char

姓名

2

num

3

zxf

int

总学分

4

cnt

选课总数

5

name

课程名称

6

课程编号

7

cha

char

课程性质

8

Time

课程总学时

9

time1

授课总学时

10

time2

实验(上机)总学时

11

xf

课程学分

12

kkxq

开课学期

3.4信息添加模块设计

图4-1信息添加功能模块图

信息添加模块中,分别有两种信息需要添加,即学生信息和课程信息,分别是AddStuInfo()函数和add()函数。

下面分别来解释与说明这两个函数功能,及其它的实现。

1.首先是学生信息添加AddStuInfo()函数,首先我们先创建个文件,在电脑的D盘创建个student.txt文件,用于存储学生信息。

当添加学生信息前,首先打开student.txt文件。

FILE*fp;

fp=fopen("

d:

\\student.txt"

"

a"

);

if(fp==NULL){

cout<

<

"

OpenError!

\n"

;

exit

(1);

}

fseek(fp,0,2);

随后向文件中输入学生信息,输入完后关闭student.txt文件

cout<

\t\t\t请输入学号:

cin>

>

Stu.num;

cout<

\t\t\t请输入姓名:

Stu.nam;

St=Stu.zxf=0;

fprintf(fp,"

%s%s%d%d\n"

Stu.num,Stu.nam,St,Stu.zxf);

z.push_back(Stu);

T.clear();

TT.push_back(T);

fclose(fp);

2.然后是课程信息添加add()函数,添加课程信息前,先验证密码是否正确,则需要打开D盘的password.txt文件,判断输入的密码是否和文件中的密码一样,一样才可以继续添加课程信息。

stringpassword1,password2;

charpassword[20];

int_cnt=0;

FILE*fp;

\\password.txt"

r"

111\n"

}

fscanf(fp,"

%s"

password);

password2=password;

当密码验证正确后,调用save()函数,开始添加课程信息,首先我们先创建个文件,在电脑的D盘创建个subject.txt文件,用于存储课程信息。

当添加课程信息前,首先打开subject.txt文件。

\\subject.txt"

w"

随后向文件中输入课程信息,输入完后关闭subject.txt文件

for(inti=0;

i<

v.size();

i++)

fprintf(fp,"

%d%s%s%d%d%d%d%s\n"

v[i].num,v[i].name,

v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);

这就是基本的信息添加模块,在D盘创建文件,将学生信息与密码信息,课程信息存入D盘所创建的信息中,方便以后信息的使用而且数据不易丢失。

3.5课程查询模块设计

图4-2课程查询模块图

课程查询模块,一共有两个查询方法,一个是通过学分的方式来查询课程chaxun1()函数,一个是通过课程性质查询课程chaxun2()函数。

1.首先是通过学分的方式来查询课程chaxun1(),通过输入一个学分key,通过判断v[i].xf==key;

来查找到是第i个数据,然后输出课程信息

intkey;

cin>

key;

for(inti=0;

{

if(cnt&

&

cnt%10==0)

{

cout<

endl<

\t========================================================"

endl;

\t按任意键查看下一页"

getch();

system("

cls"

endl;

\t********************************************************"

\t**********************课程信息*******************"

\t课程"

"

课程"

课程"

总"

<

授课"

实验或"

学分"

开课"

\t编号"

名称"

性质"

学时"

上机学时"

学期"

}

if(v[i].xf==key)

cnt++;

printf("

\t%3d%12s%8s%4d%6d%8d%8d%7s\n"

v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);

2.然后是通过课程性质的方式来查询课程chaxun2(),通过输入一个课程性质key[20],通过判断!

strcmp(v[i].cha,key);

charkey[20];

学"

if(!

strcmp(v[i].cha,key))

v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);

这就是基本的课程信息查询模块,通过输入一个key值,判断课程的学分和性质是否和这个key值相等,如果相等输出这个课程信息。

4.3学生选课模块设计

图4-3学生选课模块

学生选课功能是这系统的核心功能,学生通过选课功能来进行对课程的最终选择,这个功能由选课函数xuanke()函数完成。

首先显示所有课程信息,然后通过输入课程编号来进行选课,选好后通过调用SaveStuInfo()函数将选择好的课保存到学生信息中。

1.进入选课功能显示所有课程,然后根据选择的课程编号进行选择自己所需要的课程。

charstr[100];

system("

<

i<

i++)

if(i&

i%10==0)

\t请输入所选课程编号:

gets(str);

if(strcmp(str,"

))tq1(str);

printf("

v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);

if(strcmp(str,"

2.将所选的课程信息保存到学生信息中,方便下次登录直接查看之前选的课程信息。

z.size();

%s%s%d%d"

z[i].num,z[i].nam,z[i].cnt,z[i].zxf);

for(it=TT[i].begin();

it!

=TT[i].end();

it++)

fprintf(fp,"

%d"

*it);

3.学生选完课后,系统会计算学生选课的总学分,如果没达到60分给予提醒,如果不选返回选课主菜单。

if(z[F].zxf<

60)

\t\t你所选课程的总学分少于60,是否继续选课!

[Y/N]"

stringx;

x;

if(x[0]=='

y'

||x[0]=='

Y'

)xuanke();

elseXuanKeMenu();

elseXuanKeMenu();

学生选课功能主要是让学生自主选课,并且当学生选课的总学分小于60分给学生提醒,让学生不会因最后学分不够而烦恼。

当课程选好好保存到学生信息D盘的student.txt文件中,保存好的文件不易丢失,并且可以重复使用。

5编码与测试

使用Microsoftvisualstudio2010软件编写代码,在调试测试过程中,软件的优越性体现的非常大,在一些变量声明时,声明后再下面使用的时候,经常会混淆,vs2010用红色波浪线提示的很明显,很容易发现问题。

在调试时,常常使用断点调试,让调试更加简便,更快找到错误地方及时改正。

有时候不会用的一些调试功能,常常可以通过网上XX搜索,可以很快学习到调试程序的方法,使我学到了很多。

在程序测试时,一项一项功能的添加和运用,使我更加有信心写下去,一开始无从下手的程序到最后全部完成,并且还课余时间加入任务书外的功能,不断测试稳定性,最后使这个程序最终成功

在调试和测试时也少不了同学老师的帮助,他们的帮助让我的设计更快完成。

首先添加学生信息有姓名,学号等信息,进入学生选课系统,如果在缓存文件中找不到此学号的学生,则需要添加学生信息,如下图5-1,只有当添加好学生信息,才可以进入选课系统的主菜单。

添加学生信息如下图5-2。

在主菜单中有查看课程信息,添加课程信息,查询课程信息和学生选课功能。

如下图5-3

图5-1学生信息

图5-2添加学生信息

图5-3主菜单

进入主菜单后,可以查看课程信息,添加课程信息,查询课程信息和学生选课四个功能,分别对应输入1,2,3,4,退出系统输入0

首先是查看课程信息,当输入1时,回车后,就可查询之前添加好的课程信息如图5-4

图5-4课程信息查看

然后是课程添加,当在主菜单中输入2,进入添加课程。

根据一般的操作中,添加课程信息都是管理员添加,学生自己无权添加课程,所以进入添加课程功能前需要输入密码,管理员输入密码如下图5-5。

图5-5管理员输入密码

当输入密码错误时,提示密码错误,并且无法进入添加课程功能。

如图3-6

图5-6添加课程密码错误

当密码输入正确,进入添加课程信息功能。

课程添加中,可以添加课程的编号,性质,课程学分等信息如图5-7。

如图5-7添加课程信息

第三个功能,课程信息的查询,在主菜单页面输入3,既可以跳转到课程信息查询功能中,如图5-8,课程信息的查询有两种方式,一种是根据学分查询还有一种是根据课程性质查询

图5-8课程信息查询

进入课程信息查询,输入1,进入根据课程的学分来查询相关课程,可以更加方便的筛选课程信息。

如图5-9

图5-9学分查询课程

进入课程信息查询,输入2,进入根据课程的学分来查询相关课程,可以更加方便的筛选课程信息。

如图5-10

图5-10课程性质查询课程

在主菜单中输入4,即可进入选课功能中,进入后,课看见这位学生已选的课程与已选课程的总学分如图5-11

图5-11学生已选课程

进入选课系统后,输入1,即可开始选课,学生可以根据课程编号选课。

如图5-12

图5-12学生选课

输入选择的课程编号后,即可将课程选入,并且在选好后,根据选择课程的学分,计算是否大于60分,如果少于60分提醒您继续选课,如图5-13

图5-13选课

在刚进入选课系统后,可以看到自己选的课,如果觉得选择的课不想选了,也可以删除已选课程,在选课功能中输入2,如图5-14

图5-14删除已选课程

6小结

通过本次的课程设计,让我明白C++程序设计这门课程原来还是有很大用处。

学会了文件的基本操作,文件流操作函数主要在头文件fstream中,输入流在头文件ifstream,输出流在头文件ofstream中,在定义文件操作流的对象时要加上这两个类。

先定义两个类,一个学生类,一个课程类,分别用来处理学生信息和课程信息。

以定义几个函数分别实现:

创建文件、复制文件、读取文件中的内容到显示器在主函数中调用创建函数,创建一个文件student.txt,一个文件subject.txt,将学生信息存入student.txt中,将课程信息存入subject.txt中,在使用前先fopen打开文件,然后fprintf写入信息到文件里,然后fclose关闭文件。

在这次课程设计中,我在任务之外添加了两个新功能。

在实际生活中,添加课程信息一般是管理员操作添加,所以一般都要通过密码验证,在我的这个课程设计中就添加了这个功能。

也是通过创建的文件,储存密码信息,在添加课程之前,需要提取文件信息后和输入值对比,验证通过方可添加课程信息。

在添加课程之后,我添加了一个选修总学分提示功能,在没有满60学分的情况下,提醒你继续选课,这样更便捷,实际些。

以前总一位

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

当前位置:首页 > 自然科学 > 物理

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

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