我二二学生信息管理系统(C语言版+详解+源代码)相信受这篇的都是为了期末项目而发愁吧,那么这篇文章最适合你了。
我送给大家保姆级的教程。
一、相信有部分同学不知道用什么软件运行吧(知道的可以直接看二哦),我用的软件是Devc++ 给大家发个链接,期末项目进程不迷路。
Dev c++官方下载: https://sourceforge.net/projects/orwelldevcpp/
百度云 DevC++ 链接链接:https://pan.baidu.com/s/1FxmCcTNZeKOEqcwkWwQi1Q 提取码:qno0
1) 首先加载安装程序(只需要十几秒)
2) 一路 ok next install Finish 就安装好了。
先选english 之后再改简体中文(部分用户此时不能用中文)
同意 Dev C++ 的各项条款
选择要安装的组件 我是选择“Full”,全部安装。
选择安装路径
等待安装
安装完成
3)选择简体中文
选择 Tools Environment Option... (这里截图窗口会关闭就用手机拍的哈)
往上翻会看到简体中文。
二、 不多说直接上干货。
代码展示
#include#include #include #include typedef struct Student { char id[14]; char name[10]; char sex[3]; int age; char phone[12]; }Student; void menu(void); //功能:在stu的count个元素,查找ss //返回值:查找成功,返回ss在stu中的位置号;否则,返回 -1 int searchID(Student stu[] , int count , Student ss); int searchNAME(Student stu[] , int count , Student ss); //正常插入,返回学生数;否则,返回-1 int add(Student stu[] , int count ,Student ss); //若输入的学号存在,正常修改,返回学生数,否则,修改失败,返回 -1 int modify(Student stu[],int count,Student ss); //若输入的学号存在,删除,返回学生数,否则,删除失败,返回 -1 int Delete(Student stu[],int count,Student ss); void writeFile(Student stu[] , int count ); int readFile(Student stu[]); int main() { Student stu[50],ss; int count = 0, i; int select, tag = 1 ; count = readFile(stu); while(tag) { menu(); scanf("%d",&select); switch(select) { case 1://增加 printf("请输入待增加的学生n学号t姓名t性别t年龄t联系方式n"); scanf("%s%s%s%d%s", ss.id , ss.name , ss.sex , &ss.age ,ss.phone); i = add(stu,count,ss); if(i != -1) { printf("插入成功n"); count = i; } else printf("插入失败n"); break; case 2://按学号查找 printf("请输入学号:"); scanf("%s", ss.id); i = searchID(stu , count ,ss); if(i != -1 ) printf("%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone); else printf("%s 不存在!n",ss.id); break; case 3://按姓名查找 printf("请输入姓名:"); scanf("%s", ss.name); i = searchNAME(stu , count ,ss); if(i != -1 ) printf("%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone); else printf("%s 不存在!n",ss.name); break; case 4://修改 printf("请输入待修改的学生n学号t姓名t性别t年龄t联系方式n"); scanf("%s%s%s%d%s", ss.id , ss.name , ss.sex , &ss.age ,ss.phone); i = modify(stu , count ,ss); if(i == -1) printf("%s 不存在,修改失败!n",ss.id); else printf("修改成功n"); break; case 5://删除 printf("请输入待删除的学生学号:"); scanf("%s", ss.id); i = Delete(stu , count ,ss); if(i != -1 ) { printf("删除成功n"); count = i; } else printf("%s 不存在,删除失败n",ss.id); break; case 6://显示 printf("学号t姓名t性别t年龄t联系方式n"); for(i = 0 ; i < count ; i++ ) printf("%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone); break; case 0: system("cls") ; printf("欢迎再次使用学生信息管理系统......n"); tag = 0 ; writeFile(stu ,count ); break; default: printf("选择错误,只能选择(0-6)"); } printf("按任意键继续......n"); getch(); system("cls"); } getch(); return 0; } void menu(void) { printf(" *学生管理系统* n"); printf("1、增加学生信息n"); printf("2、查找学生信息(按学号)n"); printf("3、查找学生信息(按姓名)n"); printf("4、修改学生信息n"); printf("5、删除学生信息n"); printf("6、显示学生信息n"); printf("0、退出系统n"); printf("__________________________n"); printf("请选择(0-6):"); } //功能:在stu的count个元素,查找ss //返回值:查找成功,返回ss在stu中的位置号;否则,返回 -1 int searchID(Student stu[] , int count , Student ss) { int i ; for(i = 0 ; i < count ; i++) if(strcmp(stu[i].id , ss.id) == 0) return i ; return -1; } int searchNAME(Student stu[] , int count , Student ss) { int i ; for(i = 0 ; i < count ; i++) if(strcmp(stu[i].name , ss.name) == 0) return i ; return -1; } int add(Student stu[] , int count ,Student ss) { int pos ; pos = searchID(stu , count ,ss); if(pos == -1) { stu[count] = ss; return count + 1; } return -1; } //若输入的学号存在,正常修改,返回学生数,否则,修改失败,返回 -1 int modify(Student stu[],int count,Student ss) { int pos ; pos = searchID(stu , count ,ss); if(pos == -1) return -1; else { stu[pos] =ss; return count; } } //若输入的学号存在,删除,返回学生数,否则,删除失败,返回 -1 int Delete(Student stu[],int count,Student ss) { int pos , i; pos = searchID(stu , count ,ss); if(pos == -1) return -1; else { for(i = pos + 1 ; i < count ; i++ ) stu[i - 1 ] = stu[i] ; return count - 1; } } void writeFile(Student stu[],int count ) { FILE *fp ; int i; fp = fopen ("student.dat" , "w"); for(i = 0 ; i < count ;i++) fprintf(fp,"%st%st%st%dt%sn",stu[i].id , stu[i].name , stu[i].sex,stu[i].age,stu[i].phone); fclose(fp); } int readFile(Student stu[]) { FILE *fp ; int i; fp = fopen ("student.dat" , "r"); if(fp == NULL) return 0; for(i = 0 ; !feof(fp) ; i++) fscanf(fp , "%s%s%s%d%sn" ,stu[i].id , stu[i].name , stu[i].sex, &stu[i].age,stu[i].phone); fclose(fp); return i; }
运行结果
有不懂的或想要问的可以评论,共同解决烦恼哦!
都看到这里快收藏起别找不到喽!



