数构实验一:编写小型的学生信息管理系统

编写小型的学生信息管理系统

实现以下功能:
(1)学生信息的初始化(建表)
(2)按条件查找某个学生
线索:新建一顺序表变量(此时,顺序表中无数据),将书中的查找代码作为函数来调用,此外,可将数据的输入单独编写为一个函数模块,在main()函数中调用输入、查找的函数,仔细思考函数如何调用,实参如何设置。

#include <stdio.h>
#include <string.h>
#define   MAXSIZE  100     //最大长度
#define   OK   1
#define   ERROR  -1
struct STU
{
	char id[10];
	char name[10];
};
typedef  struct {
  struct STU  elem[MAXSIZE];     //线性表占用的数组空间
  int  last;          //最后一个元素在数组中的位置,空表为-1                                                      
 }SeqList;

int  Locate(SeqList L,char key[])
{   int i=0 ;      /*i为扫描计数器,初值为0,即从第一个元素开始比较*/
    while ((i<=L.last)&&(strcmp(L.elem[i].name,key)!=0 ) )    i++;
        /*顺序扫描表,直到找到值为e的元素,或扫描到表尾而没找到*/
    if  (i<=L.last)  
         return(i+1);  /*若找到值为e的元素,则返回其序号*/
    else	
         return(-1);  /*若没找到,则返回空序号*/
}

void Create(SeqList *L)
{
	int i;
	printf("请输入学生总数:");
	scanf("%d",&L->last);
	L->last--;
	for(i=0;i<=L->last;i++)
	{
		printf("\n请输入第%d个学生的学号:",i+1);
		scanf("%s",L->elem[i].id);
		printf("\n请输入第%d个学生的姓名:",i+1);
		scanf("%s",L->elem[i].name);
	}
	printf("建表完毕!");
}

int main()
{
	SeqList L;
	char key[10];
	int pos;
	Create(&L);
	printf("请输入要查找的学生姓名:");
	scanf("%s",key);
	pos=Locate(L,key);
	if(pos==-1) printf("无该学生!");
	else printf("找到该生,其学号为%s",L.elem[pos-1].id);
	return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值