首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

自己写的小程序,大家多给点意见哈~该如何处理

2012-02-13 
自己写的小程序,大家多给点意见哈~我是一个自学者,呵呵~我自己用C语言写了一个类似于“学生档案管理”的小程

自己写的小程序,大家多给点意见哈~
我是一个自学者,呵呵~   我自己用C语言写了一个类似于“学生档案管理”的小程序,程序写的不好,各位多发表下意见哈,指点下,程序有很多地方都无非得到满意的结果,也不知道哪出了问题。
===================================================================
/*****************************************************************************
编程项目一:   <   学生档案管理系统   >
                  ____________________________
                                                                        |
系统模块:输入存储学生记录                     |
                    查询指定记录学生信息             | <--(5个主要功能模块实现)
                    浏览全部数据记录                     |
                    删除指定学生记录                     |
                    修改已经存在的学生记录         |
                ____________________________|

                    ___________________________________________________
data结构:   |name[]|score   |       Ar     |   Sex[]|     Bd     |     Al       |Next   |   <--(一名学生的基本信息)
                    |______|______|_______|______|______|_______|_____|
                    (名字)     (分数)   (地址)     (性别)   (生日)   (评价)   (指针域)

******************************************************************************/
/*头文件*/
#include   "stdio.h "
#include   "conio.h "
#include   "stdlib.h "
#include   "dos.h "
#include   "string.h "

/*封装Data结构*/
typedef   struct   Stu
                {
                    char   name[12];   /*名字*/
                    int   score;           /*分数*/
                    char   Ar[30];       /*地址*/
                    char   Sex;             /*性别*/
                    int   Bd;                 /*生日*/
                    char   Al[120];     /*评价*/
                    struct   Stu   *next;     /*指针域*/
                }   LINK;

/*定义全局变量*/
LINK   *p=NULL;     /*指向首结点的指针*/
LINK   *s=NULL;     /*指向当前结点的指针*/
LINK   *r=NULL;     /*指向尾结点的指针*/

/*打印主界面*/
int   Cs1(void)



{

      clrscr();   /*清屏*/
      /*打印主界面*/
      gotoxy   (25,3);     printf( "**************************** ");
      gotoxy   (25,4);     printf( "*           学生档案管理系统           *     作者:帕帕 ");
      gotoxy   (25,5);     printf( "****************************     开发日期:2007/03/03 ");
      gotoxy   (1,6);       printf( "______________________________________________________________________________ ");
      gotoxy   (1,20);     printf( "______________________________________________________________________________ ");
      gotoxy   (20,7);     printf( "*************************************** ");
      gotoxy   (20,8);     printf( "*                 添加记录请按:   a ");
      gotoxy   (20,9);     printf( "*                 查找记录请按:   b ");
      gotoxy   (20,10);   printf( "*                 修改记录请按:   c ");
      gotoxy   (20,11);   printf( "*                 删除记录请按:   d ");
      gotoxy   (20,12);   printf( "*                 浏览记录请按:   e ");
      gotoxy   (20,13);   printf( "*                 退出系统请按:   x ");
      gotoxy   (20,14);   printf( "* ");
      gotoxy   (20,15);   printf( "* ");
      gotoxy   (20,16);   printf( "* ");
      gotoxy   (20,17);   printf( "* ");
      gotoxy   (20,18);   printf( "*************************************** ");
      gotoxy   (58,8);     printf( "* ");
      gotoxy   (58,9);     printf( "* ");
      gotoxy   (58,10);   printf( "* ");
      gotoxy   (58,11);   printf( "* ");
      gotoxy   (58,12);   printf( "* ");
      gotoxy   (58,13);   printf( "* ");
      gotoxy   (58,14);   printf( "* ");
      gotoxy   (58,15);   printf( "* ");
      gotoxy   (58,16);   printf( "* ");
      gotoxy   (58,17);   printf( "* ");
      return   0;

}


/*打印子界面*/
int   Cs2(void)

{

      clrscr   ();     /*清屏*/
      /*打印界面*/
      gotoxy   (25,3);     printf( "**************************** ");
      gotoxy   (25,4);     printf( "*           学生档案管理系统           *     作者:帕帕 ");
      gotoxy   (25,5);     printf( "****************************     开发日期:2007/03/03 ");


      gotoxy   (1,6);       printf( "______________________________________________________________________________ ");
      gotoxy   (1,22);     printf( "______________________________________________________________________________ ");
      gotoxy   (20,7);     printf( " ");
      gotoxy   (20,8);     printf( " ");
      gotoxy   (20,9);     printf( " ");
      gotoxy   (20,10);   printf( " ");
      gotoxy   (20,11);   printf( " ");
      gotoxy   (20,12);   printf( " ");
      gotoxy   (20,13);   printf( " ");
      gotoxy   (20,14);   printf( " ");
      gotoxy   (20,15);   printf( " ");
      gotoxy   (20,16);   printf( " ");
      gotoxy   (20,17);   printf( " ");
      gotoxy   (20,18);   printf( " ");
      gotoxy   (50,7);     printf( "* ");
      gotoxy   (50,8);     printf( "* ");
      gotoxy   (50,9);     printf( "* ");
      gotoxy   (50,10);   printf( "* ");
      gotoxy   (50,11);   printf( "* ");
      gotoxy   (50,12);   printf( "* ");
      gotoxy   (50,13);   printf( "* ");
      gotoxy   (50,14);   printf( "* ");
      gotoxy   (50,15);   printf( "* ");
      gotoxy   (50,16);   printf( "* ");
      gotoxy   (50,17);   printf( "* ");
      gotoxy   (50,18);   printf( "* ");
      gotoxy   (50,19);   printf( "* ");
      gotoxy   (50,20);   printf( "* ");
      gotoxy   (50,21);   printf( "* ");
      gotoxy   (58,7);     printf( " <   回显区   > ");
      return   0;

}


/*循环控制*/
int   News(void)

{

      char   ch;   /*定义字符变量*/
      Cs1();       /*刷新主界面*/
      for   (;;)     /*消息循环*/

      {

            if   (kbhit   ())   /*检测是否有键被按下,如果有,做下面:*/

            {

                  ch=bdos   (7,0,0);     /*键入字符存入ch*/
                  if   (ch== 'a ')     /*按下a则:*/

                  {

                        Writes();     /*进入添加模块*/
                        Cs1();

                  }


                  if   (ch== 'b ')     /*按下b则:*/

                  {

                        Search();     /*进入查找模块*/
                        Cs1();

                  }
                  if   (ch== 'c ')     /*按下c则:*/

                  {

                        Revision();     /*进入修改模块*/
                        Cs1();

                  }
                  if   (ch== 'd ')     /*按下d则:*/

                  {

                        del();     /*进如删除模块*/
                        Cs1();

                  }
                  if   (ch== 'e ')     /*按下e则:*/

                  {

                        Bg();     /*进入浏览模块*/
                        Cs1();

                  }
                  if   (ch== 'x ')     /*按下x则:*/

                  {

                        gotoxy   (1,18);
                        exit   (1);     /*退出系统*/

                  }

            }   /*一次比较结束*/

      }   /*再次进入消息循环体*/

}


/*添加记录模块*/
int   Writes(void)

{
      int   i,j;           /*定义变量*/
      FILE   *f;           /*定义文件指针*/
      i=0;
      j=0;
      f=NULL;             /*文件指针为空*/
      Cs2();               /*调用子函数打印界面*/
      gotoxy   (1,7);/*定义光标坐标*/
      printf   ( "您要存储几名学生的记录: ");
      scanf   ( "%d ",&j);       /*输入循环次数*/
      for   (i=1;i <=j;i++)   /*循环次数*/

      {

            Cs2();   /*刷新界面*/
            s=malloc(sizeof   (LINK));     /*动态申请内存空间*/


            /*循环输入学生记录*/
            gotoxy   (1,9);
            printf   ( "请输入新同学的名字: ");
            scanf   ( "%s ",s-> name);
            gotoxy   (52,9);
            printf( "名字:%s ",s-> name);
            gotoxy   (1,11);
            printf( "请输入新同学的分数: ");
            scanf( "%d ",s-> score);
            gotoxy   (52,11);
            printf( "分数:%d ",s-> score);
            gotoxy   (1,13);
            printf( "请输入新同学的地址: ");
            scanf( "%s ",s-> Ar);
            gotoxy   (52,13);
            printf( "地址:%s ",s-> Ar);
            gotoxy   (1,15);
            printf( "请输入新同学的性别: ");
            scanf( "%s ",s-> Sex);
            gotoxy   (52,15);
            printf( "性别:%s ",s-> Sex);
            gotoxy   (1,17);
            printf( "请输入新同学的生日: ");
            scanf( "%d ",s-> Bd);
            gotoxy   (52,17);
            printf( "生日:%d ",s-> Bd);
            gotoxy   (1,19);
            printf( "请输入新同学的评价: ");
            scanf( "%s ",s-> Al);
            gotoxy   (52,19);
            printf( "评价:%s ",s-> Al);
            gotoxy   (1,21);
            printf( "新同学的信息记录已存储... ");

            if   (p==NULL)   /*空表的情况下:*/
                p=s;               /*让p指向第一个数据结点*/
            else                   /*非空表情况下:*/
                r-> next=s;   /*把s-> 连接到r-> 的后面*/
            r=s;                   /*r指向新的尾结点*/
      }   /*一次循环结束*/
      if   (r-> next!=NULL)
          r-> next=NULL;   /*尾指针next域赋空*/
      return   0;

}


[解决办法]
你的函数取名应该改进,按照一定规范比较好。
[解决办法]
lz 很认真```不错啊 很好啊!

不过查找的那一块函数的算法还可以优化,
如果是几千个学生呢?是不是查找太费时间了??

热点排行