正文

学生信息管理系统2005-06-26 13:28:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/jay0518/2122.html

分享到:

/*第三方函数库 SGCHN3.0*/
/*该函数库一些函数说明
/*  C Head File.

    SGCHN30.h

    Definitions for SGCHN3.0 Run time Library Function.

    Copyright (c) 2004, 2005 SGPRO
    All Rights Reserved.

    Autor: YinShengge 作者: 殷圣鸽

    Version: 3.0
    Build Time: 2004 - 4

    Maintain Time: 2005-5-14
    Maintain Time: 2005-5-19  
*/

extern void  SGCHNinit();
extern char  *getsgchnversion();   /*获得SGCHN版本*/  
extern int   scanformat(char *formats, ...);    /*控制台格式输入  与scanf类似*/
extern int   print(char *formats,...);          /*控制台格式输出  与printf类似*/
extern int   *getsforcon(char *string);         /*从控制台读入一行字符串,存入string*/
extern char  getcharforcon();                 /*从控制台读入一个字符.回显*/
extern int   putsforcon(char *string);             /*控制台输出一行字符*/
extern int   saveconsole(const char *filename);
extern int   sgchnquikstart();  /*SGCHN系统快速启动.*/


#endif
再说明一下 ,函数: saveconsole(const char *filename) 可以将控制台的内容保存到 文件: filename中
changeconsolesize(int size);
*/
程序:
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
#define N 15
typedef struct node
{
long num;
char name[N];
char sex[3];
int age;
char dept[N];
char class[4];
struct node *next;
}link;
link *L,*head;
int num;
void create_linklist()
{
char ch;
link *new;
head=(link *)malloc(sizeof(link));
head->next=NULL;
num=0;
while(1)
{
  new=(link *)malloc(sizeof(link));
       if(!new)
       {
        print("overflow!");
       exit(0);
       }
       print("\n输入第%d个学生的信息:",num+1);
       print("\n学号:");
       scanformat("%ld",&new->num);
       print("\n姓名:");
       scanformat("%s",new->name);
       print("\n性别:");
       scanformat("%s",new->sex);
       print("\n年龄:");
       scanformat("%d",&new->age);
       print("\n所在系:");
       scanformat("%s",&new->dept);
       print("\n班级:");
       scanformat("%s",&new->class);
       new->next=head->next;
       head->next=new;
       num++;
       print("\n继续?Y or N?:");
       scanformat("%c",&ch);
       if(ch=='N'||ch=='n')
       break;
}
L=head->next;
print("\n 成功的创建了学生信息表!\n");
}
void output_linklist()
{
   int i=num;
   print("\n此刻学生信息表中学生信息:\n");
   while(i>0)
   {
        print("\n第%d个学生的信息:",i);
        print("\n 学号:");
        print("%ld",L->num);
        print("\n 姓名:");
        print("%s",L->name);
        print("\n 性别:");
       print("%s",L->sex);
        print("\n 年龄:");
        print("%d",L->age);
        print("\n所在的系:");
        print("%s",L->dept);
        print("\n所在的班级:");
        print("%s",L->class);
        i--;
        L=L->next;
   }
L=head->next;
}
void insert_list()
{
int n,i=1;
link *new;
print("\n你想在哪个记录之前插入新的记录 :");
scanformat("%d",&n);
while(n>num||n<0)
{
print("\n非法输入,请重新输入:");
scanformat("%d",&n);
}
while(i<n-1)
{
L=L->next;
i++;
}
new=(link *)malloc(sizeof(link));
if(!new)
  {
  print("溢出!");
  exit(0);
  }
print("\n 请输入学生的信息:\n");
print("\n学号:");
scanformat("%ld",&new->num);
print("\n姓名:");
scanformat("%s",new->name);
print("\n性别:");
scanformat("%s",&new->sex);
print("\n年龄:");
scanformat("%d",&new->age);
print("\n所在系:");
scanformat("%s",new->dept);
print("\n所在班级:");
scanformat("%s",new->class);
new->next=L->next;
L->next=new;
print("已成功的加入了一个新的记录!\n");
num++;
L=head->next;
}
void delete_linklist()
{
link *q,*p;
int i,j=1;
print("\n你想删除哪个学生的信息:");
scanformat("%d",&i);
while(i>num||i<0)
{
print("\n输入格式错误,请重新输入!");
scanformat("%d",&i);
}
while(j<i-1)
{
L=L->next;
j++;
}
q=L;
p=L->next;
q->next=q->next->next;
free(p);
print("\n你已经成功的删除了该生的记录!\n");
num--;
L=head->next;
}
void show_menu()
{
print("\n====================================================");
print("\n1.显示表中的信息");
print("\n2.加入一个学生的信息");
print("\n3.删除学生的信息");
print("\n4.退出");
print("\n====================================================\n");
}

main()
{
int choice;
print("\n 现在的学生表是空的,开始创建学生表,请稍等.........");
sleep(6);
create_linklist();
show_menu();
while(1)
{
print("请选择你的操作:");
scanformat("%d",&choice);
     switch(choice)
       {
          case 1:
                     output_linklist();
                     break;
          case 2:
                      insert_list();
                      break;
         case 3:
                      delete_linklist();
                      break;
        case 4:
          saveconsole("student.txt");
                      exit(0);       
        default:
                   print("\n错误的输入!");
                   break;
      }
print("\n\n");
show_menu();
}


}

阅读(4247) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册