学生社团管理程序C++课程设计1.docx
- 文档编号:16545473
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:41
- 大小:108.72KB
学生社团管理程序C++课程设计1.docx
《学生社团管理程序C++课程设计1.docx》由会员分享,可在线阅读,更多相关《学生社团管理程序C++课程设计1.docx(41页珍藏版)》请在冰点文库上搜索。
学生社团管理程序C++课程设计1
合肥学院
计算机科学与技术系
课程设计报告
2010~2011学年第二学期
课程C++课程设计
课程设计名称学生社团管理程序
学生姓名章丹
学号1004013033
专业班级计科
(1)班
指导教师华姗姗
2011年6月
一、课程设计目的:
将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、
数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会
贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:
(1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理
论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提
高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用
系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学
模型。
(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。
(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序和修改程序。
二、需求分析:
课程设计名称:
学生社团管理程序
设计内容:
编写一个简单的学生社团管理程序,帮助管理学生社团信息。
要求具
有学生信息管理和社团信息管理的功能。
其中学生信息管理包括学生基本信息的
录入、删除和修改等功能。
社团信息管理包括社团信息的录入,查看,删除,修
改等功能。
二算法设计
1.设计思想:
学生社团管理程序(添加信息、修改信息、删除信息,查询信息,);
要完成这个题目,主要是建立解决输入的信息的存储,解决的方法是建立动
态数组,用于存储信息。
解决了这个问题后就是如何建立联系了,解决的方法是
创建一个文件档用来储存输入的信息。
2.功能要求
在学生社团管理系统中须实现以下功能:
(1)添加社员信息:
能够社员的信息,添加信息如下图;
(2)修改社员信息:
能对学生社团管理系统中存储的信息进行修改;
(3)删除社员信息:
可以删除学生社团管理系统中所有社员的信息;
(4)查询社员信息:
按照每个社员的会员号可以进行查询社员的情况;
(5)存储信息:
能够记录保存在设定的文件档中,以便使用;
(6)退出系统:
任务完成后,能够正常退出系统。
3.技术要求
(1)学生信息管理包括学生基本信息的录入、删除和修改等功能。
社团信
息管理包括社团信息的录入,查看,删除,修改等功能。
(2)信息以文件档的形式存储,存储位置,文件名,文件格式由设计者确
定。
(3)以菜单方式实现功能选择控制。
三.学生社团管理程序的框图设计
1总体实现功能
主要的数据结构:
社员会员号、社员姓名,社员年龄,社员性别,社员专
业,社员班级、社团名称。
以这些数据来存储学生的信息,能够了解学生社团的
各项情况。
下图给出了学生社团管理程序的功能结构:
1、添加社员信息
社员会员号
2、修改社员信息
社员姓名
社员年龄
社员选择
社员性别
3、删除社员信息
社员专业4、查询社员信息
社员班级5、退出系统
社团名称
(1)添加信息模块
社员进入该模块,输入自己的相关信息,输入后,保存自己的信息,这样系
统就存储了你的信息。
添加服务信息
社
员
会
员
号
社
员
姓
名
社
员
性
别
社
员
年
龄
社
员
专
业
社
员
班
级
社
团
名
称
存储信息
(2)修改信息模块
社员进入该模块,输入自己的社员会员号,在进入自己的信息区域,修改
自己的相关信息,再保存,即可。
修改社员信息
输入要修改的社员会员号(正确)
社
号社社社社社社
员
员员员员团
员
性
姓年专班名
会
别
名龄业级称
员
存储信息
(3)删除信息模块
社员进入模块,可以删除社员的所有信息,进行查看。
(4)查询信息模块
社员进入该模块,可以查询自己的信息情况。
查询社员信息
输入要查询的社员的会员号(正确)
社
员
会
员
社
员
姓
名
社
员
年
龄
社
员
性
别
社
员
专
业
社
员
班
级
社
团
名
称
(5)退出系统
2、设计功能的实现和分析
(1)定义结构体
structMessage//构造学生信息结构体
{
stringID;//社团会员号stringname;//社员姓名
stringsex;//社员性别stringage;
·················`//社员年龄
stringprofession;//社员专业
stringgrade;//社员班级
stringclub;//社团名称
(2)学生信息类
classstudentmessage
{
public
charMenu();//菜单
voidAdd();//添加社员信息
voidChange();//修改社员信息
voidDelate();//删除社员信息
voidSearch();//查询社员信息
voidWrite();//写入文件
voidRead();//从文件中读取
private:
vector
staticinttimes;
};
(3)显示菜单函数
/////////////菜单////////////////////
charstudentmessage:
:
Menu()
{
cout< cout< cout< cout<<"学生社团管理系统---选项"< cout<<"***********************************************"< cout< cout<<"1.添加社员信息"< cout<<"2.修改社员信息"< cout<<"3.删除社员信息"< cout<<"4.查询社员信息"< cout<<"5.退出程序"< charchoose; cin>>choose; returnchoose; } (4)函数的分析 <1>添加社员信息 //////////////录入//////////////////// voidstudentmessage: : Add() { Read();//从文件档中读取已存的信息 Messagetemp;//构建一个临时的temp cout<<"请依次输入新社员的信息"< cout<<"社员会员号: "< cin>>temp.ID; cout<<"社员姓名: "< cin>>temp.name; cout<<"社员性别: "< cin>>temp.sex; cout<<"社员年龄: "< cin>>temp.age; cout<<"社员专业: "< cin>>temp.profession; cout<<"社员班级: "< cin>>temp.grade; cout<<"社团名称: "< cin>>temp.club; mes.push_back(temp);//运用push_back把输入的新信息存储到文件档中 times++; Write();} 将原有文件档中的信息读取出来,然后将信息添加在其后,再一起存入文件档中。 〈2〉修改社员信息 voidstudentmessage: : Change() { { Read();//从文件档中读取已存的信息 stringsign;//构建一个临时的sign cout< "< cin>>sign; for(inti=0;i { if(mes[i].ID==sign) { cout< "< cout<<"社员会员号: "< cout<<"社员姓名: "< cout<<"社员性别: "< cout<<"社员年龄: "< "< cout<<"社员班级: "< cout<<"社团名称: "< cout< cout< cout<<"请依次输入新教材的信息"< cout<<"社员会员号: "< cin>>mes[i].ID; cout<<"社员姓名: "< cin>>mes[i].name; cout<<"社员性别: "< cin>>mes[i].sex; cout<<"社员年龄: "< cin>>mes[i].age; cout<<"社员专业: "< cin>>mes[i].profession;cout<<"社员班级: "< cin>>mes[i].grade; cout<<"社团名称: "< cin>>mes[i].club; Write(); break;} } 先将文件档中的信息读取出来,然输入自己需要修改的会员号,利用for循环查 找文件档中是否存在该会员,如果不存在,则为空,跳出循环,结束程序,如果 存在,先把信息显示出来,然后改写信息。 <4>查找社员信息 voidstudentmessage: : Search() { Read();//从文件档中读取已存的信息 stringsign; cout< "< cin>>sign; boolflog=false; for(inti=0;i { if(mes[i].ID==sign) { cout< "< cout<<"社员会员号: "< cout<<"社员姓名: "< cout<<"社员性别: "< cout<<"社员年龄: "< cout<<"社员专业: "< cout<<"社员班级: "< cout<<"社团名称: "< flog=true; break; } } if(flog==false)cout<<"noun"< } } 先将文件档中的信息读取出来,然输入自己需要查找的会员号,利用for循环查 找文件档中是否存在该会员,如果不存在,则为空,跳出循环,结束程序,如果 存在,把该会员的信息显示出来。 <5> //////////////////写入////////////////////// voidstudentmessage: : Write() { ofstreamos("clubmessage.txt",ios_base: : out); for(inti=0;i { os< < < < < < < os.close(); } 创建一个clubmessage.txt用于储存社员信息。 运用ofstreamos将信息储存起来。 <6> //////////////////读取//////////////// voidstudentmessage: : Read() { Messagetempstudent; ifstreamis("clubmessage.txt",ios_base: : in); while(! is.eof()//当字符长度部位空时运行下例读取文件档中的信息 { is>>tempstudent.age >>tempstudent.club >>tempstudent.grade >>tempstudent.ID >>tempstudent.name >>tempstudent.profession >>tempstudent.sex; mes.push_back(tempstudent); times++; } } 上面已经创建一个clubmessage.txt用于储存社员信息。 运用ifstreamos将信息读 取出来。 <7>删除社员信息 voidstudentmessage: : Delate() { Read(); stringsign; cout< "< cin>>sign; inti; stringsignstr; for(i=0;i { if(mes[i].ID==sign) { cout< "< cout<<"社员会员号: "< cout<<"社员姓名: "< cout<<"性别: "< cout<<"年龄: "< cout<<"专业: "< cout<<"班级: "< cout<<"社团名称: "< cout<<"y/n? "< cin>>signstr; if(signstr=="y"||signstr=="Y")mes.erase(&mes[i]); Write(); break; } } 先将文件档中的信息读取出来,然输入自己需要删除的会员号,利用for循环查 找文件档中是否存在该会员,如果不存在,则为空,跳出循环,结束程序,如果 存在,确定删除按“y”,把该会员的信息删除。 <8>主函数 intmain() { studentmessagestudent; while (1) { switch(student.Menu())//运用switch产生循环操作。 { case'1': student.Add();break; case'2': student.Change();break; case'3': student.Delate();break; case'4': student.Search();break;case'5': exit(0); default: cout<<"输入有误"< } } return0; } 四、用户手册 首先根据你在菜单中选择的类型进入,输入会员号,找到相对应的信息。 然后根据显示的提示依次进行输入。 用户利用该系统时可根据该利用手册进行运 用。 五、调试及测试 出现问题: 在修改信息函数中,开始并不能将原有信息进行修改,只能覆盖掉第一个 会员信息,而且并没有把修改之前的信息删除,显示时同时显示了修改前后 的信息;文件操作时不知道如何将输入的信息进行保存,怎样取出文件的信 息,不能很好的运用文件操作;题目提示的运用链表不会用,数组类模版不 会用。 解决问题: 通过问同学,查书籍,上网查看,了解可以创建一个文件档来解决问题, 能够很好的存储信息在文件档中,将信息取出,调用等;文件的操作我利用 一个函数编写保存信息的函数,每次输入一个客户的信息就进行保存。 数据用一个动态数组分配一定的内存存储服务信息在文件档中; 设计本程序了解到类和对象、动态数组、创建文档等知识的用途,学到了 新的知识点,也看到了自己的不足,要学好自己的专业课程看来不是那样的 简单,在学习阶段并没有写过这样大的程序,开始有些手忙脚乱的,所以说 还是要多多看看这的程序,试着写写,提高自己的编程能力。 六、小结 这次基础强化训练的课程设计对于我们来说,有一定的难度。 因为他要 求我们较完整的去实现一个比较可行的程序。 将其应用到实际的生活中去。 我被分配到的题目是售后服务管理系统的实现与设计。 这个题目相对来说贴 近生活,比较容易理解。 但是设计一个较为完整的程序却不是这么简单的。 首先我分析了相关的题目内容,并由此而进行了相关资料和书籍的查询 工作然后才开始正式进行设计。 一开始不知从何下手但后来分析了一下题 目,并结合这学期所学的知识,再加上相关提示我决定用类和对象、对象指 针和文件的内容来编写程序。 服务管理主要就是有一些操作来完成,这些操 作包括: 添加社员信息,修改社员信息,删除社员信息,查询社员信息,等 等。 用C++的知识来实现函数: 添加,查询,修改,删除。 最后编写退出系统 的函数。 在具体编写程序时考虑只要编写前三个函数,后面的函数几乎差不多。 添加社员信息: 考虑到社员的信息较多,所以用类对其定义。 又考虑到信息 量大,所以添加后要保存到文件中去。 信息查询: 用构建文件档来写。 修改 信息: 把保存到文件中的内容写到文件档中去,把其读取出来,再进行修改, 再保存。 同时通过这几天的程序及报告编写,我也发现了自己的很多不足,自 己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的 能力还是比较脆弱。 尤其是编写大型的程序所要拥有的知识和技能比较缺 乏。 程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了 无数次的修改和调试才产生的。 我的程序基本上能够满足要求,但还有一些 地方需要改进,在今后我应该在多看书的同时还要加强实践的练习。 才能进 一步提高自己的编程能力。 最后,还要感谢我们实验室指导老师的细心指导、热心帮助。 路漫漫 其修远兮,虽然本学期数据结构课程结束了,但仍觉得自己还有很多东西 要学,我会在自己在以后的学习生活中不断努力、不断提高,争取更大的 进步。 七、参考文献 [1]闵联营,何克右.《C++程序设计教程》.武汉理工大学出版社; [2]严蔚敏,吴伟民.《数据结构(C语言版)》.清华大学出版社; [3]张文祥,肖四友.《C++实验与案例分析》.科学出版社; [4]谭浩强.《C++程序设计》.清华大学出版社; [5]朱战立.《数据结构(C++语言描述)》(第二版本).高等教育出版社。 附录1 #include #include #include #include #include usingnamespacestd; structMessage { stringID;//社员姓名 stringsex;//社员性别 stringage;//社员年龄 stringprofession;//社员专业 stringgrade;//社员班级 stringclub;//社团名称 }; classstudentmessage { public: charMenu();//菜单 voidAdd();//添加社员信息 voidChange();//修改社员信息 voidDelate();//删除社员信息 voidSearch();//查询社员信息 voidWrite();//写入文件 voidRead();//从文件中读取 private: vector staticinttimes; }; intstudentmessage: : times=0; /////////////菜单//////////////////// charstudentmessage: : Menu() { cout< cout< cout< cout<<"学生社团管理系统---选项"< cout<<"***********************************************"< cout< cout<<"1.添加社员信息"< cout<<"2.修改社员信息"< cout<<"3.删除社员信息"< cout<<"4.查询社员信息"< cout<<"5.退出程序"< charchoose; cin>>choose; returnchoose; } //////////////录入//////////////////// voidstudentmessage: : Add() { Read(); Messagetemp; cout<<"请依次输入新社员的信息"< cout<<"社员会员号: "< cin>>temp.ID; cout<<"社员姓名: "< cin>>temp.name; cout<<"社员性别: "< cin>>temp.sex; cout<<"社员年龄: "< cin>>temp.age; cout<<"社员专业: "< cin>>temp.profession; cout<<"社员班
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 社团 管理程序 C+ 课程设计