請求各位大佬支支招,新入門學的還不是很好,
原題目要求是:1. 利用教材中定義順序表型別存盤病人病歷資訊(病歷號,姓名,癥狀);要求使用頭檔案。
2.設計順序表定位查找演算法,寫成一個函式,完成的功能為:在線性表L中查找資料元素x,如果存在則回傳線性表中和x值相等的第1個資料元素的序號;如果不存在,則回傳-1。
函式定義為 int ListFind(SequenceList L,char *x)
請在主函式中測驗查找是否存在姓名為x的病人,并根據回傳的序號列印出病人資訊。
這個設計順序表定位查找演算法那里實在是改不好,還想請各位大佬麻煩幫忙看看。
#include<stdio.h>
#include<string.h>
#define MaxSize 100
typedef struct {
int num[100];//病歷號 ;
char name[10];// 名字 ;
char Symptom[10];//診斷;
int length;
}patient;
void Insert(patient &L);
int ListFind(patient L,char *x);
int main(void){
patient L;
L.length=0;
int i;
char name[10];
Insert(L);
if(ListFind(L,name)<0){
printf("查無此人");
}
else {
i=ListFind(L,name);
printf("病歷號:%d\n",L.num[i]);
printf("姓名:%s\n",L.name[i]);
printf("癥狀:%s\n",L.Symptom[i]);
}
return 0;
}
void Insert(patient L)
{
int n;
printf("請輸入要登記的病人數目:\n");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("病歷號:");
scanf("%d",&L.num[i]);
printf("姓名:");
scanf("%s",&L.name[i]);
printf("癥狀:");
scanf("%s",&L.Symptom[i]);
printf("\n");
}
}
int ListFind(patient L,char *x)
{
int i,flog=0;
for(i=0;i<MaxSize;i++){
if(strcmp(L.name[i],x)==0){
flog=1;
break;
}
}
if(flog==1)
return i;
else
return -1;
}
如果可以的話,還想請大佬幫忙,寫個用頭檔案的代碼。
以下是頭檔案“Sequencelist.h"
#include<stdio.h>
#define MaxSize 100
typedef struct{
ElemType list[MaxSize];
int size;
}SequenceList;
void ListInitialize(SequenceList *L)
{
L->size=0;
}
int ListLength(SequenceList L)
{
return L.size;
}
int ListInsert(SequenceList *L,int i,ElemType x)
{
int j;
if(L->size>=MaxSize)
{
printf("順序表已滿無法查入!\n");
return 0;
}
else if(i<0||i>L->size)
{
printf("引數i不合法!\n");
return 0;
}
else{
for(j=L->size;j>i;j--)
L->list[j]=L->list[j-1];
L->list[i]=x;
L->size++;
return 1;
}
}
int ListDelete(SequenceList *L,int i,ElemType *x)
{
int j;
if(L->size<=0){
printf("順序表已空無資料元素可刪!\n");
return 0;
}
else if(i<0||i>L->size-1){
printf("引數i不合法");
return 0;
}
else{
*x=L->list[i];
for(j=i+1;j<=L->size-1;j++)
L->list[j-1]=L->list[j];
L->size--;
return 1;
}
}
int ListGet(SequenceList L,int i,ElemType *x)
{
if(i<0||i>L.size-1){
printf("引數i不合法");
return 0;
}
else{
*x=L.list[i];
return 1;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/114539.html
標籤:C++ 語言
上一篇:代碼分析
