/*学生证管理系统源程序*/
/*头文件包含*/
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <malloc.h>
#include <process.h>
#include <stdlib.h>
#define NULL 0
/*定义学生类型的结构体变量*/
typedef struct z1
{
char num[20]; //学号
char name[20]; //姓名
char gender[10]; //性别
char birth[20]; //籍贯
char college[20]; //学院
char class_[20]; //班级
struct z1 *next; //学生类型指针
}STUDENT;
#define LEN sizeof(STUDENT)
/*函数声明*/
void delay(int x); //延迟函数
int menu_select(); //菜单选择函数
STUDENT *create(void); //创建函数
STUDENT *add(STUDENT *head); //添加函数
STUDENT *search(STUDENT *head); //查找函数
STUDENT *del(STUDENT *head); //删除函数
STUDENT *modify(STUDENT *head); //修改函数
STUDENT *count(STUDENT *head); //统计函数
void *save(STUDENT *head);
int n; //定义全局变量,用以统计学生人数
void main()
{
int m;
STUDENT *p;
p=NULL;
printf("\n\n\n\n\n\n\n\n");
printf(" ************************\n");
printf(" *欢迎使用学生证管理系统*\n");
printf(" ************************\n");
printf("\n");
printf(" 按Enter键继续...");
getchar();
system("cls");
for(;;)
{ m=menu_select();
switch(m)
{
case 1: {system("cls");p=create();system("cls");} break;
case 2: {system("cls");p=add(p);system("cls");} break;
case 3: {system("cls");p=search(p);system("cls");} break;
case 4: {system("cls");p=modify(p);system("cls");} break;
case 5: {system("cls");p=del(p);system("cls");} break;
case 6: {system("cls");p=count(p);system("cls");} break;
case 7: {system("cls");save(p);system("cls");} break;
case 0: exit(0);break;
}
}
}
void delay(int x)
{
time_t a1;
time_t a2;
// 得到开始时间
time(&a2);
do
{
time(&a1);
}
while ((a1 - a2) < x);
}
int menu_select()
{
int c;
char s[10];
printf("********菜单*******\n");
printf(" 1. 创建学生信息 \n");
printf(" 2. 添加学生信息 \n");
printf(" 3. 查找学生信息 \n");
printf(" 4. 修改学生信息 \n");
printf(" 5. 删除学生信息 \n");
printf(" 6. 统计学生信息 \n");
printf(" 7. 保存学生信息 \n");
printf(" 0. 退出 \n");
printf("*******************\n");
do{
printf("\n请输入菜单选择:");
scanf("%s",s);
c=atoi(s);
}while(c<0||c>7);
return(c);
}
STUDENT *create(void)
{
STUDENT *head,*p1,*p2;
n=0;
int i;
p1=p2=(STUDENT *)malloc(LEN);
printf("请输入要创建的学生人数:\n");
scanf("%d",&i);
printf("请输入学生信息:\n");
printf("学号|姓名|性别|籍贯|学院|班级\n");
head=NULL;
while(n!=i)
{ scanf("%s%s%s%s%s%s",&p1->num,&p1->name,&p1->gender,&p1->birth,&p1->college,&p1->class_);
n++;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(STUDENT *)malloc(LEN);
}
p2->next=NULL;
printf("创建完毕!\n按Enter键返回主菜单...\n");
getchar();
getchar();
return head;
}
STUDENT *add(STUDENT *head)
{
STUDENT *p0,*p1,*p2;
p1=head;
if(head==NULL)
printf("请先创建学生信息!\n");
else
{
p0=(STUDENT *)malloc(LEN);
printf("学号:");
scanf("%s",&p0->num);
printf("姓名:");
scanf("%s",&p0->name);
printf("性别:");
scanf("%s",&p0->gender);
printf("籍贯:");
scanf("%s",&p0->birth);
printf("学院:");
scanf("%s",&p0->college);
printf("班级:");
scanf("%s",&p0->class_);
while(p1!=NULL)
{
p2=p1;
p1=p1->next;
}
p2->next=p0;
p0->next=NULL;
n++;
printf("添加完毕!\n");
}
printf("\n");
printf("按Enter键返回主菜单...\n");
getchar();
getchar();
return(head);
}
STUDENT *search(STUDENT *head)
{
STUDENT *p1,*p2;
int flag=0;
char num[20];
p1=head;
if(head==NULL)
printf("请先创建学生信息!\n");
else
{
printf("请输入学号:\n");
scanf("%s",num);
while(p1!=NULL)
{
if(strcmp(num,p1->num)==0)
{
printf("已找到该学生信息:\n");
printf("学号: %s\n",&p1->num);
printf("姓名: %s\n",&p1->name);
printf("性别: %s\n",&p1->gender);
printf("籍贯: %s\n",&p1->birth);
printf("学院: %s\n",&p1->college);
printf("班级: %s\n",&p1->class_);
flag=1;
break;
}
p1=p1->next;
p2=p1;
}
if(flag==0)
printf("未找到该学生的信息!\n");
}
printf("\n");
printf("按Enter键返回主菜单...\n");
getchar();
getchar();
return(head);
}
STUDENT *modify(STUDENT *head)
{
STUDENT *p1,*p2;
char num[20];
int flag=0;
p1=head;
if(head==NULL)
printf("请先创建学生信息!\n");
else
{
printf("请输入要修改的学号:\n");
scanf("%s",num);
while(p1!=NULL)
{
if(strcmp(num,p1->num)==0)
{
printf("已找到该学生信息:\n");
printf("学号: %s\n",&p1->num);
printf("姓名: %s\n",&p1->name);
printf("性别: %s\n",&p1->gender);
printf("籍贯: %s\n",&p1->birth);
printf("学院: %s\n",&p1->college);
printf("班级: %s\n",&p1->class_);
printf("请输入要修改的学生信息:\n");
printf("学号:");
scanf("%s",&p1->num);
printf("姓名:");
scanf("%s",&p1->name);
printf("性别:");
scanf("%s",&p1->gender);
printf("籍贯:");
scanf("%s",&p1->birth);
printf("学院:");
scanf("%s",&p1->college);
printf("班级:");
scanf("%s",&p1->class_);
printf("修改完毕!\n");
flag=1;
break;
}
p1=p1->next;
p2=p1;
}
if(flag==0)
printf("未找到该学生的信息!\n");
}
printf("\n");
printf("按Enter键返回主菜单...\n");
getchar();
getchar();
return(head);
}
STUDENT *del(STUDENT *head)
{
STUDENT *p1,*p2;
char num[20];
p1=head;
if(head==NULL)
printf("请先创建学生信息!\n");
else
{
printf("请输入要删除的学生学号:\n");
scanf("%s",num);
while(strcmp(num,p1->num)!=0&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(strcmp(num,p1->num)==0)
{
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("删除完毕!\n");
n=n-1;
}
else
printf("未找到该学生信息!\n");
}
printf("\n");
printf("按Enter键返回主菜单...\n");
getchar();
getchar();
return(head);
}
STUDENT *count(STUDENT *head)
{
STUDENT *p1,*p2;
p1=head;
int m,i=0,flag=0;
char college[20],class_[20],birth[20];
if(head==NULL)
printf("请先创建学生信息!\n");
else
{
printf("****统计功能菜单****\n");
printf(" 1.按学院\n");
printf(" 2.按班级\n");
printf(" 3.按籍贯\n");
printf(" 4.人数统计\n");
printf("********************\n");
while(m<1||m>4)
{
printf("请输入菜单选择:");
scanf("%d",&m);
}
switch(m)
{
case 1:{
printf("请输入学院全称:\n");
scanf("%s",college);
while(p1!=NULL)
{
if(strcmp(college,p1->college)==0)
{
printf("%s|%s|%s|%s|%s|%s\n",&p1->num,&p1->name,&p1->gender,&p1->birth,&p1->college,&p1->class_);
flag=1;
}
p1=p1->next;
p2=p1;
}
if(flag==0)
printf("未找到该院学生信息:!\n");
} break;
case 2:{
printf("请输入班级名称\n");
scanf("%s",class_);
while(p1!=NULL)
{
if(strcmp(class_,p1->class_)==0)
{
printf("%s|%s|%s|%s|%s|%s\n",&p1->num,&p1->name,&p1->gender,&p1->birth,&p1->college,&p1->class_);
flag=1;
}
没有合适的资源?快使用搜索试试~ 我知道了~
C语言实现的学生证管理系统(DOS界面)
共2个文件
exe:1个
c:1个
4星 · 超过85%的资源 需积分: 11 17 下载量 115 浏览量
2010-05-16
21:57:18
上传
评论 1
收藏 39KB RAR 举报
温馨提示
用纯C实现的DOS界面下的学生证管理系统,包含一个.c文件和一个.exe文件,供广大C语言的初学者参考。
资源推荐
资源详情
资源评论
收起资源包目录
C语言学生证管理系统.rar (2个子文件)
Student_Card
student_card.exe 184KB
student_card.c 9KB
共 2 条
- 1
资源评论
- 常青的日子2012-04-09只实现了基本功能,无亮点,界面过于简单
- ktdebug2014-06-16界面过于简单
polee008
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功