(1)定義鍊錶
(2)插入操作
將值為x的新結點插入到鍊錶中。先檢查插入位置的合法性,然後找到待插入位置的前驅結點,再在其後插入新結點。
(3)查詢操作
在鍊錶中查詢值為x的結點,首先要判斷鍊錶是否為空,不為空時利用指標p順指標向後查詢,直到查詢到值為x的結點,則查詢成功;如果走到鏈尾p為null,則查詢失敗。
(4)刪除操作
要刪除鍊錶中的乙個結點,先查詢待刪除結點q的位置,令p指向待刪除結點的前驅,令p指向q的後驅,釋放q結點所占用的儲存空間。
沿用第一次的main.cpp
不用第三次的card_file.h,card_file.cpp,tool.h,tool.cpp
menu.h
選單標頭檔案
void outputmenu();
void add();
void query();
void del();
menu.cpp
選單原始檔
#define _crt_secure_no_warnings//消除scanf警告
#include"stdio.h"
#include"stdlib.h"
#include "string.h"
#include"menu.h"
#include"card.h"
//#include"card_file.h"
#include"time.h"
card *card = initial();
void outputmenu()
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
default:
} } while (1);
}void add()
char pwd[30];
printf("請輸入密碼(長度1-8):\n");
scanf("%s", pwd);
while (strlen(pwd) > 8)
float balance;
printf("請輸入開卡金額(人民幣):\n");
scanf("%f", &balance);
printf("新增卡的資訊如下:\n");
printf("卡號\t密碼\t狀態\t金額\n");
printf("%s\t%s\t0\t%.1f\n", no, pwd, balance);
addcard(card,no, pwd, balance);
int i;
printf("1.繼續新增\n");
printf("2.返回上級選單\n");
printf("0.退出\n");
scanf("%d", &i);
switch (i)
case 1:
case 2: }}
void query()
card *t = querycard(card,no);
printf("查詢卡的資訊如下:\n");
printf("卡號\t狀態\t餘額\t累計使用\t使用次數\t上次使用時間\n");
struct tm *p = localtime(&t->tlast);
printf("%s\t%d\t%.1f\t%.1f\t\t%d\t", t->aname, t->nstatus,t->fbalance,t->ftotaluse,t->nusecount);
printf("%4d-", p->tm_year + 1900);
printf("%02d-", p->tm_mon + 1);
printf("%02d ", p->tm_mday);
printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec);
int i;
printf("1.繼續查詢\n");
printf("2.返回上級選單\n");
printf("0.退出\n");
scanf("%d", &i);
switch (i)
case 1:
case 2: }}
void del()
if (delcard(card, no) == 1) printf("刪除成功!\n");
else printf("刪除失敗!\n");
int i;
printf("1.繼續刪除\n");
printf("2.返回上級選單\n");
printf("0.退出\n");
scanf("%d", &i);
switch (i)
case 1:
case 2:
}}
card.h
卡資訊標頭檔案
#ifndef card_h
#define card_h
typedef struct card card;
void addcard(card *card,char no,char pwd,float balance);
card* initial();
card* querycard(card *card,char no);
int delcard(card *card, char no);
card* showcard();
#endif
card.cpp
卡資訊原始檔
#define _crt_secure_no_warnings//消除scanf警告
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "card.h"
//#include "card_file.h"
#include "time.h"
void addcard(card *card,char no,char pwd,float balance)
card* initial()
card* querycard(card *card,char no)
} if(flag) return t;
else return null;
}int delcard(card *card, char no)
} return flag;}/*
card* showcard()
*/
C語言綜合實驗 二 之計費管理系統的資料結構設計
1 在 搭建程式框架 功能迭代上進行開發,資料設計。根據 計費管理系統 需求,分析出系統資料資訊包括 卡資訊 計費資訊 充值退費資訊 計費標準資訊 管理員資訊。對以上各類資訊做出相應的表設計。2 定義卡資訊變數。步驟一 直接定義卡資訊變數。根據資料設計內容定義卡資訊變數。步驟二 用結構體定義卡資訊。...
C語言綜合實驗2 長整數運算
1 實驗題目 長整型數運算,c中的long int所能表示的資料範圍有限,現要求程式設計完成超過long int所能表示的資料範圍以上的十進位制正的長整數的加法和乘法運算。1 int readlongint char x 此函式用於讀入乙個正的長整數到x中,函式返回長整數的實際長度 要求輸入時檢查所...
實驗四 Linux系統搭建C語言程式設計環境
專案 內容 這個作業屬於哪個課程 這個作業的要求在 學號 姓名 17041425 張少豪 作業學習目標 1.了解linux系統c語言程式設計環境 2.學習linux環境c語言開發步驟 1.2檢視gcc的版本資訊 1.3檢視make版本資訊 2.1首先我們通過man命令檢視幫助文件 2.2命令列模式簡...