C++课程设计报告.docx
《C++课程设计报告.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告.docx(7页珍藏版)》请在冰豆网上搜索。
C++课程设计报告
设计题目:
学生姓名:
专业:
班级:
课程设计报告
单词及其释义的录入和读取
计算机科学与技术
10—01班
学号:
指导教师:
完成日期:
2011年07月01日
合肥工业大学计算机与信息学院
(一)需求和规格说明
设计一个程序,该程序输入一个英语单词和它的释义(应考虑一个单词可以有多个释义)。
将单词和它的释义分别存放在文件和中。
文件中存储的数据的结构为:
classindex
{public:
charword[20];
streamposoffset;
};
其中,数据成员offset用于记录单词word的释义在文件中的位置用户输入一个单词,屏幕输出该单词的释义。
(二)设计
根据上述要求,该程序应分为两部分进行设计,主函数和被调用
函数,而被调用函数中又可分为两部分:
执行写入命令的write()函
数、执行检查命令的check('
如图:
choice1
choice2
(三)用户手册
程序运行时,首先根据提示选择相关操作类型:
录入单词或查询单词;
若选择录入单词,则根据相关提示输入所要录入的单词及其释义,程序会自动将单词和释义分别保存在和中;
若选择查询单词,则根据相关提示输入所要查询的单词:
若程序
事先保留有该单词的存档,则会出现其释义;若程序事先没有录
入该单词的信息,则会出现“所查单词未录入”的提示
运行实例:
庐输人您的需求£1-录入单词2-杳询单词舊输入单词匕
English重输入单词释文・以^隔开是否继续录入单词?
N
辰否维续(V/N5?
嚣输入您的需求=「录入单词皐查询单词备输人需要查找的单词
English
英国'英语早舌继续查询孝否继续(V/N>?
『青按任意键继续・・•■
进一步改进:
目前程序中,不能进行输入释义而对单词的查询,而在大部分情况下,
很多用户都需要英汉汉英双向功能的查询,所以在一定程度上限制了用户的需求。
对于该问题可考虑在main函数中添加该功能的执行语
气和重新定义一个可实现该功能的被调用函数。
附录源程序
#inelude
#inelude
#inelude
usingnamespaeestd;
classindex{
public:
charword[20];
intoffset;
};
intcount=0;
voidwrite();
voidcheck();
voidmain(){
ifstreamifs;
stringtemp;
("");
while(!
()&&ifs){ifs>>temp;ifs>>count;
}
();
count++;
while
(1){
intchoice;
charyorn;
coutvv"请输入您的需求:
1.录入单词2.查询单词"<cin>>choice;
switch(choice){
case1:
write();break;
case2:
check();break;
default:
cout<<"输入错误"<}
cout<<"是否继续(Y/N)"<cin>>yorn;
if(yorn=='n'||yorn=='N')break;
}
system("pause");
}
voidwrite(){
charmeaning[50];
charyorn;
indexw;
ofstreamofs;
while
(1){
"<cout<<"请输入单词:
cin>>;
=count;
count++;
ofstreamofs;
("",ostream:
:
app);
ofs<<;
ofs<<"";
ofs<<;
ofs<<"\n";
();
cout<<"请输入单词释义,以;隔开"<cin>>meaning;
("",ostream:
:
app);
ofs<ofs<<"\n";
();
cout<<"是否继续录入单词(Y/N)"<cin>>yorn;
if(yorn=='n'||yorn=='N')break;
}
}
voidcheck(){
stringcheck;
stringtemp;
stringmeanning;
intlocation=0;
ifstreamifs;
charyorn;
while
(1){
cout<<"请输入需要查找的单词"<cin>>check;
("");
while
(1){
ifs>>temp;
ifs>>location;
if(check==temp)break;
if()){
location=-1;
break;
}
}
();
if(location==-1)
cout<<"所查单词未录入"<else{
("");
for(inti=0;iifs>>meanning;
();
cout<<"释义:
"<}
cout<<"是否继续查询(Y/N)"<cin>>yorn;
if(yorn=='n'||yorn=='N')break;
}
}