




免费预览已结束,剩余12页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统程序设计基础课程设计报告专 业: 班 级: 学 号: 姓 名: 指导教师: 二OO八年七月二日目 录1.课程设计报告封面-12.课程设计目的-33.课程设计题目和具体要求-34.课程设计报告内容-34.1.程序原代码-3-124.2.运行结果-13-155程序设计流程图-15-166 课程设计总结-177参考书目-172.课程设计目的: 通过对学生信息管理系统整体的编程运行操作,熟练掌握C+编程技术3.课程设计题目和具体要求 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序功能-算法按学号查询按姓名查询学生信息的删除与修改(可选项)4.课程设计报告内容 4.1.程序原代码#include #include #include / system(cls)class Person /基类protected:char Id100; /学号char Name100; /姓名int Age; /年龄char Sex100; /性别char Birthday100; /出生日期char Address100; /地址char CellPhone100; /电话char Email100; /电子信箱Person *next; /指针域public:Person() /基类构造next=0; /指针域设置为空virtual Person() /基类虚析构 virtual void Input()=0; /从键盘输入数据virtual void Input(ifstream& ifs)=0; /从文件输入数据virtual void Output()=0; /向屏幕输出数据virtual void Output(ofstream& ofs)=0; /向文件输出数据friend class Student; /友员类;class Teacher:virtual public Person /学生类public: void Input() /从键盘输入数据coutId;coutName;to:coutAge;if(Age=100)cout年龄输入有误不符合实际,请您重新输入:;goto to;coutSex;coutBirthday;coutAddress;coutCellPhone;coutEmail;void Input(ifstream& ifs) /从文件输入数据ifsIdNameAgeSexBirthdayAddressCellPhoneEmail; void Output() /向屏幕输出数据coutIdtNametAgetSextBirthdaytAddresstCellPhonetEmailendl;void Output(ofstream& ofs) /向文件输出数据ofsIdtNametAgetSextBirthdaytAddresstCellPhonetEmailnext;delete p;p=PL;PL=0;void Student:Add() /增加学生system(cls);char c;docoutnext)p=p-next;/创建新结点,录入数据,连接到链表Person *pt;pt=new Teacher;pt-Input();p-next=pt; cout是否进行循环?y/nc;while(c=y|c=Y);Save();void Student:Clear() /清除所有的学生结点(仅保留头结点)Person *p=PL-next;while(p)PL-next=p-next;delete p;p=PL-next;void Student:Find1() /按学号查找 system(cls);char ID100;Person *p1;Person *p2;coutID;p1=PL-next;p2=PL;while(p1)if(strcmp(p1-Id,ID)=0)break; /找到else p2=p1; /继续查找p1=p1-next;if(!p1) cout对不起找不到您所查询的人!n请确认您所查询的学号是否出错!n;return;else cout 恭喜您您要查询的学生信息以找到,信息如下: endl;coutOutput();/查找学生结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针)int Student:Cfind1(char ID100,Person *p1,Person *p2)*p1=PL-next;*p2=PL;while(*p1)if(strcmp(*p1)-Id,ID)=0)break; /找到else *p2=*p1; /继续查找*p1=(*p1)-next;return *p1?1:0;void Student:Find2() system(cls);char xm20;Person *p1;Person *p2;coutxm;p1=PL-next;p2=PL;while(p1)if(strcmp(p1-Name,xm)=0)break; /找到else p2=p1; /继续查找p1=p1-next;if(!p1) cout对不起找不到您所查询的人!n请确认您所输入的姓名是否正确!n;return;else cout 恭喜您您要查询的学生信息以找到,信息如下: endl;coutOutput();/查找学生结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针)int Student:Cfind2(char xm20,Person *p1,Person *p2)*p1=PL-next;*p2=PL;while(*p1)if(strcmp(*p1)-Name,xm)=0)break; /找到else *p2=*p1; /继续查找*p1=(*p1)-next; return *p1?1:0;void Student:Delete() /删除学生 system(cls);coutn* 删除学生 *n;char Id100;Person *p1,*p2;coutId;if(!Cfind1(Id,&p1,&p2)coutnext=p1-next; /连接delete p1;cout正确删除!n;Save();void Student:Modify() /修改学生system(cls);cout 修改学生的具体信息 endl;char Id100;Person *p1,*p2;coutId;if(!Cfind1(Id,&p1,&p2)coutOutput(); /输出原来的学生信息(做提示)p1-Input(); /输入新的学生信息(更新)cout修改完成!endl;Save();void Student:Print() /输出学生信息 system(cls);cout 输出所有学生的具体信息 endl;coutnext;if(!p)cout抱歉此时并无学生记录!请确认您是否已经输入学生的信息或您是否在此之前已删除了所有的信息Output();p=p-next;void Student:Save() /学生信息存盘?ofstream f(Person.txt,ios:out); /打开文件/遍历输出至文件Person *p=PL-next;while(p) p-Output(f);p=p-next;f.close(); /关闭文件cout学生的具体信息已经保存在Person.txt. bufbuf;if(f)/根据人员类型创建新结点p2=new Teacher;p-next=p2;p=p-next;f.seekg(t);p-Input(f); elsebreak; /关闭文件f.close();void Student:Load() /学生信息录入system(cls); char ah;int c;cout开始录入学生信息endl;docoutc;for(int i=1;inext)p=p-next;/创建新结点,录入数据,连接到链表Person *pt;pt=new Teacher; pt-Input();p-next=pt; Save();cout是否还要继续录入学生信息? y/nah;while(ah=Y|ah=y);int main()char ch;Student c; /定义类对象/显示主菜单,接受选择,并分别调用此系统相应功能的成员函数docout-石河子大学信息科学与技术学院电子信息工程专业(2)班田俊明-endl; cout-欢迎使用学生信息管理系统-endl;cout-学生管理的菜单项如下-endl;coutttt 学生管理的菜单项如下endl; coutt 1 输入学生的信息 - 2 按学号查询信息endl; coutt 3 按姓名查询信息 - 4 修改学生的信息endl; coutt 5 增加学生的信息 - 6 删除学生的信息endl;coutt 7 显示所有学生的信息 - 8 退出本系统endl; cout - endl;coutch;switch(ch)case 1: c.Load(); break;case 2: c.Find1(); break;case 3: c.Find2(); break;case 4: c.Modify(); break;case 5: c.Add(); break;case 6: c.Delete(); break;case 7: c.Print(); break;while(ch!=8);cout 本系统已执行完所有的功能选项 endl; cout 谢谢使用!愿您拥有幸福快乐的每一天! endl; cout 再见 endl;return 0;4.2.运行结果:(1)未输入数据前:(2)输入数据(执行输入学生信息的函数的功能):(3)查询信息:(执行按学号查询信息的函数)(4)修改数据:(执行修改学生的信息函数)(5)增加数据:( 执行增加学生的信息的函数)(6)删除数据:(执行删除学生信息的函数)(7)显示数据:(执行显示所有学生信息的函数)(8)退出系统:(执行退出本系统函数的功能)5程序设计流程图: (1)总流程图:主函数main选择要调用的函数同时执行所对应的switch退出程序Load输入函数CHFind1按学号查询Find2按姓名查询Modify修改信息Add增加信息Delete删除信息Print输出所有信息While(ch!=8)(2)分流程图:Modify修改信息函数定义指针输入要修改的学号寻找信息Find2姓名查询函数Load输入函数查找尾结点创建新结点连接Input函数输入数据输入yORn确定是否继续输入Find1学号查询函数输入学生学号利用指针并利用strcmph进行比较确认找到信息输出没有找到请检查输入学生姓名利用指针和strcmp进行比较确认找到信息输出没有找到请检查无法输出请检查通过指针遍历链表连接保存文档保存文档为空Output输出函数Print输出函数Delete删除函数Add增加函数未找到指定的学号通过指针对其他数据一一修改并输出创建新结点录入数据,连接到链表指针指向Input函数开始增加新生信息输入yORn确定是否继续输入输入要删除学生的学号并用指针定位输入有误未找到确定并Delete6课程设计总结: 在编写学生信息管理系统的过程中,运用到了类、链表、库函数、构造函数、析构函数、指针、虚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 送受话器装调工创新改进考核试卷及答案
- 钢材热处理工信息保密意识考核试卷及答案
- 飞机钣金工班前会考核试卷及答案
- 推土机司机岗位现场作业技术规程
- 2025授权代理协议书范本样式
- 安徽省郎溪二中学2026届数学八上期末质量检测模拟试题含解析
- 内蒙古赤峰市翁牛特旗2026届数学九年级第一学期期末学业质量监测试题含解析
- 2026届咸宁市通城县数学七上期末教学质量检测模拟试题含解析
- 2026届浙江省杭州市英特外国语学校数学九年级第一学期期末质量跟踪监视模拟试题含解析
- 专利知识点培训课件
- 生猪定点屠宰场申请书
- 2025年《公共基础知识》试题库(附答案)
- 高二《复活》课文解读
- 大圆满前行考试题及答案
- 【衢州】2025年浙江衢州市柯城区属事业单位招聘工作人员17人笔试历年典型考题及考点剖析附带答案详解
- 钢构农业大棚建设项目可行性研究报告
- 非货币支付管理办法
- 湖北省武汉2025-2026学年度高一上学期开学分班考试-英语(解析版)
- 2025年宜昌专业技术人员公需科目培训考试题及答案
- 辅警考试题《公安基础知识》综合能力测试题(附答案)
- 高中数学重要函数图像(共62个高考压轴题必考)
评论
0/150
提交评论