用c语言简单的写一个代码1. 信息输入:可以输入信息编号、信息标题、内容、作者、分类等信息,存入信息库中。要求支持多条信息输入。(循环结构) 2. 信息检索:可以按标题、作者、分类等信息进行检索,找到相关的信息条目输出全部信息。 3. 信息修改:可以修改已有的信息条目,修改信息包括标题、内容、作者、分类等。 4. 信息删除:可以根据标题删除已有的信息条目。 5. 信息统计:可以统计信息库中的信息总条数或者某个分类的条数。 6. 信息输出:可以输出所有信息或者某分类下所有的信息。信息以标题、内容、作者等形式整齐打印。
时间: 2024-04-04 16:29:03 浏览: 203
好的,以下是用C语言实现一个简单的信息管理系统的代码,包含了您提到的所有功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义信息结构体
typedef struct {
int id; // 信息编号
char title[50]; // 信息标题
char content[200]; // 信息内容
char author[20]; // 信息作者
char category[20]; // 信息分类
} Info;
#define MAX_COUNT 100 // 信息库最大容量
Info info_list[MAX_COUNT]; // 信息库数组
int info_count = 0; // 当前信息库中信息数量
// 信息输入函数
void input_info() {
printf("请输入信息编号: ");
scanf("%d", &info_list[info_count].id);
printf("请输入信息标题: ");
scanf("%s", info_list[info_count].title);
printf("请输入信息内容: ");
scanf("%s", info_list[info_count].content);
printf("请输入信息作者: ");
scanf("%s", info_list[info_count].author);
printf("请输入信息分类: ");
scanf("%s", info_list[info_count].category);
info_count++; // 信息数量 +1
}
// 根据标题查找信息
void search_by_title(char *title) {
int found = 0; // 是否找到信息
for (int i = 0; i < info_count; i++) {
if (strcmp(info_list[i].title, title) == 0) { // 找到了匹配的信息
found = 1;
printf("信息编号: %d\n", info_list[i].id);
printf("信息标题: %s\n", info_list[i].title);
printf("信息内容: %s\n", info_list[i].content);
printf("信息作者: %s\n", info_list[i].author);
printf("信息分类: %s\n", info_list[i].category);
}
}
if (!found) {
printf("未找到匹配的信息\n");
}
}
// 根据作者查找信息
void search_by_author(char *author) {
int found = 0; // 是否找到信息
for (int i = 0; i < info_count; i++) {
if (strcmp(info_list[i].author, author) == 0) { // 找到了匹配的信息
found = 1;
printf("信息编号: %d\n", info_list[i].id);
printf("信息标题: %s\n", info_list[i].title);
printf("信息内容: %s\n", info_list[i].content);
printf("信息作者: %s\n", info_list[i].author);
printf("信息分类: %s\n", info_list[i].category);
}
}
if (!found) {
printf("未找到匹配的信息\n");
}
}
// 根据分类查找信息
void search_by_category(char *category) {
int found = 0; // 是否找到信息
for (int i = 0; i < info_count; i++) {
if (strcmp(info_list[i].category, category) == 0) { // 找到了匹配的信息
found = 1;
printf("信息编号: %d\n", info_list[i].id);
printf("信息标题: %s\n", info_list[i].title);
printf("信息内容: %s\n", info_list[i].content);
printf("信息作者: %s\n", info_list[i].author);
printf("信息分类: %s\n", info_list[i].category);
}
}
if (!found) {
printf("未找到匹配的信息\n");
}
}
// 信息修改函数
void modify_info(char *title) {
int found = 0; // 是否找到信息
for (int i = 0; i < info_count; i++) {
if (strcmp(info_list[i].title, title) == 0) { // 找到了匹配的信息
found = 1;
printf("请输入新的信息标题: ");
scanf("%s", info_list[i].title);
printf("请输入新的信息内容: ");
scanf("%s", info_list[i].content);
printf("请输入新的信息作者: ");
scanf("%s", info_list[i].author);
printf("请输入新的信息分类: ");
scanf("%s", info_list[i].category);
}
}
if (!found) {
printf("未找到匹配的信息\n");
}
}
// 根据标题删除信息
void delete_info(char *title) {
int found = 0; // 是否找到信息
for (int i = 0; i < info_count; i++) {
if (strcmp(info_list[i].title, title) == 0) { // 找到了匹配的信息
found = 1;
for (int j = i; j < info_count - 1; j++) {
// 将后面的信息往前移动一个位置
info_list[j] = info_list[j + 1];
}
info_count--; // 信息数量 -1
printf("删除成功\n");
break;
}
}
if (!found) {
printf("未找到匹配的信息\n");
}
}
// 统计信息数量
void count_info(char *category) {
int count = 0; // 信息数量
if (category == NULL) { // 统计所有信息数量
count = info_count;
} else { // 统计指定分类的信息数量
for (int i = 0; i < info_count; i++) {
if (strcmp(info_list[i].category, category) == 0) { // 分类匹配
count++;
}
}
}
printf("信息数量为: %d\n", count);
}
// 输出信息库中所有信息
void print_info() {
for (int i = 0; i < info_count; i++) {
printf("信息编号: %d\n", info_list[i].id);
printf("信息标题: %s\n", info_list[i].title);
printf("信息内容: %s\n", info_list[i].content);
printf("信息作者: %s\n", info_list[i].author);
printf("信息分类: %s\n", info_list[i].category);
}
}
int main() {
int choice;
char title[50];
char author[20];
char category[20];
while (1) {
printf("\n请选择操作:\n");
printf("1. 输入信息\n");
printf("2. 按标题查找信息\n");
printf("3. 按作者查找信息\n");
printf("4. 按分类查找信息\n");
printf("5. 修改信息\n");
printf("6. 删除信息\n");
printf("7. 统计信息数量\n");
printf("8. 输出所有信息\n");
printf("0. 退出程序\n");
printf("请选择: ");
scanf("%d", &choice);
switch (choice) {
case 1: // 输入信息
input_info();
break;
case 2: // 按标题查找信息
printf("请输入信息标题: ");
scanf("%s", title);
search_by_title(title);
break;
case 3: // 按作者查找信息
printf("请输入信息作者: ");
scanf("%s", author);
search_by_author(author);
break;
case 4: // 按分类查找信息
printf("请输入信息分类: ");
scanf("%s", category);
search_by_category(category);
break;
case 5: // 修改信息
printf("请输入要修改的信息标题: ");
scanf("%s", title);
modify_info(title);
break;
case 6: // 删除信息
printf("请输入要删除的信息标题: ");
scanf("%s", title);
delete_info(title);
break;
case 7: // 统计信息数量
printf("请输入要统计的信息分类(不输入则统计所有信息数量): ");
scanf("%s", category);
count_info(category[0] == '\0' ? NULL : category);
break;
case 8: // 输出所有信息
print_info();
break;
case 0: // 退出程序
printf("程序已退出\n");
return 0;
default: // 非法选项
printf("非法选项,请重新选择\n");
break;
}
}
}
```
注意,这只是一个简单的实现,可能存在一些问题和不足,但可以帮助您更好地理解信息管理系统的基本实现方式。如果您需要更完善的功能或更严谨的代码,需要根据具体需求进行修改和完善。
阅读全文