版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025幼儿园教研工作计划表格
- 2025年小学一年级下学期班主任工作计划范文
- 2025年度秋季学期少先队工作计划
- Unit 3 Sports and Fitness 单元说课稿-2024-2025学年高中英语人教版(2019)必修第一册
- 海上风电相关行业投资方案
- Unit5 Height and Weight(说课稿)-2024-2025学年北师大版(三起)英语六年级上册
- 报价员专业知识培训课件
- 2025年科室医院感染管理年度工作计划文档
- 2025年班主任计划
- Unit 4 What can you do Part B Read and write大单元整体说课稿表格式-2024-2025学年人教PEP版英语五年级上册
- 暖通工程合同
- 生产型企业规章管理制度(3篇)
- 钢结构之楼承板施工方案流程
- 2024年营销部工作人员安全生产责任制(2篇)
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之3:4组织环境-4.1理解组织及其环境(雷泽佳编制-2025B0)
- 2024-2030年中国管道检测工程行业前景分析发展规划研究报告
- 新的护理交班模式
- 2024年安徽省高校分类对口招生考试数学试卷真题
- 2024电影数字节目管理中心招聘历年高频难、易错点练习500题附带答案详解
- 棋牌室消防应急预案
- 《ISO56001-2024创新管理体系 - 要求》之22:“8运行-8.2 创新行动”解读和应用指导材料(雷泽佳编制-2024)
评论
0/150
提交评论