C語言綜合實驗 四 之計費管理系統的鍊錶基本操作

2021-09-11 22:13:44 字數 3364 閱讀 8511

(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命令列模式簡...