当前位置:文档之家› 课程设计选题管理系统设计书

课程设计选题管理系统设计书

学校代码: 10128学号:************课程设计说明书题目:课程设计选题管理系统****:***学院:信息工程学院班级:计13-1班指导教师:李文静讲师吕岩讲师2014 年 1 月 6 日内蒙古工业大学课程设计(论文)任务书课程名称:面向对象程序设计课程设计学院:信息工程学院班级:计13-1 学生姓名:李乐峰_ 学号: 201320201007 _ 指导教师:李文静吕岩目录第1章需求分析 (1)1.1 问题描述 (1)1.2 功能要求 (1)1.3 问题的解决方案 (1)第2章总体功能介绍 (3)2.1 功能介绍 (3)2.2 类的设计 (3)第3章系统实现 (5)3.1 类实现 (5)3.2 函数实现 (7)3.3 主函数实现 (22)第4章系统测试 (24)4.1 模块菜单测试 (24)4.2 模块功能测试 (25)4.2.1添加功能 (25)4.2.2查找功能 (27)4.2.3显示功能 (28)4.2.4.编辑功能 (28)4.2.5.删除功能 (29)4.2.6.保存功能 (29)4.2.7.读取功能 (30)4.2.8.统计功能 (30)第五章总结 (31)参考文献 (32)第1章需求分析1.1 问题描述课程设计题目包括:编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。

学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。

1.2 功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。

添加记录时,要求学号和编号要唯一。

如果添加了重复记录,则提示数据添加重复并取消添加。

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

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

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

(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。

如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。

(6)统计功能:能根据多种参数进行统计。

能按课程设计题目名称统计出学生选择该题目的人员的信息。

(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。

(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

1.3 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。

第2章总体功能介绍2.1 功能介绍程序的结构框图如下:图2-1 结构框图2.2 类的设计此系统共设计了两个类:学生信息类(class Student),选题类(class subject)。

这两个类分别实现不同的功能,是平行关系。

但是在各个类中有着相同的函数,以学生类进行大致说明。

表3.2第3章系统实现3.1 类实现对于基类的定义:class Student{private:string num_1; 用于记录类成员的学号string name_1; 用于记录类成员的姓名string sex; 用于记录类成员的性别int age; 用于记录类成员的年龄string clas; 用于记录类成员的班级string major; 用于记录类成员的专业public:void read1(); 此功能用于显示成员数据void write1(); 此功能用于输入成员数据string topic; 用于记录类成员的所选题目Student *next; 建立指向学生类的指针Student() 建立析构函数并给学生的数据赋初值{num_1="";name_1="";sex="";clas="";next=NULL;topic="";age=0;major="";}string getnum1(){return num_1;} 公有数据成员函数用于获得成员学号void getnum11(string a){num_1=a;} 公有数据成员函数用于获得成员学号string getname1(){return name_1;}void getname11(string a){name_1=a;}void getage11(int a){age=a;}void getmajor11(string a){major=a;}string getsex1(){return sex;}int getage1(){return age;}string getclas1(){return clas;}string getmajor1(){return major;}void getsex11(string a){sex=a;}void getclas11(string a){clas=a;}};class subject{private:string num_2; 用于记录类成员的编号string name_2; 用于记录类成员的名称string keyword; 用于记录类成员的关键词string dream_tech;/ 用于记录类成员的实现技术public:subject(){ 建立析构函数并给选题数据赋初值person=0;num_2="";name_2="";keyword="";dream_tech="";next=NULL;}void read2(); 此功能用于显示成员数据void write2(); 此功能用于输入成员数据subject *next; 建立指向选题类的指针int person; 用于记录类成员的人员数void getdream_tech22(string a){dream_tech=a;}string getnum2(){return num_2;}void getnum22(string a){num_2=a;}void getname22(string a){name_2=a;}void getkeyword22(string a){keyword=a;}sring getname2){return name_2;}string getkeyword2(){return keyword;}string getdream_tech2(){return dream_tech;}int getperson2(){return person;}};3.2 函数实现对于在两个类中定义了类似的函数,以学生类为例3.2.1.添加功能:程序能够添加上述两个类的成员记录,即学生的记录和课程设计题目记录,能够实现提供选择界面供用户选择所要添加的类别。

添加记录时,添加学生记录时,可以使学生的学号唯一。

如果添加了重复记录,则提示数据添加重复并让用户再次重新输入所要添加的学生信息。

void add();{Student *a1;subject *b1;a1=&head0;b1=&head2;void add_1(); system("cls");void add_2();cout<<"请输入你选择:添加学生信息请按1,添加选题信息请按2"<<endl;int i;cin>>i;switch(i){case 1:{ add_1();break;}case 2: {add_2();break;}default:{ cout<<"输入错误,请重新输入"<<endl;break;}}while(b1->next!=NULL){b1->next->person=0;while(a1->next!=NULL){if(a1->next->topic==b1->next->getname2()){b1->next->person++;}a1=a1->next;}a1=&head0;b1=b1->next;}}void add_1(){int d;Student *b,*c;while(1){Student *a=new Student;a->write1();head->next=a;c=head;head=head->next;b=&head0;lon1++;while(b->next!=NULL){if(b->getnum1()==a->getnum1()&&a!=b){cout<<"输入重复请再次输入"<<endl;a->write1();b=&head0;}else b=b->next;}cout<<"按任意键继续添加信息,输入0则退出!"<<endl;cin>>d;if(d==0)break;}}void add_2()//添加课程的记录{int d;subject *b,*c;while(1){subject *a=new subject;a->write2();head1->next=a;c=head1;lon2++;head1=head1->next;b=&head2;while(b->next!=NULL){if(b->getnum2()==a->getnum2()&&a!=b){cout<<"输入重复请再次输入"<<endl;a->write2();b=&head2;}else b=b->next;}cout<<"按任意键继续添加信息,输入0则退出!"<<endl;cin>>d;if(d==0)break;}}3.2.2.查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

相关主题