版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、合肥学院计算机科学与技术系课程设计报告20102011学年第二学期课程 C+课程设计课程设计名称学生社团管理程序学生姓名章 丹学号1004013033专业班级计科(1)班 指导教师华姗姗2011年6月一、 课程设计目的:将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度.通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+程序设计语言的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能
2、力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型. (5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。二、需求分析:课程设计名称:学生社团管理程序设计内容:编写一个简单的学生社团管理程序,帮助管理学生社团信息。要求具有学生信息管理和社团信息管理的功能。其中学生信息管理包括学生基本信息的录入、删除和修改等功
3、能。社团信息管理包括社团信息的录入,查看,删除,修改等功能.二 算法设计1设计思想:学生社团管理程序(添加信息、修改信息、删除信息,查询信息,);要完成这个题目,主要是建立解决输入的信息的存储,解决的方法是建立动态数组,用于存储信息.解决了这个问题后就是如何建立联系了,解决的方法是创建一个文件档用来储存输入的信息。2功能要求在学生社团管理系统中须实现以下功能:(1) 添加社员信息:能够社员的信息,添加信息如下图;(2) 修改社员信息:能对学生社团管理系统中存储的信息进行修改;(3) 删除社员信息:可以删除学生社团管理系统中所有社员的信息;(4) 查询社员信息: 按照每个社员的会员号可以进行查询
4、社员的情况;(5) 存储信息:能够记录保存在设定的文件档中,以便使用;(6) 退出系统:任务完成后,能够正常退出系统。3。 技术要求(1)学生信息管理包括学生基本信息的录入、删除和修改等功能。社团信息管理包括社团信息的录入,查看,删除,修改等功能.(2)信息以文件档的形式存储,存储位置,文件名,文件格式由设计者确定.(3)以菜单方式实现功能选择控制. 三学生社团管理程序的框图设计1 总体实现功能主要的数据结构:社员会员号、社员姓名,社员年龄,社员性别,社员专业,社员班级、社团名称。以这些数据来存储学生的信息,能够了解学生社团的各项情况。下图给出了学生社团管理程序的功能结构:社 员选择1、添加社
5、员信息2、修改社员信息5、退出系统4、查询社员信息3、删除社员信息社员会员号社员姓名社员年龄社员性别社员专业社员班级社团名称(1) 添加信息模块社员进入该模块,输入自己的相关信息,输入后,保存自己的信息,这样系统就存储了你的信息。添加服务信息社员会员号社员姓名社员性别社员年龄社员专业社员班级社团名称存储信息(2) 修改信息模块社员进入该模块,输入自己的社员会员号,在进入自己的信息区域,修改自己的相关信息,再保存,即可.输入要修改的社员会员号(正确)社员会员号社员姓名社员性别社员年龄社员专业社员班级社团名称存储信息修改社员信息(3)删除信息模块社员进入模块,可以删除社员的所有信息,进行查看.(4
6、)查询信息模块 社员进入该模块,可以查询自己的信息情况.输入要查询的社员的会员号(正确)社员会员社员姓名社员年龄社员性别社员专业社员班级 社团名称查询社员信息(5)退出系统2、设计功能的实现和分析(1)定义结构体struct Message /构造学生信息结构体 string ID; /社团会员号 string name; /社员姓名 string sex; /社员性别 string age; ·················
7、; /社员年龄 string profession; /社员专业 string grade; /社员班级 string club; /社团名称(2)学生信息类class studentmessagepublicchar Menu(); /菜单 void Add(); /添加社员信息 void Change(); /修改社员信息 void Delate(); /删除社员信息 void Search(); /查询社员信息void Write(); /写入文件void Read(); /从文件中读取private:vector<Message mes; static int times;(3)
8、 显示菜单函数/菜单/char studentmessage:Menu() cout<endl; coutendl;cout<endl;cout<" 学生社团管理系统-选项"<endl;cout”*”<<endl;coutendl;cout<” 1。添加社员信息"<endl;cout<” 2。修改社员信息"endl; cout” 3.删除社员信息”<<endl; cout” 4.查询社员信息”<endl;cout” 5。退出程序”endl; char choose; cin>c
9、hoose; return choose;(4) 函数的分析1添加社员信息/录入/void studentmessage::Add()Read(); /从文件档中读取已存的信息Message temp; /构建一个临时的tempcout <”请依次输入新社员的信息” endl; cout<”社员会员号:”<<endl; cin temp。ID; cout”社员姓名:"<endl; ; cout"社员性别:"endl;cin>temp。sex;cout”社员年龄:”<<endl; cin>
10、temp。age; cout"社员专业:"endl;fession; cout"社员班级:"<endl;cintemp.grade;cout<”社团名称:”<endl; cin>>temp。club;mes.push_back(temp); /运用push_back把输入的新信息存储到文件档中times+;Write();将原有文件档中的信息读取出来,然后将信息添加在其后,再一起存入文件档中。2修改社员信息void studentmessage:Change()Read(); /从文件档中读取已存的信息
11、string sign; /构建一个临时的sign cout <endl ”输入要修改的社员信息的会员号: "endl; cin sign;for(int i=0;imes。size();i+) /利用for循环查找文件档中的已存入的会员号 if (mesi。ID=sign) cout <endl <"你要修改的社员信息是: " <<endl<endl; cout<”社员会员号:"<<mesi.ID<<endl; cout<”社员姓名:"<<e
12、ndl; cout<<"社员性别 :”<mesi。sex<<endl; cout<”社员年龄:”<mesi.age<endl; cout<”社员专业:”<fessionendl; cout<”社员班级:”<mesi。grade<endl; cout”社团名称:”<mesi。clubendl;coutendl;cout<endl; cout ”请依次输入新教材的信息” endl; cout"社员会员号:"<endl;cin>>mesi。ID;
13、cout"社员姓名:”endl;cin >; cout”社员性别:”<endl;cinmesi。sex;cout”社员年龄:”<endl;cinmesi。age;cout<"社员专业:"endl;cin>fession;cout”社员班级:”<endl;cinmesi。grade;cout<"社团名称:"<endl;cinmesi.club;Write();break;先将文件档中的信息读取出来,然输入自己需要修改的会员号,利用for循环查找文件档中是否存在该会员
14、,如果不存在,则为空,跳出循环,结束程序,如果存在,先把信息显示出来,然后改写信息。4查找社员信息void studentmessage:Search()Read(); /从文件档中读取已存的信息string sign; cout <endl <”输入要查找的社员信息的会员号: "<endl; cin sign;bool flog=false;for(int i=0;imes.size();i+) /利用for循环查找文件档中的已存入的会员号 if (mesi。ID=sign) cout<endl”你要查找的教材信息是: " endl<<
15、endl; cout<"社员会员号:"mesi。IDendl;cout”社员姓名:”<<endl; cout”社员性别 :"<mesi.sex<<endl; cout”社员年龄:”<mesi.age<<endl; cout”社员专业:”<fession<endl; cout<"社员班级:”<mesi。grade<endl; cout<”社团名称:”<mesi。club<<endl;flog=true;break;
16、if(flog=false) cout"noun"<endl; 先将文件档中的信息读取出来,然输入自己需要查找的会员号,利用for循环查找文件档中是否存在该会员,如果不存在,则为空,跳出循环,结束程序,如果存在,把该会员的信息显示出来.5/写入/void studentmessage::Write()ofstream os(”clubmessage。txt",ios_base::out);for(int i=0;imes。size();i+)os<mesi.ageendl<<mesi。club<endlmesi。grade<en
17、dl<mesi。ID<endl<<fessionendlmesi.sexendl;os.close();创建一个clubmessage。txt用于储存社员信息.运用ofstream os将信息储存起来。<6>/读取/void studentmessage::Read()Message tempstudent;ifstream is(”clubmessage。txt",ios_base::in);while(!is.eof() /当字符长度部位空时运行下例读取文件档中的信息is>tempstudent。
18、age>tempstudent。club>tempstudent。grade>>tempstudent。ID>>>fession>>tempstudent。sex;mes.push_back(tempstudent);times+;上面已经创建一个clubmessage.txt用于储存社员信息。运用ifstream os将信息读取出来。<7删除社员信息void studentmessage:Delate()Read();string sign; cout <endl
19、<”输入要删除的社员信息的会员号: ”<<endl; cin >sign;int i;string signstr;for(i=0;i<mes.size();i+) if (mesi。ID=sign) cout<endl”你要删除的社员信息是: ” endl<endl;cout<”社员会员号:”<mesi。ID<endl;cout<”社员姓名:"<<endl; cout<<”性别 :”<<mesi。sexendl; cout"年龄:"mesi。a
20、ge<endl; cout”专业:"<<fession<endl; cout<”班级:”mesi.gradeendl; cout<”社团名称:”mesi。clubendl;cout"y/n?”<endl;cinsignstr;if(signstr="y"|signstr=”Y”)mes。erase(&mesi);Write();break; 先将文件档中的信息读取出来,然输入自己需要删除的会员号,利用for循环查找文件档中是否存在该会员,如果不存在,则为空,跳出循环,结束程序,如果存在,确
21、定删除按“y",把该会员的信息删除。<8主函数int main()studentmessage student;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<"输入有误"endl;
22、break; return 0;四、 用户手册首先根据你在菜单中选择的类型进入,输入会员号,找到相对应的信息.然后根据显示的提示依次进行输入.用户利用该系统时可根据该利用手册进行运用.五、 调试及测试 出现问题:在修改信息函数中,开始并不能将原有信息进行修改,只能覆盖掉第一个会员信息,而且并没有把修改之前的信息删除,显示时同时显示了修改前后的信息;文件操作时不知道如何将输入的信息进行保存,怎样取出文件的信息,不能很好的运用文件操作;题目提示的运用链表不会用,数组类模版不会用。解决问题:通过问同学,查书籍,上网查看,了解可以创建一个文件档来解决问题,能够很好的存储信息在文件档中,将信息取出,调用
23、等;文件的操作我利用一个函数编写保存信息的函数,每次输入一个客户的信息就进行保存.数据用一个动态数组分配一定的内存存储服务信息在文件档中;设计本程序了解到类和对象、动态数组、创建文档等知识的用途,学到了新的知识点,也看到了自己的不足,要学好自己的专业课程看来不是那样的简单,在学习阶段并没有写过这样大的程序,开始有些手忙脚乱的,所以说还是要多多看看这的程序,试着写写,提高自己的编程能力。六、 小结这次基础强化训练的课程设计对于我们来说,有一定的难度。因为他要求我们较完整的去实现一个比较可行的程序。将其应用到实际的生活中去。我被分配到的题目是售后服务管理系统的实现与设计。这个题目相对来说贴近生活,
24、比较容易理解。但是设计一个较为完整的程序却不是这么简单的。 首先我分析了相关的题目内容,并由此而进行了相关资料和书籍的查询工作然后才开始正式进行设计。一开始不知从何下手但后来分析了一下题目,并结合这学期所学的知识,再加上相关提示我决定用类和对象、对象指针和文件的内容来编写程序。服务管理主要就是有一些操作来完成,这些操作包括:添加社员信息,修改社员信息,删除社员信息,查询社员信息,等等。用C+的知识来实现函数:添加,查询,修改,删除。最后编写退出系统的函数.在具体编写程序时考虑只要编写前三个函数,后面的函数几乎差不多。添加社员信息:考虑到社员的信息较多,所以用类对其定义.又考虑到信息量大,所以添
25、加后要保存到文件中去。信息查询:用构建文件档来写.修改信息:把保存到文件中的内容写到文件档中去,把其读取出来,再进行修改,再保存.同时通过这几天的程序及报告编写,我也发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还是比较脆弱。尤其是编写大型的程序所要拥有的知识和技能比较缺乏.程序编好了,还要经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产生的。我的程序基本上能够满足要求,但还有一些地方需要改进,在今后我应该在多看书的同时还要加强实践的练习.才能进一步提高自己的编程能力。最后,还要感谢我们实验室指导老师的细心指导、热心帮助。路漫
26、漫其修远兮,虽然本学期数据结构课程结束了,但仍觉得自己还有很多东西要学,我会在自己在以后的学习生活中不断努力、不断提高,争取更大的进步。七、参考文献1闵联营,何克右.C+程序设计教程。武汉理工大学出版社;2严蔚敏,吴伟民.数据结构(C语言版)。清华大学出版社;3张文祥,肖四友.C+实验与案例分析。 科学出版社;4谭浩强。C+程序设计. 清华大学出版社;5朱战立。数据结构(C+语言描述)(第二版本).高等教育出版社。附录1 includeiostreamincludestdlib。h>#include<fstream#includestringincludevector>usi
27、ng namespace std;struct Message string ID; /社员姓名 string sex; /社员性别 string age; /社员年龄 string profession; / 社员专业 string grade; /社员班级 string club; /社团名称;class studentmessagepublic:charMenu();/菜单 voidAdd(); /添加社员信息 voidChange(); /修改社员信息 voidDelate(); /删除社员信息 voidSearch(); /查询社员信息voidWrite(); /写入文件voidRe
28、ad();/从文件中读取private:vector<Message> mes; static int times;int studentmessage:times=0;/菜单/char studentmessage::Menu() cout<endl; coutendl;coutendl;cout<<” 学生社团管理系统选项”endl;cout”*”endl;coutendl;cout” 1.添加社员信息”endl;cout” 2。修改社员信息”<<endl; cout<” 3。删除社员信息”endl; cout<” 4。查询社员信息&q
29、uot;endl;cout<” 5。退出程序”endl; char choose; cinchoose; return choose;/录入/void studentmessage:Add()Read();Message temp;cout <<"请依次输入新社员的信息” <endl; cout"社员会员号:"<endl; cin >temp.ID; cout”社员姓名:"<endl; ; cout"社员性别:”<<endl;cin>>temp.sex;c
30、out<”社员年龄:”endl; cintemp。age; cout"社员专业:”<endl;cin>fession; cout<”社员班级:”<endl;cin>temp。grade;cout”社团名称:”endl; cin>temp。club;mes.push_back(temp);times+;Write();void studentmessage::Change()Read();string sign; cout <endl <<"输入要修改的社员信息的会员号: ”<endl; cin
31、 >sign;for(int i=0;imes。size();i+)if (mesi.ID=sign) cout <endl <”你要修改的社员信息是: ” endl<endl; cout"社员会员号:”<mesi。ID<endl; cout"社员姓名:"<<<endl; cout<"社员性别 :"<mesi。sexendl; cout<"社员年龄:”mesi.age<endl; cout”社员专业:”fession<
32、<endl; cout"社员班级:”<<mesi.grade<<endl; cout"社团名称:”mesi。club<endl;cout<endl;cout<endl; cout "请依次输入新教材的信息" endl; cout”社员会员号:”<<endl;cin>mesi。ID; cout<”社员姓名:”endl;cin >;cout<<"社员性别:"<endl;cin>mesi。sex;cout<"
33、;社员年龄:"<endl;cin>mesi.age;cout”社员专业:"endl;fession;cout”社员班级:”endl;cinmesi。grade;cout”社团名称:”endl;cin>mesi.club;Write();break; void studentmessage::Search()Read();string sign; cout <endl <<”输入要查找的社员信息的会员号: ”<<endl; cin >sign;bool flog=false;for(int i=0;i
34、mes。size();i+) if (mesi。ID=sign) cout<endl”你要查找的教材信息是: ” <endl<endl; cout<”社员会员号:"<mesi.IDendl; cout<<"社员姓名:"<<endl; cout<”社员性别 :”<mesi.sexendl; cout”社员年龄:”mesi。age<endl; cout”社员专业:”<fession<endl; cout”社员班级:"mesi.grade<
35、;endl; cout<”社团名称:”mesi。clubendl;flog=true;break; if(flog=false) cout<”noun”<endl; /写入/void studentmessage:Write()ofstream os("clubmessage.txt",ios_base::out);for(int i=0;imes。size();i+)osmesi。ageendl<mesi。club<endlmesi.grade<endlmesi.IDendl<<<endl<me
36、fession<endlmesi.sex<endl;os.close();/读取/void studentmessage:Read()Message tempstudent;ifstream is(”clubmessage。txt”,ios_base:in);while(!is。eof()is>tempstudent。agetempstudent。clubtempstudent。grade>tempstudent.IDfessiontempstudent.sex;mes。push_back(tempstudent);times+;void student
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建莆田市荔城区招聘新任教师50人笔试参考题库及答案解析
- 2026天津机电职业技术学院招聘事业单位人员16人(第一批)笔试模拟试题及答案解析
- 2026内蒙古自治区农牧业科学院面向社会招聘控制数人员笔试参考题库及答案解析
- 2026中国石化销售股份有限公司青海西宁石油分公司招聘1人笔试模拟试题及答案解析
- 2026内蒙古聚英人力资源服务有限责任公司定向招聘外派人员(劳务外包)笔试模拟试题及答案解析
- 未来五年地龙类饮片行业市场营销创新战略制定与实施分析研究报告
- 未来五年新形势下女士服装批发行业顺势崛起战略制定与实施分析研究报告
- 未来五年GRC仿瓷浴缸市场需求变化趋势与商业创新机遇分析研究报告
- 建立健全复权制度
- 未来五年新形势下陶瓷灯座行业顺势崛起战略制定与实施分析研究报告
- 知情同意告知培训
- 中药饮片培训课件
- 施工单位商务经理培训
- 病房规范化管理
- 温通刮痧技术操作流程图及考核标准
- 2025年安徽职业技术学院单招职业适应性考试题库含答案
- 2025年黑龙江林业职业技术学院单招职业技能测试题库含答案
- DBJT45-032-2016 CPS防水密封膏施工技术规程
- 2025年度光伏电站运维服务合同范本
- 《脑出血》课件完整版
- 主题13人类面临的主要环境问题课件中华地图版高中地理必修二
评论
0/150
提交评论