diff --git a/2209040021/Book Information Management/Book Information Management.cpp b/2209040021/Book Information Management/Book Information Management.cpp new file mode 100644 index 0000000..8371c35 --- /dev/null +++ b/2209040021/Book Information Management/Book Information Management.cpp @@ -0,0 +1,302 @@ +#include +#include +#include +int count=0;//全局变量,定义书籍数 +typedef struct book{//结构体 + long bianhao; + char bookname[20]; + char writer[20]; + char press[20]; + char time[20]; + int money; +}boo; +void gongnengqu(){//菜单目录 + + printf("欢迎使用图书管理系统\n请按提示选择以下功能\n"); + 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(" 退出按0\n\n"); + printf("*********************************\n\n"); +} + +void wenjian1(boo books[]){//存储文件的,正常排序 + FILE *fp; +fp=fopen("D:Demo/tushu.txt","w"); +fprintf(fp,"图书编号 书名 作者 出版社 出版时间 价格\n"); +for(int i=0;i0) + { + printf("如果要停止录入请打0,继续输入请打1:"); + int q; + scanf("%d",&q); + if(q==0) break; + } + printf("请输入其图书编号:"); + scanf("%ld",&books[i].bianhao); + printf("请输入书名:"); + scanf("%s",&books[i].bookname); + printf("请输入作者名:"); + scanf("%s",&books[i].writer); + printf("请输入其出版社:"); + scanf("%s",&books[i].press); + printf("请输入其出版时间:"); + scanf("%s",&books[i].time); + printf("请输入其价格:"); + scanf("%d",&books[i].money); + count++; + system("cls");//清屏 +} +paixu1(books); +wenjian1(books); +} +void paixu1(boo books[]) { + char a[20]; + int t; + long x; + if(count>1){ + for(int i=0;ibooks[j].bianhao){ + t=books[i].money;books[i].money=books[j].money;books[j].money=t; + x=books[i].bianhao;books[i].bianhao=books[j].bianhao;books[j].bianhao=x; + strcpy(a,books[i].bookname);strcpy(books[i].bookname,books[j].bookname);strcpy(books[j].bookname,a); + strcpy(a,books[i].writer);strcpy(books[i].writer,books[j].writer);strcpy(books[j].writer,a); + strcpy(a,books[i].press);strcpy(books[i].press,books[j].press);strcpy(books[j].press,a); + strcpy(a,books[i].time);strcpy(books[i].time,books[j].time);strcpy(books[j].time,a); + } + } +} +} +void tianjia(boo books[]){//添加 ,对书籍进行添加 + printf("请输入其图书编号:"); + scanf("%ld",&books[count].bianhao); + printf("请输入书名:"); + scanf("%s",&books[count].bookname); + printf("请输入作者名:"); + scanf("%s",&books[count].writer); + printf("请输入其出版社:"); + scanf("%s",&books[count].press); + printf("请输入其出版时间:"); + scanf("%s",&books[count].time); + printf("请输入其价格:"); + scanf("%d",&books[count].money); + printf("添加成功\n"); + system("pause"); + paixu1(books); + FILE *fp; + fp=fopen("D:Demo/tushu.txt","a"); + fprintf(fp,"%ld ",books[count].bianhao); + fprintf(fp,"%s ",books[count].bookname); + fprintf(fp,"%s ",books[count].writer); + fprintf(fp,"%s ",books[count].press); + fprintf(fp,"%s ",books[count].time); + fprintf(fp,"%d ",books[count].money); + fprintf(fp,"\n"); + fclose(fp); + count++; +} +void chaxun(boo books[]){//对于你所要的书籍进行查询 + printf("请输入你要查询的书名:"); + char abc[20]; + int flag=0; + scanf("%s",&abc); + for(int i=0;i<101;i++) + { + char a; + if(books[i].money==NULL) + break; + if(strcmp(books[i].bookname,abc)==0)//比较字符串 + { + flag=1; + printf("图书编号为:%ld\n",books[i].bianhao); + printf("书名为:%s\n",books[i].bookname); + printf("作者名为:%s\n",books[i].writer); + printf("出版社为:%s\n",books[i].press); + printf("出版时间为:%s\n",books[i].time); + printf("价格为:%d\n",books[i].money); + system("pause"); + break; + } + } + if(flag==0) + printf("【书籍为找到或不存在】\n"); + system("pause"); +} +void xiugai(boo books[]){//对于你需要的书籍进行修改 + printf("请输入你要查询的书名:"); + char abc[20]; + scanf("%s",&abc); + for(int i=0;i<101;i++) + { + char a; + if(books[i].money==NULL) + break; + if(strcmp(books[i].bookname,abc)==0) + { + printf("原图书编号为:%ld\n",books[i].bianhao); + printf("原书名为%s\n",books[i].bookname); + printf("请输入新书名:\n"); + scanf("%s",&books[i].bookname); + printf("原作者名为:%s\n",books[i].writer); + printf("请输入新作者:\n"); + scanf("%s",&books[i].writer); + printf("原出版社为:%s\n",books[i].press); + printf("请输入新出版社:\n"); + scanf("%s",&books[i].press); + printf("原出版时间为:%s\n",books[i].time); + printf("请输入新出版时间\n"); + scanf("%s",&books[i].time); + printf("原价格为:%d\n",books[i].money); + printf("请输入新价格:\n"); + scanf("%d",&books[i].money); + system("pause"); + break; + } + } +wenjian1(books); +} +void shanchu(boo books[]){//删除书籍 + printf("请输入你要删除的书号:\n"); + int x,i,flag=1; + scanf("%ld",&x); + for(;i0) + { + t=books[i].money;books[i].money=books[j].money;books[j].money=t; + x=books[i].bianhao;books[i].bianhao=books[j].bianhao;books[j].bianhao=x; + strcpy(a,books[i].bookname);strcpy(books[i].bookname,books[j].bookname);strcpy(books[j].bookname,a); + strcpy(a,books[i].writer);strcpy(books[i].writer,books[j].writer);strcpy(books[j].writer,a); + strcpy(a,books[i].press);strcpy(books[i].press,books[j].press);strcpy(books[j].press,a); + strcpy(a,books[i].time);strcpy(books[i].time,books[j].time);strcpy(books[j].time,a); + } + } + } + printf("已排序完成\n"); + printf("图书编号 书名 作者 出版社 出版时间 价格\n"); + for(int i=0;i Written with [StackEdit涓枃鐗圿(https://stackedit.cn/). diff --git a/2209040021/Design of Student Information System Management/Design of Student Information System Management.cpp b/2209040021/Design of Student Information System Management/Design of Student Information System Management.cpp new file mode 100644 index 0000000..9837dbf --- /dev/null +++ b/2209040021/Design of Student Information System Management/Design of Student Information System Management.cpp @@ -0,0 +1,302 @@ +#include +#include +#include + +#define MAX_SIZE 1000 // 学生信息数组的最大长度 +#define FILE_NAME "students.txt" // 学生信息文件名 + +// 学生信息结构体 +typedef struct { + char id[20]; // 学号 + char name[20]; // 姓名 + int age; // 年龄 + char gender[10]; // 性别 + char birth[20]; // 出生年月 + char address[100]; // 地址 + char phone[20]; // 电话 + char email[50]; // 邮箱 +} Student; + +// 学生信息数组和学生信息数量 +Student students[MAX_SIZE]; +int count = 0; + +// 函数声明 +void displayMenu(); + +void addStudent(); + +void viewStudents(); + +void searchStudent(); + +void deleteStudent(); + +void modifyStudent(); + +void saveToFile(); + +void readFromFile(); + +int main() { + int choice; + readFromFile(); // 从文件中读取学生信息 + + do { + displayMenu(); // 显示菜单 + scanf("%d", &choice); + + switch (choice) { + case 1: + addStudent(); + break; + case 2: + viewStudents(); + break; + case 3: + searchStudent(); + break; + case 4: + deleteStudent(); + break; + case 5: + modifyStudent(); + break; + case 6: + saveToFile(); + printf("保存成功\n"); + break; + case 7: + printf("退出程序\n"); + break; + default: + printf("请输入正确的选项\n"); + } + } while (choice != 7); + + return 0; +} + +// 显示菜单 +void displayMenu() { + printf("\n学生信息管理系统\n"); + printf("-----------------\n"); + printf("1. 添加学生信息\n"); + printf("2. 浏览学生信息\n"); + printf("3. 查询学生信息\n"); + printf("4. 删除学生信息\n"); + printf("5. 修改学生信息\n"); + printf("6. 保存到文件\n"); + printf("7. 退出程序\n"); + printf("请输入选项:"); +} + +// 添加学生信息 +void addStudent() { + Student student; + + printf("\n请输入学生信息:\n"); + printf("学号:"); + scanf("%s", student.id); + for (int i = 0; i < count; i++){ + if(strcmp(students[i].id, student.id) == 0){ + printf("学号已存在,请重新输入。\n"); + return; + } + } + printf("姓名:"); + scanf("%s", student.name); + printf("年龄:"); + scanf("%d", &student.age); + printf("性别:"); + scanf("%s", student.gender); + printf("出生年月:"); + scanf("%s", student.birth); + printf("地址:"); + scanf("%s", student.address); + printf("电话:"); + scanf("%s", student.phone); + printf("E-mail:"); + scanf("%s", student.email); + + students[count++] = student; +} + +// 浏览学生信息 +void viewStudents() { + printf("\n所有学生信息:\n"); + printf("%-15s%-10s%-10s%-10s%-15s%-30s%-20s%-30s\n", "学号", "姓名", "年龄", "性别", "出生年月", "地址", "电话", "E-mail"); + // 输出每个学生的信息 + for (int i = 0; i < count; i++) { + printf("%-15s%-10s%-10d%-10s%-15s%-30s%-20s%-30s\n", students[i].id, students[i].name, students[i].age, + students[i].gender, students[i].birth, students[i].address, students[i].phone, students[i].email); + } +} + +// 查询学生信息 +void searchStudent() { + int choice; + char id[20]; + char name[20]; + int found = 0; + + printf("\n查询学生信息:\n"); + printf("1. 按学号查询\n"); + printf("2. 按姓名查询\n"); + printf("请选择查询方式:"); + scanf("%d", &choice); + + switch (choice) { + case 1: + printf("请输入要查询的学号:"); + scanf("%s", id); + printf("\n%-15s%-10s%-10s%-10s%-15s%-30s%-20s%-30s\n", "学号", "姓名", "年龄", "性别", "出生年月", "地址", "电话", "E-mail"); + for (int i = 0; i < count; i++) { + if (strcmp(students[i].id, id) == 0) { + printf("%-15s%-10s%-10d%-10s%-15s%-30s%-20s%-30s\n", students[i].id, students[i].name, + students[i].age, students[i].gender, students[i].birth, students[i].address, + students[i].phone, students[i].email); + found = 1; + break; + } + } + break; + case 2: + printf("请输入要查询的姓名:"); + scanf("%s", name); + printf("\n%-15s%-10s%-10s%-10s%-15s%-30s%-20s%-30s\n", "学号", "姓名", "年龄", "性别", "出生年月", "地址", "电话", "E-mail"); + for (int i = 0; i < count; i++) { + if (strcmp(students[i].name, name) == 0) { + printf("%-15s%-10s%-10d%-10s%-15s%-30s%-20s%-30s\n", students[i].id, students[i].name, + students[i].age, students[i].gender, students[i].birth, students[i].address, + students[i].phone, students[i].email); + found = 1; + } + } + break; + default: + printf("请输入正确的选项\n"); + } + + if (!found) { + printf("未找到该学生信息\n"); + } +} + +// 删除学生信息 +void deleteStudent() { + char id[20]; + int found = 0; + + printf("\n请输入要删除的学生学号:"); + scanf("%s", id); + +// 遍历已有的学生信息,找到要删除的学生信息 + for (int i = 0; i < count; i++) { + if (strcmp(students[i].id, id) == 0) { + found = 1; + // 将该学生信息从数组中删除 + for (int j = i; j < count - 1; j++) { + students[j] = students[j + 1]; + } + count--; + printf("删除成功\n"); + break; + } + } + + if (!found) { + printf("未找到该学生信息\n"); + } +} + +// 修改学生信息 +void modifyStudent() { + char id[20]; + int found = 0; + + printf("\n请输入要修改的学生学号:"); + scanf("%s", id); + +// 遍历已有的学生信息,找到要修改的学生信息 + for (int i = 0; i < count; i++) { + if (strcmp(students[i].id, id) == 0) { + found = 1; + printf("\n请输入学生信息:\n"); + printf("学号:%s(不可修改)\n", students[i].id); + printf("姓名:"); + scanf("%s", students[i].name); + printf("年龄:"); + scanf("%d", &students[i].age); + printf("性别:"); + scanf("%s", students[i].gender); + printf("出生年月:"); + scanf("%s", students[i].birth); + printf("地址:"); + scanf("%s", students[i].address); + printf("电话:"); + scanf("%s", students[i].phone); + printf("E-mail:"); + scanf("%s", students[i].email); + printf("修改成功\n"); + break; + } + } + + if (!found) { + printf("未找到该学生信息\n"); + } +} + +// 将学生信息保存到文件 +void saveToFile() { + FILE *fp; + fp = fopen(FILE_NAME, "w"); + + for (int i = 0; i < count; i++) { + fprintf(fp, "%s,%s,%d,%s,%s,%s,%s,%s\n", students[i].id, students[i].name, students[i].age, students[i].gender, + students[i].birth, students[i].address, students[i].phone, students[i].email); + } + + fclose(fp); +} + +// 从文件中读取学生信息 +void readFromFile() { + FILE *fp; + char line[500]; + char *token; + const char delim[2] = ","; + fp = fopen(FILE_NAME, "r"); + + if (fp) { + count = 0; + while (fgets(line, 500, fp)) { + // 将读取到的学生信息按逗号分隔,并依次填充到学生信息结构体中 + token = strtok(line, delim); + strcpy(students[count].id, token); + token = strtok(NULL, delim); + strcpy(students[count].name, token); + token = strtok(NULL, delim); + students[count].age = atoi(token); + token = strtok(NULL, delim); + strcpy(students[count].gender, token); + token = strtok(NULL, delim); + strcpy(students[count].birth, token); + token = strtok(NULL, delim); + strcpy(students[count].address, token); + token = strtok(NULL, delim); + strcpy(students[count].phone, token); + token = strtok(NULL, delim); + // 如果当前字符是换行符,则跳过这个字符 + if (token[strlen(token) - 1] == '\n') { + token[strlen(token) - 1] = '\0'; + } + strcpy(students[count].email, token); + count++; + } + + fclose(fp); + } +} + diff --git a/2209040021/Design of Student Information System Management/README.md b/2209040021/Design of Student Information System Management/README.md new file mode 100644 index 0000000..64f553a --- /dev/null +++ b/2209040021/Design of Student Information System Management/README.md @@ -0,0 +1,6 @@ +锘 + +# 瀛︾敓淇℃伅绠$悊绯荤粺璁捐 +## 杩愯杞欢 +Dev-C++ +> Written with [StackEdit涓枃鐗圿(https://stackedit.cn/). diff --git a/2209040021/README.md b/2209040021/README.md new file mode 100644 index 0000000..9e363ae --- /dev/null +++ b/2209040021/README.md @@ -0,0 +1,6 @@ +锘 + +# 瀛︾敓淇℃伅绠$悊绯荤粺璁捐鍜屽浘涔︿俊鎭鐞嗙郴缁熻璁 +## 杩愯杞欢 +Dev-C++ +> Written with [StackEdit涓枃鐗圿(https://stackedit.cn/). diff --git a/README.md b/README.md index ccdade4..a104b9a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## 鍙備笌浜 | 瀛﹀彿 | 濮撳悕 | 璇捐1 | 璇捐2 | |------------|-----|-----| -----| -| 2209040021 | 鍛ㄦ亽 | | | +| 2209040021 | 鍛ㄦ亽 |閿鍞鐞嗙郴缁熻璁瀛︾敓淇℃伅绠$悊绯荤粺璁捐| | 2209040022 | 缃椾寒 | 缂栧啓涓涓囧勾骞村巻绯荤粺 | 24鐐规父鎴忚璁 | | 2209040023 | 鍛ㄨ嫢寮 | | | | 2209040024 | 椹濆嚒 | | |