C++学生选课系统Word文档下载推荐.docx
- 文档编号:20199298
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:28
- 大小:35.74KB
C++学生选课系统Word文档下载推荐.docx
《C++学生选课系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++学生选课系统Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
在学生选好课程以后,可以将选好的课程保存于相应的文件中,以便下次进展修改。
通过函数的层层调用来实现程序的逻辑结构。
中间通过文件的打开和关闭实现对文件内部所包含的数据操作。
为了方便用户控制管理,又添加了一些更人性化的功能如人工调试,运行配置等功能。
文件存储信息的方式更是简化了程序结构,使程序读起来更容易懂。
除此之外,本系统采用分块实现功能,将要实现的增加课程信息、修改课程信息、删除课程信息、增加学生信息和修改学生信息等功能分别用不同的子程序来完成,这样不仅方便了我们程序调试,更提高了程序的移植性。
类定义类定义classsubject/建立一个课程类,保存课程信息classstudent/建立一个学生类,保存学生信息函数:
该程序包含的主要函数功能说明:
voidXuanKeMenu();
/选课主菜单函数intfind(intno);
voidSave();
voidDL();
/登录界面的函数voidMainMenu();
voidoutput();
voidLoad();
/载入文件信息的函数voidLoad2();
voidquit();
voidadd();
voidChaXun();
voidchaxun1();
voidchaxun2();
voidxuanke();
voidtq1();
/提取选课编号的函数voidtq2();
voidAddStuInfo();
/添加学生信息的函数voidSaveStuInfo();
/保存学生信息到文件中voiddel();
/删除已选课程信息的函数voidsum();
3.3宏定义宏定义#defineN10文件操作函数文件操作函数voidAddStuInfo();
/保存学生信息到文件中用户操作函数用户操作函数/该函数根据用户的选择,完成指定的操作voidDL()/登录界面voidMainMenu()/系统主菜单voidoutput()/显示函数:
将课程信息输出到屏幕voidAddStuInfo()/增加学生信息,并保存在文件中voidadd()/增加课程信息,并保存在文件中voiddel()/删除已选课程信息voidChaXun()/查询主菜单函数voidxuanke()/选课函数:
执行选课功能voidsum()/统计函数,统计并输出文件中的数据3.6其他重要函数其他重要函数voidLoad()/载入函数:
载入课程信息文件此前已建立voidLoad2()/载入学生信息文件此前已建立voidSave()/保存已选的课程信息voidSaveStuInfo()/保存学生信息voidquit()/退出函数voidchaxun1()/按学分方式查询voidchaxun2()/按课程性质查询voidtq1(char*str)/提取出选课时输入的课程编号intfind(intno)/寻找函数,找到想要的课程编号voiddisplay(inti)/输出函数voidtq2(char*str)/提取函数:
提前删除时输入的课程编号4测试结果与运行效果测试结果与运行效果运行程序后,登陆界面登陆学号,进入登陆后的界面,在其中可以选择查看课程信息、添加课程信息、查询课程信息、学生选课、统计情况和退出。
按照提示输入0-5和Enter键进入下级菜单,或者退出程序。
图4-1登陆后的界面输入1进入查看课程信息页面后,给出存放在文件类的所有课程信息,按y和Enter键停留界面,按n和Enter退出。
图4-2进入查看课程信息界面在主菜单中选择2,进入添加课程信息界面。
图4-3添加课程时的界面在主菜单中选4,学生选课界面。
图4-4学生选课时的界面在登陆界面输入exit退出系统。
图4-5退出系统时的界面5系统开发所系统开发所用到的技术用到的技术操作系统:
Windows7开发软件:
MicrosoftVisualStudio2013技术:
功能模块函数;
向量;
文件保存与读取。
模块:
是抽象的概念,按照功能划分模块,尽可能保证每个模块互相独立。
这个一般同程序的逻辑设计有关,同具体语言关系不大。
函数:
一般都有有明确的定义,有明确的语法。
用来完成相对独立功能和程序。
向量Vector:
Vector是C+标准程序库中的一个类,可视为会自动扩展容量的数组,以循序(Sequential)的方式维护变量集合。
vector的特色包括支持随机存取,在集合尾端增删元素很快,但是在集合中间增删元素比拟费时。
vector是C+标准程序库中的众多容器container之一,除此之外还有list、set、map、等等。
vector以模板(泛型)方式实现,可以存储任何类型的变量,包括用户自定义的数据型态。
文件操作:
C语言对文件的处理一般有两种方法,缓冲文件系统和非缓冲文件系统。
在文件系统中,系统对文件进展读写之前首先在内存区开辟一个称作缓冲区的专用内存区域。
在缓冲文件系统中,系统对文件进展读写之前首先在内存区开辟一个称作缓冲区的专用内存区域。
从内存向磁盘写文件时必须先写入缓冲区,装满缓冲区后才一起写到磁盘上去;
从磁盘读文件时必须先把一批数据读到缓冲区充满缓冲区,然后再从缓冲区将数据逐个送到用户数据区。
在非缓冲文件系统中,文件的处理不自动开辟确定大小的缓冲区,而是由程序设定的缓冲区。
一般用缓冲文件系统进展的输入/输出。
用非缓冲文件系统进展的输入/输出称为低级低层输入/输出。
ANSIC标准采用缓冲文件系统,现代的操作系统也广泛采用缓冲型文件系统。
参考文献参考文献1李素假如.C+面向对象程序设计.:
中国水利水电,2013.2曾辉.王更生.C+程序设计实训教程.:
邮电大学,20113揣锦华等编.C+程序设计语言.某某:
某某电子科技大学,20114X素琴主编.C+程序设计语言.:
清华大学,20105邓飞,李瑶主编C+程序设计.科海电子20096李军民等编.C+程序设计语言.某某:
某某电子科技大学,2011附录附录全部代码全部代码#include#include#include#include#include#include#include#defineN10usingnamespacestd;
intF;
classsubject/建立一个课程类,保存课程信息public:
intnum;
charname30;
charcha20;
intTime,time1,time2,xf;
charkkxq20;
S;
classstudent/建立一个学生类,保存学生信息public:
charnam10;
charnum15;
intzxf;
intt;
Stu;
vectorv;
/声明一个指向课程信息的向量vectorz;
/声明一个指向学生信息的向量setT;
/建立一个集合vectorsetTT;
/建立一个向量集合set:
iteratorit;
/建立一个迭代器voidXuanKeMenu();
/声明一个选课主菜单函数intfind(intno);
/声明一个登录界面的函数voidMainMenu();
/声明载入文件信息的函数voidLoad2();
/声明提取信息的函数voidtq2();
/声明添加学生信息的函数voiddel();
voidsum();
voidAddStuInfo()FILE*fp;
fp=fopen(d:
student.txt,a);
fseek(fp,0,2);
/打开学生信息文件system(cls);
coutendlendlendlendlendl;
couttt*endl;
couttt*学生选课系统*endl;
couttt*endlendl;
coutStu.num;
coutStu.nam;
Stut=Stu.zxf=0;
fprintf(fp,%s%s%d%dn,Stu.num,Stu.nam,Stut,Stu.zxf);
/存入文件z.push_back(Stu);
T.clear();
TT.push_back(T);
/用向量指向学生信息fclose(fp);
voidadd()A:
system(cls);
coutendlendlendl;
coutt*endl;
coutt*课程信息*endl;
coutt*endlendl;
coutS.num;
coutS.name;
coutS.cha;
coutS.Time;
coutS.time1;
coutS.time2;
coutS.xf;
coutS.kkxq;
v.push_back(S);
Save();
coutendls;
if(s0=Y|s0=y)gotoA;
elseMainMenu();
voidSave()/保存已选的课程信息FILE*fp;
subject.txt,w);
for(unsignedinti=0;
iv.size();
i+)fprintf(fp,%d%s%s%d%d%d%d%sn,vi.num,vi.name,vi.cha,vi.Time,vi.time1,vi.time2,vi.xf,vi.kkxq);
fclose(fp);
voidSaveStuInfo()/保存学生信息FILE*fp;
student.txt,w);
iz.size();
i+)fprintf(fp,%s%s%d%d,zi.num,zi.nam,zit,zi.zxf);
for(it=TTi.begin();
it!
=TTi.end();
it+)fprintf(fp,%d,*it);
fprintf(fp,n);
voidquit()/退出函数exit
(1);
voidChaXun()/查询主菜单函数system(cls);
couttttt请选择查询方式:
ntttt1学分查询ntttt2课程性质查询ntttt0返回主菜单nn;
coutchoice;
if(choice=0&
choice3)if(choice=1)chaxun1();
if(choice=2)chaxun2();
if(choice=0)MainMenu();
elseChaXun();
voidchaxun1()/按学分方式查询system(cls);
intt=0;
coutkey;
coutt课程课程课程总授课实验或学分开课endl;
coutt编号名称性质学时学时上机学时学分学期endlendl;
i+)if(t&
t%10=0)coutendlt=endl;
coutt按任意键查看下一页;
_getch();
if(vi.xf=key)t+;
printf(t%3d%12s%8s%4d%6d%8d%8d%7sn,vi.num,vi.name,vi.cha,vi.Time,vi.time1,vi.time2,vi.xf,vi.kkxq);
if(s0=Y|s0=y)chaxun1();
voidchaxun2()/按课程性质查询system(cls);
if(!
strcmp(vi.cha,key)t+;
if(s0=Y|s0=y)chaxun2();
voidtq1(char*str)/提取出选课时输入的课程编号stringt=;
inti=0,cont=0;
while(stri)if(isalnum(stri)t+=stri;
elseinttmp=atoi(t.c_str();
if(TTF.find(tmp)!
=TTF.end()t=;
i+;
continue;
zF.zxf+=vfind(tmp).xf;
TTF.insert(tmp);
t=;
cont+;
inttmp=atoi(t.c_str();
if(TTF.find(tmp)=TTF.end()cont+;
zFt+=cont;
voidxuanke()/选课函数:
执行选课功能charstr100;
coutendlendl;
i+)if(i&
i%10=0)coutendlt=endl;
coutendlt请输入所选课程编号:
;
gets(str);
if(strcmp(str,)tq1(str);
/,system(cls);
coutendlt=;
SaveStuInfo();
coutx;
if(x0=y|x0=Y)xuanke();
elseXuanKeMenu();
intfind(intno)/寻找函数,找到想要的课程编号for(unsignedinti=0;
i+)if(vi.num=no)returni;
voiddisplay(inti)printf(t%3d%12s%8s%4d%6d%8d%8d%7sn,vi.num,vi.name,vi.cha,vi.Time,vi.time1,vi.time2,vi.xf,vi.kkxq);
voidXuanKeMenu()/选课菜单函数system(cls);
intchoice,l=0;
coutt*学生选课*endl;
coutt某某:
zF.nam学号:
zF.num已选zFt;
cout门课程已选课程总学分:
zF.zxfendl;
coutt=endl;
coutt已选课程信息:
n;
for(it=TTF.begin();
=TTF.end();
it+,l+)if(l&
l%10=0)coutendlt=endl;
getchar();
if(choice=1)xuanke();
elseif(choice=2)del();
elseif(choice=0)MainMenu();
elseif(choice=3);
display(find(*it);
coutendlt=endl;
voidtq2(char*str)/提取函数:
提前删除时输入的课程编号stringt=;
set:
iterator_t=TTF.find(tmp);
if(_t!
TTF.erase(_t);
zFt-;
zF.zxf-=vfind(tmp).xf;
voiddel()/删除已选课程信息intm,l=0,k=0;
charstr100;
couttttt请输入要删除的课程的编号:
if(strcmp(str,)tq2(str);
system(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 选课 系统