课程设计报告--C语言程序设计
课程设计报告--C语言程序设计本文简介:课程设计报告课程设计题目:C语言程序设计课程设计评分表学生姓名:班级:学号:课程设计题目:项目内容满分实评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正
课程设计报告--C语言程序设计本文内容:
课程设计报告
课程设计题目:C语言程序设计
课程设计评分表
学生姓名:
班级:
学号:
课程设计题目:
项目内容
满分
实
评
选
题
能结合所学课程知识、有一定的能力训练。符合选题要求
(5人一题)
10
工作量适中,难易度合理
10
能
力
水
平
能熟练应用所学知识,有一定查阅文献及运用文献资料能力
10
理论依据充分,数据准确,公式推导正确
10
能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等
10
能体现创造性思维,或有独特见解
10
成
果
质
量
总体设计正确、合理,各项技术指标符合要求。
10
说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰
10
设计说明书栏目齐全、合理,符号统一、编号齐全。
格式、绘图、表格、插图等规范准确,符合国家标准
10
有一定篇幅,字符数不少于5000
10
总
分
100
指导教师评语:
指导教师签名:*年*月*日
第一章
课程设计内容
1.1
课程设计目的
此次课题主要是实现对教师信息的简易管理。首先定义一个教师TeacherList类;其次可以对教师信息进行增加,用链表来做,所以可以分别从表头和表尾来增加;然后可以用链表来查找和删除教师的相关信息;最后可以显示教师的所有信息并要求用二进制文件进行读写操作。由此来系统化的管理教师的信息,并达到简易操作的目的。在课程设计同时,我们应学会以下几点:
1、通过C++语言的课程设计进一步的了解和掌握C++语言的有关知识和相关语法的使用方法。
2、熟练掌握使用C++语言对一些简单常见问题进行解决,编译程序对问题进行解决。
3、通过课程设计,进一步掌握C++语言中有关重要的数据结构,诸如类、链表、结构
体、文件等在程序开发中的应用。
4、通过课程设计,能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
5、通过课程设计,培养C++语言知识运用和自学能力,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。独立或合作设计和开发一个中小型系统,掌握系统研发全过程。
6、通过此次课程设计发现自己在C++语言编程上的不足并进一步掌握C++语言,为以
后课程打下基础。
1.2
课程设计功能说明
1.2.1
功能分析说明图
该课题功能分析说明如下图所示:
教师信息管理系统
查找教师信息
删除教师信息
统计教师人数
显示教师信息
退出系统
增
加
教师信息
1.2.2
各项功能说明
(1)教师信息的增加:
这部分的功能主要是在链表中加入教师的信息。首先开辟一个结点,若开辟成功,则按程序提示输入教师的相关信息,包括编号、姓名、性别、电话以及职位等,并将这些信息分别赋给结点中的相应变量;然后把这个结点加入到链表中,可以从表头或表尾来增加,计数器加一;最后根据提示是否继续加入教师信息来循环操作。这样一个教师信息的链表就形成了。
(2)查找教师信息:
进入该功能界面后,可以通过教师的编号查找出该教师的所有信息。首先开辟一个结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结点,找到之后,将此教师的所有信息输出。
(3)删除教师信息:
进入该功能界面后,可以通过教师的编号对某个教师信息进行删除。首先开辟一个
结点,并把链表头结点赋给它,根据输入的教师编号,逐个查找链表中与此编号匹配的教师结点,找到之后,将此教师的所有信息删除。可以通过显示所有的教师信息来看此教师信息是否删除。
(4)统计教师人数:
选择这个功能后就可以知道当前的所有教师数,同时也可以根据删除前后的教师数来判断教师信息是否删除。
(5)显示教师信息:
选择此功能后可以将当前的所有教师信息显示出来。
1.3
各项功能的验收标准
一、有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
二、有严密正确的数据验证功能和数据处理功能,可根据需要增加教师信息,不会有空间的浪费,并能按编号进行查找和删除教师信息,删除后将空间释放。
三、系统要有一定的可靠性。
第二章
课程设计环境与原理
2.1
设计环境与模块的划分
2.1.1软件设计环境
Microsoft
Visual
C++
6.0
2.1.2软件模块的划分
该软件主要组成模块和各个模块之间的调用关系如下图:类成员函数
Teaacher.cpp
菜单函数
Menu.cpp
类定义体
Teacher.h
增加
查找
删除
显示
计数
主函数
Main.cpp
第三章
软件的设计过程
3.1
各软件模块之间的调用方式
程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。
3.2
软件中实现各项功能的函数与程序代码
#include
#include
#include
#include
using
namespace
std;
class
TeacherList
{
private:
stringname;
//教师姓名
stringnumber;
//教师序号
intteachage;
//教师教龄
stringawards;
//教师职称
public:
int
flag;
string
getname()
{
return
name;
}
string
getnum()
{
return
number;
}
void
init();
void
display();
};
void
TeacherList::display()
{
cout>name;
cout>number;
cout>teachage;
cout>awards;
flag=1;
}
void
insert();
void
deleteinf();
void
search();
void
amend();
//修改信息
void
about();
void
help();
void
show();
void
menu();
const
int
amount=500;
TeacherList
tech[amount];
void
main()
{
menu();
}
void
insert()
//输入信息
{
int
i,c;
system(“cls“);
//清屏功能
for(i=0;i(
}
os.close();
}
}
void
search()
//查找信息
{
string
temp;
int
c,i,mark=0;
cout
4
))
c=getch();
switch(c)
{
case
1
:
//按姓名查找
{
cout>temp;
for(i=0;i>temp;
for(i=0;i>temp;
for(i=0;i>temp;
for(i=0;i(
}
os.close();
}
void
amend()
//修改信息
{
int
i,c;
string
temp;
cout>temp;
for(i=0;i>temp;
for(i=0;i(
}
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<<(“教师信息管理系统
\n\n“);
for(i=0;i<=19;i++)cout<<(““);cout<<(“\n“);
for(i=0;i<=19;i++)cout<<(““);cout<<(“1:添加信息
2:查看全部\n\n“);
for(i=0;i<=19;i++)cout<<(““);cout<<(“3:查找信息
4:删除信息\n\n“);
for(i=0;i<=19;i++)cout<<(““);cout<<(“5:修改信息
6:使用说明\n\n“);
for(i=0;i<=19;i++)cout<<(““);cout<<(“7:关于作者
8:退出程序\n\n“);
for(i=0;i<=19;i++)cout<<(““);cout<<(“\n“);
c=getch();
while(c!=
1
switch(c)
{
case
1
:insert();
break;
case
2
:show();system(“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;i
{
tech[i].display();
cout<<“\n“;
}
}
第四章
设计结果与分析
4.1
软件使用结果
在此,我们将把软件使用过程写出,并对此程序的一些细节的具体的操作方法加以说明,说明如下:
1.将软件进行初始化。
2.进入程序菜单,界面如下:
3.添加教师信息
4.
查看教师信息
5.查找教师信息(按姓名查找)
(按序号查找)
6.修改教师信息
7.删除教师信息
8.退出程序
总结
通过这次课程设计,我们从中受益匪浅,不仅让我们对C++语言程序设计这一门课程有了更深一步的认识,还让我对复杂程序的开发有了一个深刻的认识,使我进一步明白了模块化思想在程序开发中的重要性。另外,通过为期一周的C++课程设计实验课使我了解到了一个程序开发的过程,虽然规模不大,但为我以后的编程学习打下了基础。在编程的过程中,我们可以把这学期所学的理论知识和实践联系起来,在所要开发的项目中渐渐成长。虽然我们对这些C++语言知识运用得还不是很熟练,但是相信我们也在滴水穿石地成长起来。发现问题,提出问题,解决问题,使我们从不足之处出发,寻找新的学习方向。同时我也体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有比较清晰的思维。同时,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心是我要加强的,同别人的交流也是必须的,这样才能不断使我进步,还要加强自己基础学科的学习
,能把所学知识融会贯通。
在这次课程设计中,我们设计了一个对教师信息进行管理的系统,它基本满足了界面友好,易于操作的要求,因此更利于用户操作方便,运行简易,从而达到对教师信息更加有效的系统管理。在此次设计中我们实现了根据用户的需求对教师信息的增加、查找和删除功能,采用链表,合理利用了空间。但软件仍存在一些不足,比如没有实现用二进制文件进行读写操作,在输入有关教师的信息时对数据没有详细的限定等。
通过这段时间的学习和探索,我们发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。在设计中我们锻炼了自己同时也学到了很多,希望在以后我们能充分利用上机的时间充实自己,并希望这样的机会能被更好更多地提供。