版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某建材厂粉尘防护措施
- 2026浙江嘉兴市经英人才发展服务有限公司文旅分公司(原嘉兴市经英人才发展服务有限公司城南分公司)招录法律专业人才及法律辅助人员补录(第6号)笔试历年常考点试题专练附带答案详解
- ICU 护理查房 - 多发伤
- 2026浙江丽水市松阳县国盛人力资源有限公司招聘驾驶员技能测试及人员笔试历年常考点试题专练附带答案详解
- 2026河南郑州市金水人才集团有限公司见习生招聘1人笔试历年难易错考点试卷带答案解析
- 某电子厂产品质量追溯办法
- 2026年海南南国人力资源开发有限公司招聘专业技术人员笔试历年典型考点题库附带答案详解
- 2026年度安徽合肥市轨道交通集团有限公司见习人员招募60人笔试历年难易错考点试卷带答案解析
- 2026年中国一冶集团有限公司交通工程公司秋季校园招聘笔试历年难易错考点试卷带答案解析
- 2026届中铁广州局校园招聘正式启动笔试历年备考题库附带答案详解
- 广告位租赁合同15篇
- DB3302∕T 1016-2025 城市绿地养护质量要求
- 2026年北京第一次普通高中学业水平合格性考试化学仿真模拟卷02(全解全析)
- 医院运营成本管控与科室绩效的激励机制设计
- 湖南2025年生地会考试卷及答案
- 土方开挖运输合同范本
- 《小学科学课程标准》(修订稿)
- 数学试卷+答案【重庆卷】【高一下期末考】重庆市康德教育2025年春高一(下)期末康德联合检测试卷(7.2-7.3)
- 2025湖南长沙开福城投控股有限责任公司招聘拟录笔试历年参考题库附带答案详解
- 纺织面料设计师技能比武考核试卷及答案
- 病案首页规范填写课件
评论
0/150
提交评论