题目 1
(2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
.小明是一个计算机专业top student,祝贺他毕业了。并准备到银行参加工作。上班第一天,经理叫他编制一个实现一个活期储蓄处理程序,算作考查。上班第一天, 一定要给领导一个好印象,小明二话没说,就答应了。现要你是小明了,请完成如下题目功能。储户开户、销户、存入、支出活动频繁,系统设计要求:
(1)能比较迅速地找到储户的帐户,以实现存款、取款记账;
(2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
活期储蓄管理系统源代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LEN sizeof(struct Account)
#define RECORDCOUNT 5
#define MESSAGELENGTH 100
#define NAMELENGTH 100
#define VIEWCOUNT 5
#define DEFAULTBALANCE 0.00
#define SAVE 1
struct Account *head,*tail,*p; /*账户头部和尾部指针*/
struct Account
{
char name[NAMELENGTH]; /* 账户名称 */
float balance; /* 账户余额*/
char message[RECORDCOUNT][MESSAGELENGTH]; /* 交易记录 */
int maxMessageIndex;
struct Account *next; /* 指向下一账户 */
};
void freeMemory(); /*释放内存*/
void removeFirst(struct Account * account); /*移除第一个元素*/
void showMenu(); /*输出选择菜单*/
struct Account * findAccountByName(char name[]); /*通过账户名称找到对应的账户 */
void writeMessage(struct Account * account,char message[]); /* 写入交易记录 */
void init(); /* 创建链表,并返回表头指针 */
void openAccount(); /* 开户 */
void closeAccount(); /* 销户 */
void deposit(); /* 存款*/
void withdraw(); /* 取款 */
void transfer(); /* 转账 */
void print(); /*输出账户列表*/
void printMessage(); /*输出账户交易记录*/
int main()
{
init();
printf(" 欢迎使用活期储蓄管理系统\n");
showMenu();
char choice;
fflush(stdin);
choice = getchar();
while(choice != '8')
{
switch(choice)
{
case '1':
openAccount();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '2':
closeAccount();
showMenu();
fflush(stdin);
choice = getchar();
break;
case '3':