安徽工业大学C++课程设计.docx
- 文档编号:4345422
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:32
- 大小:684.64KB
安徽工业大学C++课程设计.docx
《安徽工业大学C++课程设计.docx》由会员分享,可在线阅读,更多相关《安徽工业大学C++课程设计.docx(32页珍藏版)》请在冰豆网上搜索。
安徽工业大学C++课程设计
C++课程设计
姓名:
某某某
班级:
计112
学号:
119074067
指导教师:
柯栋梁
一:
定义一个string类,实现其相关功能。
1.实验要求及目的:
a.设计一个字符串类,要求满足常见字符串处理功能。
b.可参考VC++安装目录include下的string.h头文件中关于字符串类的定义。
c.成员函数的实现不允许使用系统提供的字符串处理功能。
d.写个测试程序测试每个成员函数。
2.实验环境:
PC机,VC++6.0。
3.实现过程:
a:
首先读懂题目要求,知道自己所要实现的是什么。
b:
参考VC++安装目录include下的string.h头文件中关于字符串类的定义,选择几个字符串处理的基本功能,并且指导实现的原理及要求。
c:
设计一个关于字符串的string类,并且定义各所属的成员函数。
d:
设计实现各个成员函数,并写一个测试主函数测试每一个成员函数是否能够实现其功能。
4.心得体会:
通过本次的实验巩固了我对字符串的一些基本功能的理解和运用,同时对于一些原本比较模糊的概念定义有了更深的认识:
如字符串的连接以及在一串字符中查找特定的字符等等。
当然,通过本次试验然我对一些小的概念如:
flag(判断)等有了较深的了解。
对于本次的实验还有许多的不足之处如:
没有按照要求的去用指针去实现,以及没有用友元函数等等都有很多不足。
5.实验代码:
#include
constintN=200;
intn,flag=0;
classstring
{
private:
charstr[N];
intlen;
public:
string(char*p)
{
copy(str,p);
}
string(){};
voidcopy(char*s1,char*s2);
voidcopy(char*s);
voidstr_set()
{
cin>>str;
}
voidstr_out()
{
cout< } voidconnect(char*s); voidswap(char*s1,char*s2); intlength(); intfind(chars); intcompare(char*s); }; intstrlen(char*s) { inti=0; while(s[i++]! ='\0'); returni-1; } voidpointout() { charyorn; cout<<"\n是否退出系统? : "; cout<<"y=退出,n=不退出,继续。 "; cin>>yorn; cout< if(yorn=='y'||yorn=='Y') flag=1; else if(yorn=='n'||yorn=='N') { flag=0; cout<<"请再次输入你所选择的功能序号\n"; } else { flag=0; cout<<"输入有误,请重新输入"< } } intstring: : length() { inti=0; while(str[i++]! ='\0'); returni-1; } intstring: : find(chars) { intk=length(); for(inti=0;i if(str[i]==s) returni; return-1; } voidstring: : copy(char*s1,char*s2) { inti=0; while(s2[i]! ='\0') { s1[i]=s2[i]; i++; } s1[i]='\0'; } voidstring: : copy(char*s) { inti=0; while(str[i]! ='\0') { s[i]=str[i]; i++; } s[i]='\0'; } voidstring: : swap(char*s1,char*s2) { copy(str,s1); copy(s1,s2); copy(s2,str); } intstring: : compare(char*s) { inti=0; intk1,k2,t; k1=strlen(s); k2=length(); if(k1 { t=k1;k1=k2;k2=t; } for(i=0;i { if(s[i] return1; elseif(s[i]>str[i]) return-1; } return0; } voidstring: : connect(char*s) { inti=0,k=length(); while(s[i]! ='\0') { str[k]=s[i]; k++; i++; } str[k]='\0'; } voidmenu() { cout<<"本系统的五个功能"< cout<<"1: 进行两个字符串的连接\n"; cout<<"2: 复制原有的一串字符\n"; cout<<"3: 查找一串字符里的一个特定字符\n"; cout<<"4: 交换两串字符\n"; cout<<"5: 比较两串字符的大小\n"; cout<<"请输入你想要执行的功能: ! "< } voidfunction1() { chars1[N]; strings; cout<<"请输入第一串字符: \n"; s.str_set(); cout<<"请输入另一串你想要连接的字符: "; cin>>s1; s.connect(s1); cout<<"连接后的字符串为: "; s.str_out(); pointout(); } voidfunction2() { strings; chars1[N]; cout<<"请输入一串你想要复制的字符串: \n"; s.str_set(); cout<<"复制的一串字符为: "; s.copy(s1); cout< pointout(); } voidfunction3() { strings; chars1[N]; chars3; cout<<"请输入一串字符: "; cin>>s1; s=s1; cout<<"请输入你要查找的字符: "; cin>>s3; if(s.find(s3)! =-1) cout<<"你所查字符下标为: "< elsecout<<"没有找到你要查找的字符! \n"; pointout(); } voidfunction4() { strings; chars1[N],s2[N]; cout<<"请输入第一个字符串s1: "; cin>>s1; cout<<"请输入第二个字符串s2: "; cin>>s2; s.swap(s1,s2); cout<<"交换后的结果为: \n"< cout<<"s1="< pointout(); } voidfunction5() { strings; chars1[N]; cout<<"请输入第一串字符: "; s.str_set(); cout<<"请输入第二串字符: "; cin>>s1; cout<<"结果: "< pointout(); } voidfunction(char&n1) { n=n1-'0'; switch(n) { case1: function1();break; case2: function2();break; case3: function3();break; case4: function4();break; case5: function5();break; default: cout<<"你输入的功能序号有误,请重新输入! ! "< } } intmain() { charn1; menu(); while (1) { if(flag) { cout<<"你已经退出系统! \n";break; } cin>>n1; function(n1); } return0; } 2.学生信息管理系统 1.实验要求及目的: a.使用C++实现对文本文件的读写。 b.使用OOP方法综合设计。 c.功能: 添加学生信息,删除学生信息,修改学生信息,查询学生信息学号(姓名或学号),保存学生信息至文件。 d.学生信息如下: 地址,出生日期,学科成绩(语文,英语,数学,物理), 个人信息(姓名,性别,民族,国籍,学历),联系方式(手机,家庭电话,学校电话)。 2.实验环境: PC机,VC++6.0。 3.实现过程: a: 首先查看实验要求和目的,知道自己的目的是什么。 b: 查看并找出自己实现相关成员函数时所需要的头文件是什么,要他们分别实现什么功能。 c: 设计一个关于字符串的student类。 d: 观察自己所要实现的类中的主要功能是什么,并且根据其功能设计定义相关的成员函数。 e: 设计实现各个成员函数,并写一个测试主函数测试每一个成员函数是否能够实现其功能。 4.心得体会: 通过本次的实现让我对于类的创建与实现有了更深的认识和了解,当然最主要的还是让我对于文件的一些处理有了大概的认识,如: 文件内容的写入,修改,删除,以及如何创建一个文件,文件的打开与关闭以及如何从中提取信息都有了一些了解,巩固了原有的知识,也开拓了一些眼界。 当然了制作这个学生信息管理系统还有横多的不足,如: 没有按照要求用链表去实现以及一些处理方面都不太完善。 #include #include #include #include usingnamespacestd; #defineM200 intN=0; classstudent { public: student(); voidadd(); voiddel(); voidchange(); voidsearch(); voiddisplay();//显示全部学生信息 voidoutput();//显示学生姓名 private: staticintnum; stringxingming,banji,xuehao,haoma,chengji,xingbie,nianling,minzu,guoji,shengri,zhuzhi; }; voidmenu() { cout<<"功能列表: "< cout<<"******简单学生信息管理系统******"< cout<<"*1.添加学生信息*"< cout<<"*2.删除学生信息*"< cout<<"*3.显示学生姓名*"< cout<<"*4.显示全部学生信息*"< cout<<"*5.修改学生信息*"< cout<<"*6.查询学生信息*"< cout<<"*0.保存数据并退出系统*"< cout<<"**********************************"< cout<<"输入你选择的功能: "< } intstudent: : num=0; student: : student(){} voidstudent: : add() { stringaddxingming,addbanji,addxuehao,addhaoma,addchengji,addxingbie,addnianling,addminzu,addguoji,addshengri,addzhuzhi; ofstreamoutfile("某某某.txt",ios: : app); if(! outfile) { cerr<<"openerror"< exit (1);//异常情况退出 } N=N+1; cout<<"请输入您要添加的数据"< num++; outfile< cout<<"请输入姓名: "; cin>>addxingming; outfile< cout<<"请输入班级: "; cin>>addbanji; outfile< cout<<"请输入学号: "; cin>>addxuehao; outfile< cout<<"请输入号码: "; cin>>addhaoma; outfile< cout<<"请输入成绩: "; cin>>addchengji; outfile< cout<<"请输入性别: "; cin>>addxingbie; outfile< cout<<"请输入年龄: "; cin>>addnianling; outfile< cout<<"请输入民族: "; cin>>addminzu; outfile< cout<<"请输入国籍: "; cin>>addguoji; outfile< cout<<"请输入生日: "; cin>>addshengri; outfile< cout<<"请输入住址: "; cin>>addzhuzhi; outfile< outfile.close(); cout<<"已添加成功! "< } voidstudent: : del() { intk,i; intnum[M]; stringxingming[M],banji[M],xuehao[M],haoma[M],chengji[M],xingbie[M],nianling[M],minzu[M],guoji[M],shengri[M],zhuzhi[M]; ifstreaminfile("某某某.txt",ios: : in); if(! infile) { cerr<<"openerror"< exit (1); } for(i=0;i { infile>>num[i]; infile>>xingming[i]; cout< infile>>banji[i]; cout< infile>>xuehao[i]; cout< infile>>haoma[i]; cout< infile>>chengji[i]; cout< infile>>xingbie[i]; cout< infile>>nianling[i]; cout< infile>>minzu[i]; cout< infile>>guoji[i]; cout< infile>>shengri[i]; cout< infile>>zhuzhi[i]; cout< "< } cout<<"你想删除第几个? "< cin>>k; k=k-1; infile.close(); ofstreamoutfile("某某某.txt",ios: : out); if(! outfile) { cerr<<"openerror"< exit (1);//退出程序 } for(i=0;i { if(i! =k) { outfile< outfile< outfile< outfile< outfile< outfile< outfile< outfile< outfile< outfile< outfile< outfile< } } outfile.close(); N=N-1; cout<<"已删除成功! "< } voidstudent: : change() { inti,k; intnum[M]; stringxingming[M],banji[M],xuehao[M],haoma[M],chengji[M],xingbie[M],nianling[M],minzu[M],guoji[M],shengri[M],zhuzhi[M]; ifstreaminfile("某某某.txt",ios: : in); if(! infile) { cerr<<"openerror"< exit (1); } for(i=0;i { infile>>num[i]; infile>>xingming[i]; cout< "< infile>>banji[i]; cout< "< infile>>xuehao[i]; cout< "< infile>>haoma[i]; cout< "< infile>>chengji[i]; cout< "< infile>>xingbie[i]; cout< "< infile>>nianling[i]; cout< "< infile>>minzu[i]; cout< "< infile>>guoji[i]; cout< "< infile>>shengri[i]; cout< "< infile>>zhuzhi[i]; cout< "< } infile.close(); ofstreamoutfile("某某某.txt",ios: : out); if(! outfile) { cerr<<"openerror"< exit (1); } cout<<"你想修改第几组数据? "< cin>>k; k=k-1; cout<<"请输入新的数据: "< cout<<"姓名: "; cin>>xingming[k]; cout<<""< cout<<"班级: "; cin>>banji[k]; cout<<""< cout<<"学号: "; cin>>xuehao[k]; cout<<""< cout<<"号码: "; cin>>haoma[k]; cout<<""< cout<<"成绩: "; cin>>chengji[k]; cout<<""< cout<<"性别: "; cin>>xingbie[k]; cout<<""< cout<<"年龄: "; cin>>nianling[k]; cout<<""< cout<<"民族: "; cin>>minzu[k]; cout<<""< cout<<"国籍: "; cin>>guoji[k]; cout<<""< cout<<"生日: "; cin>>shengri[k]; cout<<""< cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽 工业大学 C+ 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)