您的当前位置:首页正文

课程设计选题管理系统报告

来源:帮我找美食网
如果您需要使用本文档,请点击下载按钮下载!

上 海 电 力 学 院

课程设计报告

面向对象程序设计

(2014/2015学年第一学期)

课题名称 课程设计选题管理系统设计

院 (系) 电子与信息工程学院 专 业 通信工程 学 号 20132234 姓 名 储昊

时 间 2015年1月19日至1月23日 地 点 虚拟仿真实验室(南4教312) 指导老师 骆政屹

如果您需要使用本文档,请点击下载按钮下载!

目 录

一、设计目的与任务……………………………………………………………………….2 1、本课程设计的目的……………………………………………………………………….2 2、本课程设计的任务……………………………………………………………………….2 二、设计方案…………………………………………………………………………………..3 1、总体设计……………………………………………………………………………………….3 2、系统设计……………………………………………………………………………………….3 3、系统实现……………………………………………………………………………………….5 4、系统测试………………………………………………………………………………………16 三.心得体会…………………………………………………………………………………….20

如果您需要使用本文档,请点击下载按钮下载!

一、设计目的与任务

1、本课程设计的目的

1)课程设计是实践教学环节。设置课程设计的目的是加强学生对本课程及相关课程知识的理解,培养学生综合运用理论知识分析和解决实际问题的方法与能力。有助于提高学生的创新能力和创新意识。搞好课程设计教学工作,对实现专业培养目标,提高学生全面素质有重要作用。 2)通过课程设计更进一步理解 C++的基础知识。

3)训练用系统的观点及软件开发的一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程中的问题分析、系统设计、程序编码、调试、测试等方面的基本方法和技能。

4) 熟练掌握 C++知识在程序中的应用,了解书本知识在解决实际问题中的用途。 2、本课程设计的任务 (1)问题描述

课程设计题目包括:编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。

学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。 (2)功能要求

① 添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。

② 查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

③ 显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。

④ 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。

⑤ 删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。 ⑥ 统计功能:能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。

⑦ 保存功能:可将当前系统中各类记录存入文件中,存入方式任意。 ⑧ 读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

如果您需要使用本文档,请点击下载按钮下载!

二、 设计方案

1、总体设计

我们设计一个程序对学生课程设计选题信息进行保存,对学生的选题信息进行可执行多种操作,该程序包括以下功能模块:1)学生信息添加模块:能够输入学生基本信息并保存到文件中。2)查询模块:显示所有符合要求的课程设计信息。3)编辑模块:可对学生信息进行修改。4)删除模块:可删除相应的学生信息。5)统计模块:能根据多种参数进行统计。6)查看模块:显示所有课程设计选题的信息。7)退出系统。为了完善系统,我们还添加了一个登录界面。

2、系统设计

1)类设计

定义一个学生类Student,类中包括学号stuid,姓名stuname,性别sex,年龄age,班级clas,专业specialty,及所选课程的课程编号couid,课程名称 couname,关键词keyword,实现技术technology;

定义一个管理类Guanli,其成员函数包括向文件输入函数void write(int n);从文件读取函数,int read();添加学生信息函数void add(),查询信息函数void search (),按学号查询函数void searchsid(),按姓名查询函数void searchsname(),按题目编号查询函数void searchcid(),按题目名称查询函数void searchcname();修改信息函数void alter() ;删除信息函数void del();统计信息函数void total();显示函数void display()以及一个数据成员Student stu[50]。

2)函数设计

void write(int n),向文件中写入数据,打开文本文档,并将数据输入到文本文档中;int read(),向文件中写入数据从文件中读数据,打开文本文档,并将文本文档中的数据输出;void add(),添加学生信息;void search()查询信息(可根据学生的学号、姓名、所选课程编号、课程名称进行信息查询);void alter(),修改学生信息;void del(),删除学生信息,根据输入的学生学号通过调用函数实现;void total(),统计学生信息(根据学生所选课程名称进行统计);void display(),显示函数用来显示所有学生信息;int main()主函数,显示主菜单,调用各个函数实现所有功能。

3)系统流程图

如果您需要使用本文档,请点击下载按钮下载!

课程设计学生选课系统设计结构图:进入功能界面后,可以进行多项功能选择,如添加、查询、显示、修改、删除、统计,将数据写入文件以及从文件读取数据等;而查询功能又可以分为按学号、姓名、题目编号、题目名称等方式进行查询。如下图所示。

主菜单 添加新的记录 修改学生信息 查询记录信息 删除学生信息 统计所有记录 显示所有记录 退出系统 按学号查询按姓名查询按编号查询按名称查询

4)界面设计

主界面是“欢迎使用课程设计选课系统”,下面是所要使用的功能: 1. 添加新的纪录 2. 查询记录信息 3. 修改学生信息 4. 删除学生信息 5. 统计所有记录 6. 显示所有记录 0. 退出系统

其中,查询记录又可以弹出一个界面分别有以下几个功能: 1. 根据学号查询 2. 根据姓名查询 3. 根据编号查询

如果您需要使用本文档,请点击下载按钮下载!

4. 根据题目名称查询

每实现一个功能,重新弹出主界面,进行下一个的功能选择。

3、系统实现 1)类实现

class Student

{

public: int stuid; char stuname[10]; char sex[2]; int age; char clas[10]; char specialty[10]; int couid; char couname[10]; char keyword[20]; char technology[30]; }stu[50]; class Guanli {

private: Student stu[50]; public: void add(); void search(); void searchsid(); void searchsname(); void searchcid(); void searchcname(); void alter(); void del(); void total(); void display(); void write(int n); int read(); }; 2)函数实现

void Guanli::write(int n)

//学号

//姓名 //性别 //年龄 //班级 //专业

//题目编号 //题目名称 //关键词 //实现技术 //定义对象 //添加学生信息 //查询信息 //按学号查询信息 //按名字查询信息 //按题目编号查询信息 //按题目名称查询信息 //修改信息 //删除信息 //统计信息 //显示信息 //向文件中写入数据 //从文件中读数据

如果您需要使用本文档,请点击下载按钮下载!

{

fstream myfile;

myfile.open(\"student.txt\ if(!myfile) { cout<<\"该文件不能打开!\"<int count=n;

myfile<}

myfile.close(); }

int Guanli::read() {

fstream myfile;

myfile.open(\"student.txt\ if(!myfile) { cout<<\"该文件不能打开!\"<int count;

myfile.seekg(0); myfile>>count;

for(int i=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(); return count; }

void Guanli::add() {

int n=read(); int i=0;

如果您需要使用本文档,请点击下载按钮下载!

char sign;

cout<cout<<\"学号:\"; cin>>stu[i].stuid; cout << endl; int c=0; while(ccout<<\"姓名:\";

cin>>stu[i].stuname; cout<>stu[i].sex; cout<>stu[i].age; cout<>stu[i].clas; cout<>stu[i].specialty; cout<cout<<\"题目编号:\"; cin>>stu[i].couid; cout<cout<<\"题目名称:\"; cin>>stu[i].couname; cout<>stu[i].keyword; cout<cout<<\"实现技术:\"; cin>>stu[i].technology;

如果您需要使用本文档,请点击下载按钮下载!

cout<cout<<\"提示:是否继续写入学生信息?(Y/N)\"; cin>>sign; //输入判断 i++; }

write(i); }

void Guanli::search() {

int n=read();

cout<<\"** (1)根据学号查询 **\"<cout<<\"请输入选择:\"; cin>>c; switch(c) {

case 1:

g.searchsid(); break; case 2:

g.searchsname(); break; case 3:

g.searchcid(); break; case 4:

g.searchcname(); break; default: cout<<\"输入错误,请重新输入!\"<g.write(n); }

void Guanli::searchsid() {

int n=read(); int s; int i=0;

cout<如果您需要使用本文档,请点击下载按钮下载!

cout<<\"请输入需要查找学生的学号:\"<>s;

while((stu[i].stuid-s)!=0&&icout<<\"姓名: \"<cout<<\"专业: \"<void Guanli::searchsname() {

int n=read(); char a[10];

cout<<\"请输入需要查找学生的姓名:\"<>a;

for(int i=0;iif(strcmp(stu[i].stuname,a)==0) { cout<<\"******************************\"<cout<<\"姓名: \"<cout<<\"专业: \"<如果您需要使用本文档,请点击下载按钮下载!

void Guanli::searchcid() {

int n=read(); int b; int i=0;

cout<<\"请输入需要查找的题目编号:\"<>b;

while((stu[i].couid-b)!=0&&icout<<\"姓名: \"<cout<<\"专业: \"<cout<<\"题目名称: \"<void Guanli::searchcname() {

int n=read(); char c[10];

cout<<\"请输入需要查找的题目名称:\"<>c;

for(int i=0;iif(strcmp(stu[i].couname,c)==0) { cout<<\"******************************\"<cout<<\"姓名: \"<cout<<\"专业: \"<如果您需要使用本文档,请点击下载按钮下载!

cout<<\"题目名称: \"<void Guanli::alter() {

int n=read(); int s; int i=0;

cout<cout<<\"请输入需要修改学生的学号:\"<>s;

while((stu[i].stuid-s)!=0&&istu[i].clas<<'\\n'<<\"专业\"<<<\"关键词\"<cout<<\"请重新输入该学生的信息\"<>stu[i]. stuid ; cout<cin>>stu[i]. stuname; cout<>stu[i].sex; cout<>stu[i].age; cout<>stu[i].clas ; cout<如果您需要使用本文档,请点击下载按钮下载!

cin>>stu[i]. specialty; cout<cout<<\"题目编号:\"; cin>>stu[i].couid; cout<cout<<\"题目名称:\"; cin>>stu[i].couname; cout<>stu[i].keyword; cout<cout<<\"实现技术:\"; cin>>stu[i].technology; cout<cout<<\"是否保存数据?(y/n)\"<>c; if(c='y') cout<<\"修改成功!\"<void Guanli::del() {

int n=read(); int s; int i=0,j;

cout<cout<<\"请输入需要删除学生的学号:\"<>s;

while((stu[i].stuid-s)!=0&&i如果您需要使用本文档,请点击下载按钮下载!

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<<\"实现技术:\"<void Guanli::total() { { int n=read(); char c[10]; cout<<\"请输入需要查找的题目名称:\"<>c; for(int i=0;i如果您需要使用本文档,请点击下载按钮下载!

{ cout<<\"没有此条记录!\"<void Guanli::display() {

int n=read();

cout<stu[i].clas<<'\\n'<<\"专业\"<\"关键词\"<} }

3)主函数实现

int main() {

char choice;

cout<<\"\\n\\n\ **欢迎使用课程设计选题管理系统**\\n\\n\"; cout<<\"\ 1.********添加新的记录********\\n\"; cout<<\"\ 2.********查询记录信息********\\n\"; cout<<\"\ 3.********修改学生信息********\\n\"; cout<<\"\ 4.********删除学生信息********\\n\"; cout<<\"\ 5.********统计所有记录********\\n\"; cout<<\"\ 6.********显示所有记录********\\n\"; cout<<\"\ 0.******** 退出系统 ********\\n\"; cout<<\"\ 请输入您的选择:\"; cin>>choice; Guanli g;

if(choice=='0') { cout<<\"\\n\\ 谢谢您使用本系统!\\n\\n\"<如果您需要使用本文档,请点击下载按钮下载!

}

}

else if(choice=='1') { g.add(); system(\"pause\"); main(); } else if(choice=='2') { g.search(); system(\"pause\"); main(); } else if(choice=='3') { g.alter(); system(\"pause\"); main(); } else if(choice=='4') { g.del(); system(\"pause\"); main(); } else if(choice=='5') { g.total(); system(\"pause\"); main(); } else if(choice=='6') { g.display(); system(\"pause\"); main(); } else { cout<<\"\ 输入错误,请重新输入您的选择:\"; main(); } return 0;

如果您需要使用本文档,请点击下载按钮下载!

4、系统测试

1)添加功能

添加学生信息界面如下图所示:

2)查询功能

查询学生信息的界面如下图所示:

①根据学生学号进行查询:

如果您需要使用本文档,请点击下载按钮下载!

②根据学生姓名进行查询:

③根据题目编号进行查询:

④根据题目名称进行查询:

如果您需要使用本文档,请点击下载按钮下载!

3)修改功能

修改学生的相关信息,界面如下图所示:

4)删除功能

如果您需要使用本文档,请点击下载按钮下载!

删除指定学生的信息,界面如下图所示:

5)统计功能

根据题目名称统计学生的信息,界面如下图所示:

6)显示功能

显示全部学生的信息,界面如下图所示:

如果您需要使用本文档,请点击下载按钮下载!

7)退出系统

退出使用系统,界面如下图所示:

三、心得体会

本课程设计中,我终于成功地实现了一个学生课程设计选题系统的程序,一

如果您需要使用本文档,请点击下载按钮下载!

个一开始看来很难完成的任务。在做这个课程设计之前,我

如果您需要使用本文档,请点击下载按钮下载!

对课程设计都有一种笼统的恐怕与抗拒,但在通过查阅资料,有了大概的纹路,一步步开展我们自己的课程设计时,我们发现看上去的困难并不那么无法攻略,只要有耐心,细致往下做,悉心请教同学与老师,我们能够完成看似无从下手的设计。

在课程设计之前对 C++程序的认识仅停留在看的阶段, 而对编程实现的认识很模糊, 只知道大概的意思, 在课程设计期间才知道离独立编程还有很远的距离。 通过这次课程设计,一点点解决所碰到的问题,我们学到了很多在课堂和书本上学不到的知识。而且,我们对面向对象编程、类、数组,指针等一系列概念也都有了更进一步的认识,也初步意识到所学知识在实际应用中的作用。

因为本人水平有限,在做课程设计是参考了很多资料,并在一些书籍中找到了解决问题的方法,在查阅书籍的同时进行学习,经过多次的修改与调试,最后交出了一份自己比较满意的答卷。

通过这次课设,让我进一步掌握了C++程序设计语言,更好的理解了面向对象的程序设计思想。我相信这会对以后的学习有帮助作用。在以后的学习中应当继续努力。

(注:可编辑下载,若有不当之处,请指正,谢谢!)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top