c++课程实践报告_第1页
c++课程实践报告_第2页
c++课程实践报告_第3页
c++课程实践报告_第4页
c++课程实践报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

中南大学《C++课程设计》设计报告题 目一.8二.3三.3学生姓名李胜学 号1304090322专业班级 0903指导老师 数学科学与计算技术学院2010年6月18日题目一、实验目的、内容描述进行的程序设计:第一大类:8.编制具有如下原型的函数prime,用来判断整数n是否为素数:boolprime(intn);而后编制主函数,任意输入一个大于4的偶数d,找出满足d=dl+d2的所有数对,其中要求di与d2均为素数(通过调用prime来判断素数)。如偶数18可以分解为11+7以及13+5;而偶数80可以分解为:43+37、61+19、67+13、73+7。提示:i与d-i的和恰为偶数d,而且只有当i与d-i均为奇数时才有可能成为所求的“数对”。第二大类:3编一查找给定字符串程序,要求输出给定字符串在文件中的出现的行数,第一个字符在此行中的位置。应区分给定字符串本身构成一个字和作为另外一个字的子串两种情况。。第三大类:3.商品销售统计问题描述编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。基本要求程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。此时。程序计算出应付钱款数并显示。测试数据程序应输入不少于10种商品的信息,并进行模拟运行。实现提示本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例(对象)存储在链表节点中。选做内容程序在营业结束时统计每种商品的销售量,销售金额及总营业额。因此第二部分应有营业结束的选择,当用户选择此项时屏幕上显示当天营业的每种商品的销售量,销售金额及总营业额。注意,商品类的数据成员应增加有商品的销售量和销售金额。总营业额是所有商品的营业额之和,可用静态数据成员实现。或可由原商品类派生出一个特殊的类,增加上面的数据成员及相应的成员函数。二、设计的特点和结果包括实验处理结果和设计心得。指出实验结果运行的操作系统和平台,运行结果。运行的平台:VistualStudio2005和dev-c++面向过程化:年月日的天数。运行的结果见程序后面文件操作类:给出代码源文件的文件名,注意输入的格式,对已经存在文件的操作为。比如:E:WcppW求和.cpp在运行中可以读取源文件并且对源文件进行过滤,删除其中的注释,然后生成一份更高效的文件,使得程序运行更快。三、设计心得通过课程实践设计进一步的巩固了用C++语言编写程序,并且有利于更好的掌握C++语言!在编写过程中也体会到了做事情一顶要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉!在万年历的设计过程中更加体会到了团队合作的重要性,“一个诸葛亮比不上三个臭皮匠。”知道了只有团队合作才会更好的完成设计!也体会到以后在工作中团队合作的必要性和重要性!通过本项课程设计也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!4 由于C语言是近年在国内外得到迅速推广应用的一种语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。通过这次的c语言程序设计更加了解了c语言的好处和其可用性!5.在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过大家的努力终于完成了课程设计!完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!也让我懂得了要想成功首先就必须有很强的自信心!懂得了自己以后要在做任何事情时都要自信!当自己都不相信自己能够成功时还可能会获得成功吗?6.在本次程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!为以后的工作打下良好的知识基础和技能基础!附录自己做的主要实验源代码第一大类8题:#include<iostream>Intprime(intn){Int,flag=0;For(i=2;i<n;i++){If(n%i==0)Flag=0;}Returnflag;}Voidmain(){intprime(intn);intd1,d2,d,a,b;coutvv”请输入大于4的偶数d:”;cin>>d;for(d1=3;d1<=d/2;d1=d1+2){d2=d-d1a=prime(d1);b=prime(d2);if(a==0&&b==0)cout<<”n=”<<d1<<”+”<<d2<<endl;}}第二大类3题#include<fstream.h>structRecord{charname[30];charage[30];charsalary[30];voidDisplay(){"vvsalaryvvendl;coutvv"姓名:"vvnamevv"\t年龄:"vvagevv"\t工资:"vvsalaryvvendl;}};voidWriteFile(ofstream&file,Record&data){file<<<<''<<data.age<<''<<data.salary<<endl;}voidReadFile(ifstream&file,Record&data){file>>>>data.age>>data.salary;}voidmain(){inti,id;char*fname1="e:\\exercise\\data.txt";char*fname2="e:\\exercise\\backup.txt";Recorddata;//创建文件并写入数据ofstreamxfile(fname1);if(!xfile){cerrvv"不能打开文件!"vvendl;return;for(i=0;i<3;i++){coutvv"请输入"vvi+lvv"个人的姓名、年龄和工资:"vvendl;cin>>>>data.age>>data.salary;WriteFile(xfile,data);}xfile.close();//备份文件ifstreaminfile(fnamel);if(!infile){coutvv"不能打开源文件"vvendl;return;}ofstreamoutfile(fname2);if(!outfile){coutvv"不能建立备份文件"vvendl;return;}id=l;while(!infile.eof()){ReadFile(infile,data);if(infile.eof())break;outfilevvid++vv""; //记录加标号WriteFile(outfile,data);}outfile.close();infile.close();}第三大类3题#include"iostream.h"#include"fstream.h"#include"string.h"#defineMAX30classPhoneBook{public:charTelephone[20];charName[l0];

charAdress[100];PhoneBook*next;PhoneBook(){strcpy(Telephone,"");strcpy(Name,"");strcpy(Adress,"");next=NULL;}PhoneBook(chara1[20],chara2[10],chara3[100]){strcpy(Telephone,a1);strcpy(Name,a2);strcpy(Adress,a3);}}Phonebook[MAX];intintHash(intnum) //再哈希函数{intkey;key=(num%21)+1;returnkey;}intcharHash(charnum[20]) //哈希函数{inti=strlen(num)-5;intkey=0;//=(int)num[0];//-48;while(num[i]!=NULL){key=num[i]+(key<<5);i++;}key=key%13;returnkey;}voidList(){voidList(){//显示通讯录中的所有记录coutvv"电话号码——用户名 地址"vvendl;for(inti=0;i<MAX;i++){if(Phonebook[i].next!=NULL){coutvvPhonebook[i].next->Telephonevv""vvPhonebook[i].next->Namevv""vvPhonebook[i].next->Adressvvendl;}}}voidCreat() //创建新的通讯录。{PhoneBook*tmp=newPhoneBook();cin>>tmp->Telephone>>tmp->Name>>tmp->Adress;tmp->next=NULL;inta=charHash(tmp->Telephone);mark: if(Phonebook[a].next->Telephone!=NULL){a=intHash(a);gotomark;}else{tmp->next=&Phonebook[a];Phonebook[a].next=tmp;}}voidDelete(chara[10]) //删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。{intmark=-1;inti=charHash(a);while(1){if(Phonebook[i].next!=NULL){if(!strcmp(Phonebook[i].next->Telephone,a))mark=i;break;}else{i=intHash(i);}}elsebreak;}if(mark!=-1){Phonebook[mark].next->next=NULL;Phonebook[mark].next=NULL;coutvv"删除中 \n"<<"现在数据为:"vvendl;List();}else{coutvv"查无此人!"vvendl;}voidAlter(chara[20]) //修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。{intmark=-1;inti=charHash(a);while(1){if(Phonebook[i].next!=NULL){if(!strcmp(Phonebook[i].next->Telephone,a)){mark=i;break;}else{i=intHash(i);}}elsebreak;}if(mark!=-1){coutvv"你要修改的用户姓名和住址"vvendl;cin>>Phonebook[mark].next->Name>>Phonebook[mark].next->Adress;coutvv"修改中 \n"vv"现在数据为:"vvendl;List();}else{coutvv"查无此号码的记录。"vvendl;}voidFind(chara[20]) //查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。{intmark=-1;inti=charHash(a);while(1){if(Phonebook[i].next!=NULL){if(strcmp(Phonebook[i].next->Telephone,a)==0){mark=i;break;}else{i=intHash(i);}}elsebreak;}if(mark!=-1){cout<<Phonebook[mark].next->Telephone<<""<<Phonebook[mark].next->Name<<""<<Phonebook[mark].next->Adress<<endl;}else{coutvv"查无此号码的相关信息!"vvendl;}}voidAppend() //在通讯录的末尾写入新的信息,并返回选单。{PhoneBook*tmp=newPhoneBook();coutvv"请输入你要输入的电话号码,用户姓名,住址"vvendl;cin>>tmp->Telephone>>tmp->Name>>tmp->Adress;tmp->next=NULL;inta=charHash(tmp->Telephone);mark: if(Phonebook[a].next->Telephone!=NULL){a=intHash(a);gotomark;}else{tmp->next=&Phonebook[a];Phonebook[a].next=tmp;}inti;fstreamiiout("out.txt",ios::out);for(i=0;i<20;i++){if(Phonebook[i].next!=NULL){iiout<<Phonebook[i].next->Telephone<<"\t"<<Phonebook[i].next->Name<<"\t"<<Phonebook[i].next->Adress<<"\0"<<endl;}}}voidLoad() //从指定文件中读取通讯录中的记录。{inti;inta;fstreaminf("out.txt",ios::in);for(i=0;i<5;i++){PhoneBook*tmp=newPhoneBook();inf>>tmp->Telephone>>tmp->Name>>tmp->Adress;a=charHash(tmp->Telephone);mark:if(Phonebook[a].next->Telephone!=NULL){a=intHash(a);gotomark;}else{tmp->next=&Phonebook[a];Phonebook[a].next=tmp;}}}intQuit() //退出选单。return0;

voidMenu()//显示中文选单voidMenu()C平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平flcout<<"**"<<endl;cout<<"*0.新建"<<"1.添加"<<"2.修改"<<"3.删除"<<"4.查找 *"<<endl;cout<<"*5.列表"<<"6.读取"<<"7.保存"<<"8.退出 *"<<endl;cout<<cout<<"*

温馨提示

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

评论

0/150

提交评论