C语言程序设计_第1页
C语言程序设计_第2页
C语言程序设计_第3页
C语言程序设计_第4页
C语言程序设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告课程设计题目:c语言程序设计 学 号 201120181807姓 名 潘辉专 业 软件工程班 级 1121818指导教师 吴光明 2014年 5 月 20日课程设计评分表学生姓名: 班级: 学号:课程设计题目:项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述

2、简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总 分100指导教师评语: 指导教师签名: 年 月 日第一章 课程设计内容1.1 课程设计目的 此次课题主要是实现对教师信息的简易管理。首先定义一个教师teacherlist类;其次可以对教师信息进行增加,用链表来做,所以可以分别从表头和表尾来增加;然后可以用链表来查找和删除教师的相关信息;最后可以显示教师的所有信息并要求用二进制文件进行读写操作。由此

3、来系统化的管理教师的信息,并达到简易操作的目的。在课程设计同时,我们应学会以下几点:1、通过c+语言的课程设计进一步的了解和掌握c+语言的有关知识和相关语法的使用方法。2、熟练掌握使用c+语言对一些简单常见问题进行解决,编译程序对问题进行解决。3、通过课程设计,进一步掌握c+语言中有关重要的数据结构,诸如类、链表、结构体、文件等在程序开发中的应用。4、通过课程设计,能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。提高程序开发能力,能运用合理的控制流编写清晰高效的程序。5、通过课程设计,培养c+语言知识运用和自学能力,验证自己设计的算

4、法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。独立或合作设计和开发一个中小型系统,掌握系统研发全过程。6、通过此次课程设计发现自己在c+语言编程上的不足并进一步掌握c+语言,为以后课程打下基础。1.2 课程设计功能说明1.2.1 功能分析说明图 该课题功能分析说明如下图所示:教师信息管理系统查找教师信息删除教师信息统计教师人数显示教师信息退出系统增加教师信息1.2.2 各项功能说明 (1)教师信息的增加: 这部分的功能主要是在链表中加入教师的信息。首先开辟一个结点,若开辟成功,则按程序提示输入教师的相关信息,包括编号、姓名、性别、电话以及

5、职位等,并将这些信息分别赋给结点中的相应变量;然后把这个结点加入到链表中,可以从表头或表尾来增加,计数器加一;最后根据提示是否继续加入教师信息来循环操作。这样一个教师信息的链表就形成了。(2)查找教师信息: 进入该功能界面后,可以通过教师的编号查找出该教师的所有信息。首先开辟一个结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结点,找到之后,将此教师的所有信息输出。(3)删除教师信息: 进入该功能界面后,可以通过教师的编号对某个教师信息进行删除。首先开辟一个结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结点,找到之后,将此教师的

6、所有信息删除。可以通过显示所有的教师信息来看此教师信息是否删除。(4)统计教师人数: 选择这个功能后就可以知道当前的所有教师数,同时也可以根据删除前后的教师数来判断教师信息是否删除。(5)显示教师信息: 选择此功能后可以将当前的所有教师信息显示出来。1.3 各项功能的验收标准一、有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。二、有严密正确的数据验证功能和数据处理功能,可根据需要增加教师信息,不会有空间的浪费,并能按编号进行查找和删除教师信息,删除后将空间释放。三、系统要有一定的可靠性。第二章 课程设计环境与原理2.1 设计环境与模块的划分2.1.1软件设计环境

7、 microsoft visual c+ 6.0 2.1.2软件模块的划分该软件主要组成模块和各个模块之间的调用关系如下图:类成员函数teaacher.cpp菜单函数menu.cpp类定义体teacher.h增加查找删除显示计数主函数main.cpp第三章 软件的设计过程3.1 各软件模块之间的调用方式 程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。 3.2 软件中实现各项功能的函数与程序代码#include#include#include#includeusing namespace std;cl

8、ass teacherlistprivate:stringname; /教师姓名stringnumber; /教师序号intteachage; /教师教龄stringawards; /教师职称public:int flag;string getname()return name;string getnum()return number;void init();void display();void teacherlist:display()cout教师姓名:nameendl;cout教师序号:numberendl;cout教师教龄:teachageendl;cout教师职称:awardsend

9、l;void teacherlist:init()coutname;coutnumber;coutteachage;coutawards;flag=1;void insert();void deleteinf();void search();void amend(); /修改信息void about();void help();void show();void menu();const int amount=500;teacherlist techamount;void main()menu();void insert() /输入信息int i,c;system(cls); /清屏功能for(

10、i=0;iamount;i+)if(techi.flag!=1)/对标志进行判断,如果没有初始化就将该对象初始化techi.init();break;cout是否继续输入?(y/n);c=getch();while(c!=121&c!=110)c=getch();if(c=121)insert(); /继续调用输入功能函数elseofstream os(data,ios_base:out |ios_base:binary );/把数据存到文件中for(i=0;i500;i+)os.write (reinterpret_cast(&techi),sizeof(techi);os.close();

11、void search() /查找信息string temp;int c,i,mark=0;cout查找菜单:nnnn1.按姓名查找 2.按序号查找 endl;c=getch();while(c4)c=getch();switch(c)case 1: /按姓名查找couttemp;for(i=0;iamount;i+)if(temp=techi.getname()techi.display();mark=1;break;case 2: /按序号查找couttemp;for(i=0;iamount;i+)if(temp=techi.getnum()techi.display();mark=1;b

12、reak;if(mark!=1)cout查无此教师信息.endl;void deleteinf() /删除信息 int i,j,c;string temp;cout删除菜单:nnnn1.按姓名删除 2.按序号删除endl;c=getch();while(c!=1&c!=2)c=getch();switch(c)case 1: /删除该对象数组的一个成员就是把后面一个元素覆盖前一个。最后一个没有做处理(有一定问题)couttemp;for(i=0;i500;i+)if(temp=techi.getname()for(j=i;j500;j+)techj=techj+1;cout删除信息成功。end

13、l;system(pause);break;break;case 2:/couttemp;for(i=0;i500;i+)if(temp=techi.getnum()for(j=i;j500;j+)techj=techj+1;cout删除信息成功。endl;system(pause);break;ofstream os(data,ios_base:out |ios_base:binary );/把数据存到文件中for(i=0;i500;i+)os.write (reinterpret_cast(&techi),sizeof(techi);待添加的隐藏文字内容3os.close();void a

14、mend() /修改信息int i,c;string temp;cout修改菜单:nnnn1.按姓名修改 2.按序号修改endl;c=getch();while(c!=1&c!=2)c=getch();switch(c)case 1:couttemp;for(i=0;i500;i+)if(temp=techi.getname()techi.init();break;case 2:couttemp;for(i=0;i500;i+)if(temp=techi.getnum()techi.init();ofstream os(data,ios_base:out |ios_base:binary );

15、/把数据存到文件中for(i=0;i500;i+)os.write (reinterpret_cast(&techi),sizeof(techi);os.close();void menu()char c;int i;system(cls); /清屏for(i=0;i=19;i+)cout( );cout(n);for(i=0;i=19;i+)cout( );cout(n);for(i=0;i=19;i+)cout( );cout( 教师信息管理系统 nn);for(i=0;i=19;i+)cout( );cout(n);for(i=0;i=19;i+)cout( );cout( 1:添加信息

16、 2:查看全部nn);for(i=0;i=19;i+)cout( );cout( 3:查找信息 4:删除信息nn);for(i=0;i=19;i+)cout( );cout( 5:修改信息 6:使用说明nn);for(i=0;i=19;i+)cout( );cout( 7:关于作者 8:退出程序nn);for(i=0;i=19;i+)cout( );cout(n);c=getch();while(c!=1&c!=2&c!=3&c!=4&c!=5&c!=6&c!=7&c!=8)c=getch();switch(c)case 1:insert();break;case 2:show();syste

17、m(pause);break;case 3:search();system(pause);break;case 4:deleteinf();break;case 5:amend();break;case 6:help();break;case 7:about();break;case 8:exit(0);break;menu();void about() /关于作者cout ;void help() /使用说明void show()int i;for(i=0;iamount&techi.flag=1;i+)techi.display();coutn;第四章 设计结果与分析 4.1 软件使用结果

18、 在此,我们将把软件使用过程写出,并对此程序的一些细节的具体的操作方法加以说明,说明如下:1.将软件进行初始化。2.进入程序菜单,界面如下:3.添加教师信息4. 查看教师信息5.查找教师信息(按姓名查找)(按序号查找)6.修改教师信息7.删除教师信息8.退出程序 总结通过这次课程设计,我们从中受益匪浅,不仅让我们对c+语言程序设计这一门课程有了更深一步的认识,还让我对复杂程序的开发有了一个深刻的认识,使我进一步明白了模块化思想在程序开发中的重要性。另外,通过为期一周的c+课程设计实验课使我了解到了一个程序开发的过程,虽然规模不大,但为我以后的编程学习打下了基础。在编程的过程中,我们可以把这学期所学的理论知识和实践联系起来,在所要开发的项目中渐渐成长。虽然我们对这些c+语言知识运用得还不是很熟练,但是相信我们也在滴水穿石地成长起来。发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。同时我也体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有比较清晰的思维。同时,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心是我要加强的,同别人的交流也是必须的,这样才能不断使我进步,还要加强自己基础学科的学习 ,能把所学知识融会贯通。 在这次课程设计中

温馨提示

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

评论

0/150

提交评论