ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:20.90KB ,
资源ID:11182086      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11182086.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高校学籍管理系统C++程序设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高校学籍管理系统C++程序设计.docx

1、高校学籍管理系统C+程序设计VC+课程设计-高校学籍管理系统 源程序一、课程设计题目:学籍管理系统 二、目的与要求:1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书 三、设计方法和基本原

2、理:1、功能要求 要求完成以下功能:1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。2)能够将指定的信息从文件中删除。3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。4)可以统计全部学生的总成绩,及其在班上的排名。5)能够统计各科的平均成绩及及格率。6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。7)如果检索不到相应的信息应提示用户。 2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤: a) 写出需求分析(做什么) b) 分析系统中的各个实体之间的关系及其属性和行为; c) 根据问题描述,设计系统的类层次; d) 完成类层次中各

3、个类的描述(包括属性和方法); e) 完成类中各个成员函数的定义; f) 用户界面的设计 g) 分析系统功能模块(系统流程图) h) 代码编写 i) 功能调试; j) 完成系统总结报告以及系统使用说明书。源程序代码如下:code/*course.dat-课程列表(只读)student.dat-学生信息*/#include #include #include #include class COURSE/课程类private:static int coursenum; /课程数量static char (*coursename)20;/课程名称public:static void LoadCour

4、se()/从文件COURSE.DAT装入课程信息 ifstream f(course.dat); fcoursenum; coursename=new charcoursenum20; for(int i=0;icoursename; f.close();friend class STUDENT;friend class COLLEGE;int COURSE:coursenum=0;char (*COURSE:coursename)20=0;class STUDENT /学生类private:char num20; /学号char name20;/姓名char sex; /性别char cna

5、me20; /班级float *grade; /成绩(动态数组)float sum; /各科总分STUDENT *next;public:STUDENT() grade=new floatCOURSE:coursenum; next=0;STUDENT() delete grade;void Input() sum=0; coutnum; /输入学生一般信息 coutname; coutsex;sex=toupper(sex); coutcname; for(int i=0;iCOURSE:coursenum;i+)/输入学生各科成绩 coutCOURSE:coursenamegrade; s

6、um+=grade;/计算总分 void Input(ifstream &f) fnum; fname; fsex;sex=toupper(sex); fcname; for(int i=0;igrade; fsum;static void OutputT() coutsetw(10)学号setw(20)姓名setw(5)性别setw(10)班级; for(int i=0;iCOURSE:coursenum;i+) coutsetw(7)COURSE:coursename; coutsetw(10)总分endl;void Output() coutsetw(10)num;/输出学生一般信息 c

7、outsetw(20)name; coutsetw(5)sex; coutsetw(10)cname; for(int i=0;iCOURSE:coursenum;i+)/输出学生各科成绩,总分 coutsetw(7)grade; coutsetw(10)sumendl;void Output(ofstream &f) fsetw(10)num;/输出学生一般信息 fsetw(20)name; fsetw(5)sex; fsetw(10)cname; for(int i=0;iCOURSE:coursenum;i+)/输出学生各科成绩,总分 fsetw(7)grade; fsetw(10)su

8、mnext; delete p; p=SL; void Set(); /课程设置(增,删,改,存)void Add(); /增加学生void Delete(); /删除学生void Modify(); /修改学生void Query(); /查询学生信息(按姓名,学号)void Print(); /输出所有学生信息void Stat(); /统计课程平均成绩,课程合格率void SumSort(); /按总分排名(高-低)void NumSort(); /按学号排序(低-高)void Save(); /学生数据存盘void Load(); /装入学生数据;/增加学生void COLLEGE:A

9、dd() coutnext)p2=p2-next;p2-next=p; /链接学生结点p-Input(); /输入学生信息/查找学生结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针)int COLLEGE:Find(char *ID,STUDENT *p1,STUDENT *p2) *p1=SL-next;*p2=SL;while(*p1) if(strcmp(*p1)-num,ID)=0) break;/找到 else *p2=*p1;/继续查找 *p1=(*p1)-next; return *p1?1:0;/删除学生void COLLEGE:elete() coutn*

10、删除学生 *n;char No20;STUDENT *p1,*p2;coutNo;if(!Find(No,&p1,&p2) coutnext=p1-next;/连接 delete p1; cout正确删除!n;/修改学生void COLLEGE:Modify() coutn* 修改学生 *n;char No20;STUDENT *p1,*p2;coutNo;if(!Find(No,&p1,&p2) coutOutput();/输出原来的学生信息(做提示) p1-Input();/输入此学生信息(更新) cout修改完成!n;/*承上*/查询学生信息/按学号或姓名查找,如果找到显示该学生,如果未

11、找到,也给出相应提示.void COLLEGE:uery()coutnext;char No20;char Name20;char ch;do coutch;while(ch!=1&ch!=2);int flag=0;/未找到0,找到1if(ch=1)/按学号查 coutNo; while(p) if(strcmp(p-num,No)=0) flag=1;break; else p=p-next;else/按姓名查 coutName; while(p) if(strcmp(p-name,Name)=0) flag=1;break; else p=p-next;if(flag=1)/如果找到,显

12、示此同学信息 p-OutputT(); p-Output();else/否则给出未找到提出 cout指定的学生没有找到!n;/输出所有学生信息void COLLEGE:rint() coutnext;STUDENT:OutputT();/输出标题while(p)/循环输出各位学生信息 p-Output(); p=p-next;/学生数据存盘void COLLEGE:Save() ofstream f(student.dat);STUDENT *p=SL-next;while(p)/遍历学生链表 p-Output(f);/写入文件 p=p-next; f.close();coutnext;whi

13、le(p) SL-next=p-next; delete p; p=SL-next;/装入学生数据void COLLEGEad() Clear();ifstream f(student.dat);STUDENT *p=SL;STUDENT *p2=new STUDENT;p2-Input(f); while(f) p-next=p2; p=p-next; p2=new STUDENT; p2-Input(f); delete p2;f.close();/统计课程平均成绩,课程合格率void COLLEGE:Stat() float *sum=new floatCOURSE:coursenum;

14、/各科平均成绩float *pass=new floatCOURSE:coursenum;/各科合格人数,/n=合格率int n=0;/学生人数for(int i=0;inext;n=0; sum=pass=0; while(p)/遍历学生链表 n+; /人数 sum=sum+p-grade;/某科总分 if(p-grade=60)pass+; /某科合格人数 p=p-next; for(i=0;iCOURSE:coursenum;i+) coutsetprecision(4)setiosflags(ios:showpoint); coutCOURSE:coursename平均:sum/n,合

15、格率:pass/n*100.%endl;delete sum;delete pass;void COLLEGE:ValueS2ToS1(STUDENT &s1,STUDENT &s2)strcpy(s1.num,s2.num); /学号strcpy(s1.name,s2.name);/姓名s1.sex=s2.sex; /性别strcpy(ame,ame); /班级for(int i=0;i低void COLLEGE:SumSort() STUDENT *p1,*p2;p1=SL-next;while(p1) p2=p1-next; while(p2) if(p2-sump1-sum) STUD

16、ENT t; ValueS2ToS1(t,*p1); ValueS2ToS1(*p1,*p2); ValueS2ToS1(*p2,t); p2=p2-next; p1=p1-next;void COLLEGE:NumSort()/按学号排序(低-高)STUDENT *p1,*p2;p1=SL-next;while(p1) p2=p1-next; while(p2) if(strcmp(p2-num,p1-num)next; p1=p1-next;void main()char ch;COLLEGE c;/定义大学对象cout.setf(ios:left);/显示主菜单,接受选择,并分支调用大学

17、类的相应功能的成员函数do coutn 高校学籍管理系统 n; cout1增加学生n; cout2删除学生n; cout3修改学生n; cout4查询学生n; cout5输出学生信息n; cout6综合统计(课程平均成绩,课程合格率)n; cout7总分排序n; cout8学号排序n; coutS数据存盘n; coutL数据装入n; coutch;ch=toupper(ch); switch(ch) case 1:c.Add(); break; case 2:c.Delete();break; case 3:c.Modify();break; case 4:c.Query(); break;

18、case 5:c.Print(); break; case 6:c.Stat();break; case 7:c.SumSort();break; case 8:c.NumSort();break; case S:c.Save();break; case L:c.Load();break; while(ch!=Q);3、2数据文件1、course.dat:3C+英语高数2、student.dat: 86101 chenkaijun M M8601 77 59 96 232 86102 zhaowei F M8601 55 85 77 217 86103 wubin M M8601 85 87 92 264 86104 shijun M M8601 58 90 85 233 86105 wangzhuguo M M8601 66 70 86 2223、3运行结果参考 高校学籍管理系统 1增加学生2删除学生3修改学生4查询学生5输出学生信息6综合统计(课程平均成绩,课程合格率7总分排序8学号排序S数据存盘L数据装入Q退出 请选择(1-8,SLQ) 高校学籍管理系统 1增加学生2删除学生3修改学生4查询学生5输出学生信息6综合统计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1