C语言课程设计 学生籍贯信息记录簿设计Word文档下载推荐.docx
《C语言课程设计 学生籍贯信息记录簿设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 学生籍贯信息记录簿设计Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
1.学生基本信息的录入
这部分的功能主要包括信息的录入,首先按程序提示输入学生的学号,姓名,籍贯等。
在录入数据的同时,系统将对信息的合法性进行检验。
若用户输入不合法的信息,则被系统要求重新输入;
若合法性成立则录入完毕后系统将返回主页面。
主页面还有显示学生的全部信息,并且这些信息都会写到你所指定的文本文件中。
2.显示学生信息
此功能是将原录入的学生信息读出,并在屏幕上显示出来,并且录入到你所指定的文本文件中。
3.学生信息读取
进入该项功能界面后,用户可以对学生的个人信息进行查看,并且录入到你所指定的文本文件中。
4.按学号或姓名查找学生信息
此项功能可以根据用户输入的选择查处该学生的所有信息,并且录入到你所指定的文本文件中。
5.删除和修改个人信息
选择此项功能后,系统将会自动在屏幕上显示按学号录入原来同学的个人信息,输入后进行修改,并且录入到你所指定的文本文件中。
6.退出系统,结束任务
【注:
main()主函数
每一C程序都必须有一main()函数,可以根据自己的爱好把它放在程序某个地方。
程序之前输入学生信息,main()申明主函数,输出相应的功能函数。
#include<
>
头文件
iostream意为输入输出流,包含了对输入输出流进行操作所需的基本信息;
string意为字符串,用于定义程序中的字符串;
fstream用于用户管理的文件的I/O操作。
usingnamespace命名空间名
usingnamespace一次只能声明一个命名空间成员,using
namespacestd声明了在本作用域中要用的命名空间std中的成员。
break语言
break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。
其作用为使流程从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。
break语句只能用于循环语句和switch语句内,不能单独使用或用于其他语句中。
】
四.调试与测试
在VisualC++6.0环境下输入代码并进行调试和正确运行
五.源程序清单和执行结果
iostream>
string>
fstream>
usingnamespacestd;
classCStudent
{
private:
intID;
//学号
stringProvince;
//籍贯
stringName;
//姓名
public:
voidsetID(intid){ID=id;
}
voidsetProvince(stringprovince){Province=province;
voidsetName(stringname){Name=name;
intgetID(){returnID;
stringgetProvince(){returnProvince;
stringgetName(){returnName;
};
CStudentstudent[1000];
intn=0;
//数组学生总数
stringfileName="
students.txt"
;
intAddStudent();
//添加一个学生到数组
intLoop();
//显示数组中所有学生
intAddToFile();
//加数组学生到文件
intSaveFile();
//数组到文件
intShowFile();
//显示文件所有学生
intFindID();
//按学号查询学生
intFindname();
//按姓名查询学生
intFindProvince();
//按籍贯查询学生
intDelete();
//删除一个学生
intReadFile();
//文件输入数组
intRemove();
//修改一个学生
intRediscovername();
//重新输入学生
voidmain()
intk=-1;
while(k!
=0)
cout<
<
endl;
"
1添加一个学生到数组"
<
2显示数组中所有学生"
3加数组学生到文件"
4显示文件中所有学生"
5按学号查询学生"
cout<
6按籍贯查询学生"
7按姓名查询学生"
8删除一个学生"
9修改一个学生"
10文件输入数组"
0完成"
选择上面一个数字:
cin>
k;
if(k==1)AddStudent();
elseif(k==2)Loop();
elseif(k==3)AddToFile();
elseif(k==4)ShowFile();
elseif(k==5)FindID();
elseif(k==6)FindProvince();
elseif(k==7)Delete();
elseif(k==8)Remove();
elseif(k==9)ReadFile();
elseif(k==0)printf("
完成!
\n"
);
elseprintf("
你输入了个错误的数字!
return;
intFindProvince()
intid;
stringprovince1,province2;
籍贯:
province1;
ifstreamiFile(fileName.c_str());
while(iFile>
id>
province2)
{
if(province1==province2)
id<
"
province2<
}
iFile.close();
return0;
intFindID()
intid1,id2;
stringprovince;
学号:
id1;
ifstreamiFile(fileName.c_str());
id2>
province)
if(id1==id2)
id2<
province<
break;
intname;
ifstreamiFile(fileID.c_str());
name>
name<
intFindName()
intname1,name2;
姓名:
name2>
if(name1==name2)
name2<
intRemove()
intid,i,j;
id;
ReadFile();
for(i=0;
i<
n;
i++)
if(student[i].getID()==id)
n--;
for(j=i;
j<
j++)
student[j]=student[j+1];
SaveFile();
intAddStudent()
学号,籍贯:
province;
student[n].setID(id);
student[n].setProvince(province);
n++;
intAddToFile()
ofstreamoFile(fileName.c_str(),ios:
:
app);
inti;
oFile<
student[i].getID()<
student[i].getProvince()<
oFile.close();
intSaveFile()
ofstreamoFile(fileName.c_str());
intReadFile()
n=0;
student[n].setID(id);
intLoop()
显示所有学生:
学号="
籍贯="
intShowFile()