c课程方案设计书报告学生信息管理系统_第1页
c课程方案设计书报告学生信息管理系统_第2页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、封面C+实习报告课程设计目的1.通过 C+ 课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和 派生类、基类、虚函数和多态的概念。作者: PanHongliang仅供个人学习2、通过这次课程设计掌握 C+ 语言程序设计的编程思想,为后续课程打下基础。3、培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。课程设计的要求利用学到的编程知识和编程技巧,要求学生:1、对系统进行功能模块分析、控制模块分析正确2、系统设计要能宀完成题目所要求的功能。3、编程简练,可用尽 可能的使系统的功能更加完善和全面

2、4、使用说明书、流程图要清楚。5、特别要求自己独立完成。二、课程设计的内容1、课程设计的题目及简介有新生来报到,要逐个录入其信息,如:学生姓名,性别,专业,出生日期,家庭地 址、英语入学成绩。要求设计链表类来实现,并统计学生人数。文本界面为:1. 新增学生信息2.删除学生信息3.导入学生信息(已经保存于的文件信息)4.学生信息搜索(按姓名)5.学生信息统计(按专业或性别或年龄 -年龄要自动计算)6.按英语成绩排序7.学生信息保存8.退出2、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整 体结构设计合理。也可根据自己对题目的理解增加新的功能模块。 系统以菜单

3、界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运 行界面友好,演示程序以用户和计算机的对话方式进行(1)首先,看题目要求,每一条记录包括一个学生的姓名、性别、专业、出生 日期、家庭住址、英语成绩。同时 ,应具备以下功能: 1、输入功能:一 次可以完成自定义学生人数的学生信息记录的输入。 2、删除功能:对指定学生的信息进行删除。 3、修改功能:对指定学生的信息 进行修改。 4、查询功能:选择某种方式并输入该信息查询符合条件的学生信 息。 5、统计功能:对某几个专业的人数、男女性别学生信息进行统计。6、排序功能:以英语课程的分数为依据对学生信息进行排序。7、显示功能:将以上功能操

4、作后的学生信息显示出来。8、退出主菜单。3程序流程图各功能模块的实现流程图:1 增加学生信息调用函数 Node* Create(判断 gg 是否等于一如果是可创建链表输入相应的 学生信息如果不是则需要运用 In sert(p )函数插入结点增加学生信息的,并 通过chundang(p)函数进行存档,具体流程如下图所示流程图删除学生的信息则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务流程图3.导入学生信息打开存档文件 ifstream Filein(out.txt)。输出说存档的学生信息新增学生信息/判断以前是 否存储了学

5、I 生信息是新2 删增信息信息调用函数 Node* Dete(Node* head , int num)按格式显示 输入的学生 信息退出该功 能,返回主 菜单,继续 选择该生信息已删除,显示其他同学的出该功菜单,继续按提示:输 入学个的各 种信息信息退返回王能,选择函数与对应的数组进行比较,然后再进行统计strcmp(). 按学生信息进行排序 56、按英语成绩进行排序:调用函数Node* paixu(Node* head)完成排序功能它的主要思想的:首先设置英语成绩的最大值100,最小值 0 (也可以使150 或者其他)然后让输入的学生信息英语成绩一次比较进行比较,(如果有相等的就输出排名1

6、,然后排名加 1),否则最大值减 1,然后再次进行比较( 如果等于 99 且上次没有等 于 100 的,就输出排名 1,然后排名加 1,如果上次有等于 100 的排名为 2),如果没有 与 99 相等的,则继续循环流程图:总功能模块图:功能模块图学生管理系统7 保存学生信息:提示保存成功2.3.4.4、输入你要查找你学生姓名5 统计各种专 业、男女、相 应年龄的人数菜单.新增学生信息 删除学生信息 导入学生信息 学生信息搜索 学生信息统计 按英语成绩排序 学生信息保存 退出8、退出系统8.1 输入学生的信息:姓名、性 别、专业、出生 日期、家庭地 址、英语成绩2、输入要删除的学生的编号, 删除

7、学 生信息。5.6.7.6 按英语成绩降输出学生的编 号、姓名、性别、 专业、出生日期、 家庭地址、英语成 绩序排列,输出学生的姓名排名和央语成绩各功能显示效果模块图:增加学生信息和导入学生信息保存学生信息统计电子、建筑、通信、三个专业的人的个数,按英语成绩进行排名并输 出删除相应学生的信息4、程序清单#include stdafx.h#include stdafx.h#include #include #include#includeusing namespace std。int nn=0 。struct Node int num 。char name20 。char xb20 。char

8、zy20 。int nian,yue,ri 。char dz20 。int mark 。Node *next 。 。 /*Node* Create() / 链表创建 cout 请输入学生信息(输入 0 退出) :num=1 。head=NULL 。n+ 。while (p1-num!=NULL) if (n=1) head=p1 。 else p2-next=p1 。p2=p1 。p1=new Node 。int a 。nn+。p1-num=nn 。 coutp1-name 。 a=(int)p1-name0-48 。 if (a=0)break 。 coutp1-xb 。 coutp1-zy

9、 。 coutp1-nian 。 cinp1-yue 。cinp1-ri 。 coutp1-dz 。coutp1-mark 。 n+ 。 p2-next=NULL 。 return head。 */*void chundang(Node *head) / 存档 Node *p=head 。p=p-next 。ofstream Fileout(out.txt) 。Fileout 学生资料 endl 。Fileout- endl 。while(p)Fileout - 编号: num 姓名: namexb 专业:zy 出生日期: nian/yue/ri/ 址: dz 英语入学成绩: marknext

10、 。Fileout- num=nn 。coutp0-name 。 coutp0-xb 。 coutp0-zy 。 coutp0-nian 。 cinp0-yue 。 cinp0-ri 。coutp0-dz 。coutp0-mark 。if (head=NULL) /*next=NULL 。 return head 。while (p1-numnum & p1-next)p2=p1 。 p1=p1-next 。 if (p1-num=p0-num) if (p1=head) head=p0 。 else p2-next=p0 。 p0-next=p1 。 else p1-next=p0

11、。 p0-next=NULL 。 return head 。 *Node* tongji(Node* head)/ 统计/* Node* Delete(Node* head , intnum) / 删除节点 if (head=NULL) cout 不存在此编号 num!=num & p1-next) p2=p1 。 p1=p1-next 。 if (p1-num=num) if (p1=head) head=p1-next 。 else p2-next=p1-next 。 else cout 没找编号为 num 的学生! next 。/ 整顿编号while (p1)kk+ 。p1-nu

12、m=kk 。p1=p1-next 。 /* return head 。 /*/*Node* sousuo(Node* head , char na20)/ 搜索Node *p1=head 。while(p1!=NULL)if(!strcmp(p1-name,na)cout 编号: num 姓名: name 性别: xbzy 出生日期:nian/yue/ri/ 地址: 英语入学成绩: marknext 。return 0 。/*/*专业: p1-dzNode *p1=head 。int a=0,b=0,c=0,d=0,e=0,i100,j100 。char aa=通信, bb=建筑 ”,cc=电

13、子,nan=男,nv=女”。 for(int k=0。 kzy,aa)a+ 。 else if(!strcmp(p1-zy,bb)b+ 。 else if(!strcmp(p1-zy,cc)c+ 。 if(!strcmp(p1-xb,nan)d+ 。 else if(!strcmp(p1-xb,nv)e+ 。 for(int l=0 。 lnian=il)jl+。 p1=p1-next。/- 存档ofstream Fileout( 统计 .txt) 。Fileout 统计信息 endl 。Fileout- endl。Fileouta 专业的个数: aendlb 专业的个数: bendlccen

14、dl 。Fileout 男性个数: dendl 女性个数: eendl 。for(int mm=0 。 mm100。 mm+)if(jmm!=0)Fileout 年龄 imm 的个数: jmmendl 。 Fileout- endl。Fileout.close() 。/-cout 统计信息 endl 。cout- endl 。cout 通信专业的个数: aendl 建筑专业的个数: bendl 数:cendl 。cout 男性个数: dendl 女性个数: eendl 。 for(int m=0 。 m100。 m+)if(jm!=0)cout 年龄 im 的个数: jmendl 。 cout

15、- endl 。return 0 。/*专业的个数:电子专业的个Node* paixu(Node* head) Node*p1=head 。 int rr=100 。 /成绩 int ll=1 。/排名ofstream Fileout( 英语成绩排序 .txt) 。 Fileout 英语成绩排序 endl 。Fileout- endlFileout 排名 成绩 姓名 endl 。cout- endl 。cout 排名 成绩 姓名 mark=rr)Fileoutll mark nameendl coutll marknamenext 。rr-。Fileout- endlFileout.close

16、() 。cout- endl 。return 0。 /*main() int gg=1 。int strcmp(const char *s1,const char *s2) 。 Node *p 。/=学生信息管理 系 统 *IIendl 。cout* endl 。cout*1. 增加学生信息 *endl。cout*2. 删除学生信息 *endl。cout*3. 导入学生信息 *endl。cout*4. 学生信息搜索 *endl。cout*5. 学生信息统计 *endl。cout*6. 按英语成排序 *endl。cout*7. 学生信息保存 *endl。cout*8.退出/ 英语成绩排序*,co

17、ut 请输入您的选择 (1-8):endl 。while(1) / 输出操作文本int line=0 。char buf100 。ifstream Filein(in.txt) 。 while(Filein.getline(buf,100)+line 。 coutbufn 。/-if(n=1) / 新增学生信息 if(gg)p=Create()。 /调用创建列表gg-。else Insert(p) 。/新增学生信息nn+ 。 chundang(p)。 /信息存档/-else if(n=2) / 删除学生信息 int line=0 。/导入学生信息char buf100 。ifstream Fi

18、lein(out.txt) 。 while(Filein.getline(buf,100) +line 。coutbufendl 。Filein.close() 。coutcc 。Delete(p ,cc) 。chundang(p)。 /信息存档/-else if(n=3)/ 导入学生信息 int line=0 。char buf100 。ifstream Filein(out.txt) 。 while(Filein.getline(buf,100) +line 。coutbufendl 。Filein.close() 。/-else if(n=4) / 学生信息搜索coutname 。sou

19、suo(p,name)。/-else if(n=5) / 学生信息统计tongji(p) 。/-else if(n=6) / 英语入学成绩排序cout 按英语成绩排序: endl 。paixu(p) 。/-else if(n=7) / 学生信息保存char ch,ch1=n 。ofstream file1( 学生信息保存 .txt,ios_base:app) 。/= 清空文件 学生信息保存 .txt 的内容FILE * fp 。fp = fopen( 学生信息保存 .txt,w) 。/= 组合文件ifstream file2(out.txt) 。file1.write(char *) &

20、;ch1,sizeof(ch1) 。 while(file2.get(ch)file1.put(ch) 。 ifstream file3( 统计 .txt) 。file1.write(char *) &ch1,sizeof(ch1) 。 while(file3.get(ch)file1.put(ch) 。 ifstream file4( 英语成绩排序 .txt) 。file1.write(char *) &ch1,sizeof(ch1) 。while(file4.get(ch)file1.put(ch) 。 file1.close() 。file2.close() 。file3

21、.close() 。file4.close() 。cout 保存成功 !endl 。/-else if(n=8)break 。/ 退出操作/-else if(n=9) / 输出学生信息保存int line1=0 。char buf1100 。ifstream Filein( 学生信息保存 .txt) 。while(Filein.getline(buf1,100)+line1 。coutbuf1endl 。Filein.close() 。/-else cout错误选择! ! endl。continue。四 、课程设计总结这一周的 C+ 课程设计,时间上说长不长,说短也不短,却让我学到了很 多,第

22、一点就是:C+很难,似乎是学不完的,你觉得自己了解一点,是总会 发现还有很多自己所不懂的东西,还有很多自己所没探知的领域,很多知识运 用到实践中很有一定的难度,看着自己和同学的程序运行结果,突然发现 C+ 真的很神奇,居然能运行出那么漂亮的系统,看着运行结果。在我们上机调试程序的过程中,我遇到了很多的问题,说实话这次课 程设计自己没有出多大的力,大部分都是借鉴同学的设计成果,自己设计是总 是觉得没有头绪,无从下手。看到同学认真看程序的样子,还有修改程序时的 熟练,我很羡慕他,我想,我也要将 C+学好,在将来能为我的就业加分。在这期末考试前期, 学院给我们安排的课程设计周, 总让我们觉的有些为

23、难我们,这样一个复杂困难而又繁琐的作业,似乎弄得我们既没有时间也没有 心情复习,我曾一度地抱怨过学院,在完成它之后,我发现我错了,课程设计 不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重 要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整 理。版权为潘宏亮个人所有This article in eludes some parts, in cludi ng text, pictures, and design. Copyright is Pan Hon glia ngs pers onal own ership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及 其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关 法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权 利人的书面许可,并支付报酬。Users may use the contents or services of this article for pers onalstudy, research or appreciati on, and other non-co

温馨提示

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

评论

0/150

提交评论