c语言项目总结报告(学生信息)

时间:2024.4.20

C语言程序设计》课程

学生成绩管理系统

实训项目总结报告

姓    名:

学    号:

班    级:

指导教师:

完成日期:20##年1月6日

成    绩:        


一、简介

1、开发背景

在完成大一新学期的C语言课程之后,运用所学知识进行检测,自己编译一个程序系统,来为自己上学期的学习交一份答卷

2、研究内容、研究方法及主要技术实现目标

研究内容:

1、成绩的输入2、成绩的修改3.成绩的统计4.成绩的查询5.成绩的输出

研究方法:

1、先思考实现各模块的具体内容。

2、写实现各模块的算法,包括定义一个结构体,函数原型的声明,用到which,if来实现判断,switch,case语句来实现选择,for来实现成绩输入、成绩统计,成绩查询、成绩输出。数组和指针来实现学生成绩的管理

3、根据算法写代码。

4、调试代码。

3、实现目标

完成学生成绩管理系统,1实现学生成绩的输入2实现对学生成绩的增、删、改3实现学生成绩的统计4实行学生成绩的查询5打印学生成绩

二、  设计流程

1、   框架搭建

班级学生成绩管理系统”采用“循序渐进”的原则,将8个项目分为21个任务实施。各项目以1-4个任务为驱动,围绕完成任务设计必备的知识与理论进行讲解,是学习与应用融为一体。随着学习的深入逐步完善程序的功能,最后形成一个较为完整的系统。学习者也可以自己增加新的模块,使程序更加完善,实用。


 2、详细设计

   项目主菜单编译源程序

项目子菜单源程序 

项目子菜单源程序

项目子菜单源程序

项目子菜单程序

三、   设计中遇见问题及解决方案

程序中使用很多自定义函数及宏定义,自定义函数使得程序模块化思路更加清晰易懂,使用宏定义方便某些数据的日后升级。

在代码书写中也是经常出现问题,比如在某个地方大小写字母不注意、多重循环中循环变量的不注意……出现的问题有自己发现并解决的有同学讨论的请教老师的,还有查资料解决……流程设计最初的时候没注意,致使编写程序模块很累无头绪,后来制作模块框架后好弄很多。例如要实现菜单的选择执行、怎么查找最高最低成绩、如何查找成绩不合格的学生、如何对学生的成绩进行排序;在解决相关问题时用到下面算法:用if语句实现菜单的选择执行、用switch语句实现菜单的选择执行、用循环语句实现主菜单的选择执行、使用数组查找最高 最低成绩、使用数组查找成绩不合格的学生、使用数组对学生的成绩进行排序、使用指针查找学生最高 最低成绩、使用指针查找成绩不合格的学生……

四、   项目完成情况及需进一步完善的地方

对于这个项目,程序在vc++ 6.0上能够顺利调试运行,几个子菜单基本功能已达到,在界面方面,也有挺多不足的地方。首先我觉得程序还不够完善有些功能并没有完全写出来.最后就是该程序界面还是感觉不足.待升级。

五、   项目调试和结果

 程序执行后效果图如下

1、   主菜单效果图

 

2、   子菜单效果图

3、   子菜单效果图

4、   子菜单效果图

5、         子菜单效果图     

六、   个人收获和总结

   在这次实训过程中,意识到了自己的不足以及知识的欠缺,在以后的学习中自己不能大意,一定要仔细认真,在这次的实训中,我体会到了坚持不懈的真谛 ,在以后的日子里我会严格要求自己

七、   参考文献

萨师煊, 王珊. 数据库系统概论[M], 高等教育出版社, 20##年2月第三版.

http://www.jb51.net/html/200712/159/13120.htm

谭浩强.C语言程序设计.清华大学出版社,20##年12月第一版

: 1.代码

2. 实训验收单。


第二篇:C语言集中上机总结报告关于制作学生信息管理系统


C语言集中上机报告

                    

     通讯录管理

                院    系:       

                班    级:         

                姓    名:         

                合 作 者:         

                指导教师:          

2012  年   5月   29 日

 

一.     概述……………………………………………………………………..3

二.     总体方案设计…………………………………………………………..4

三.     详细设计………………………………………………………………..5

四.     程序的调试与运行结果说明…………………………………5

五.     课程设计总结…………………………………………………7

六.     总结…………………………………………………………….8

七.     附录……………………………………………………………..8

八.     参考文献………………………………………………………..13

概述

为综合应用C语言程序设计理论知识、进一步提高我们综合解决问题、协调工作的能力和良好的软件开发习惯。希望通过该实习能够进一步激发我们的学习热情,培养初步编程的能力,为自己的后续的学习和发展奠定基础。

根据题目的要求,设计的通信录由字符串类型的数据项,其中包括姓名、地址、邮政编码与电话号码组成。同时对于通讯录的要求是实现功能:存取、显示、删除记录、查询记录等基本功能。

1.     课程设计的目的

1、回顾C语言程序设计所学的各个知识点;回顾编程语言特点;

2、对具体题目的分析,功能分析,流程分析,设计过程中的结构体分析;

3、掌握从上至下的分析过程;合理完成功能的分解;

4、分析获得实现功能所需的各种数据结构;功能模块的整合;

5、使用面相过程开发语言建立各种数据结构,各种结构体;

6、掌握面相过程开发语言的特点,建立各种函数实现各个功能;

7、调用各个功能模块,完成系统的整体功能;调试、测试各个功能模块,并完成系统的测试。

2.     课程设计的要求

编写这段程序,是在对c语言基本知识的熟练掌握以及较为熟练的实际动手能力的基础上才能够满足题意并且完成的。但对于编写过程中,也会遇到一些开始没有考虑到的问题,在遇到的时候在根据实际的问题进行分析与解决,对于问题的解决自己既要积极的思考同时对于相关不是很熟悉或者较为陌生的知识点也要积极的查阅相关资料或者向老师请教。教师对本题目所提出的要求是能够自己独立或者在与他人的合作中完成题目要求。

3.     课程设计的主要设计思想

为了实现题目中所要求的功能而分别设计不同的版块。为了实现要求,需要对所学的C语言的各方面的知识有着较好的了解和运用。在整个过程中用到了基本的printf,scanf这些函数,也用到了结构体,数组,指针这些知识。在这个编写的过程成中函数循环,一些对于字符串的使用、处理的知识也会用到。

下面就是总的程序流程图:

 

 

 


二 总体方案设计

对于通讯录的设计为了达到题目所说的要求,整个程序本设计出了主函数,然后根据去要实现的功能分别设计,显示、删除、查找、修改、添加功能的子函数。在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。修改也大体和删除相同,添加函数在设计时通过申请内存,然后通过指针将需要添加的信息添加进去,从而实现添加功能。

三 详细设计

整个程序本设计出了主函数,然后根据去要实现的功能分别设计,显示、删除、查找、修改、添加功能的子函数。

主函数用到了数组,结构体,指针的知识。显示、添加部分用到了printf和scanf函数来保证数据的输入与输出。修改部分除了用到了printf和scanf函数来保证数据的输入与输出同时用到了strcpy来修改数据。查找则是利用的是对地址的查找,使用了指针。删除用了变量之间的交换来实现。

四 程序的调试与运行结果说明

调试结果顺利。

开始界面:

创建功能的界面:

显示功能的界面:

删除功能的界面:

查找功能的界面:

修改功能的界面:

退出功能的界面:

五 课程设计总结

通过这次课程设计,我对很多的函数有了新的认识,也对于多种函数的运用有了提高。在这次的程序编程过程中的过程中我又学到了曾经自己不知道的函数或是自己不会的函数的用法。这次课程设计课总的来说让我受益匪浅。在程序的设计过程中遇到了较多的困难。在一次次失败的打击下想过要放弃。但最后还是坚持了下来,毫不畏惧困难,在同学的帮助与讲解下我总算是顺利的完成了程序的编写。虽然在编写过程遇到会很多的困难,但当调试成功时那种喜悦的感觉没有什么东西可以代替。在程序的编写过程中发现自己有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。在这次的编写过程中我对c语言有了更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习。

此次课程设计不仅给了我很多很好的经验,也让我体会到了失败时的焦急和难受,也体会到了成功时的兴奋与喜悦。

六 后记

在编程的初始阶段,感觉题目好难,开始的时候根本就不知道从哪里开始编程,没有很多的思绪,不能从整体上把握整个题目的要求,不知道究竟怎样才能实现题目所说的要求,对于题目的整体的编写没有形成行之有效的思路,结果在刚刚开始编写的时候,不是这里有差错,就是那里编写遗漏了,最后写了一部分就写不下去。后来暂时停止了一段时间的编写,而在这段时间内自己重新的复习了老师已经讲解的c语言并且重新的分析了题目的要求,一点点的细细分析,把题目的要求分成了一些的功能模块,一点点的对相应的功能模块进行编写。在写完以后,觉得不仅增强了自己对c语言的理解,同时也加强了自己的逻辑分析能力。

七 附录

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

typedef struct Telephone

{

 char name[50]; char tel[30];

 char city[30];char eip[30];

 struct Telephone *next;

}TEL;

TEL *head;

void Initiate();void Menu();

void Create();//的功能是:创建新的通讯录。

void Add();// 在通讯录的末尾,写入新的信息,并返回选单

void Find();//查找记录

void Alter();//修改记录如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。

void Delete();//删除某人的信息,如果未找到要删的人,提示通讯录中没有此人的信息,并返回选单。

void List();//的功能是:显示通讯录中的所有记录。

int main()

{

   int  choice;char  yes_no;

   Initiate();

   do

   {

      system("cls");  Menu();

      printf("请选择0-6的数字"); scanf("%d",&choice);

      printf("\n");

      switch(choice)

      {

          case 1:Create();break; case 2:Add(); break;

          case 3:Find();break; case 4:Alter();break;

          case 5:Delete();break; case 6:List();break;

          case 0:

          printf("******O(∩_∩)O~谢谢您的使用O(∩_∩)O~*********\n");

          exit(0); break;

          default: printf("输入的不对哦!请再输入一次\n"); break;

      }

      printf("是否继续  Y  or   N?  \n");

      do

      {

         scanf("%c",&yes_no);

      }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');

   }while(yes_no=='Y'||yes_no=='y');

}

//初始化

void  Initiate()

{

    if((head=(TEL *)malloc(sizeof(TEL)))==NULL) exit(1);

    head->next=NULL;

}

//显示菜单

void Menu()

{

  printf("**************欢迎使用通讯录系统**************");

  printf("\n");

  printf("\n");

  printf("  1.创建通讯录。"); printf("  2.插入信息。");

  printf("  3.查询记录"); printf("  4.修改记录");

  printf("  5.删除记录!"); printf("  6.显示所有记录");

  printf("  0.退出通讯录\n"); printf("    请输入0~6:");

}

//创建通讯录

void Create()

{

     TEL *p1[100],*p2;

     int  m,i;

     printf("请输入创建个数:");

     scanf("%d",&m);

     for(i=1;i<=m;i++)

     {

        p1[i]=(TEL *)malloc(sizeof(TEL));

        printf("请输入第%d条信息!\n",i);

        printf("姓名:"); scanf("%s",&p1[i]->name);

        printf("电话:"); scanf("%s",&p1[i]->tel);

        printf("城市:"); scanf("%s",&p1[i]->city);

        printf("邮编:");scanf("%s",&p1[i]->eip);

        p1[i]->next=NULL;

        if(head->next==NULL)

           head->next=p1[i];

        else

        {

            for(p2=head;p2->next!=NULL;p2=p2->next);       //找到结点尾

            p2->next=p1[i];

        }

     }

    printf("信息已添加!\n");

    return;                                     //保存到链表

}

//添加通讯录信息

void Add()

{

     TEL *p,*q;

     if((q=(TEL *)malloc(sizeof(TEL)))==NULL) exit(1);

     printf("请输入要添加的信息!\n");

     printf("姓名:"); scanf("%s",&q->name);        //添加信息

     printf("电话:"); scanf("%s",q->tel);

     printf("城市:");scanf("%s",q->city);

     printf("邮编:");scanf("%s",q->eip);

     for(p=head;p->next!=NULL;p=p->next) ;

        p->next=q;

     q->next=NULL;

     printf("此信息已添加!");

     return;

}

//查找通讯录信息

void Find()

{

    TEL *p;

    char name[50];

    if(head->next==NULL)

    {printf("此通讯录为空!\n");

      return;

    }

    printf("请输入要查找的姓名:\n");

    scanf("%s",&name);

    for(p=head->next;p!=NULL;p=p->next)

    {

       if(strcmp(p->name,name)==0)

       {

           printf("姓名\t城市\t邮编\t电话\n");

           printf("%s\t%s\t%s\t%s\n",p->name,p->city,p->eip,p->tel);

       }

       else  if(p->next==NULL)

          printf("无此信息!\n");

    }

}

//修改通讯录信息

void Alter()

{

   char name[50];                                     //先查找 后删除

   TEL *p, *p1;

   if (head->next == NULL)

   {

      printf("此通讯录为空!\n");

      return;

   }

   printf("请输入要修改的姓名:\n");

   scanf("%s",name);

   for(p=head->next;p!=NULL;p=p->next)

   {

       if(strcmp(p->name,name)==0)

          break;

       else   if(p->next==NULL)

       {

           printf("无此信息!\n");

           return;

       }

   }

   p1=(TEL *)malloc(sizeof(TEL));

   printf("姓名:");scanf("%s",p1->name);                     //添加信息

   strcpy(p->name,p1->name);

   printf("电话:");scanf("%s",p1->tel);

   strcpy(p->tel,p1->tel);

   printf("城市:"); scanf("%s",p1->city);

   strcpy(p->city,p1->city);

   printf("邮编:");scanf("%s",p1->eip);

   strcpy(p->eip,p1->eip);

   printf("此信息已修改!\n");

   //显示修改的信息

   printf("姓名\t城市\t邮编\t电话\n");

   printf("%s\t%s\t%s\t%s\n",p->name,p->city,p->eip,p->tel);

   free(p1);

}

//删除通讯录信息

void Delete()

{

   char  name[50];                                     //先查找 后删除

   TEL *p = head->next, *p1 =head->next,*p2;

   if (head->next == NULL)

   {

     printf("此通讯录为空!\n");

     return;

   }

   printf("请输入要删除的姓名:\n");

   scanf(" %s",name);

   while ((strcmp(p->name,name)!=0 )&& p->next != NULL)

   {

      p1=p;

      p =p->next;

   }

   if (strcmp(name, p->name)==0)                    //输出删除信息

   {

       if (p == head->next&&p->next!=NULL)

         head->next = p->next;

       else  if(p==head->next&&p->next==NULL)

       {

           head->next=p->next;

           printf("信息已删除,先此通讯录为空!!\n");

           return;

       }

       else

         p1->next = p->next;

   }

   else

   {

       printf("此信息不存在!!!\n");

       return;

   }

   printf("此信息已删除!");

   printf("姓名\t城市\t邮编\t电话\n");

   for(p2=head->next;p2!=NULL;p2=p2->next)

      printf("%s\t%s\t%s\t%s\n",p2->name,p2->city,p2->eip,p2->tel);

}

//显示所有记录

void List()

{

   TEL *p;

   if(head->next==NULL)

   {

       printf("此通讯录中无记录!\n");

       return;

   }

   printf("姓名\t城市\t邮编\t电话\n");

   for(p=head->next;p!=NULL;p=p->next)

      printf("%s\t%s\t%s\t%s\n",p->name,p->city,p->tel,p->eip);

}

参考文献

 [1] 谭浩强,C程序设计题解与上机指导(第二版),北京,清华大学出版社,20##年9月。

[2] 谭浩强,C程序设计(第三版),北京,清华大学出版社,20##年7月。

更多相关推荐:
项目个人总结报告

图书管理系统项目个人总结报告08级日语强化1班袁皓珲08317110110一项目简介项目名图书管理系统开发小组MT开发小组开发周期30天项目开发目的小型图书馆虽然图书较少用户较少利用我们开发的图书管理系统可以帮...

工程项目总结报告

一,工程概况项目主要工作是维修某主要道路下一段长约1公里的供水管道,市政局要求电力部门配合施工,同时铺设一条地下电缆,以增加该道路两侧的用电用户。由于该项目是在现有道路上开挖,故市政局决定在回填后顺便铺设新的混…

项目总结报告基本格式

项目总结报告基本格式I引言1.1编写目的说明编写这份项目开发总结报告的目的,指出预期的阅读范围。1.2背景说明:a.本项目的名称和所开发出来的软件系统的名称;b.此软件的任务提出者、开发者、用户及安装此软件的计…

项目开发总结报告

房产客户关系管理项目总结报告房产客户关系管理平台项目总结报告组名J2EE第一项目组作者冷大明完成时间20xx0808签收人冷大明修改情况记录Copyright20xxJ2EE第一项目组1第1页房产客户关系管理项...

项目总结报告模板

文件编号版本号10lt项目名称gt项目总结报告部门编写审核批准日期YYYYMMDD公司文件修订记录XX项目总结报告版本XX目录1引言211121322122233313233343544142551526616...

项目工作总结报告

特殊工业用竹新品种选育及快繁育苗新产品新技术开发工作总结报告承担单位陈其兵合作单位长宁县曙光观赏竹园艺场二0一三年十二月一项目来源及概况特殊工业用竹新品种选育及快繁育苗新产品新技术开发是宜宾市20xx年引进高层...

项目总结报告文档模板

项目总结报告文件编号0004项目总结报告第1页共6页项目总结报告文件编号0004版本管理第2页共6页项目总结报告文件编号0004目录1引言4111222122232434项目背景4参考文档4项目产品4主要功能和...

项目总结报告

浙江工业大学物流工程项目总结报告浙江工业大学GiorgioArmani成衣包装运输项目总结报告专业物流工程班级物流工程0801经理指导老师20xx年10月7日星期四浙江工业大学物流工程项目总结报告项目总结报告报...

《Android项目开发实训》项目总结报告

实训报告姓名祝新学号1144131专业软件技术课程名称android实训项目名称闹铃指导教师王皓实训日期20xx年10月28日至20xx年1月2日20xx年1月2日Android项目开发实训总结报告目录第一章概...

项目交工进展报告---样板

项目交工进展汇报表

华为:项目总结表

Noteasfortheabovementionedestimateddurationandcostthemostfeasiblevalueistobeadopted

项目开发总结报告

项目开发总结报告旅游自助系统项目开发总结报告项目负责人小菁小组成员小虹小军小骁小雷项目开发总结报告文档变更记录过程数据小结项目开发总结报告目录1引言错误未定义书签11编写目的错误未定义书签12背景错误未定义书签...

项目报告总结(36篇)