C语言课程设计 学生籍贯信息记录簿设计
- 格式:doc
- 大小:132.50 KB
- 文档页数:15
页眉内容 页脚内容15 C语言与程序设计课程设
计
学生籍贯信息记录簿设计 学 院 信息工程 班 级 物联1301班 学 号 131408119 姓 名 滕玲 页眉内容
页脚内容15 一.设计目的 该软件主要是编辑一个学生籍贯信息记录簿记录每个学生信息,包括:学号、姓名、籍贯。具体功能: 1.创建信息链表并以磁盘文件保存; 2.读取磁盘文件并显示输出所有学生的籍贯信息; 3.按学号或姓名查询其籍贯; 4.按籍贯查询并输出该籍贯的所有学生; 5.能添加、删除和修改学生的籍贯信息;
二.总体设计 1.设置输入输出流及将程序由磁盘文件保存,构件类stu,其主要包括:学号,姓名,籍贯; 2.构建无返回值main函数,输出由与程序相关操作构成的信息链表; 3.根据链表设置利用switch函数和循环函数将链表中的内容一一实现; 页眉内容
页脚内容15 页眉内容
页脚内容15 三.详细设计 1.学生基本信息的录入 这部分的功能主要包括信息的录入,首先按程序提示输入学生的学号,姓名,籍贯等。在录入数据的同时,系统将对信息的合法性进行检验。若用户输入页眉内容 页脚内容15 不合法的信息,则被系统要求重新输入;若合法性成立则录入完毕后系统将返回主页面。主页面还有显示学生的全部信息,并且这些信息都会写到你所指定的文本文件中。 2.显示学生信息 此功能是将原录入的学生信息读出,并在屏幕上显示出来,并且录入到你所指定的文本文件中。 3.学生信息读取 进入该项功能界面后,用户可以对学生的个人信息进行查看,并且录入到你所指定的文本文件中。 4.按学号或姓名查找学生信息 此项功能可以根据用户输入的选择查处该学生的所有信息,并且录入到你所指定的文本文件中。 5.删除和修改个人信息 选择此项功能后,系统将会自动在屏幕上显示按学号录入原来同学的个人信息,输入后进行修改,并且录入到你所指定的文本文件中。 6.退出系统,结束任务
【注: main()主函数 每一C 程序都必须有一main()函数, 可以根据自己的爱好把它放在程序某个地方。程序之前输入学生信息,main()申明主函数,输出相应的功能函数。 #include<>头文件 iostream意为输入输出流,包含了对输入输出流进行操作所需的基本信息;string意为字符串,用于定义程序中的字符串;fstream用于用户管理的文件的I/O操作。 using namespace 命名空间名 using namespace一次只能声明一个命名空间成员,using namespace std声明了在本作用域中要用的命名空间std中的成员。 break语言 break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。其作用为使流程从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。break语句只能用于循环语句和switch语句 内,不能单独使用或用于其他语句中。 】 页眉内容 页脚内容15 四.调试与测试 在Visual C++6.0环境下输入代码并进行调试和正确运行
五.源程序清单和执行结果 #include #include #include using namespace std; class CStudent { private: int ID; //学号 string Province; //籍贯 string Name; //姓名 public: void setID(int id) {ID=id;} void setProvince(string province) {Province=province;} void setName(string name) {Name=name;} int getID() {return ID;} string getProvince() {return Province;} string getName() {return Name;} }; CStudent student[1000]; int n = 0; //数组学生总数 string fileName="students.txt"; int AddStudent(); //添加一个学生到数组 int Loop(); //显示数组中所有学生 页眉内容 页脚内容15 int AddToFile(); //加数组学生到文件 int SaveFile(); //数组到文件 int ShowFile(); //显示文件所有学生 int FindID(); //按学号查询学生 int Findname(); //按姓名查询学生 int FindProvince(); //按籍贯查询学生 int Delete (); //删除一个学生 int ReadFile(); //文件输入数组 int Remove (); //修改一个学生 int Rediscovername(); //重新输入学生 int ReadFile(); //文件输入数组
void main() { int k=-1;
while(k!=0) { cout< cout<<"1 添加一个学生到数组" < cout<<"2 显示数组中所有学生" < cout<<"3 加数组学生到文件" < cout<<"4 显示文件中所有学生" < cout<<"5 按学号查询学生"
if (k==1) AddStudent(); else if(k==2) Loop(); else if(k==3) AddToFile(); else if(k==4) ShowFile(); else if(k==5) FindID(); else if(k==6) FindProvince(); else if(k==7) Delete(); else if(k==8) Remove(); else if(k==9) ReadFile(); else if(k==0) printf("完成!\n"); else printf("你输入了个错误的数字!\n"); } return; }
int FindProvince() { int id; string province1,province2; cout<<"籍贯:"; cin>>province1; ifstream iFile(fileName.c_str()); while(iFile>>id>>province2) { if(province1==province2) cout< } 页眉内容 页脚内容15 iFile.close(); return 0; } int FindID() { int id1,id2; string province; cout<<"学号:"; cin>>id1; ifstream iFile(fileName.c_str()); while(iFile>>id2>>province) { if(id1==id2) { cout< break; } } iFile.close(); return 0; }
int FindProvince() { int name; string province1,province2; cout<<"籍贯:"; cin>>province1; ifstream iFile(fileID.c_str()); while(iFile>>name>>province2) { 页眉内容 页脚内容15 if(province1==province2) cout< } iFile.close(); return 0; } int FindName() { int name1,name2; string province; cout<<"姓名:"; cin>>id1; ifstream iFile(fileID.c_str()); while(iFile>>name2>>province) { if(name1==name2) { cout< break; } } iFile.close(); return 0; }
int Remove() { int id,i,j; cout<<"学号:"; cin>>id;