《C++程序设计》教学实习报告Word文档下载推荐.docx
- 文档编号:7695034
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:40
- 大小:478.88KB
《C++程序设计》教学实习报告Word文档下载推荐.docx
《《C++程序设计》教学实习报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《C++程序设计》教学实习报告Word文档下载推荐.docx(40页珍藏版)》请在冰点文库上搜索。
{
cout<
<
"
对不起,你的文件打开失败了哦!
亲~~"
endl;
abort();
}
cout<
请输入你们班的人数:
;
cin>
>
numberofpeople;
for(i=0;
i<
i++)
{
这是第"
(i+1)<
个同学的信息:
学号:
cin>
stud[i].num;
……
outfile.write((char*)&
stud[i],sizeof(student));
outfile.close();
}
在这个函数中,用for语句实现学生学号、姓名、年龄、性别、出生日期、住址、扣扣、手机和email信息的录入,并且以二进制的方式把输入的信息保存在D:
\\student.txt文件中。
C++程序中的文件类型有两种形式:
文本文件和二进制文件。
我在这个程序里选用的二进制文件作为储存。
二进制文件打开需要在打开方式选项中加入参数ios:
binary,此处所指的二进制文件可以输入文件,也可以输出文件。
二进制文件输入操作可以通过I/O流的write()函数实现,而write()函数的作用就是将内存中一定数量的字节写入到文件中。
当我打开D:
\\student.txt文件时,看到的都是乱码(二进制文件)。
这是由于字符是以单个字节存储的,而二进制文件也是以单个字节进行读取和储存的,因此二进制文件中字符可以显示,而汉字与数字由于采用多个字节储存,可能存在夸自己饿操作,因此出现乱码。
2、display函数
display()
students[m];
ifstreaminfile("
\\student.txt"
infile)
对不起,你企图打开的操作失败了哟!
i++)
infile.read((char*)&
s[i],sizeof(s[i]));
infile.close();
第"
使用此函数实现对刚才使用二进制形式保存的同学信息数据的的查看,还是用一个for语句,把学生的学号、姓名、年龄、性别、出生日期、手机、扣扣、地址和email信息的显示到屏幕上。
二进制文件的输出的操作也可以通过I\O流的read()函数,而且read()函数也是从文件中读取一定数量的字节并存放到指定的内存地址中。
3、survey函数
survey()
intm,flag=0;
longn;
charxm[20];
1.按学号查询;
2.按姓名查询.请选择!
m;
if(m==1)
请输入学号:
n;
for(i=0;
{
if(stud[i].num==n)
{
cout<
个同学"
…………
Email:
stud[i].email<
flag=1;
}
}
if(flag==0)
没有您想查到的同学的信息!
~"
if(m==2)
请输入姓名:
xm;
if(strcmp(stud[i].name,xm)==0)
}
if(flag==0)
cout<
没有您想查到的同学的信息哦!
亲~"
使用此函数时会提示用户是按照什么要求寻找(按学号和按姓名查找)并让用户做出选择,如果flag提示有没有找到用户查找的学生信息,如果找到,输出查询学生的所有信息,如果没找到,输出没有找到需要查询的学生。
4、sort函数
sort()
inta[m],j,t;
a[i]=i;
for(j=0;
j<
numberofpeople-1-i;
j++)
if(stud[a[j]].num>
stud[a[j+1]].num)
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
这是排序后的信息哟:
此函数的作用就是使用冒泡法根据学号对学生信息进行排序,在这里把学生的学号、姓名、性别、年龄、出生日期、地址、手机、扣扣、email看做一个整体,交换两个同学的信息,只是交换两个学生的序号而已,并且输出排序后的学生排名。
5、del函数
del()
intj,a[m],t,flag=0;
charna[20];
{a[i]=i;
}
1.按学号和谐;
2.按姓名和谐."
请您做出选择!
j;
if(j==1)
输入您想和谐掉的同学的学号:
t=i;
已经搜到您要河蟹掉的同学信息!
和谐后的同学信息为:
for(;
t<
t++)
{
a[t]=t+1;
for(i=0;
numberofpeople-1;
cout<
stud[a[i]].email<
if(flag==0)
没有寻找到您想和谐的同学的信息!
if(j==2)
输入您要河蟹的姓名:
na;
if(strcmp(stud[i].name,na)==0)
}
使用此函数时依然会先提示用户按照什么要求什么方式删除(按学号或者姓名),用if语句来实现用户的选择,首先还是用flag判断有没有寻找到需要删除同学的信息。
如果没找到,显示没有找到你需要删除同学的信息,如果找到,删除此同学的信息(只是删除了该同学所对应的序号),再输出删除后所有同学的信息。
6、modify函数
modify()
intn,flag=0;
inta;
chars[10];
doubley;
intm;
intd;
charadd[30];
charq[20];
charmob[20];
chare[100];
输入您需要修改的同学的学号:
if(stud[i].num==n)
新的姓名:
cin>
strcpy(stud[i].name,na);
新的年龄:
a;
stud[i].age=a;
新的性别:
s;
strcpy(stud[i].sex,s);
新的出生日期:
年:
y;
stud[i].year=y;
月:
stud[i].month=m;
日:
d;
stud[i].day=d;
新的住址:
add;
strcpy(stud[i].address,add);
新的扣扣:
q;
strcpy(stud[i].qq,q);
新的手机:
phn;
strcpy(stud[i].mobile,mob);
新的email:
e;
strcpy(stud[i].email,e);
flag=1;
修改后同学的信息为:
stud[i].num<
姓名:
stud[i].name<
年龄:
stud[i].age<
性别:
stud[i].sex<
出生日期:
stud[i].year<
"
stud[i].month<
stud[i].day<
住址:
stud[i].address<
扣扣:
stud[i].qq<
手机:
stud[i].mobile<
if(flag==0)
没有寻找到您修改的同学的信息!
此函数依然还是用flag判断有没有所需要修改的同学的信息,如果有,修改后再输出修改后的同学信息,如果没有,输出没有找到您需要寻找的信息。
7、start函数
start()
inti;
\t\t|********************************************|"
\t\t||"
\t\t|热烈欢迎使用同学录管理系统!
|"
\t\t|制作人:
宋长健|"
\t\t|学号:
1008044128|"
同学信息管理系统的菜单:
\t1.同学滴信息添加"
\t2.同学滴信息浏览"
\t3.同学滴信息查询"
\t4.同学滴信息排序"
\t5.同学滴信息删除"
\t6.同学滴信息修改"
\t0.退出"
请选择命令(0-6):
i;
if(i==1)
add();
remind();
if(i==2)
display();
if(i==3)
survey();
if(i==4)
sort();
if(i==5)
del();
if(i==6)
modify();
if(i==0)
quit();
}
此函数的作用就是让系统以菜单的方式工作,使用户方便、明确的知道系统的各项功能。
8、remind函数
remind()
intj;
小厮我提醒您是否继续其他的操作呢?
1.必须继续;
0,耍够了,我要退出."
if(j==0)
start();
这个函数的作用就是在用户每使用完系统的一项功能之后出现的提示,询问用户是否需要进行其他操作,使系统更加人性化。
9、quit函数
quit()
{
\t\t\t谢谢玩耍同学露官吏系统,bye~~!
system("
pause"
);
当用户在remind函数中选择不继续使用之后,此函数就会输出谢谢使用系统的话语,使系统更加的人性化。
3.2调试中出现的错误
在这次课程设计的过程中,曾经出过最大的问题就是,手机号码输出的问题,最一开始,我定义num、mobile和qq的时候用的是double,因为这是逻辑错误,但是语法正确,所以编译没有显示错误,在我测试的时候,因为我为了简便,输入的很简单的数字,没有仔细测试,造成在正式使用截图的时候,变成了这样
学号、扣扣和手机都是以科学技术法显示的,后来我想改用long,但是到输入手机的时候直接会崩溃退出,所以我就用字符数组的方式定义,就可以了的说。
通过这个问题使我明白了,程序测试的时候不能图省事,要仔仔细细检查。
3.3源代码
#include<
iostream>
cstring>
fstream>
usingnamespacestd;
constintm=100;
inti;
structstudent
longnum;
charname[20];
intage;
charsex[10];
doubleyear;
intmonth;
intday;
charaddress[30];
charqq[20];
charmobile[20];
charemail[100];
};
classmenu
public:
voidadd();
voiddisplay();
voidsurvey();
voidsort();
voiddel();
voidmodify();
voidstart();
voidremind();
voidquit();
protected:
studentstud[m];
intnumberofpeople;
stud[i].name;
stud[i].age;
stud[i].sex;
stud[i].year;
stud[i].month;
日"
stud[i].day;
stud[i].address;
stud[i].qq;
stud[i].mobile;
email:
stud[i].email;
stud[i],sizeof(stud[i]));
s[i].num<
s[i].name<
s[i].age<
c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计 C+ 程序设计 教学 实习 报告