学生信息管理系统(c/c++)
来源:互联网 发布:淘宝网页无法显示图片 编辑:程序博客网 时间:2024/05/07 16:43
①注意:
程序中使用了sleep()函数、system()函数
关于
sleep()
函数sleep()
函数的头文件和用法会因环境的不同而有所不同。
具体见-sleep()函数功能及用法关于
system()
函数
- linux下的清屏函数是
system("clear")
- Windows下的清屏函数是
system("cls")
clrscr()
是Turbo C中的库函数,包含在#include <conio.h>
中。
在VC中无法调用此函数
下面贴出的代码中使用的是 sleep(1)
和 system("clear")
至于为什么不是 sleep(1000)
和system("cls")
请仔细把上方的注意再看一遍~~~
②完整代码:
/*title: 学生信息管理系统(c/c++) *author: Griouges *转载请注明出处:http://www.cnblogs.com/Griouges/ */#include <stdio.h>#include <ctype.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#define M 50typedef struct{ //定义学生信息结构体 char no[20]; //学号 char name[20]; //姓名 char sex[5]; //性别 int age; //年龄} students;void return_ment(); //返回主菜单void print_ment(); //打印主菜单int ment_select(); //主菜单选择int enter(students t[]); //输入学生信息void list(students t[], int n); //显示学生信息void search_name(students t[], int n); //按姓名查找显示学生信息void search_no(students t[], int n); //按序号查找显示学生信息void change_no(students t[], int n); //按学号修改学生信息int del(students t[], int n); //删除学生信息int add(students t[], int n); //插入学生信息int load(students t[]); //从文件中读取学生信息void print(students temp); //显示单条学生信息void save(students t[], int n); //保存学生信息为文件int find_name(students t[], int n, char *s); //按姓名查找int find_no(students t[], int n, char *s); //按学号查找/* * */void return_ment(){ char mistake[20]; printf("按回车键返回主菜单...\n"); gets(mistake); return;}void print_ment(){ printf("********************主菜单********************\n"); printf(" 0. 录入学生信息\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(" 9. 退出\n"); printf("********************************************\n"); return;}int ment_select(){ print_ment(); printf("\n输入您的菜单选项编号(0-11):"); int c; while (1) { scanf("%d", &c); getchar(); if (c > 11 || c < 0) { system("clear"); print_ment(); printf("\n输入的选项编号无效,请重新输入:"); continue; } else break; } return c;}//输入学生信息,形参为结构体数组,函数值返回类型为整型表示信息长度int enter(students t[]){ int i, n; system("clear"); printf("\n请输入需要记录学生的条数\n"); scanf("%d", &n); system("clear"); printf("请输入%d位学生的信息:\n", n); printf("学号 姓名 性别 年龄\n"); printf("--------------------------------------------\n"); for (i = 0; i < n; i++) { scanf("%s", t[i].no); scanf("%s", t[i].name); scanf("%s", t[i].sex); scanf("%d", &t[i].age); getchar(); } printf("信息录入中...\n"); sleep(1); if (i == n) printf("信息录入成功!\n"); else printf("信息录入失败!\n"); return n;}//显示信息,形参为结构体数组和信息条数void list(students t[], int n){ int i; system("clear"); if (n == 0) { printf("内存中无学生信息!\n请先录入学生信息或加载学生信息到内存中\n"); return; } printf("\n*******************学生清单******************\n"); printf("学号 姓名 性别 年龄\n"); printf("---------------------------------------------\n"); for (i = 0; i < n; i++) { printf("%-14s%-14s%-14s%-14d\n", t[i].no, t[i].name, t[i].sex, t[i].age); if ((i + 1) % 10 == 0 /*&&n%10>0*/) { printf("---------------------------------------------\n"); printf("每页显示10位学生的信息,按回车向后翻页...\n"); getchar(); system("clear"); printf("\n*******************学生清单*******************\n"); printf("学号 姓名 性别 年龄\n"); printf("---------------------------------------------\n"); } } printf("---------------------------------------------\n");}void search_name(students t[], int n){ char s[20]; int i; system("clear"); if (n == 0) { printf("内存中无学生信息!\n请先录入学生信息或加载学生信息到内存中\n"); return; } printf("请输入查找的学生的名字:\n"); scanf("%s", s); getchar(); i = find_name(t, n, s); if (i > n - 1) printf("没有姓名为%s的学生!\n", s); else print(t[i]);}void search_no(students t[], int n){ system("clear"); if (n == 0) { printf("内存中无学生信息!\n请先录入学生信息或加载学生信息到内存中\n"); return; } int no; printf("请输入查找信息学生的学号:\n"); scanf("%d", &no); getchar(); if (no >= 0 && no < n) { print(t[no]); printf("\r\n"); } else printf("学号为%d的学生不存在!\n", no);}void change_no(students t[], int n){ if (n == 0) { printf("内存中无学生信息!\n请先录入学生信息或加载学生信息到内存中\n"); return; } system("clear"); char no[20]; int i; printf("请输入要修改的学生信息的学号:\n"); scanf("%s", no); i = find_no(t, n, no); if (i == n) printf("没有找到学号为%s的学生!\n", no); else { printf("学号为%s的学生信息修改前为:\n", no); print(t[i]); printf("\n\n"); printf("请输入修改后的信息:\n"); printf("学号 姓名 性别 年龄\n"); printf("---------------------------------------------\n"); scanf("%s", t[i].no); scanf("%s", t[i].name); scanf("%s", t[i].sex); scanf("%d", &t[i].age); getchar(); } system("clear"); printf("正在修改学号为%s的学生信息...\n", no); sleep(1); system("clear"); printf("*****修改成功*****\n"); printf("修改后的信息为:\n"); print(t[i]);}int del(students t[], int n){ char s[20]; int ch = 0; int i; system("clear"); if (n == 0) { printf("内存中无学生信息!\n请先录入学生信息或加载学生信息到内存\n"); return n; } printf("请输入要删除的学生姓名:\n"); scanf("%s", s); getchar(); i = find_name(t, n, s); if (i == n) printf("没有找到名字为%s的学生!\n", s); else { printf("正在删除...\n"); for (; i < n; i++) { strcpy(t[i].name, t[i + 1].name); strcpy(t[i].no, t[i + 1].no); strcpy(t[i].sex, t[i + 1].sex); t[i].age = t[i + 1].age; } n--; printf("删除成功!\n"); } return n;}int add(students t[], int n){ system("clear"); if (n == 0) { printf("内存中无学生信息!\n请先录入学生信息或加载学生信息到内存中\n"); return n; } students temp; int i, j; char s[20]; printf("请输入要插入的学生信息:\n"); printf("学号 姓名 性别 年龄\n"); printf("--------------------------------------------\n"); scanf("%s%s%s%d", temp.no, temp.name, temp.sex, &temp.age); getchar(); printf("--------------------------------------------\n"); if (n > 0) { printf("请输入插入位置的姓名,将新信息插入在该学生前面:\n"); scanf("%s", s); getchar(); i = find_name(t, n, s); } else i = 0; for (j = n - 1; j >= i; j--) { strcpy(t[i + 1].no, t[i].no); strcpy(t[i + 1].name, t[i].name); strcpy(t[i + 1].sex, t[i].sex); t[i + 1].age = t[i].age; } strcpy(t[i].no, temp.no); strcpy(t[i].name, temp.name); strcpy(t[i].sex, temp.sex); t[i].age = temp.age; n++; printf("信息插入成功!\n"); return n;}void save(students t[], int n){ system("clear"); int i; FILE *fp; if ((fp = fopen("record.txt", "wb")) == NULL) { printf("无法打开学生信息文件!\n"); exit(1); } printf("\n正在保存...\n"); fprintf(fp, "%d", n); fprintf(fp, "\r\n"); for (i = 0; i < n; i++) { fprintf(fp, "%-14s%-14s%-14s%-14d", t[i].no, t[i].name, t[i].sex, t[i].age); fprintf(fp, "\r\n"); } fclose(fp); sleep(1); system("clear"); printf("*****保存成功*****\n");}int load(students t[]){ int i, n; FILE *fp; if ((fp = fopen("record.txt", "rb")) = NULL) { printf("无法打开学生信息文件!\n"); exit(1); } fscanf(fp, "%d", &n); for (i = 0; i < n; i++) fscanf(fp, "%14s%14s%14s%14d", t[i].no, t[i].name, t[i].sex, &t[i].age); fclose(fp); printf("成功加载学生信息到内存中!\n"); return n;}//显示指定的一组数据void print(students temp){ printf("\n*******************学生清单*******************\n"); printf("学号 姓名 性别 年龄\n"); printf("---------------------------------------------\n"); printf("%-14s%-14s%-14s%-14d", temp.no, temp.name, temp.sex, temp.age); // printf("---------------------------------------------\n");}int find_name(students t[], int n, char *s){ int i; for (i = 0; i < n; i++) if (strcmp(s, t[i].name) == 0) return i; return i;}int find_no(students t[], int n, char *s){ int i; for (i = 0; i < n; i++) if (strcmp(s, t[i].no) == 0) return i; return i;}//主函数int main(){ students stu[M]; //定义结构体数组 int length = 0; //保存信息条数 for (;;) { system("clear"); switch (ment_select()) { case 0: length = enter(stu); break; case 1: list(stu, length); break; case 2: search_name(stu, length); break; case 3: search_no(stu, length); break; case 4: length = del(stu, length); break; case 5: change_no(stu, length); break; case 6: length = add(stu, length); break; case 7: save(stu, length); break; case 8: length = load(stu); break; case 9: exit(0); break; } return_ment(); } return 0;}
阅读全文
0 0
- C#-学生信息管理系统
- 学生信息管理系统(C++)
- 学生信息管理系统(c/c++)
- 学生信息管理系统C实现
- C语言学生信息管理系统
- c语言学生信息管理系统
- 学生信息管理系统(c++)
- 学生信息管理系统 c语言
- object c 学生信息管理系统
- 学生成绩信息管理系统(c++)
- C语言:学生信息管理系统
- c语言学生信息管理系统
- 学生信息管理系统(C语言版)
- C语言 学生信息管理系统
- C语言学生信息管理系统
- 学生信息管理系统(c语言)
- 学生信息管理系统(C语言)
- C语言实现学生信息管理系统
- HDU FatMouse and Cheese
- CSS 的优先级机制[总结]
- 正则表达式学习总结
- 关于项目合并的一些坑 androidStudio项目和Eclipse项目合并
- 【NEUQ】E: ingayass Bio Cards Collecting 【手写链表】or 【 STL list 】
- 学生信息管理系统(c/c++)
- Windows基础——常用的DOS命令
- mysql Mac终端操作
- 解决Sqlserver2008数据库sa密码长度不符合策略要求
- spring框架的好处,为什么使用它?
- ECMA-262-5 词法环境:通用理论(一)--- 作用域
- nginx.service
- 程序人生
- dilated conv(空洞卷积)