用C语言设计一个学生一卡通账户系统 主要功能:开户、注销、存款、查询、修改个人信息 系统功能说明:个人账户信息包括:卡号、姓名、身份证号或学号、手机号码、专业、登录密码(字母、数字的组合,至少8-16位

时间: 2023-08-31 12:46:04 浏览: 66
好的,以下是一个简单的学生一卡通账户系统的C语言代码示例,包括开户、注销、存款、查询和修改个人信息功能。请注意,此示例仅供参考,实际应用中还需要进行更多的优化和错误处理。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 // 最大账户数 #define MAX_PASSWORD_LENGTH 16 // 密码最大长度 // 学生账户结构体 typedef struct { char card_number[20]; // 卡号 char name[20]; // 姓名 char id_number[20]; // 身份证号或学号 char phone_number[20]; // 手机号码 char major[20]; // 专业 char password[MAX_PASSWORD_LENGTH + 1]; // 登录密码 int balance; // 余额 int valid; // 是否有效 } StudentAccount; StudentAccount accounts[MAX_ACCOUNTS]; // 存储所有账户的数组 int num_accounts = 0; // 当前账户数 // 显示菜单 void show_menu() { printf("请选择功能:\n"); printf("1. 开户\n"); printf("2. 注销\n"); printf("3. 存款\n"); printf("4. 查询\n"); printf("5. 修改个人信息\n"); printf("6. 退出\n"); } // 生成新卡号 void generate_card_number(char *card_number) { sprintf(card_number, "SC%06d", num_accounts + 1); } // 开户 void open_account() { if (num_accounts >= MAX_ACCOUNTS) { printf("账户已满,无法开户!\n"); return; } StudentAccount account; memset(&account, 0, sizeof(account)); printf("请输入姓名:"); scanf("%s", account.name); printf("请输入身份证号或学号:"); scanf("%s", account.id_number); printf("请输入手机号码:"); scanf("%s", account.phone_number); printf("请输入专业:"); scanf("%s", account.major); printf("请输入登录密码:"); scanf("%s", account.password); account.balance = 0; account.valid = 1; generate_card_number(account.card_number); accounts[num_accounts] = account; num_accounts++; printf("开户成功!您的卡号是:%s\n", account.card_number); } // 注销 void close_account() { char card_number[20]; printf("请输入要注销的卡号:"); scanf("%s", card_number); for (int i = 0; i < num_accounts; i++) { if (strcmp(accounts[i].card_number, card_number) == 0) { accounts[i].valid = 0; printf("注销成功!\n"); return; } } printf("未找到该卡号!\n"); } // 存款 void deposit() { char card_number[20]; int money; printf("请输入卡号:"); scanf("%s", card_number); printf("请输入存款金额:"); scanf("%d", &money); for (int i = 0; i < num_accounts; i++) { if (strcmp(accounts[i].card_number, card_number) == 0) { accounts[i].balance += money; printf("存款成功!您的余额是:%d\n", accounts[i].balance); return; } } printf("未找到该卡号!\n"); } // 查询 void query() { char card_number[20]; printf("请输入卡号:"); scanf("%s", card_number); for (int i = 0; i < num_accounts; i++) { if (strcmp(accounts[i].card_number, card_number) == 0) { printf("卡号:%s\n", accounts[i].card_number); printf("姓名:%s\n", accounts[i].name); printf("身份证号或学号:%s\n", accounts[i].id_number); printf("手机号码:%s\n", accounts[i].phone_number); printf("专业:%s\n", accounts[i].major); printf("余额:%d\n", accounts[i].balance); return; } } printf("未找到该卡号!\n"); } // 修改个人信息 void modify_information() { char card_number[20]; printf("请输入卡号:"); scanf("%s", card_number); for (int i = 0; i < num_accounts; i++) { if (strcmp(accounts[i].card_number, card_number) == 0) { printf("请输入新的手机号码:"); scanf("%s", accounts[i].phone_number); printf("请输入新的专业:"); scanf("%s", accounts[i].major); printf("请输入新的登录密码:"); scanf("%s", accounts[i].password); printf("修改成功!\n"); return; } } printf("未找到该卡号!\n"); } int main() { int choice; while (1) { show_menu(); scanf("%d", &choice); switch (choice) { case 1: open_account(); break; case 2: close_account(); break; case 3: deposit(); break; case 4: query(); break; case 5: modify_information(); break; case 6: printf("再见!\n"); exit(0); default: printf("无效的选择!\n"); break; } } return 0; } ```

相关推荐

最新推荐

recommend-type

C语言数组实现学生信息管理系统设计

主要为大家详细介绍了C语言数组实现学生信息管理系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

C语言程序设计实现区号查询系统C语言程序设计实现

用C语言编程的区号查询系统,要求实现区号查询系统中,添加新记录、删除记录、显示记录信息、按城市查找信息和退出系统等功能。 ①录入有关城市的名称和区号。 ②显示所有城市的信息。 ③通过输入城市名称查找对应...
recommend-type

C语言实现学生选修课程系统设计

主要为大家详细介绍了C语言实现学生选修课程系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

C语言课程设计报告学生管理信息系统设计

设计该程序是为了实现更简洁的学生信息管理,满足管理学生学号、姓名和成绩等信息的要求。 系统具体功能如下: (1)输入记录 ——输入的记录包括:学生学生证号、姓名、成绩; (2)显示记录 ——显示所有以上输入...
recommend-type

职工信息管理系统 c语言程序设计报告

一、程序功能……………………………………………2 二、设计要求……………………………………………3 三、总体设计方案 3.1系统的总体流程图…………………………………3 3.2系统结构(全局类型定义)………………...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB图像处理算法宝典:从理论到实战

![MATLAB图像处理算法宝典:从理论到实战](https://img-blog.csdnimg.cn/20200717112736401.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1emhhbzk5MDE=,size_16,color_FFFFFF,t_70) # 1. MATLAB图像处理基础理论 MATLAB图像处理是一种利用MATLAB编程语言进行图像处理的强大工具。它提供了丰富的函数和工具箱,用于图像获取、增强、分
recommend-type

matlab中1/x的非线性规划

在MATLAB中,可以使用非线性规划函数(`fmincon`)来优化一个包含1/x的非线性目标函数。下面是一个简单的例子: ```matlab % 定义目标函数 fun = @(x) 1/x; % 定义约束函数(这里没有约束) nonlcon = []; % 定义初始点 x0 = 1; % 定义优化选项 options = optimoptions('fmincon', 'Display', 'iter'); % 进行非线性规划 [x, fval] = fmincon(fun, x0, [], [], [], [], [], [], nonlcon, options); ``` 在
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。