学生信息管理系统源代码_第1页
学生信息管理系统源代码_第2页
学生信息管理系统源代码_第3页
学生信息管理系统源代码_第4页
学生信息管理系统源代码_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+课程设计参考程序源码1main.cpp/* 课程设计题目:学生信息管理系统 班级:0901 学号:200905112 姓名:xxx */使用数组存储学生信息顺序存储#include "studentinfo.h"int main() Student sMAXNUM; /定义保存学生数据的数组 Load(s); /载入学生数据 char ch='9' ShowMenu(); /显示菜单 cout<<"选择对应数字进行操作:" while(1) cin>>ch; system("cls"); /

2、清除屏幕 ShowMenu(); /显示菜单 DoMenu(s,ch); /执行菜单 ShowTip(); /显示提示 studentinfo.h#ifndef STUDENTINFO_H_INCLUDED#define STUDENTINFO_H_INCLUDED#include<iostream>#include<cstdlib>#include<string>#include<fstream>#include<sstream>#include<iomanip>using namespace std;struct St

3、udent int id; /学号 string name; /姓名;extern const int MAXNUM; /声明MAXNUM变量void Insert(Student *S); /插入学生数据void Delete(Student *S,int n); /删除学号为n的学生数据void Clear(Student *S);/清除所有学生数据int Search(Student *S,int n);/查找学号为n的学生,返回其索引号(数组下标)void Find(Student *S,int n);/查找并显示学号为n的学生的信息void View(Student *S);/查看所

4、有学生的信息void Load(Student *S);/从文件中载入学生信息void Save(Student *S);/将学生信息保存到文件void Exit(Student *s); /安全退出void ShowMenu();/显示菜单void ShowTip();/显示操作提示void DoMenu(Student *S,char n);/执行相应菜单项功能#endif / STUDENTINFO_H_INCLUDEDstudentinfo.cpp#include "studentinfo.h"/数组S的0号单元不用int num; /学生人数bool flag=t

5、rue; /数据是否修改过的标志const int MAXNUM=100; /学生人数允许的最大值void Insert(Student *S) /插入学生数据 Student t; cout<<"学号为整数,输入0终止录入"<<endl; while(1) if(num=(MAXNUM-1) cout<<"学生人数已达最大值!"<<endl; return; cout<<"请输入学号:" if(!(cin>>t.id) /输入的不是数字,重新提示输入 cout&

6、lt;<"学号应为整数!"<<endl; cin.clear(); /清除状态标志,参考教材P430 cin.sync(); /清空输入缓冲区 continue; if(Search(S,t.id)>0) /查找此学号是否已存在 cout<<"此学号已存在!"<<endl; continue; if(t.id=0) /输入0结束录入 cout<<"录入结束。"<<endl; return; cin.sync(); /清空输入缓冲区 cout<<&quo

7、t;请输入姓名:" getline(cin,); /读取一行 if(="") /如读取的为空串,则设name为null ="null" +num; /学生人数增1 Snum=t; /将新录入的学生加入数组中 flag=true; /数据已改动 void Delete(Student *S) /删除学生 if(num=0) cout<<"无学生!"<<endl; else int n,m=0; cout<<"请输入要删除的学生的学号:"

8、 cin>>n; m=Search(S,n); /查找学号为n的学生的索引号(在数组中的下标) if(m=0) /Search()返回0表示没找到 cout<<"找不到要删除的学生!" return; /结束删除操作 for(int i=m; i<num; i+) /删除Sm处的学生 Si=Si+1; -num; /人数减1 flag=true; /数据已改动 cout<<"成功删除学号为"<<n<<"的学生"<<endl; void Clear(Stude

9、nt *S)/清除所有学生数据 num=0; /设置学生人数为0int Search(Student *S,int n)/查找学号为n的学生,返回其索引号(数组下标) for(int i=1; i<=num; i+) if(Si.id=n) return i; /返回找到的学生的索引号(数组下标) return 0; /没找到,返回0,void Find(Student *S)/查找并显示学生的信息 int n; cout<<"请输入要查找的学生的学号:" cin>>n; int i=Search(S,n); /查找学号为n的学生,返回其索引号

10、(数组下标) if(i=0) cout<<"查无此人!"<<endl; else cout<<setw(6)<<"学号"<<" "<<setw(10)<<"姓名"<<endl; cout<<setw(6)<<Si.id<<" "<<setw(10)<<S<<endl; void View(Student *S)/查看所

11、有学生的信息 if(num=0) cout<<"无学生记录!" else cout<<"共有"<<num<<"条学生记录"<<endl; for(int i=1; i<=num; i+) cout<<setw(6)<<"学号"<<" "<<setw(10)<<"姓名"<<endl; cout<<setw(6)<<Si

12、.id<<" "<<setw(10)<<S<<endl; void Load(Student *S)/从文件中载入学生信息 Student t; ifstream infile("data.txt"); /创建文件输入流,文件位于项目文件夹中 if(!infile) cerr<<"错误:数据文件不能打开!n" else for(int i=1; infile>>Si.id; i+) /从文件中读取保存的学生数据 infile>>Si.nam

13、e; num+; flag=false; /设置数据没改动 infile.close(); /关闭文件void Save(Student *S)/将学生信息保存到文件 ofstream outfile("data.txt"); /创建文件输出流 if(!outfile) cerr<<"错误:数据文件不能打开!n" else for(int i=1; i<=num; i+) /将学生数据写入文件 outfile<<Si.id<<' '<<S<<endl; flag

14、=false; /设置数据没改动 cout<<"保存成功!"<<endl; void Exit(Student *S) /安全退出 char s='y' if(flag) /判断数据是否修改 cout<<"数据已经改变,是否保存?(y/n):" cin>>s; if(s='y'|s='Y') Save(S); /保存数据 cout<<"已安全退出," system("pause"); /程序暂停,按任意键继续

15、 exit(0); /结束程序void ShowMenu() /显示菜单 cout<<"|-|"<<endl; cout<<"| 学生信息管理系统 |"<<endl; cout<<"|-|"<<endl; cout<<"| 1.清空:清除所有学生数据 |"<<endl; cout<<"| 2.添加:插入一条学生数据 |"<<endl; cout<<"| 3

16、.删除:删除指定学生数据 |"<<endl; cout<<"| 4.查找:查找指定学生数据 |"<<endl; cout<<"| 5.显示:显示所有学生数据 |"<<endl; cout<<"| 6.保存:保存所有学生数据 |"<<endl; cout<<"| 0.退出:安全的退出本系统 |"<<endl; cout<<"|-|"<<endl<<endl;void ShowTip() /显示操作提示 cout<<endl; cout<<"-操作完成-"<<endl; cout<<"-选择05继续-"<<endl; cout<<"请选择:"void DoMenu(Student *S,char n) /执行相应菜单项功能 switch(n) case '1':

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论