void rgUser() { char confPassword[20]; printf("请输入用户名:"); fflush(stdin); //清空缓存区 scanf_s("%s", cust.name); printf("请输入密码:"); fflush(stdin); //清空缓存区 scanf_S("%s", cust.password); printf("请确认密码:"); fflush(stdin); //清空缓存区 scanf_s("%s", &confPassword); if (strcmp(confPassword, cust.password) != 0) { printf("两次密码不相同,请重新输入密码\n"); } //判断密码是否相同 else { pFile = fopen("psMls.dat", "ab+");//ab+打开一个二进制文件,允许读和输入 if (pFile == NULL) { printf("文件打开失败"); system("pause"); //运行到这一行暂停,等用户按下任意键后继续执行程序 } rewind(pFile); //将指针指向文件的初始位置 if (fread(&tempUser, sizeof(struct customer), 1, pFile)) { fseek(pFile, -sizeof(struct customer), 2); fread(&tempUser, sizeof(struct customer), 1, pFile); cust.account = tempUser.account + 1; } else { cust.account = 0001; } fseek(pFile, 0, 2); fwrite(&cust, sizeof(struct customer), 1, pFile); printf("给您分配的账号是:%d\n", cust.account); system("pause"); fclose(pFile); } }
时间: 2024-04-21 20:29:44 浏览: 82
这段代码是一个注册用户的函数,它会提示用户输入用户名和密码,并确认密码是否一致。如果密码一致,它会打开一个二进制文件,检查文件中是否有已经注册的用户。如果有,会为新用户分配一个比最后一个用户账号号码加1的账号号码。如果没有已经注册的用户,会为新用户分配一个初始账号号码0001。最后,它会将新用户的信息写入二进制文件中,并显示给用户分配的账号号码。
相关问题
// 通过终点站查路线 void seek2() { char Name[20]; printf("\n\t输入终点站:"); scanf("%s", Name); int i; for (i = 0; i < line_number; i++) if (strcmp(l_List[i].TO, Name) == 0) { printf("班次信息\n"); printf("班次 发车时间 起点站 终点站 行车时间 额定载量 已订票人数\n"); printf("%-010d%-010s%-010s%-010s%-013.1f%-013d%-012d\n", l_List[i].Train_number, l_List[i].TIME, l_List[i].FROM, l_List[i].TO, l_List[i].Travel_time, l_List[i].Rated_seat, l_List[i].booked); printf("\n\n\t回车键返回"); fflush(stdin); // 清空输入缓冲区,通常是为了确保不影响后面的数据读取. getchar(); // 吃回车 return; } printf("\n\n\t指定信息不存在,回车键返回"); fflush(stdin); // 清空输入缓冲区,通常是为了确保不影响后面的数据读取. getchar(); // 吃回车 };
这段代码是一个函数,作用是通过输入终点站来查询相应的班次信息。它使用了一个名为Name的字符数组来存储输入的终点站名称,然后使用for循环遍历班次列表(line_number代表班次列表的长度),如果找到了终点站相同的班次,就打印出该班次的信息,并等待用户回车键返回。如果没有找到相应班次,就打印出指定信息不存在,并等待用户回车键返回。在代码中还使用了fflush(stdin)来清空输入缓冲区,以确保不会影响后面的数据读取。
(4)基于结构体,编写一个班级成绩排序系统。 定义一个结构体 Student ,包含姓名( name ,字符串)、学号( id , int 型)、3门课程成绩( score , double 数组)、平均成绩( avg _ score , double 型)。输入每个学生的姓名、学号、3 门课程成绩。计算平均成绩,按平均成绩由高到低排序后输出。 填写下列程序。 # include < stdio . h > # define N 3/*学生人数*/ struct Student void input _ student info ( struct Student * p , int n ) int i ; for ( i -0:i< n ; i ++_ printf " printf (" student % dn ", i +1); printf (" name :"); gets ( printf (" id :"); scanf ("% d " printf (" scores :"); scanf ("%1f%1f%1f", printf ("- fflush ( stdin ); - An "); An "); void calculate _ avg _ score ( struct Student * p . int n ) inti ; for ( i -0; i < n ; itt , p -> avg _ score = void print student info ( struct Student * p , int n ) int i ; printf (" -\ n "); printf ("%15s%8s%8s%8s%8s%12sn"," name "," id "," scorel ","score2","score3"," avg score "); for ( i =0; i < n ; itt , ptt )
#include <stdio.h>
#include <string.h>
#define N 3
// 定义结构体
struct Student {
char name[20]; // 姓名
int id; // 学号
double score[3]; // 3门课程成绩
double avg_score; // 平均成绩
};
// 输入每个学生的信息
void input_student_info(struct Student *p, int n) {
int i;
for (i = 0; i < n; i++, p++) {
printf("student %d\n", i+1);
printf("name: ");
getchar(); // 清空输入缓存
gets(p->name);
printf("id: ");
scanf("%d", &p->id);
printf("scores: ");
scanf("%lf%lf%lf", &p->score[0], &p->score[1], &p->score[2]);
}
}
// 计算每个学生的平均成绩
void calculate_avg_score(struct Student *p, int n) {
int i;
for (i = 0; i < n; i++, p++) {
p->avg_score = (p->score[0] + p->score[1] + p->score[2]) / 3.0;
}
}
// 按平均成绩由高到低排序后输出
void print_student_info(struct Student *p, int n) {
int i, j;
struct Student temp;
// 冒泡排序
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-1-i; j++) {
if (p[j].avg_score < p[j+1].avg_score) {
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
// 输出排序结果
printf("\n%15s%8s%8s%8s%8s%12s\n", "name", "id", "score1", "score2", "score3", "avg score");
for (i = 0; i < n; i++, p++) {
printf("%15s%8d%8.1lf%8.1lf%8.1lf%12.1lf\n", p->name, p->id, p->score[0], p->score[1], p->score[2], p->avg_score);
}
}
int main() {
struct Student stu[N];
input_student_info(stu, N); // 输入每个学生的信息
calculate_avg_score(stu, N); // 计算每个学生的平均成绩
print_student_info(stu, N); // 按平均成绩由高到低排序后输出
return 0;
}
阅读全文