void showRecord() { printf("请输入要查询的学生学号:"); int targetId,i; scanf("%d",&targetId); int foundCount=0; for(i=0;i<studentCount;i++) { if(students[i].id==targetId) { printf("学号:%d,姓名:%s,成绩:%d %d %d,平均成绩:%.2f\n",students[i].id,students[i].name,students[i].scores[0],students[i].scores[1],students[i].scores[2],students[i].average); foundCount++; } } if (foundCount==0) { printf("未找到匹配的成绩!\n"); } else { printf("共找到%d条匹配的成绩!\n",foundCount); } }的算法思想
时间: 2023-07-15 20:10:53 浏览: 173
该函数是一个查询学生成绩的函数,其算法思想如下:
1. 首先让用户输入要查询的学生学号。
2. 然后遍历所有的学生记录,查找学号与目标学号相同的学生记录。
3. 如果找到了符合条件的学生记录,输出该学生的学号、姓名、三科成绩和平均成绩,并将找到的记录数 foundCount 加 1。
4. 如果没有找到符合条件的学生记录,则输出提示信息“未找到匹配的成绩!”。
5. 如果找到了符合条件的学生记录,则输出找到的记录数“共找到 x 条匹配的成绩!”。
相关问题
int main() { int m; login(); while (1) { system("cls"); menu(); printf("\n请输入您的选择:"); scanf("%d",&m); switch (m) { case 1:system("cls");addRecord();break; case 2:system("cls");insertRecord();break; case 3:system("cls");showRecord();break; case 4:system("cls");modifyRecord();break; case 5:system("cls");deleteRecord();break; case 6:system("cls");statistics();break; case 7:system("cls");sortRecords();break; case 8:system("cls");listRecords();break; case 9:inputfile();break; case 10:outputfile();break; case 11:system("cls");exitSystem();break; default:printf("无效的选择!\n");break; } system("pause"); } return 0; }的算法思想
这段代码是一个简单的菜单驱动程序,主要用于管理一个记录系统。程序首先调用 login() 函数,要求用户进行登录。然后进入一个无限循环,每次循环都会清空屏幕并显示一个菜单。用户可以输入数字选择菜单中的选项。每个选项都对应着程序中的一个函数,包括添加记录、插入记录、显示记录、修改记录、删除记录、统计记录、排序记录、列出记录、输入文件和输出文件等各种操作。选择相应的选项后程序会执行相应的函数,并在最后暂停一下,等待用户按下任意键继续。当用户选择退出系统时,程序会调用 exitSystem() 函数退出整个程序。
C语言代码班费收支管理系统,用C语言编写。它具备以下功能: 输入信息:可以输入收入和支出的信息,包括日期、金额、类型、备注等。 删改信息:可以对已经输入的信息进行修改和删除操作。 按收支时间查询信息:可以按照指定时间范围内的收支信息进行查询。 展示信息并计算余额:可以展示所有收支信息,并且能够计算余额。系统会根据输入的信息自动计算当前余额,并在每次添加或修改信息时更新余额。
好的,以下是一个简单的班费收支管理系统的C语言代码,实现了上述功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个结构体来存储收支信息
struct Record {
char date[20]; // 日期
char type[20]; // 类型
float amount; // 金额
char note[100]; // 备注
struct Record *next; // 指向下一个节点的指针
};
// 添加收支记录
void addRecord(struct Record **head, char *date, char *type, float amount, char *note) {
struct Record *newRecord = (struct Record*) malloc(sizeof(struct Record));
strcpy(newRecord->date, date);
strcpy(newRecord->type, type);
newRecord->amount = amount;
strcpy(newRecord->note, note);
newRecord->next = NULL;
if (*head == NULL) {
*head = newRecord;
} else {
struct Record *p = *head;
while (p->next != NULL) {
p = p->next;
}
p->next = newRecord;
}
}
// 删除收支记录
void deleteRecord(struct Record **head, int index) {
struct Record *p = *head;
if (index == 0) {
*head = p->next;
free(p);
} else {
for (int i = 0; i < index - 1; i++) {
p = p->next;
}
struct Record *temp = p->next;
p->next = temp->next;
free(temp);
}
}
// 修改收支记录
void modifyRecord(struct Record **head, int index, char *date, char *type, float amount, char *note) {
struct Record *p = *head;
for (int i = 0; i < index; i++) {
p = p->next;
}
strcpy(p->date, date);
strcpy(p->type, type);
p->amount = amount;
strcpy(p->note, note);
}
// 查询收支记录
void searchRecord(struct Record *head, char *start, char *end) {
printf("日期\t\t类型\t\t金额\t\t备注\n");
struct Record *p = head;
while (p != NULL) {
if (strcmp(p->date, start) >= 0 && strcmp(p->date, end) <= 0) {
printf("%s\t%s\t%.2f\t%s\n", p->date, p->type, p->amount, p->note);
}
p = p->next;
}
}
// 显示所有收支记录和余额
void showRecord(struct Record *head) {
float balance = 0;
printf("日期\t\t类型\t\t金额\t\t备注\n");
struct Record *p = head;
while (p != NULL) {
printf("%s\t%s\t%.2f\t%s\n", p->date, p->type, p->amount, p->note);
balance += p->amount;
p = p->next;
}
printf("当前余额为%.2f元\n", balance);
}
int main() {
struct Record *head = NULL;
// 添加测试数据
addRecord(&head, "2022-01-01", "收入", 1000, "红包");
addRecord(&head, "2022-01-02", "支出", 500, "买书");
addRecord(&head, "2022-01-03", "支出", 200, "吃饭");
// 显示所有记录和余额
showRecord(head);
// 查询2022年1月的记录
printf("\n2022年1月的记录:\n");
searchRecord(head, "2022-01-01", "2022-01-31");
// 删除第二条记录
deleteRecord(&head, 1);
// 显示所有记录和余额
printf("\n删除一条记录后的余额:\n");
showRecord(head);
// 修改第一条记录
modifyRecord(&head, 0, "2022-01-05", "收入", 2000, "工资");
// 显示所有记录和余额
printf("\n修改一条记录后的余额:\n");
showRecord(head);
return 0;
}
```
以上代码是一个简单的班费收支管理系统,可以进行收支记录的添加、删除、修改、查询和展示等操作,并且能够自动计算余额。
阅读全文