课程设计选题管理系统设计书(共37页)

上传人:夏*** 文档编号:55340378 上传时间:2022-02-17 格式:DOC 页数:36 大小:1.22MB
收藏 版权申诉 举报 下载
课程设计选题管理系统设计书(共37页)_第1页
第1页 / 共36页
课程设计选题管理系统设计书(共37页)_第2页
第2页 / 共36页
课程设计选题管理系统设计书(共37页)_第3页
第3页 / 共36页
资源描述:

《课程设计选题管理系统设计书(共37页)》由会员分享,可在线阅读,更多相关《课程设计选题管理系统设计书(共37页)(36页珍藏版)》请在装配图网上搜索。

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 getmajor11(string a)major=a;string getsex1()return sex;int getage1()

8、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; 用于记录类成员的姓名string sex; 用于记录类成员的性别int age; 用于记录类成员的年龄 string clas; 用于记录类成员的班级 str

9、ing 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; 公有数据成员函数

10、用于获得成员学号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=

11、a;class subjectprivate: 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; 建立指向选题类

12、的指针 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

13、 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();co

14、ut请输入你选择:添加学生信息请按1,添加选题信息请按2i;switch(i)case 1: add_1();break;case 2: add_2();break;default:cout输入错误,请重新输入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

15、-write1();head-next=a;c=head; head=head-next;b=&head0;lon1+;while(b-next!=NULL)if(b-getnum1()=a-getnum1()&a!=b)cout输入重复请再次输入write1();b=&head0;else b=b-next;cout按任意键继续添加信息,输入0则退出!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

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

17、学号查找请按1,按姓名查找请按2j;switch(j)case 1: search11();getchar();getchar();break;case 2: search12();getchar();getchar();break;default:cout输入错误,请重新输入endl;break;void search11()/按学号查询学生信息string a;cout请输入您要查询的学号:a;Student *m;m=&head0;while (m-next!=NULL)if(m-next-getnum1()=a)m-next-read1();m=m-next;void search12

18、()/按姓名查询学生信息string b;cout请输入您要查询的姓名:b;Student *m1;m1=&head0;while (m1-next!=NULL)if(m1-next-getname1()=b)m1-next-read1();m1=m1-next;void search2()void search21();/按选题编号查询void search22();/按选题名称查找cout请输入你的选择:按学号查找请按1,按姓名查找请按2j;switch(j)case 1: search21();getchar();getchar();break;case 2: search22();ge

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

20、tname2()=b)n-next-read2();n=n-next;3.2.3.显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。void show();void show1();system(cls);void show2();cout请输入你的选择:浏览学生信息请按1,浏览选题信息请按2k;switch(k)case 1: show1();getchar();getchar();break;case 2: show2();getchar();getchar();break;default:cout输入错误,请重新输入next!=NULL)m-next-read

21、1();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,查询选题信息请按2j;switch(j)case 1: search1();break;case 2: search2();break;default:cout输入错误,请重新输入endl;break;3.2.4编辑功能:可根据查

22、询结果对相应的记录进行修改,修改时注意学号的唯一性。void edit()/编辑信息void edit1();/void edit2();/cout您想编辑:1.对学生信息编辑,2.对选题信息编辑3.退出j1;switch(j1)case 1: edit1();break;case 2: edit2();break;default:cout输入错误,请重新输入endl;void edit1()string a;cout请输入您要编辑的学号:a;Student *m2;m2=&head0;while (m2-next!=NULL)if(m2-next-getnum1()=a)m2-next-re

23、ad1();m2-next-write1();m2=m2-next;void edit2()string b;cout请输入您要编辑的编号: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.删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。void Delete()subject *d,*bb;Student *b,*dd; string a

24、;int e;b=&head0;d=&head2;while(1)coute;if(e=2)couta;while(d-next!=NULL)if(d-next-getnum2()=a)d-next-read2();bb=d-next;d-next=d-next-next;delete bb;d=d-next; lon2-; cout删除成功endl;else if(e=1)couta;while(b-next!=NULL)if(b-next-getnum1()=a)b-next-read1();dd=b-next;b-next=b-next-next;delete dd;b=b-next;l

25、on1-; cout删除成功endl;else break;函数功能说明:3.2.6统计功能:能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。void addup() subject *d;Student *b; string a;int c=0;b=&head0;d=&head2;couta;cout您统计的课程人员信息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-nex

26、t;cout该课程有c个人参加endl;3.2.7.保存功能:可将当前系统中各类记录存入文件中,存入方式任意。void save()void save11();void save2();void saveq();saveq();save11();save2();cout保存成功endl;getchar();getchar();void saveq()void saveqqq();ofstream file(1on1.txt); file.write(reinterpret_cast(&lon1),sizeof(int); file.close();saveqqq();void saveqqq(

27、)ofstream file(1on2.txt);file.write(reinterpret_cast(&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;agetnum1();name_1=b-getname1();sex=b-getsex1();age=b-geta

28、ge1();clas=b-getclas1();major=b-getmajor1();topic=b-topic;filenum_1 name_1 sex age clas major topicread1();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;agetnum2();name_2=d-get

29、name2();keyword=d-getkeyword2();dream_tech=d-getdream_tech2();person=d-person;filenum_2 name_2 keyword dream_tech personread2();d=d-next;file.close();3.2.8.读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。void fetch() void fetch3();void fetch1();void fetch2();head=&head0;head1=&head2;fetch3();fetch1();head=&head0;h

30、ead1=&head2;fetch2();getchar();cout导入成功endl;getchar();void fetch3()ifstream is(1on1.txt);is.read(reinterpret_cast(&lon1),sizeof(int);is.close();ifstream os(1on2.txt);os.read(reinterpret_cast(&lon2),sizeof(int);os.close();void fetch1()int a; string num_1;string name_1;string sex;int age;string clas;s

31、tring major; string topic;ifstream file(1.txt);for(a=1;anum_1name_1sexageclasmajortopic;d-getnum11(num_1);d-getname11(name_1);d-getage11(age);d-getclas11(clas);d-getsex11(sex);d-getmajor11(major);d-topic=topic;head-next=d;d-read1();head=d;file.close(); void fetch2() string num_2; string name_2; stri

32、ng keyword; string dream_tech;int a; int person;ifstream file(2.txt);for(a=1;anum_2name_2keyworddream_techperson;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 主函数实现函数功能说明:此函数为主菜单页面,通过此菜单运用

33、if语句可以实现系统9个功能的调用,通过对老师上传的c+课程设计系统第二版参考文献的分析,我设计了此主菜单页面。#include#include#include #includeusing namespace std;int lon1;int lon2;Student *head,head0;subject *head1,head2;void main()int choice;void menu();head=&head0;head1=&head2;while(1) coutt请输入您要选择的功能:choice;if(choice=1)add();if(choice=2)show();if(c

34、hoice=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()coutt*欢迎进入课程设计选题管理系统*n;coutn;coutt 1.添加功能nendl;coutt 2.显示功能nendl;coutt 3.查询功能nendl;coutt 4.编辑功能nendl;coutt 5.统计功能nendl;coutt 6.删除功能nendl;coutt 7.保存功能nendl;

35、coutt 8.读取功能nendl;coutt 0.退出功能nendl;coutn;coutt*n;第4章 系统测试4.1 模块菜单测试(由于学生类,选题类系统功能一样,在此以学生类为例)图4-1-1 主菜单模块4.2 模块功能测试4.2.1添加功能图4-2-1 添加成功图4-2-2 添加成功4.2.2查找功能 图4-2-3 查找成功 图4-2-4 查找成功 图4-2-5 查找失败4.2.3显示功能 图4-2-6 显示成功4.2.4.编辑功能 图4-2-7 编辑4.2.5.删除功能 图4-2-8 删除成功4.2.6.保存功能图4-2-9保存成功4.2.7.读取功能 图4-2-10 读取成功4.

36、2.8.统计功能图4-2-11 统计成功 第五章 总 结通过C+语言程序设计的上机实践,在老师、同学和有关资料的帮助下顺利完成了课程设计的任务,加深了对C+面向对象程序设计的认识,还能够把这学期所学的理论知识和实践联系起来,在所要编写的程序和设计的管理系统中渐渐成长。虽然我对这些C+语言知识运用得还不是很熟练,但在此次课程设计的基础上可使我发现很多学习上的问题,使我们从不足之处出发,弥补我们的缺点,从而能够更好的对C+面向对象程序设计进行学习和实践。再此要特别感谢老师以及徐铭贝同学的帮助。谢谢你们。就此系统而言,还需改进的地方:(1)、简化一些繁琐的操作,更方便学生选题。(2)、增加一些操作,

37、使系统更加完善简便。 参考文献1刘燕东,刘振安,张一叶. C+程序设计课程设计 第二版. 北京:机械工业出版社,20092王珊,萨师煊. 数据库系统概论. 北京:高等教育出版社,20063李春葆. C+语言习题与解析. 北京:清华大学出版社,20014张岳新. Visual C+程序设计基础. 苏州:苏州大学出版社,20005陈清华, 朱红. Visual C+程序设计案例精选与编程指导. 南京:东南大学出版社,20036祁云嵩. Visual C+程序设计.南京:东南大学出版社,20037周霭如, 林伟健. C+程序设计基础. 北京:电子工业出版社,20038谭浩强. C程序设计. 北京:清华大学出版社,20059谭浩强. C+面向对象程序设计. 北京:清华大学出版社,200610Decoder. C/C+程序设计. 北京:中国铁道出版社,2002

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!