xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 4KB
    文件類型: .cpp
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-06-18
  • 語言: C/C++
  • 標(biāo)簽: 算法??

資源簡介

首先,逐行讀取指定文件中的數(shù)據(jù),并進(jìn)行解析后保存在順序表中。其中,文件中每行數(shù)據(jù)格式為“學(xué)號,姓名,年齡”,比如“SA10225048,[yyw1] 張三,24”。 (提示:采用順序表結(jié)構(gòu)時(shí),順序表中每個(gè)表元素包含三類信息:學(xué)號,姓名,和年齡;采用單鏈表結(jié)構(gòu)時(shí),單鏈表中每個(gè)結(jié)點(diǎn)的數(shù)據(jù)域包含三類信息:學(xué)號,姓名,和年齡。) 再,根據(jù)鍵盤輸入進(jìn)行相關(guān)操作(查找,刪除和插入)。比如,若鍵盤輸入為“P3”,則表示打印出第3項(xiàng)的信息(注意:采用順序表結(jié)構(gòu)時(shí),第3項(xiàng)數(shù)據(jù)對應(yīng)下標(biāo)為2的表元素;采用單鏈表結(jié)構(gòu)時(shí),第3項(xiàng)數(shù)據(jù)對應(yīng)鏈表中第3個(gè)結(jié)點(diǎn)的信息;);若鍵盤輸入為“D3”,則表示刪除第3個(gè)表元素;若鍵盤輸入為“I3,SA10225038,張四,24”,則表示在第3項(xiàng)前插入一個(gè)學(xué)生的信息(SA10225038,張四,24)。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include

typedef?struct?ListNode?{ //定義結(jié)構(gòu)體
char?*id;
char?*name;
char?*age;
ListNode?*Next;????????//????指向下一個(gè)鏈表節(jié)點(diǎn)
}Node?*PNode;

void?readfile(PNode?L?int?*m){
PNode?p?q;
q?=?L;
int?i;
FILE?*fp;
char?buffer[30]; //buffer數(shù)組存放讀取文件的每一條信息
q?=?L;?//讀入第一條數(shù)據(jù)
if?((fp?=?fopen(“Lab1test.DAT“?“r“))?==?NULL) //?打開文件并且讓fp指向文件?
{
printf(“Can?not?open?file\n“);
}
while?(!feof(fp)){ //當(dāng)文件未結(jié)束時(shí)執(zhí)行
p?=?(PNode)malloc(sizeof(Node));

if?(fgets(buffer?30?fp)?==?NULL)
break;
buffer[strlen(buffer)?-?1]?=?‘\0‘;
int?count?=?0;
for?(i?=?0;?buffer[i]?!=?‘‘;?i++){ //count記錄每個(gè)結(jié)點(diǎn)應(yīng)該分配的大小
count++;
}

p->id?=?(char*)malloc(sizeof(char)*(count?+?1));
buffer[i++]?=?‘\0‘;
strcpy(p->id?buffer);

count?=?0;
for?(;?buffer[i]?!=?‘‘;?i++){
count++;
}
p->name?=?(char*)malloc(sizeof(char)*(count?+?1));
buffer[i++]?=?‘\0‘;
strcpy(p->name?&buffer[i?-?count?-?1]);
p->age?=?(char*)malloc(sizeof(char)*(count?+?1));
strcpy(p->age?&buffer[i]);

q->Next?=?p; //將p插入鏈表的末尾
q?=?q->Next; //q指針后移
(*m)++; //信息條數(shù)+1
}
q->Next?=?NULL;
}

void?PrintList(PNode?L){
PNode?p;
p?=?L->Next;
int?count?=?1;
//printf(“%-15s%-10s%-5s\n“?“學(xué)號“?“姓名“?“年齡“);
while?(p?!=?NULL){
printf(“第%d項(xiàng):學(xué)號%s?姓名%s年齡%s\n“?countp->id?p->name?p->age);
count++;
p?=?p->Next;

}
}
void?DelNode(PNode?L?int?c){
PNode?p?q;
p?=?L;

for?(int?i?=?0;?i {
p?=?p->Next;
}
q?=?p->Next;
p->Next?=?p->Next->Next;
free(q);
PrintList(L);
}

void?InsertNode(PNode?L?int?c){
int?i?count=0;
PNode?p?q;
p?=?L;
char?a[30];

//printf(“請輸入插入信息:\n“);
scanf(“%s“?a);
q?

評論

共有 條評論