C语言课程设计报告--实验设备管理系统--吕浙明

时间:2024.4.20

课 程 设 计 报 告

课程名称       C语言课程设计                 

课题名称     实验设设备管理系统                       

            计算机科学与技术                        

           191114                        

           

                          

指导教师                                      

20## 08 27

中国地质大学

计算机高级语言(C)

课程设计报告

               

               

                  191114              

             计算机科学与技术            

指导教师                     

20##年1月15 日

目录

1、  系统程序需求分析

2、  系统程序总体设计与模块划分

3、  系统程序详细设计与程序调试

4、实习总结和心得体会

C语言程序设计报告--实验设备信息管理系统

一  课程设计的目的

提高程序设计能力,检验课堂教学内容,掌握程序设计的基本方法和调试技能。

二  课程设计报告正文

课程设计题目

   实验设备信息包括:设备编号、设备种类(如:微机 打印机 扫描仪 等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。试设计一实验设备信息管理系统,使之能提供以下功能:

(1)能够完成对设备的录入和修改

(2)对设备进行分类统计

(3)设备的查询

1 需求分析
   实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号 设备种类 设备购入日期 正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。
                         2总体设计与模块的划分
    整个系统可设计为实验设备信息输入模块 实验设备信息添加模块 实验设备信息修改模块 实验设备分类统计模块和实验设备查询模块。
4  建立实验设备信息结构体,结构体成员包括设备编号 设备种类 设备名称 设备价格 设备购入日期 是否报废 报废日期。

3 详细设计

3.1流程图显示

C语言课程设计报告--实验设备管理系统--吕浙明

3.2 程序源代码

A (1) 各种各样的头文件以及各样的函数定义

#include

#include

#include

#define N 50

void menu();

void add();

void modify(); //修改

void stat();  //统计

void search();

int load(); 

2主函数

C语言课程设计报告--实验设备管理系统--吕浙明

   主函数是整个程序的核心。它将其他函数包含在其中,是整个程序的“大脑”,它调用很多函数,为了是读者更加的清晰,明白,在主函数中又调用了其他的函数。
void menu()

{   int n;

    puts("\t\t************************MENU*************************\n\n");

    puts("\t\t\t\t 1.添加您所需实验设备的信息");

    puts("\t\t\t\t 2.修改您所需实验设备的信息");

     puts("\t\t\t\t 3.统计您所需实验设备的信息");

    puts("\t\t\t\t 4.查询您所需实验设备的信息");

    puts("\t\t\t\t 5.退出");

    puts("\n\n\t\t****************************************************\n");

    printf("清选择你所需服务的号码(1-5):  [ ]\b\b");

    scanf("%d",&n);

    switch(n)

    {

        case 1:add();break;                                                                                 

         case 2:modify();break;

        case 3:stat();break;

        case 4:search();break;

        case 5:exit(0);

        default:menu();

    }

}

void main()      /*主函数*/

{

    menu();

    getchar();

}

B 各功能模块设计

(1)添加实验设备信息模块

void add()

{

    int i;

    FILE *fp;

    fp=fopen("eup.txt","a");

    if((fp=fopen("eup.txt","a"))==NULL)

    {

        printf("cannot open file\n");

    }

printf("\n 输入:编号 \t 种类 \t 名称 \t 价格 \t                          

 购入日期 \t是否报废\t 报废日期\n");

    scanf("%s",temp.id);

    scanf("%s",temp.kind);

    scanf("%s",temp.name);

    scanf("%s",temp.price);

    scanf("%s",temp.in_date);

    scanf("%s",temp.reject);

    scanf("%s",temp.out_date);

fprintf(fp,"\n %s \t %s \t

%s \t %s \t %s \t %s \t %s"

,temp.id,temp.kind,temp.name,

       temp.price,temp.in_date,temp.reject,temp.out_date);

    fclose(fp);

    printf("\n\n\t Successful.^_^ \n\n");

    printf("\n*********************************************************\n");

    printf("What do you want to do?\n\n");

    printf("\t 1.继续添加 \t 2.返回主菜单 \t 3.退出 \n");

    printf("\n************************************************************\n");

    printf("\n\n 输入你要选择的号码 (1-3):");

    scanf("%d",&i);

    if(i==1)

    {

        add();

    }

    if(i==2)

    {  

        menu();

    }

    if(i==3)

    {

        exit(0);

    }

}

C语言课程设计报告--实验设备管理系统--吕浙明

  

(3)修改模块

先判断是否能找到要修改的信息,如果找不到用户要修改实验设备信息的编号,则提醒用户“对不起,没有你所需的文件信息!”,若能找到用户要修改的信息的编号,则依次输出要修改的项目提示进行逐项修改,完成各项修改后输出提示:“1.继续修改  \t 2.返回主菜单 \t  3.退出”

void modify()

{

    FILE *fp;

    int n,k=0,b,c,i,e;

    char a[10];

    n=load();

    for(i=0;i

    {

        printf("%s \t %s \t %s \t %s \t %s \t %s \t %s \n",eup[i].id,

                     eup[i].kind,eup[i].name,eup[i].price,eup[i].in_date,eup[i].reject,eup[i].out_date);

    }

    printf("\n 输入你要修改的设备的编号! \n\n 实验设备的编号:");

   scanf("%s",a);

    for(i=0;i

   {

       k=1;

       c=i;

       break;

if(k==0)

    {

        printf("\n\n 对不起,没有你所需的文件信息!");

        printf("\t1).文件内容在这里    2).返回 主菜单   []\b\b");

        scanf("%d",&b);

        if(b==1){modify();}

        if(b==2){menu();}

    }

    if(k==1)

    {

        printf("\n  找到要修改的设备! \n");

        printf("\n  请输入你要修改的新信息  :\n");

        printf("\n  编号  种类 名称 价格  购入日期 是否报废  报废日期 \n");

        scanf("%s",eup[c].id);

        scanf("%s",eup[c].kind);

        scanf("%s",eup[c].name);

        scanf("%s",eup[c].price);

        scanf("%s",eup[c].in_date);

        scanf("%s",eup[c].reject);

        scanf("%s",eup[c].out_date);

    }

fp=fopen("eup.txt","w");

    }for(i=0;i

    {

        fprintf(fp,"%s \t %s \t %s \t %s \t %s \t %s \t %s \n",eup[i].id,

                     eup[i].kind,eup[i].name,eup[i].price,eup[i].in_date,eup[i].reject,eup[i].out_date);

    }

    fclose(fp);

    printf("\n\n\t  Successful.^_^  \n\n");

    printf("\n********************************************************************\n");

    printf("   你还想做什么?\n\n");

    printf("\t  1.继续修改  \t 2.返回主菜单 \t  3.退出  \n");

    printf("\n*********************************************************************\n");

    printf("\n\n   你的选择(1-3):");

    scanf("%d",&e);

    if(e==1)

   {

        modify();

    }

    if(e==2)

    {  

        menu();

    }

    if(e==3)

    {

        exit(0);

    }

}

C语言课程设计报告--实验设备管理系统--吕浙明

                                                             

(4)统计模块

void stat()

{

 

    FILE *fp;

    fp=fopen("eup.txt","r");

    if((fp=fopen("eup.txt","r"))==NULL)

    {

        printf("cannot open file\n");

    }

    while(!feof(fp))

    {

        fscanf(fp,"\n%s %s %s %s %s %s %s",temp.id,temp.kind,temp.name,temp.price,temp.in_date,temp.reject,temp.out_date);

        printf("\n%s\t%s\t%s\t%s\t%s\t%s\t%s",temp.id,temp.kind,temp.name,temp.price,temp.in_date,temp.reject,temp.out_date);

    }

    fclose(fp);

    menu();

}

(5)查询模块

void search()

{

    int i,n,k=-1,w1,w2,w3;

    char c[10];

    n=load();

    printf("\n \n 按照具体条件进行查找: \n \n  1).实验设备的编号 2).种类  3).名称  4).购入日期   [ ]\b\b");

    scanf("%d",&w3);

    switch(w3)

    {

        case 1:

        {

            printf("\n\n 请输入要查找的设备的编号! 设备的编号:");

            scanf("%s",c);

            for(i=0;i

            if(strcmp(c,eup[i].id)==0)

            {

                k=i;

                printf("\n已经找到实验的设备!\n");

                printf("\n该设备的实验信息:\n");

                printf("\n 编号  种类 名称 价格  购入日期 是否报废  报废日期 \n \n");

                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].id,eup[i].kind,eup[i].name,eup[i].price,eup[i].in_date,eup[i].reject,eup[i].out_date);

            }

            if (k!=-1)

            printf("\n\n Successful.^_^.");

            if (k==-1)

            printf(" 不能找到该设备的信息!\n");

            printf("\n\t 1).重新查找      2).返回主菜单  [ ]\b\b");

            scanf("%d",&w2);

            if(w2==2)  menu();

            if(w2==1) search();

        }break;

case 2:

        {

            printf("\n\n输入要查找的实验的设备的种类! 设备的种类:");

            scanf("%s",c);

            for(i=0;i

            if(strcmp(c,eup[i].kind)==0)

            {

                k=i;

                printf("\n 能找到该设备哦! \n");

                printf("\n该设备的信息:\n");

                printf("\n编号  种类 名称 价格  购入日期 是否报废  报废日期 \n\n");

                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].id,eup[i].kind,eup[i].name,eup[i].price,eup[i].in_date,eup[i].reject,eup[i].out_date);

            }

            if (k!=-1)

            printf("\n\n Successful.^_^.");

            if (k==-1)

            printf("不能找到该设备!\n");

            printf("\n\t1).重新查找       2).返回主菜单  [ ]\b\b");

            scanf("%d",&w2);

            if(w2==2)  menu();

            if(w2==1) search();

        }break;

case 3:

        {

            printf("\n\n输入要查找的设备的名称! 名称:");

            scanf("%s",c);

            for(i=0;i

            if(strcmp(c,eup[i].name)==0)

            {

                k=i;

                printf("\n已经找到该设备!\n");

                printf("\n设备的信息:\n");

                printf("\n编号  种类 名称 价格  购入日期 是否报废  报废日期\n\n");

                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].id,eup[i].kind,eup[i].name,eup[i].price,eup[i].in_date,eup[i].reject,eup[i].out_date);

            }

            if (k!=-1)

            printf("\n\n Successful.^_^.");

            if (k==-1)

            printf("不能找到该设备的信息");

            printf("\n\t1).再次查找       2).返回主菜单   [ ]\b\b");

            scanf("%d",&w2);

            if(w2==2)  menu();

            if(w2==1) search();

        }break;

case 4:

        {

            printf("\n\n输入要查找的实验设备的购入的日期! 购入的日期:");

            scanf("%s",c);

            for(i=0;i

            if(strcmp(c,eup[i].in_date)==0)

            {

                k=i;

                printf("\n已经能够找到该设备!\n");

                printf("\n该设备的信息:\n");

                printf("\n编号  种类 名称 价格  购入日期 是否报废  报废日期\n\n");

                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",eup[i].id,eup[i].kind,eup[i].name,eup[i].price,eup[i].in_date,eup[i].reject,eup[i].out_date);

            }

            if (k!=-1)

            printf("\n\nSuccessful.^_^.");

            if (k==-1)

            printf("不能找到该设备!\n");

            printf("\n\t1).再次查找       2).返回主菜单  [ ]\b\b");

            scanf("%d",&w2);

            if(w2==2)  menu();

            if(w2==1) search();

        }

    }

}

5、总结与体会

  这一次课程设计着实考研了我们对C语言知识的掌握情况。真可谓是让我无从下手,焦头烂额啊。因为我们在大一刚学完C语言这一门课程,就要让我们进行系统的C语言编程训练,让我们设计一个无懈可击的程序,这简直比登天还难。刚开始感觉确实有点力不从心,但是经过开始的学习、摸索,我的程序也终于初具雏形了。虽然在许多的功能方面有所欠缺,但是我觉得我是在进步的。经过的慢慢上机实践学习,给我的不只是疲惫更多的是收获。

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。

在本次实践中,给我印象最为深刻的是在文件查询程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天不负有心人,我的程序设计终于得以问世。        

课程设计到此算是基本结束,在程序设计中暴露出的我自身的问题却是非常明显!!

首先,基础掌握不牢固。许多基本语法尚没有熟练掌握,在设计过程中仍需请教其它同学,更重要研究课本,设计效率底。

其次,经典算法掌握不牢。在编写程序的时候常常会停下来求助于书本,查看各种算法。

再次,程序量过大的时候,头绪理不清。杂乱无章,无系统性,不便调试和阅览,自己也易于出错。比如说少加分号,大括号,忘了先定义后使用的原则。

 回顾这几天,我感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,函数,算法……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在陈老师的辛勤指导下,终于游逆而解。同时,在刘老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!

更多相关推荐:
c语言图书管理系统课程设计报告

合肥学院计算机科学与技术系课程设计报告20xx20xx学年第二学期课学学专指业导班教生姓程C语言课程设计图书管理系统名号级师课程设计名称20xx年6月一需求分析为了满足图书管理的要求通过计算机技术给图书管理人员...

c语言课程设计报告·图书管理系统

第一章11题目描述图书管理系统设计要求图书管理信息包括图书名称图书编号单价作者存在状态借书人姓名性别学号等试设计一图书管理系统使之能提供以下功能1新图书基本信息的输入2图书基本信息的查询3对撤销图书信息的删除4...

C语言图书管理系统课程设计报告[1]

第三章图书管理系统的设计与实现3.1系统的需求分析图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。根据系统界面的提示信息对图书馆信息进行查询、初始化等操作系统…

c语言图书管理系统课程设计报告

沈航北方科技学院课程设计说明书课程名称教学部专业数控班级B042111学号B04211123学生姓名指导教师赵小磊20xx年6月链表实现图书信息操作田文目录摘要31绪论32系统分析321功能需求322数据需求4...

c语言图书管理系统课程设计报告

河南工业大学C语言课程设计报告20xx20xx学年第2学期课程C语言课程设计课程设计名称图书管理系统姓名晁永兵学号20xx16040220学院信息科学与工程学院专业软件工程班级2班20xx年05月04日一需求分...

C语言课程设计报告-图书管理系统

课程设计报告图书馆管理系统目录1题目与要求22系统总体设计要给出必要的文字说明及必要的图示321功能需求分析明确选题的功能需求322系统功能模块划分要给出系统功能模块图43详细设计431重要数据的数据结构设计即...

C语言图书管理系统课程设计报告

C语言图书管理系统课程设计报告引言随着社会经济的迅速发展和现代科学技术的进步,人类社会正逐渐走向现代化。计算机事业的飞速发展,使得以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。同时,随着经济文化水平的…

通讯录管理系统课程设计报告书(C语言)[1]

课程设计报告书课程名称班级学号姓名指导老师通讯录管理系统一需求分析设计题目及要求建立通讯录信息信息至少包含编号姓名年龄电话通讯地址电子邮箱等能够提供添加删除和修改通讯录信息的功能能够提供安不同方式查询的功能如按...

C语言课程设计报告—图书信息管理系统

C语言课程设计报告图书信息管理系统设计指导老师:C语言程序设计编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。学…

C语言图书馆管理系统课程设计报告

一目的要求C语言程序设计是一门讲述C语言的基本知识和编程方法的课程在讲述C语言数据类型的基础上对C语言的五类语句做了简单的介绍另外还讨论了C语言的三种程序结构顺序选择和循环对函数的使用指针的概念结构体的应用文件...

C语言图书馆管理系统课程设计报告12

C语言课程设计学生姓名袁盛升学生学号所在班级任课教师姜林10211121图书馆管理系统设计目的图书信息包括登录号书名作者名分类号出版单位出版时间价格等试设计一图书信息管理系统使之能提供以下功能1系统以菜单方式工...

图书馆管理系统_毕业设计论文_开题报告

开题报告课题名称图书管理系统一立项依据1课题的目的及意义本次毕业设计所从事的课题题目是基于VB的图书管理系统的设计与实现课题的目的应用当前高速发展的计算机技术组建图书管理系统随着计算机及网络技术的飞速发展Int...

c语言图书管理系统课程设计报告(26篇)