/*第三方函数库 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();
}
}
正文
学生信息管理系统2005-09-21 23:50:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/wojiele/5088.html
阅读(8888) | 评论(3)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论