课程设计选题管理系统报告.docx
- 文档编号:6053183
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:28
- 大小:118.37KB
课程设计选题管理系统报告.docx
《课程设计选题管理系统报告.docx》由会员分享,可在线阅读,更多相关《课程设计选题管理系统报告.docx(28页珍藏版)》请在冰点文库上搜索。
课程设计选题管理系统报告
上海电力学院
课程设计报告
面向对象程序设计
2014/2015学年第一学期)
课题名称课程设计选题管理系统设计
院(系)电子与信息工程学院
专业通信工程
学号20132234
姓名储昊
时间2015年1月19日至1月23日
地点虚拟仿真实验室(南4教312)
指导老师骆政屹
一、设计目的与任务:
错
误!
未定义书签。
1、本课程设计的目的:
3…
2、本课程设计的任务:
错
误!
未定义书签。
二、设计方案:
••错
误!
未定义书签。
1、总体设计.4…
2、系统设计.错,
误!
未定义书签。
3、系统实现.5…
16
:
2&
4、系统测试
3.心得体会
一、设计目的与任务
1、本课程设计的目的
1)课程设计是实践教学环节。
设置课程设计的目的是加强学生对本课程及相关课程知识的理解,培养学生综合运用理论知识分析和解决实际问题的方法与能力。
有助于提高学生的创新能力和创新意识。
搞好课程设计教学工作,对实现专业培养目标,提高学生全面素质有重要作用。
2)通过课程设计更进一步理解C++勺基础知识。
3)训练用系统的观点及软件开发的一般规范进行软件开发,并在此过程中培养严谨勺科学态度和良好勺工作作风。
初步掌握软件开发过程中勺问题分析、系统设计、程序编码、调试、测试等方面勺基本方法和技能。
4)熟练掌握C++知识在程序中的应用,了解书本知识在解决实际问题中的用途。
2、本课程设计勺任务
(1)问题描述
课程设计题目包括:
编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。
学生信息包括:
学号、姓名、性别、年龄、班级、专业等信息。
(2)功能要求
1添加功能:
程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。
添加记录时,要求学号和编号要唯一。
如果添加了重复记录,则提示数据添加重复并取消添加。
2查询功能:
可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
3显示功能:
可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。
4编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意学号的唯
一性。
5删除功能:
主要实现对已添加的学生和课程设计题目记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!
”并返回操作。
6统计功能:
能根据多种参数进行统计。
能按课程设计题目名称统计出学生选择该题目的人员的信息。
7保存功能:
可将当前系统中各类记录存入文件中,存入方式任意。
8读取功能:
可将保存在文件中的信息读入到当前系统中,供用户进行使用。
设计方案
1、总体设计
我们设计一个程序对学生课程设计选题信息进行保存,对学生的选题信息进行可执行多种操作,该程序包括以下功能模块:
1)学生信息添加模块:
能够输
入学生基本信息并保存到文件中。
2)查询模块:
显示所有符合要求的课程设计信息。
3)编辑模块:
可对学生信息进行修改。
4)删除模块:
可删除相应的学生信息。
5)统计模块:
能根据多种参数进行统计。
6)查看模块:
显示所有课程设计选题的信息。
7)退出系统。
为了完善系统,我们还添加了一个登录界面。
2、系统设计
1)类设计
定义一个学生类Student,类中包括学号stuid,姓名stuname,性别sex,年龄age,班级clas,专业specialty,及所选课程的课程编号couid,课程名称couname,关键词keyword,实现技术technology;
定义一个管理类Guanli,其成员函数包括向文件输入函数voidwrite(intn);
从文件读取函数,intread();添加学生信息函数voidadd(),查询信息函数voidsearch(),按学号查询函数voidsearchsid(),按姓名查询函数voidsearchsname(,按题目编号查询函数voidsearchcid(),按题目名称查询函数voidsearchcname();修改信息函数voidalter();删除信息函数voiddel();统计信息函数voidtotal();显示函数voiddisplay()以及一个数据成员Studentstu[50]。
2)函数设计
voidwrite(intn),向文件中写入数据,打开文本文档,并将数据输入到文本文档中;intread(),向文件中写入数据从文件中读数据,打开文本文档,并将文本文档中的数据输出;voidadd(),添加学生信息;voidsearch()查询信息(可根据学生的学号、姓名、所选课程编号、课程名称进行信息查询);voidalter(),修改学生信息;voiddel(),删除学生信息,根据输入的学生学号通过调用函数实现;voidtotal(),统计学生信息(根据学生所选课程名称进行统计);voiddisplay。
,显示函数用来显示所有学生信息;intmain()主函数,显示主菜单,调用各个函数实现所有功能。
3)系统流程图
课程设计学生选课系统设计结构图:
进入功能界面后,可以进行多项功能选
择,如添加、查询、显示、修改、删除、统计,将数据写入文件以及从文件读取数据等;而查询功能又可以分为按学号、姓名、题目编号、题目名称等方式进行查询。
如下图所示。
4)界面设计
主界面是“欢迎使用课程设计选课系统”,下面是所要使用的功能:
1.添加新的纪录
2.查询记录信息
3•修改学生信息
4.删除学生信息
5.统计所有记录
6.显示所有记录
0.退出系统
其中,查询记录又可以弹出一个界面分别有以下几个功能:
1.根据学号查询
2.根据姓名查询
3.根据编号查询
4.根据题目名称查询
每实现一个功能,重新弹出主界面,进行下一个的功能选择
3、系统实现
1)类实现
classStudent
{
public:
intstuid;
charstuname[10];charsex[2];intage;
charclas[10];
charspecialty[10];intcouid;
charcouname[10];
charkeyword[20];
chartechnology[30];}stu[50];classGuanli
{
private:
Studentstu[50];
public:
voidadd();voidsearch();voidsearchsid();
voidsearchsname();
voidsearchcid();
voidsearchcname();voidalter();
//学号
//姓名
//性别
//年龄
//班级
//专业
//题目编号
//题目名称
//关键词
//实现技术
//定义对象
//添加学生信息
//查询信息
//按学号查询信息
//按名字查询信息
//按题目编号查询信息
//按题目名称查询信息
//修改信息
//删除信息
//统计信息
voiddel();voidtotal();
voiddisplay();voidwrite(intn);intread();
//显示信息
//向文件中写入数据
//从文件中读数据
};
2)函数实现
voidGuanli:
:
write(intn)
{
fstreammyfile;
myfile.open("student.txt",ios:
:
out|ios:
:
binary);
if(!
myfile)
{
cout«"该文件不能打开!
"< abort(); } intcount=n; myfile< for(inti=0;i<=count;i++) { myfile< "< } myfile.close(); } intGuanli: : read() { fstreammyfile; myfile.open("student.txt",ios: : in|ios: : binary); if(! myfile) { cout«"该文件不能打开! "< abort(); } intcount; myfile.seekg(0); myfile>>count; for(inti=0;i<=count;i++) { myfile>>stu[i].stuid>>stu[i].stuname>>stu[i].sex>>stu[i].age>>stu[i].clas>>stu[i].specialty>>stu[i].couid>>stu[i].couname>>stu[i].keyword>>stu[i].technology; cout< }myfile.close(); returncount; } voidGuanli: : add() { intn=read(); inti=0; charsign;coutvvendlvv'请输入增加的学生的相关信息: "< while(sign! ='N'){ loop: coutvv"学号: "; cin>>stu[i].stuid; cout< intc=0; while(c c++; if(stu[i].stuid==stu[i-c].stuid){ cout«"你输入的学号已经存在! 请重新输入"< } } coutvv"姓名: ";cin>>stu[i].stuname; coutvvendl;coutvv"性别: "; cin>>stu[i].sex; coutvvendl;coutvv'年龄: "; cin>>stu[i].age; coutvvendl;coutvv'班级: "; cin>>stu[i].clas; coutvvendl;coutvv"专业: "; cin>>stu[i].specialty; coutvvendl;coutvv"题目编号: "; cin>>stu[i].couid; cout< ";cin>>stu[i].couname; cout< ";cin>>stu[i].keyword;cout< ";cin>>stu[i].technology;cout< 是否继续写入学生信息? (Y/N)";cin>>sign;//输入判断i++; }write(i); } voidGuanli: : search() { intn=read();cout<<"** (1)根据学号查询**"< cout<<"** (2)根据姓名查询**"< cout<<"**(3)根据编号查询**"< cout<<"**(4)根据名称查询**"< intc; Guanlig; coutvv"请输入选择: "; cin>>c; switch(c) {case1: g.searchsid();break; case2: g.searchsname();break; case3: g.searchcid();break; case4: g.searchcname();break; default: coutvv"输入错误,请重新输入! "< } g.write(n); } voidGuanli: : searchsid() { intn=read(); ints; inti=0; cout«endlvv'查找学生信息: "< "< while((stu[i].stuid-s)! =0&&i { "vvendl; coutvv"提示: 对不起,无法找到该学生的信息! } else coutvv" ******************************、' vvendl; coutvv"学号: "vvstu[i].stuid coutvv"姓名: "< coutvv"性别: "vvstu[i].sexvvendl; coutvv"年龄: "vvstu[i].agevvendl; coutvv'班级: "vvstu[i].clasvvendl;coutvv"专业: "vvstu[i].specialtyvvendl;coutvv"题目编号: "vvstu[i].couidvvendl; coutvv"题目名称: "vvstu[i].counamevvendl;coutvv"关键词: "vvstu[i].keywordvvendl;coutvv"实现技术: "vvstu[i].technologyvvendl; } } voidGuanli: : searchsname() { intn=read(); chara[10]; coutvv"请输入需要查找学生的姓名: "vvendl; cin>>a; for(inti=0;ivn;i++) if(strcmp(stu[i].stuname,a)==0) coutvv"学号: "vvstu[i].stuidvvendl;coutvv"姓名: "vvstu[i].stunamevvendl;coutvv"性别: "vvstu[i].sexvvendl; cout«"年龄: "< "< "< "v "< coutvv"关键词: "< "< } } voidGuanli: : searchcid() { intn=read(); intb; inti=0; coutvv"请输入需要查找的题目编号: "< while((stu[i].couid-b)! =0&&ivn)i++;//查找判断 if(i==n) { coutvv"提示: 对不起,无法找到该信息! "< } else coutvv"学号: "vvstu[i].stuidvvendl; coutvv"姓名: "vvstu[i].stunamevvendl; coutvv"性别: "vvstu[i].sexvvendl; coutvv"年龄: "vvstu[i].agevvendl; coutvv"班级: "vvstu[i].clasvvendl; coutvv"专业: "vvstu[i].specialtyvvendl;coutvv"题目编号: "vvstu[i].couidvvendl;coutvv"题目名称: "vvstu[i].counamevvendl;coutvv"关键词: "vvstu[i].keywordvvendl;coutvv"实现技术: "vvstu[i].technologyvvendl; } voidGuanli: : searchcname() { intn=read(); charc[10]; coutvv"请输入需要查找的题目名称: "vvendl;cin>>c; for(inti=0;ivn;i++) if(strcmp(stu[i].couname,c)==0) cout<<" ******************************、' < cout«"学号: "v "< "< "< "v coutvv"专业: "< "v "< "< "< } } voidGuanli: : alter() intn=read(); ints; inti=0; coutvvendlvv'修改学生信息: "< coutvv"请输入需要修改学生的学号: "< while((stu[i].stuid-s)! =0&&ivn)i++;//查找判断 if(i==n) { coutvv"提示: 对不起,无该学生的信息! ! ! "vvendl;//输入失败信息 } else { coutvv"该学生的信息: "vvendl; coutvv"学号"vvstu[i].stuidvv'\n'vv"姓名"vvstu[i].stunamevv'\n'vv"性别"vvstu[i].sexvv'\n'vv"年龄"vvstu[i].agevv'\n'vv"班级"vv stu[i].clasvv'\n'vv"专业"vvstu[i].specialtyvv'\n'vv"题目编号"vvstu[i].couidvv'\n'vv"题目名称"vvstu[i].counamevv'\n' vv"关键词"vvstu[i].keywordvv'\n'vv"实现技术"vvstu[i].technologyvv'\n'vvendl; coutvv"请重新输入该学生的信息"vvendl; coutvv"学号: "; cin>>stu[i].stuid; coutvvendl; coutvv"姓名: "; cin>>stu[i].stuname; coutvvendl; coutvv"性别: "; cin>>stu[i].sex; cout< cout<<"年龄: "; cin>>stu[i].age; cout< cout<<"班级: "; cin>>stu[i].clas; cout< cout«”专业: "; cin>>stu[i].specialty; cout< cout<<"题目编号: "; cin>>stu[i].couid; cout< cout<<"题目名称: "; cin>>stu[i].couname; cout< cout<<"关键词: "; cin>>stu[i].keyword; cout< cout<<"实现技术: "; cin>>stu[i].technology; cout< charc; cout<<"是否保存数据? (y/n)"«endl; cin>>c; if(c='y') cout<<"修改成功! "< write(n); } } voidGuanli: : del() { intn=read(); ints; inti=0,j; cout«endlvv'删除学生信息: "< "< while((stu[i].stuid-s)! =0&&i cout<<"提示: 记录为空! ! ! "v else { for(j=i;j { stu[j].stuid=stu[j+1].stuid;strcpy(stu[j].stuname,stu[j+1].stuname); strcpy(stu[j].sex,stu[j+1].sex);stu[j].age=stu[j+1].age;strcpy(stu[j].clas,stu[j+1].clas); strcpy(stu[j].specialty,stu[j+1].specialty); stu[j].couid=stu[j+1].couid; strcpy(stu[j].couname,stu[j+1].couname); strcpy(stu[j].keyword,stu[j+1].keyword);strcpy(stu[j].technology,stu[j+1].technology); } cout«"提示: 已成功删除! "< } cout«"你要删除的信息如下: "< cout«"姓名: "< cout«"学号: "< cout«"性别: "< cout«"年龄: "< "< coutvv"专业: "< cout«"题目编号: "< "< coutvv"关键词: "< "< write(n-1); } voidGuanli: : total() { { intn=read(); charc[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 选题 管理 系统 报告