C学生选课系统Word文档格式.docx
- 文档编号:20427127
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:28
- 大小:34.94KB
C学生选课系统Word文档格式.docx
《C学生选课系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C学生选课系统Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
中间通过文件的打开和关闭实现对文件内部所包含的数据操作。
为了方便用户控制管理,又添加了一些更人性化的功能如人工调试,运行配置等功能。
文件存储信息的方式更是简化了程序结构,使程序读起来更容易懂。
除此之外,本系统采用分块实现功能,将要实现的增加课程信息、修改课程信息、删除课程信息、增加学生信息和修改学生信息等功能分别用不同的子程序来完成,这样不仅方便了我们程序调试,更提高了程序的移植性。
3.2类定义
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
3.4文件操作函数
//添加学生信息的函数
//保存学生信息到文件中
3.5用户操作函数
//该函数根据用户的选择,完成指定的操作
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++程序设计实训教程.北京:
北京邮电大学出版社,2011
[3]揣锦华等编.《C++程序设计语言》.西安:
西安电子科技大学出版社,2011
[4]张素琴主编.《C++程序设计语言》.北京:
清华大学出版社,2010
[5]邓飞,李瑶主编《C++程序设计》.北京科海电子出版社2009
[6]李军民等编.《C++程序设计语言》.西安:
西安电子科技大学出版社,2011
附录全部代码
#include<
iostream>
vector>
set>
string.h>
conio.h>
stdlib.h>
fstream>
usingnamespacestd;
intF;
{
public:
intnum;
charname[30];
charcha[20];
intTime,time1,time2,xf;
charkkxq[20];
}S;
charnam[10];
charnum[15];
intzxf;
intcnt;
}Stu;
vector<
subject>
v;
//声明一个指向课程信息的向量
student>
z;
//声明一个指向学生信息的向量
set<
int>
T;
//建立一个集合
set<
>
TT;
//建立一个向量集合
:
:
iteratorit;
//建立一个迭代器
//声明一个选课主菜单函数
//声明一个登录界面的函数
voidMainMenu();
//声明载入文件信息的函数
voidChaXun();
voidxuanke();
//声明提取信息的函数
//声明添加学生信息的函数
voidAddStuInfo()
FILE*fp;
fp=fopen("
d:
\\student.txt"
"
a"
);
fseek(fp,0,2);
//打开学生信息文件
system("
cls"
cout<
<
endl<
endl;
"
\t\t***************************************************"
<
\t\t*****************学生选课系统******************"
\t\t\t请输入学号:
"
;
cin>
>
Stu.num;
\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);
}
A:
\t********************************************************"
\t**********************课程信息*******************"
\t\t\t请输入课程编号:
S.num;
\t\t\t请输入课程名称:
S.name;
\t\t\t请输入课程性质:
S.cha;
\t\t\t请输入总课时:
S.Time;
\t\t\t请输入授课学时"
S.time1;
\t\t\t请输入上机学时(实验学时):
S.time2;
\t\t\t请输入学分:
S.xf;
\t\t\t请输入开课学期:
S.kkxq;
v.push_back(S);
Save();
\t是否继续添加[Y/N]:
strings;
s;
if(s[0]=='
Y'
||s[0]=='
y'
)gotoA;
elseMainMenu();
voidSave()//保存已选的课程信息
\\subject.txt"
w"
for(unsignedinti=0;
i<
v.size();
i++)
%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);
voidSaveStuInfo()//保存学生信息
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++)
%d"
*it);
\n"
}
voidquit()//退出函数
exit
(1);
voidChaXun()//查询主菜单函数
\t\t\t\t请选择查询方式:
\n\t\t\t\t[1]学分查询\n\t\t\t\t[2]课程性质查询\n\t\t\t\t[0]返回主菜单\n\n"
\t\t\t\t请选择[0-2]:
intchoice;
choice;
if(choice>
=0&
&
choice<
3)
if(choice==1)chaxun1();
if(choice==2)chaxun2();
if(choice==0)MainMenu();
elseChaXun();
voidchaxun1()//按学分方式查询
intcnt=0;
\t请输入学分:
intkey;
key;
\t课程"
课程"
课程"
总"
授课"
实验或"
学分"
开课"
\t编号"
名称"
性质"
学时"
上机学时"
学期"
if(cnt&
cnt%10==0)
\t========================================================"
\t按任意键查看下一页"
_getch();
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);
\t是否继续查询[Y/N]:
)chaxun1();
voidchaxun2()//按课程性质查询
\t请输入课程性质:
charkey[20];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统