课程设计选题管理系统设计.docx
- 文档编号:24035837
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:44
- 大小:378.04KB
课程设计选题管理系统设计.docx
《课程设计选题管理系统设计.docx》由会员分享,可在线阅读,更多相关《课程设计选题管理系统设计.docx(44页珍藏版)》请在冰豆网上搜索。
课程设计选题管理系统设计
北华航天工业学院
基于C++的面向对象程序设计实例》
课程设计报告
报告题目:
作者所在系部:
课程设计选题管理系统设计计算机科学与工程系
作者所在专业:
计算机应用技术
作者所在班级:
11512
作者姓名:
王杰
指导教师姓名:
斯庆巴拉
完成时间:
2012-6-20
北华航天工业学院教务处制
课程设计任务书
课题名称
课程设计选题管理系统设计
完成时间
2012/6/20
指导教师
斯庆巴拉
职称
教师
学生姓名
王杰
班级
11512
总体设计要求和技术要点
课程设计选题管理系统设计课程设计题目包括:
编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。
学生信息包括:
学号、姓名、性别、年龄、班级、专业等信息。
(1)添加功能:
程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。
添加记录时,要求学号和编号要唯一。
如果添加了重复记录,则提示数据添加重复并取消添加。
(2)查询功能:
可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:
可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:
主要实现对已添加的学生和课程设计题目记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!
”并返回操作。
(6)统计功能:
能根据多种参数进行统计。
能按课程设计题目名称统计出学生选择该题目的人员的信息。
(7)保存功能:
可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:
可将保存在文件中的信息读入到当前系统中,供用户进行使用。
工作内容及时间进度安排
1.6月4日~10日:
布置任务,软件设计;
2.6月11日~18日:
编写代码,上机调试;
3.6月19、20、21日:
软件验收,撰写课程设计报告;4.各班在6月22日下午五点前将课程设计报告收齐并上交。
课程设计成果
1.课程设计报告
2.源程序代码
摘要在当前的各大高校课程设计选题管理系统中,为了方便管理、查询、修改与统计相关信息,一般都会将学生、课程设计题目等信息进行编号存储,所以就必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现对冗杂的课程设计题目信息与学生信息的管理目的,还可以提高效率,方便同学们选题。
本文利用Microsoft的VisualC++6.0(类和函数,数组,对象等)编写程序,实现了用户对课程设计选题的管理操作。
本系统主要有八个功能模块:
包括添加、查询、显示、修改、删除、统计、保存、读取等功能。
已经过全面的系统测试,能够很好的运行,达到了预期设计预想。
关键词:
系统设计类函数数组文件操作
摘要1
第一章绪论1
1.1课程设计的目的1
1.2课程设计的背景和意义1
1.2.1课程设计的背景1
1.2.2课程设计的意义1
1.3课程设计环境1第二章需求分析2
2.1问题描述2
2.2功能要求2
2.3问题的解决方案2第三章系统设计3
3.1数据设计3
3.1.1类设计3
3.1.2函数设计3
3.2结构设计3
3.2.1系统流程图3
3.2.2界面设计4第四章系统实现5
4.1类实现5
4.2函数实现5
4.3主函数实现14第五章系统测试16
5.1模块测试16
5.2课程设计过程中遇到的问题总结22致谢22参考文献23附录24
第一章绪论
1.1课程设计的目的
(1)要求学生能够熟练掌握C++语言的基本知识和技能。
(2)基本掌握面向对象程序设计的基本思路和方法。
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题
1.2课程设计的背景和意义
1.2.1课程设计的背景
1.理论研究基础
(1)运用面向对象(类和对象)的机制来实现系统功能。
(2)建立清晰的类与函数之间的关系,学会对函数调用的熟练使用。
2.技术层面的支持
MicrosoftVisualC++6.0
MicrosoftVisualstudio2010
1.2.2课程设计的意义
通过此次课程设计,清晰的掌握C++语言的基本知识并能熟练的应用进行编程。
1.3课程设计环境
软件:
WindowsXP、windows7系统,
MicrosoftVisualStudio2010,
MicrosoftVisualC++6.0编译器。
硬件:
戴尔双核处理器,2G内存,512独立显卡,80G硬盘。
宏基双核处理器,2G内存,1G独立显卡,500G硬盘。
第二章需求分析
2.1问题描述
课程设计题目包括:
编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。
学生信息包括:
学号、姓名、性别、年龄、班级、专业等信息。
2.2功能要求
(1)添加功能:
程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。
添加记录时,要求学号和编号要唯一。
如果添加了重复记录,则提示数据添加重复并取消添加。
(2)查询功能:
可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:
可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:
主要实现对已添加的学生和课程设计题目记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!
”并返回操作。
(6)统计功能:
能根据多种参数进行统计。
能按课程设计题目名称统计出学生选择该题目的人员的信息。
(7)保存功能:
可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:
可将保存在文件中的信息读入到当前系统中,供用户进行使用
2.3问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
第三章系统设计
3.1数据设计
3.1.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]。
3.1.2函数设计
voidwrite(intn),向文件中写入数据,打开文本文档,并将数据输入到文本文档中;intread(),向文件中写入数据从文件中读数据,打开文本文档,并将文本文档中的数据输出;voidadd(S),添加学生信息;voidsearch()查询信息(可根据学生的学号、姓名、所选课程编号、课程名称进行信息查询);voidalter(),修改学生信息;voiddel()删除学生信息,根据输入的学生学号通过调用函数实现;voidtotal(),统计学生信息(根据学生所选课程名称进行统计);voiddisplay(),显示函数用来显示所有学生信息;intmain()主函数,显示主菜单,调用各个函数实现所有功能。
3.2结构设计
3.2.1系统流程图
课程设计学生选课系统设计结构图:
进入功能界面后,可以进行多项功能选择,如添加、查询、显示、修改、删除、统计,将数据写入文件以及从文件读取数据等;而查询功能又可以分为按学号、姓名、题目编号、题目名称等方式进行查询。
如图3-1示。
主菜单
图3-1课程设计学生选课系统设计结构图
3.2.2界面设计
主界面是“欢迎使用课程设计选课系统”,下面是所要使用的功能:
1.添加新的纪录
2.查询记录信息
3.修改学生信息
4.删除学生信息
5.统计所有记录
6.显示所有记录
0.退出系统其中,查询记录又可以弹出一个界面分别有以下几个功能:
(1).根据学号查询
(2).根据姓名查询
(3).根据编号查询
(4).根据题目名称查询每实现一个功能,重新弹出主界面,进行下一个的功能选择。
第四章系统实现
4.1类实现
4.2函数实现
voidGuanli:
:
write(intn){
fstreammyfile;
my("student.txt",ios:
:
out|ios:
:
binary);
if(!
myfile)
{cout<<"该文件不能打开!
"< } intcount=n;myfile< for(inti=0;i<=count;i++) { myfile< } my(); } intGuanli: : read() { fstreammyfile;my("student.txt",ios: : in|ios: : binary);if(! myfile) {cout<<"该文件不能打开! "< } intcount; my(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< } my(); returncount; } voidGuanli: : add() { intn=read(); inti=0; charsign;cout< "< while(sign! ='N') { loop: cout<<"学号: "; cin>>stu[i].stuid; cout< intc=0; while(c { c++; if(stu[i].stuid==stu[i-c].stuid) { cout<<"你输入的学号已经存在! 请重新输入"< } } cout<<"姓名: "; cin>>stu[i].stuname; cout< cout<<"性别: "; 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< 是否继续写入学生信息? (Y/N)"; cin>>sign;//输入判断i++; }write(i); } voidGuanli: : search() { intn=read(); cout<<"** (1)根据学号查询**"< (2)根据姓名查询**"< intc; Guanlig; cout<<"请输入选择: "; cin>>c; switch(c) { case1: g.searchsid();break; case2: g.searchsname();break; case3: g.searchcid();break; case4: g.searchcname();break; default: cout<<"输入错误,请重新输入! "< }g.write(n); } voidGuanli: : searchsid() { intn=read(); ints; inti=0; cout< "< "< while((stu[i].stuid-s)! =0&&i {cout<<"提示: 对不起,无法找到该学生的信息! } else cout<<" < cout<<"学号: "< cout<<"姓名: "< cout<<"性别: "< "< cout<<"班级: "< "< "< "< cout<<"关键词: "< "< voidGuanli: : searchsname() { intn=read(); chara[10]; cout<<"请输入需要查找学生的姓名: "< cin>>a; for(inti=0;i if(strcmp(stu[i].stuname,a)==0){ cout<<" < cout<<"学号: "< cout<<"姓名: "< cout<<"性别: "< "< "< "< "< "< "< "< "< voidGuanli: : searchcid() { intn=read(); intb; inti=0; cout<<"请输入需要查找的题目编号: "< while((stu[i].couid-b)! =0&&i { cout<<"提示: 对不起,无法找到该信息! "< } else < cout<<"cout<<"学号: "< cout<<"姓名: "< cout<<"性别: "< "< "< "< "< "< "< "< voidGuanli: : searchcname() intn=read(); charc[10]; cout<<"请输入需要查找的题目名称: "< cin>>c; for(inti=0;i { < cout<<"cout<<"学号: "< cout<<"姓名: "< cout<<"性别: "< cout<<"年龄: "< "< cout<<"专业: "< "< "< "< cout<<"实现技术: "< } } voidGuanli: : alter() { intn=read(); ints; inti=0;cout< "< "< while((stu[i].stuid-s)! =0&&i {cout<<"提示: 对不起,无该学生的信息! ! ! "< }else{cout<<"该学生的信息: "< stu[i].clas<<'\n'<<"专业"< <<"关键词"< cout<<"请重新输入该学生的信息"< ";cin>>stu[i].stuid;cout< cout<<"姓名: ";cin>>stu[i].stuname;cout< cout<<"性别: ";cin>>stu[i].sex;cout< cout<<"年龄: ";cin>>stu[i].age;cout< ";cin>>stu[i].clas;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)"< cin>>c; if(c='y') cout<<"修改成功! "< write(n); } } voidGuanli: : del() { intn=read(); ints; inti=0,j; cout< "< "< while((stu[i].stuid-s)! =0&&i if(i==n) { cout<<"提示: 记录为空! ! ! "< } else { f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 选题 管理 系统 设计