北华大学C实习报告学生学籍管理系统_第1页
北华大学C实习报告学生学籍管理系统_第2页
北华大学C实习报告学生学籍管理系统_第3页
北华大学C实习报告学生学籍管理系统_第4页
北华大学C实习报告学生学籍管理系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、北华大学 C+实习报告学生学籍管理系统姓名: 曹均富班级:电子15-1学号:201516050121院系:电气信息工程学院指导教师:高玉峰实习日期:12.1212.16目 录一、 实习目的和任务.3二、 软件介绍.3三、 实习题目.4四、 系统分析5五、 系统实现10六、 结论17七、 心得与体会17八、参考文献.18九、老师评语.19一、 实习目的和任务1. 【摘要】 学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修改,统计,保存,退出等功能,从而能够对信息进行处理。程序中运用了相关类的知识,同时定义了一定数量的数据及成员函数。程序使用了数组记录统计的相关数据,运用了指针实现相应功能

2、函数的功能,运用了student ,school两个类实现面向对象的要求。程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。2. 【关键词】 学籍管理 vc+6.0 面向对象 程序控制 类二、软件介绍1.软件简介Microsoft Visual C+,(简称Visual C+、MSVC、VC+或VC)是Microsoft公司推出的以C+语言为基础的开发Windows环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过的设置就可使其生成的程序框架支持数据库接口、OLE2.0,WinSoc

3、k网络。1 Microsoft Visual C+ 6.0,简称VC6.0,是微软于1998年推出的一款C+编译器,集成了MFC 6.0,包含标准版(Standard Edition)、专业版(Professional Edition)与企业版(Enterprise Edition)2  。发行至今一直被广泛地用于大大小小的项目开发。(但是,这个版本在Windows XP下运行会出现问题,尤其是在调试模式的情况下(例如:静态变量的值并不会显示)。这个调试问题可以通过打一个叫“Visual C+ 6.0 Processor Pack”的补丁3 &

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

5、udio当成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+中很大的一部分功能。但

6、是,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后选

7、择:文件|新建,在打开的对话框中选择“工程”在选择“Win32 Console Application”->填写“工程名称”->选择“位置”->“确定”.然后在选择:文件|新建,在打开的对话框中选择“文件”在选择“C+Source file”->填写“文件名称”->“确定”.这样就建好了一个.cpp文件。然后你在.cpp文件中写入你的c语言代码就可以了。代码写好以后你看一下工具里有这样一个图标:依次点,编译,连接,运行就可以了。三、 实习题目题:学籍管理系统要求:1、 录取学生基本信息功能界面。2、 修改学生基本信息功能界面。3、 查询学生基本信息功能界面。4、

8、删除学生基本信息功能界面。预设计方案:第一步:分析题目,建立类并派生出它的子类,画出类图。 第二步:画出流程,根据流程图编写程序清单 第三步:上机调试程序(使用单步调试,设置断点、分块调试的方法)。 第五步:及时整理资料,撰写课程设计报告中有关这个题目的内容。 系统实现环境:硬件配置:586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于64MB,硬盘自由空间不少于200MB。推荐配置为内存128MB或256MB(或以上),硬盘自由空间500MB以上。操作系统:Windows2000/NT/Xp、Visual C+集成开发环境。四、系统分析调查:程序对学生学籍的数据处理要求 能够

9、输入并浏览学生的基本信息; 能够实现对学生信息的查询和修改; 能够对成绩进行统计; 能够对学生的信息进行保存;现行的系统功能:资料维护:系统维护包括对各学生信息和成绩的录入操作。资料维护:对数据表中的信息进行浏览。系统查询:可以对不同科目的总成绩、不及率、各科平均成绩相关信息。系统逻辑分析:现行系统组织结构图:系统功能结构图:类的设计:类:student 数据成员编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩类:school成员函数录入函数Input():输入编号到计算机的成绩;统计函数count():统计各科的总成绩,计算平均成绩,统计各科的及格率;查询

10、函数found():按学号或姓名查找学生的记录;修改函数mend():修改指定学号学生成绩记录;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生成绩记录;UML图:输入输出的设计:1界面的设计、界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。2数据输出设计系统主界面:统计界面:查找界面:显示界面:录入界面:修改界面:五、系统实现代码:#include&

11、lt;iostream.h>#include<string.h>#include<fstream.h>#include<iomanip.h> class student protected: int number; char name20;char sex6; char place20;char nation6; char birth20;char party10; char id20;float score3;public: student *next; student() student() char* getname() return name;

12、 int getnumber() return number;double getscore(int i) return scorei;float getg() return (score0+score1+score2); void input() int e=1;cout<<"ttt按提示输入:"<<endl;cout<<"tt输入编号: " cin>>number;cout<<"tt输入姓名: " cin>>name;docout<<"t

13、t输入性别: " cin>>sex; if(strcmp(sex,"男")=0 | strcmp(sex,"女")=0) cout<<"tt输入籍贯: "cin>>place; cout<<"tt输入民族: "cin>>nation;cout<<"tt输入生日: "cin>>birth; cout<<"tt输入政治面貌: "cin>>party; cout&l

14、t;<"tt输入身份证号: "cin>>id; cout<<"tt输入数学分数: "cin>>score0;cout<<"tt输入英语分数: "cin>>score1; cout<<"tt输入计算机分数: "cin>>score2; e=0; else cout<<"ttt无此类型性别!重新输入!"<<endl; e=1; while(e); return ;void input(i

15、fstream & is) is>>number>>name>>sex>>place>>nation>>birth>>party>>id >>score0>>score1>>score2;is.get(); void output()cout<<"学生基本信息如下:"<<endl; cout<<"编号:"<<number<<" 姓名:"&

16、lt;<name<<" 性别:"<<sex <<" 籍贯:"<<place<<" 民族:"<<nation<<" 生日:"<<birth<<" 政治面貌:"<<party<<endl<<"身份证号:"<<id<<" 数学:"<<score0<<" 英语

17、:"<<score1 <<" 计算机:"<<score2<<" 总分:"<<getg()<<endl<<endl;void output(ofstream & os) os<<setw(6)<<number <<setw(15)<<name<<setw(20)<<place <<setw(6)<<nation<<setw(20)<<bi

18、rth<<setw(20)<<party <<setw(20)<<id<<setw(6)<<score0<<setw(6)<<score1<<setw(6)<<score2<<endl;class school public: school() head=new student; head->next=NULL; key=0; school() delete head; void input(); void mend(); void del();int fi

19、nd(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=

20、p->next;while(n) p2=new student; p2->input(); p->next=p2; p2->next=NULL; p=p->next; school:setkey(1); cout<<"ttt按1继续,按0返回 : " cin>>n; /子查找函数int school:find(student *p1,int num,char *pn) student *p; p=head;while(p->next) (*p1)=p; if( (p->next)->getnumber(

21、)=num|!strcmp( (p->next)->getname(),pn ) ) return 1; p=p->next;return 0; /查找函数void school:found() student *p;int num=-1,n=9; char name20=""do cout<<"tt1:按编号查找,2:按姓名查找: " cin>>n;while(n<1|n>2);if(n=1) cout<<"ttt输入编号: " cin>>num;if(n

22、=2) cout<<"ttt输入姓名: "cin>>name; if(!find(&p,num,name) ) cout<<"tt找不到你要查找的内容!"<<endl;return;(p->next)->output();/删除函数void school:del() student *p,*p2; int num;cout<<"ttt输入编号: " cin>>num;if( !find(&p,num,"") ) co

23、ut<<"tt找不到你要删除的内容!"<<endl;return;(p->next)->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;cha

24、r name20=""do cout<<"tt1:按编号修改,2:按姓名修改: " cin>>n;while(n<1|n>2);if(n=1) cout<<"ttt输入编号: " cin>>num;if(n=2)cout<<"ttt输入姓名: "cin>>name;if( !find(&p,num,name) ) cout<<"tt找不到你要修改的内容!"<<endl;return

25、;(p->next)->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<<"ttt文件已保存! "<<endl;school:set

26、key(0);void school:begin()/初始化函数 student *p,*p2;p=head; clear();long t;ifstream is("student.txt",ios:in); if(!is) ofstream os("student.txt",ios:out);os.close();return ;int num=-1;while(1) num=-1; t=is.tellg(); is>>num;is.seekg(t); if(num<0) is.close(); return;p2=new stud

27、ent; 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 g3=0,0,0; float j3=0,0,0;while(p->next) p=p->next; n+; for(int i=0;i<

28、3;i+) gi=gi+( p->getscore(i) ); (p->getscore(i) )>=60.0? ji+ : 0 ;cout<<"ttbbbb数学总分:"<<g0<<" 平均分:"<<g0/n<<" 及格率:"<<j0/n<<endl<<"ttbbbb英语总分:"<<g1<<" 平均分:"<<g1/n<<" 及

29、格率:"<<j1/n<<endl<<"ttbbbb计算机总分: "<<g2<<" 平均分: "<<g2/n<<" 及格率:"<<j2/n<<endl;/主选菜单函数char school:mainmenu()char n6;cout<<"nn 欢迎进入学籍管理系统"<<endl<<endl<<" * * * * * * * * * * * *

30、 * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * 1: 录入学生信息 * *"<<endl<<" * * 2: 显示学生信息 * *"<<endl<<" * * 3: 查找学生信息 * *"<<endl<<&quo

31、t; * * 4: 删除学生信息 * *"<<endl<<" * * 5: 修改学生信息 * *"<<endl<<" * * 6: 统计学生成绩 * *"<<endl<<" * * 7: 保存学生信息 * *"<<endl<<" * * 0: 退出系统 * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" 请选择:"cin>>n;return n0;/主函数void main()school pp;int k=1;

温馨提示

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

评论

0/150

提交评论