课程设计选题管理系统设计书(共37页)_第1页
课程设计选题管理系统设计书(共37页)_第2页
课程设计选题管理系统设计书(共37页)_第3页
课程设计选题管理系统设计书(共37页)_第4页
课程设计选题管理系统设计书(共37页)_第5页
已阅读5页,还剩31页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上学校代码: 10128学 号:7课程设计说明书题 目: 课程设计选题管理系统学生姓名: 李乐峰学 院: 信息工程学院班 级: 计13-1班指导教师: 李文静 讲师 吕 岩 讲师 2014 年 1 月 6 日专心-专注-专业内蒙古工业大学课程设计(论文)任务书课程名称: 面向对象程序设计课程设计 学院: 信息工程学院 班级: 计13-1 学生姓名: 李乐峰_ 学号: 7 _ 指导教师: 李文静 吕岩 一、题目课程设计选题管理系统设计二、目的与意义面向对象程序设计课程设计课程设计是计算机科学与技术专业实践性环节之一,通过课程设计的综合训练可以使学生进一步理解和掌握面向对象

2、程序设计课程的基本知识;掌握面向对象程序设计的思路和方法;基本具有利用面向对象的方法以及 C+的编程思想来完成系统设计的能力。三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等) 1. 要求利用面向对象的方法以及C+的编程思想来完成系统的设计;2. 要求在设计的过程中,建立清晰的类层次;3. 在系统中至少要定义一个类,类中要有各自的属性和方法;4. 在系统的设计中,至少要用到面向对象的一种机制。四、工作内容、进度安排 1. 根据课程设计的要求,确定设计题目;(0.5天)2. 查找相关资料,进行应用程序总体结构、使用功能的设计;(0.5天)3. 进行应用程序的界面设计和源程序代码的

3、编写;(2.5天)4. 设计说明书的撰写、答辩(1.5天)五、主要参考文献1C+语言程序设计(第四版),郑莉,清华大学出版社,2010.72C+程序设计教程,钱能主编,清华大学出版社,1999.43C+程序设计课程设计,刘振安,机械工业出版社,2004.8审核意见系(教研室)主任(签字) 指导教师下达时间 2014年12月27日指导教师签字:_目录第1章 需求分析1.1 问题描述课程设计题目包括:编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。1.2 功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择

4、界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能按课

5、程设计题目名称统计出学生选择该题目的人员的信息。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。1.3 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。第2章 总体功能介绍2.1 功能介绍程序的结构框图如下:课程设计选题

6、管理统计功能删除功能编辑功能查询功能保存功能读取功能浏览功能添加功能 图2-1 结构框图2.2 类的设计此系统共设计了两个类:学生信息类(class Student),选题类(class subject)。这两个类分别实现不同的功能,是平行关系。 但是在各个类中有着相同的函数,以学生类进行大致说明。 Student string num_1; 学号string name_1; 姓名string sex; 性别int age; 年龄 string clas; 班级 string major; 专业void read1(); void write1(); string topic; Student

7、 *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 ge

8、tmajor11(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; 表3.2 第3章 系统实现3.1 类实现对于基类的定义:class Studentprivate: string num_1; 用于记录类成员的学号string name_1; 用于记录类成员的姓名str

9、ing sex; 用于记录类成员的性别int age; 用于记录类成员的年龄 string clas; 用于记录类成员的班级 string major; 用于记录类成员的专业public:void read1(); 此功能用于显示成员数据void write1(); 此功能用于输入成员数据string topic; 用于记录类成员的所选题目Student *next; 建立指向学生类的指针Student() 建立析构函数并给学生的数据赋初值 num_1=""name_1="" sex=""clas=""next=N

10、ULL;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 getage

11、1()return age;string getclas1()return clas;string getmajor1()return major;void getsex11(string a)sex=a;void getclas11(string a)clas=a;class subjectprivate: string num_2; 用于记录类成员的编号 string name_2; 用于记录类成员的名称 string keyword; 用于记录类成员的关键词 string dream_tech;/ 用于记录类成员的实现技术public: subject() 建立析构函数并给选题数据赋初值

12、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)

13、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.添加功能:程序能够添加上述两个类的成员记录,即学生的记录和课程设计题目记录,能够实现提供选

14、择界面供用户选择所要添加的类别。添加记录时,添加学生记录时,可以使学生的学号唯一。如果添加了重复记录,则提示数据添加重复并让用户再次重新输入所要添加的学生信息。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()

15、;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;

16、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<<&q

17、uot;按任意键继续添加信息,输入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<&

18、lt;"输入重复请再次输入"<<endl;a->write2();b=&head2;else b=b->next;cout<<"按任意键继续添加信息,输入0则退出!"<<endl;cin>>d;if(d=0)break;3.2.2.查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。void search1()void search11();void search12();cout<<

19、;"请输入你的选择:按学号查找请按1,按姓名查找请按2"<<endl;int j;cin>>j;switch(j)case 1: search11();getchar();getchar();break;case 2: search12();getchar();getchar();break;default:cout<<"输入错误,请重新输入"<<endl;break;void search11()/按学号查询学生信息string a;cout<<"请输入您要查询的学号:"&

20、lt;<endl;cin>>a;Student *m;m=&head0;while (m->next!=NULL)if(m->next->getnum1()=a)m->next->read1();m=m->next;void search12()/按姓名查询学生信息string b;cout<<"请输入您要查询的姓名:"<<endl;cin>>b;Student *m1;m1=&head0;while (m1->next!=NULL)if(m1->next-

21、>getname1()=b)m1->next->read1();m1=m1->next;void search2()void search21();/按选题编号查询void search22();/按选题名称查找cout<<"请输入你的选择:按学号查找请按1,按姓名查找请按2"<<endl;int j;cin>>j;switch(j)case 1: search21();getchar();getchar();break;case 2: search22();getchar();getchar();break;de

22、fault:cout<<"输入错误,请重新输入"<<endl;break;void search21()/按编号查询选题信息string b;cout<<"请输入您要查询的编号:"<<endl;cin>>b;subject *n;n=&head2;while (n->next!=NULL)if(n->next->getnum2()=b)n->next->read2();n=n->next;void search22() /按名称查找选题信息string

23、 b;cout<<"请输入您要查询的选题名称:"<<endl;cin>>b;subject *n;n=&head2;while (n->next!=NULL)if(n->next->getname2()=b)n->next->read2();n=n->next;3.2.3.显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。void show();void show1();system("cls");void show2();cout<<

24、"请输入你的选择:浏览学生信息请按1,浏览选题信息请按2"<<endl;int k;cin>>k;switch(k)case 1: show1();getchar();getchar();break;case 2: show2();getchar();getchar();break;default:cout<<"输入错误,请重新输入"<<endl;break;void show1()Student *m;m=&head0;while (m->next!=NULL)m->next->

25、read1();m=m->next;void show2()subject *n;n=&head2;while (n->next!=NULL)n->next->read2();n=n->next;void search()/查询功能void search1();/查询学生信息system("cls");void search2();/查询选课信息cout<<"请输入你的选择:查询学生信息请按1,查询选题信息请按2"<<endl;int j;cin>>j;switch(j)case

26、1: search1();break;case 2: search2();break;default:cout<<"输入错误,请重新输入"<<endl;break;3.2.4编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。void edit()/编辑信息void edit1();/void edit2();/cout<<"您想编辑:1.对学生信息编辑,2.对选题信息编辑3.退出"<<endl;int j1;cin>>j1;switch(j1)case 1: edit1();

27、break;case 2: edit2();break;default:cout<<"输入错误,请重新输入"<<endl;void edit1()string a;cout<<"请输入您要编辑的学号:"<<endl;cin>>a;Student *m2;m2=&head0;while (m2->next!=NULL)if(m2->next->getnum1()=a)m2->next->read1();m2->next->write1();m2=m

28、2->next;void edit2()string b;cout<<"请输入您要编辑的编号:"<<endl;cin>>b;subject *n;n=&head2;while (n->next!=NULL)if(n->next->getnum2()=b)n->next->read2();n->next->write2();n=n->next;函数功能说明:3.2.5.删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并

29、返回操作。void Delete()subject *d,*bb;Student *b,*dd; string a;int e;b=&head0;d=&head2;while(1)cout<<"您想删除1.学生信息2.课程信息3.退出:"cin>>e;if(e=2)cout<<"您想删除的课程编号为:"cin>>a;while(d->next!=NULL)if(d->next->getnum2()=a)d->next->read2();bb=d->next

30、;d->next=d->next->next;delete bb;d=d->next; lon2-; cout<<"删除成功"<<endl;else if(e=1)cout<<"您想删除的学生编号为:"cin>>a;while(b->next!=NULL)if(b->next->getnum1()=a)b->next->read1();dd=b->next;b->next=b->next->next;delete dd;b=b-&

31、gt;next;lon1-; cout<<"删除成功"<<endl;else break;函数功能说明:3.2.6统计功能:能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。void addup() subject *d;Student *b; string a;int c=0;b=&head0;d=&head2;cout<<"您想统计的课程编号为:"cin>>a;cout<<"您统计的课程人员信息"<<endl;whi

32、le(b->next!=NULL)if(b->next->topic=a)b->next->read1();c=c+1;b=b->next;while(d->next!=NULL)if(d->next->getnum2()=a)d->next->person=c;d=d->next;cout<<"该课程有"<<c<<"个人参加"<<endl;3.2.7.保存功能:可将当前系统中各类记录存入文件中,存入方式任意。void save()vo

33、id save11();void save2();void saveq();saveq();save11();save2();cout<<"保存成功"<<endl;getchar();getchar();void saveq()void saveqqq();ofstream file("1on1.txt"); file.write(reinterpret_cast<char*>(&lon1),sizeof(int); file.close();saveqqq();void saveqqq()ofstream f

34、ile("1on2.txt");file.write(reinterpret_cast<char*>(&lon2),sizeof(int);file.close();void save11()Student *b;int a; string num_1;string name_1;string sex;int age;string clas;string major; string topic;b=head0.next;ofstream file("1.txt");for(a=1;a<=lon1;a+)num_1=b->g

35、etnum1();name_1=b->getname1();sex=b->getsex1();age=b->getage1();clas=b->getclas1();major=b->getmajor1();topic=b->topic;file<<num_1<<" "<<name_1<<" "<<sex<<" "<<age<<" "<<clas<<"

36、 "<<major<<" "<<topic<<" "b->read1();b=b->next;file.close();void save2() string num_2; string name_2; string keyword; string dream_tech;subject *d;int a; int person;d=head2.next; ofstream file("2.txt");for(a=1;a<=lon2;a+) num_2=d-&g

37、t;getnum2();name_2=d->getname2();keyword=d->getkeyword2();dream_tech=d->getdream_tech2();person=d->person;file<<num_2<<" "<<name_2<<" "<<keyword<<" "<<dream_tech<<" "<<person<<" "

38、;d->read2();d=d->next;file.close();3.2.8.读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。void fetch() void fetch3();void fetch1();void fetch2();head=&head0;head1=&head2;fetch3();fetch1();head=&head0;head1=&head2;fetch2();getchar();cout<<"导入成功"<<endl;getchar();void fetch3

39、()ifstream is("1on1.txt");is.read(reinterpret_cast<char*>(&lon1),sizeof(int);is.close();ifstream os("1on2.txt");os.read(reinterpret_cast<char*>(&lon2),sizeof(int);os.close();void fetch1()int a; string num_1;string name_1;string sex;int age;string clas;string m

40、ajor; string topic;ifstream file("1.txt");for(a=1;a<=lon1;a+)Student *d=new Student;file>>num_1>>name_1>>sex>>age>>clas>>major>>topic;d->getnum11(num_1);d->getname11(name_1);d->getage11(age);d->getclas11(clas);d->getsex11(sex);d-&

41、gt;getmajor11(major);d->topic=topic;head->next=d;d->read1();head=d;file.close(); void fetch2() string num_2; string name_2; string keyword; string dream_tech;int a; int person;ifstream file("2.txt");for(a=1;a<=lon2;a+)subject *p=new subject;file>>num_2>>name_2>&g

42、t;keyword>>dream_tech>>person;p->getnum22(num_2);p->getname22(name_2);p->getkeyword22(keyword);p->getdream_tech22(dream_tech);p->person=person; head1->next=p;p->read2();head1=p;file.close(); 3.3 主函数实现函数功能说明:此函数为主菜单页面,通过此菜单运用if语句可以实现系统9个功能的调用,通过对老师上传的c+课程设计系统第二版参考文献的分

43、析,我设计了此主菜单页面。#include<iostream>#include<string>#include <iomanip>#include<fstream>using namespace std;int lon1;int lon2;Student *head,head0;subject *head1,head2;void main()int choice;void menu();head=&head0;head1=&head2;while(1) cout<<"t请输入您要选择的功能:"<<endl;menu();cin>>choice;if(choice=1)add();if(choice=2)show();if(choice=3)search();if(choice=4)edit();if(choice=5)addup();if(choice=6)Delete();if(choice=7)save();if(choice=8)fetch();if(choice=0)break;void menu()cout&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论