北华大学C++实习报告(学生学籍管理系统)(版)_c学生学籍管理系统

2020-02-27 实习报告 下载本文

北华大学C++实习报告(学生学籍管理系统)(版)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c学生学籍管理系统”。

北华大学

C++实习报告

——学生学籍管理系统

姓名: 曹均富

班级:电子15-1 学号:201516050121 院系:电气信息工程学院 指导教师:高玉峰 实习日期:12.12~12.16

目录

一、实习目的和任务……………………………………….…..…3

二、软件介绍……………………………………………..……..…3

三、实习题目……………………………………………..……..…4

四、系统分析………………………………………………………5

五、系统实现………………………………………………………10

六、结论……………………………………………………………17

七、心得与体会……………………………………………………17

八、参考文献………………………………………………………..18

九、老师评语………………………………………………………..19

一、实习目的和任务

1.【摘要】 学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修改,统计,保存,退出等功能,从而能够对信息进行处理。程序中运用了相关类的知识,同时定义了一定数量的数据及成员函数。程序使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功能,运用了student ,school两个类实现面向对象的要求。程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。

2.【关键词】 学籍管理 vc++6.0 面向对象 程序控制 类

二、软件介绍 1.软件简介

Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)是Microsoft公司推出的以C++语言为基础的开发Windows环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过的设置就可使其生成的程序框架支持数据库接口、OLE2.0,WinSock网络。[1]

Microsoft Visual C++ 6.0,简称VC6.0,是微软于1998年推出的一款C++编译器,集成了MFC 6.0,包含标准版(Standard Edition)、专业版(Profeional Edition)与企业版(Enterprise Edition)[2]

。发行至今一直被广泛地用于大大小小的项目开发。(但是,这个版本在Windows XP下运行会出现问题,尤其是在调试模式的情况下(例如:静态变量的值并不会显示)。这个调试问题可以通过打一个叫“Visual C++ 6.0 Proceor Pack”的补丁[3]

来解决。)

2.软件组成1、Developer Studio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C++”,所以很多人理所当然的认为,那就是Visual C++了。其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio当成Visual C++,它充其量只是Visual C++的一个壳子而已。这一点请切记!

2、MFC。从理论上来讲,MFC也不是专用于Visual C++,Borland C++,C++Builder和Symantec C++同样可以处理MFC。同时,用Visual C++编写代码也并不意味着一定要用MFC,只要愿意,用Visual C++来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,Visual C++本来就是为MFC打造的,Visual C++中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C++而不用MFC就等于抛弃了Visual C++中很大的一部分功能。但是,Visual C++也不等于MFC。

3、Platform SDK。这才是Visual C++和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C++编译器为核心(不是Visual C++,看清楚了),配合MASM,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。3.使用方法

打开Microsoft Visual C++ 6.0后

选择:文件|新建,在打开的对话框中选择“工程”

在选择“Win32 Console Application”->填写“工程名称”->选择“位置”->“确定”.然后在选择:文件|新建,在打开的对话框中选择“文件” 在选择“C++Source file”->填写“文件名称”->“确定”.这样就建好了一个.cpp文件。

然后你在.cpp文件中写入你的c语言代码就可以了。

代码写好以后你看一下工具里有这样一个图标:依次点,编译,连接,运行就可以了。

三、实习题目

题:学籍管理系统 要求:

1、录取学生基本信息功能界面。

2、修改学生基本信息功能界面。

3、查询学生基本信息功能界面。

4、删除学生基本信息功能界面。预设计方案:

第一步:分析题目,建立类并派生出它的子类,画出类图。

第二步:画出流程,根据流程图编写程序清单

第三步:上机调试程序(使用单步调试,设置断点、分块调试的方法)。

第五步:及时整理资料,撰写课程设计报告中有关这个题目的内容。

系统实现环境:

硬件配置:586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于64MB,硬盘自由空间不少于200MB。推荐配置为内存128MB或256MB(或以上),硬盘自由空间500MB以上。

操作系统:Windows2000/NT/Xp、Visual C++集成开发环境。

四、系统分析

调查:

程序对学生学籍的数据处理要求

① 能够输入并浏览学生的基本信息; ② 能够实现对学生信息的查询和修改; ③ 能够对成绩进行统计;

④ 能够对学生的信息进行保存; 现行的系统功能:

资料维护:系统维护包括对各学生信息和成绩的录入操作。资料维护:对数据表中的信息进行浏览。

系统查询:可以对不同科目的总成绩、不及率、各科平均成绩相关信息。系统逻辑分析:

现行系统组织结构图:

系统功能结构图:

类的设计:

类:student

数据成员

编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩 类:school 成员函数

录入函数Input():输入编号到计算机的成绩;

统计函数count():统计各科的总成绩,计算平均成绩,统计各科的及格率; 查询函数found():按学号或姓名查找学生的记录; 修改函数mend():修改指定学号学生成绩记录; 删除函数del():删除指定学号学生记录;

输出函数show():输出班级所有学生成绩记录;

UML图:

输入输出的设计: 1.界面的设计 ①、界面设计

程序运行后会出现一个简捷的窗口,便于用户查询数据。②、功能设计

通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。2.数据输出设计

系统主界面:

统计界面:

查找界面:

显示界面:

录入界面:

修改界面:

五、系统实现

代码:

#include #include #include #include cla student { protected: int number;char name[20];char sex[6];char place[20];char nation[6];char birth[20];char party[10];char id[20];float score[3];public:

student *next;student(){ } ~student(){ } char* getname(){ return name;} int getnumber(){ return number;} double getscore(int i){ return score[i];} float getg(){ return(score[0]+score[1]+score[2]);} void input(){ int e=1;cout>number;cout>name;do {cout>sex;if(strcmp(sex,“男”)==0 || strcmp(sex,“女”)==0){ cout>place;

cout>nation;cout>birth;cout>party;cout>id;cout>score[0];cout>score[1];cout>score[2];e=0;} else {cout>number>>name>>sex>>place>>nation>>birth>>party>>id >>score[0]>>score[1]>>score[2];is.get();} void output(){cout

{ osnext=NULL;key=0;} ~school(){ delete head;} void input();void mend();void del();int find(student **p,int num,char *pn=“^”);void found();void show();void count();void save();void begin();void clear();char mainmenu();int getkey(){ return key;} void setkey(int k){ key=k;} private: student *head;int key;};//录入函数

void school::input(){student *p,*p2=NULL;p=head;int n;while(p->next)p=p->next;while(n){ p2=new student;p2->input();p->next=p2;p2->next=NULL;p=p->next;school::setkey(1);cout>n;} } //子查找函数

int school::find(student **p1,int num,char *pn){ student *p;p=head;while(p->next){(*p1)=p;

if((p->next)->getnumber()==num||!strcmp((p->next)->getname(),pn))return 1;p=p->next;} return 0;} //查找函数

void school::found()

{ student *p;int num=-1,n=9;char name[20]=“^”;do { cout>n;}while(n2);if(n==1){ cout>num;} if(n==2){ cout>name;} if(!find(&p,num,name)){ coutnext)->output();} //删除函数

void school::del(){ student *p,*p2;int num;cout>num;if(!find(&p,num,“^”)){ coutnext)->output();p2=p->next;p->next=p2->next;delete p2;school::setkey(1);} void school::show()//显示函数 { student *p;p=head;while(p->next){(p->next)->output();p=p->next;}} //修改函数

void school::mend(){ student *p;int num=-1,n;char name[20]=“^”;do { cout>n;}while(n2);if(n==1)

{ cout>num;} if(n==2){cout>name;} if(!find(&p,num,name)){ coutnext)->output();(p->next)->input();school::setkey(1);} void school::save()//保存函数 { student *p;p=head;ofstream os(“student.txt”,ios::out);if(school::getkey()==1){ while(p->next){(p->next)->output(os);p=p->next;} } cout>num;is.seekg(t);if(num

} p2=new student;p2->input(is);p->next=p2;p2->next=NULL;p=p->next;}} void school::clear()//清空函数 {student *p,*p2;p=head->next;while(p){p2=p;p=p->next;delete p2;}} void school::count()//统计函数 {student *p;p=head;int n=0;double g[3]={0,0,0};float j[3]={0,0,0};while(p->next){ p=p->next;n++;for(int i=0;igetscore(i));(p->getscore(i))>=60.0? j[i]++ : 0;} } cout

char school::mainmenu(){ char n[6];cout

>n;return n[0];} //主函数 void main(){school pp;int k=1;char n;pp.begin();while(k==1){ n=pp.mainmenu();switch(n){ case '1':pp.input();break;case '2':pp.show();break;case '3':pp.found();break;case '4':pp.del();break;case '5':pp.mend();break;case '6':pp.count();break;case '7':pp.save();break;case '0': if(pp.getkey()==1){ cout>k;if(k==1)pp.save();} pp.clear();k=0;break;} } } 系统运行的结果:

六、结论

本程序基本完成了题目要求的功能。但是由于显示的限制,所罗列的学生成绩只给出了数学,英语,计算机的成绩。程序可通过改进,增加科目数。

程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。

七、心得与体会

此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系

统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。

根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。

八、参考文献

[1]《C++实习教程》,高玉峰;北华大学出版社

[2]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版

[3]李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版 [4]韩滨 魏海萍,《C++类库使用手册》,电子工业出版社,2007年7月出版

[5]陈灿煌,《C++彻底研究》 中国青年出版社,2005年9月出版。

九、教师评语

教师评语:

成绩:

教师签字:

《北华大学C++实习报告(学生学籍管理系统)(版).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
北华大学C++实习报告(学生学籍管理系统)(版)
点击下载文档
相关专题 c学生学籍管理系统 实习报告 大学 学生 c学生学籍管理系统 实习报告 大学 学生
[实习报告]相关推荐
    [实习报告]热门文章
      下载全文