您的位置:首页 > 理论基础 > 数据结构算法

数据结构课程设计

2015-01-14 11:06 162 查看
 

 

 

 

 

 

《数据结构课程设计》

 

 

 

 

 

 

课程题目

      银行活期储蓄管理系统

课程编号

              j1620102

学生姓名

              彭志广     

所在专业

信息管理与信息系统

所在班级

           信管1133 

任课老师

易学明

实习时间

2015/1/10   

设计成绩

 

老师评语

 

 

 

 

 

 

一:题目:小明是一个计算机专业top student,祝贺他毕业了。并准备到银行参加工作。上班第一天,经理叫他编制一个实现一个活期储蓄处理程序,算作考查。上班第一天, 一定要给领导一个好印象,小明二话没说,就答应了。现要你是小明了,请完成如下题目功能。储户开户、销户、存入、支出活动频繁,系统设计要求:(1)能比较迅速地找到储户的帐户,以实现存款、取款记账;

(2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。

 

二:系统功能分析:

1:开户:能够新建一个新的客户的账户。

2:查询:能够查询已有的客户账号和新开户的客户的信息和账号所剩的余额。

3:销户:删除客户的账号信息。

4:存取:能记录并保存某个客户的账号所进行的存取款的记录。

三.运行与调试

 

四:总结:

1.关于文件的知识学的不够好,很多函数功能不了解,通过上学期学习的《C++语言》教材,及图书馆中数据结构系列书籍中关于文件的介绍,我终于学会了文件的一些操作。例如指针的访问。

2.字符串和字符常量的混淆让我在运用他们时很吃力,于是我重新复习了一下《C++语言程序设计》中相关知识,解决了与他们有关的相关问题。

3.由于对文件的学习不够深入,加上学习的时间很久了,所以感觉文件部分很生疏。于是我重新看了一遍《C++语言程序设计》中有关文件部分的内容,并从图书馆查阅了相关知识,学会了文件的打开、关闭和读写。这才使得我写的程序中读写文件部分能够顺利运行。

4.在插入元素时,由于我有时插入的位置在有指针节点的后面,而书上讲的都是插入的位置在有指针节点的前面,所以总有错误。于是我在纸上一步步画出其插入的运行过程。在纸上手工操作之后我终于找到了错误的关键,及时调整语句顺序,解决了问题。这使得我明白了不能总是照抄照搬书本上的知识,而是应该随机应变,这样才能真正提高自己的能力。

5.有时候,语句都没错的情况下,输出依旧有错误。而在对输出函数仔 细检查之后发现输出函数并没有错误。在尝试中我发现了是释放节点上出了问题。原来,释放节点是可以节省空间,但不恰当的释放却会使数据丢失。

五.:收获与不足:

第一次做课程设计,开始自己读题时,思路不是很清晰,经老师把每个题目提示看一下后,明白这个程序就是要结合所学数据结构的思想,首先定义了一个结构体,包含了储户的各类信息,如姓名,账号,金额等等,并利用文件将用户信息加以存储。开户时将输入的信息写入文件,存款和取款时对用户的存款加以处理并更新到文件中。在分析好活期储蓄帐目管理的功能模块后,开始编写代码,在代码调试的过成中,并不是一帆风顺的,这也是平常练的不够吧,经过几轮删删改改,终于做的差不多了,基本达到了老师的要求,但是还是有很多不足的地方。通过这次对银行管理系统的编写与调试,巩固了有关结构体的知识及其操作,锻炼了实际应用能力,同时对文件有了更进一步的了解及应用,明白文件的读写等相关知识。在不断地进行书面设计和上机调试的过程中,认识到掌握设计程序的思路非常重要,要正确处理算法与语法的关系,算法是程序的核心,是灵魂,语法是外壳是工具。但是光掌握语法也是不够的,应该还要把重点放在解题思路上。这个实验也让我认识到自己知识的有限,与同学讨论的益处,培养了我的团队意识。我今后在编程时还需要多练习多思考,继续加油。

六.代码:

建一个空的工程

建一个头文件:

#ifndef seq_H

#define seq_H

const int Maxsize=100; 

struct client

{

   int number;

   int total;

};

class seq

{

public:

   seq(client a[],int n);

   ~seq(){};

   void insert(int x,int y);

   void delet(int x);

   void dw(int x,int y);

   void print(int x); 

private:

   client data[Maxsize];

   int sum;

};

#endif

 

建一个cpp文件:

#include<iostream>

using namespace std;

#include"seq.h"

seq::seq(client a[],int n)

{

   for(int i=0;i<n;i++)

   {

   int j=a[i].number-1;

   data[j].number=a[i].number;

   data[j].total=a[i].total;

   }

   sum=n;

}

void seq::insert(int x,int y)

{

   int j=x-1;

   data[j].number=x;

   data[j].total=y;

   sum++;

   cout<<endl;

}

void seq::delet(int x)

{

if(x<=sum&&x>0)

{

int j=x-1;

data[j].number=NULL;

data[j].total=NULL;

sum--;

}

else

{

cout<<"该客户不存在";

    cout<<endl;

}

cout<<endl;

}

void seq::dw(int x,int y)

{

   int money,j;

   j=x-1;

   if(x<=sum&&x>0)

   {

   money=y;

   data[j].total+=money;

   }

   else

   {

   cout<<"该客户不存在";

       cout<<endl;

   }

   cout<<endl;

}

void seq::print(int x)

{

   int j;

   j=x-1;

   if(x<=sum&&x>0)

   {

   cout<<"该客户的账户为:";

       cout<<data[j].number;

       cout<<endl;

       cout<<"该客户的当前账户资金总额为:";

       cout<<data[j].total;

       cout<<endl;

   }

   else

   {

   cout<<"该客户不存在";
aa76

       cout<<endl;

   }

   cout<<endl;

}

 

建一个cpp文件:

#include<iostream>

#include <time.h>

#include <stdio.h>

using namespace std;

#include"seq.h"

void time()

{

time_t t = time(0);

    char tmp[64];

    strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A  %z",localtime(&t));

    puts( tmp );

}

int main()

{

client a[10];

    for(int i=0;i<10;i++)

    {

a[i].number=i+1;

        a[i].total=10000;

    }

    seq L(a,10);

    int code;

    int num; 

    int mon;

    int to;

    cout<<"*************************";

    cout<<endl;

    cout<<"******余额查询请按1******";

    cout<<endl;

    cout<<"********存取款请按2******";

    cout<<endl;

    cout<<"*******开户请按3*********";

    cout<<endl;

    cout<<"******销户请按4**********";

    cout<<endl;

    cout<<"******退出请按0**********";

    cout<<endl;

    cout<<"*************************";

    cout<<endl;

    cout<<"请输入号码:";

    cin>>code;

    for(;code<=4&&code>=0;)

    {

if(code==1)

{

            cout<<"当前交易时间:";

            time();

cout<<"请输入要查询的客户的账号:";

            cin>>num;

            L.print(num);

}

        if(code==2)

{

            cout<<"当前交易时间:";

            time();

            cout<<"请输入要存取款的客户账号:";

            cin>>num;

            cout<<"请输入存取款金额:";

            cin>>mon;

            L.dw(num,mon);

}

        if(code==3)

{

            cout<<"当前交易时间:";

            time();

        cout<<"请输入要新增的客户账号:";

            cin>>num;

            cout<<"请输入存取款金额:";

            cin>>to;

            L.insert(num,to);

}

        if(code==4)

{

            cout<<"当前交易时间:";

            time();

            cout<<"请输入要删除的客户账号:";

            cin>>num;

            L.delet(num);

}

        if(code==0)

{

        return 0;

}

        cout<<"请输入号码:";

        cin>>code;

}

    cout<<"不存在该操作";

    cout<<endl;

    return 0;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: