用C语言设计一个个人记事本,包括创建新记事本,登录记事本,登录已有记事本,显示余额,账单交易,取钱,存钱,保存记事本信息,退出记事本
时间: 2024-12-17 12:52:25 浏览: 3
在C语言中设计一个简单的个人记事本程序可以使用文件I/O操作和结构体来存储用户信息。这里是一个简化的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 用户数据结构
typedef struct {
char username[50];
float balance;
} User;
// 记事本数据结构
typedef struct {
char title[50];
char content[1000];
} Note;
void createUser(User* user) {
printf("请输入用户名:");
fgets(user->username, sizeof(user->username), stdin);
printf("请输入初始余额:");
scanf("%f", &user->balance);
}
void login(Note* note, User* user) {
char input[50];
printf("请输入用户名:");
fgets(input, sizeof(input), stdin);
// 暂时假设输入直接匹配用户名,实际应用应有更严谨的验证机制
if(strcmp(input, user->username) == 0) {
printf("欢迎 %s! 你的当前余额是 %.2f\n", user->username, user->balance);
} else {
printf("用户名错误!\n");
}
}
void addNote(Note* notes, User* user) {
char title[50], content[1000];
printf("请输入笔记标题:");
fgets(title, sizeof(title), stdin);
fgets(content, sizeof(content), stdin);
notes->title = title;
notes->content = content;
}
void saveNote(Note notes[], int index, User* user) {
FILE* file = fopen("notes.txt", "a+"); // 添加模式追加
fprintf(file, "%d. %s - %s\n", ++index, notes[index].title, notes[index].content);
fclose(file);
}
int main() {
User current_user;
Note notes[10]; // 假设最多保存10条笔记
// 创建新用户
createUser(¤t_user);
while(1) {
printf("\n请选择功能:\n1. 登录\n2. 显示余额\n3. 存款\n4. 取款\n5. 添加笔记\n6. 保存并查看笔记\n7. 退出\n");
int choice;
scanf("%d", &choice);
switch(choice) {
case 1: login(notes, ¤t_user); break;
case 2: printf("当前余额:%.2f\n", current_user.balance); break;
case 3: // 存款操作,略
case 4: // 取款操作,略
case 5: addNote(notes, current_user.balance, ¤t_user); break;
case 6: // 保存并查看笔记,略
case 7: return 0; // 退出
default: printf("无效选择,请重新尝试。\n");
}
}
return 0;
}
```
在这个示例中,我们仅实现了基本的功能,如创建用户、登录、添加笔记等。对于银行账户相关的操作(如存款、取款),需要额外的处理,例如检查用户的余额是否足够、更新余额等。另外,这个例子并没有包含读取已有的笔记内容,所以`login()` 和 `saveNote()` 中的注释部分需要根据实际需求来实现。
阅读全文