黑马程序员技术交流社区
标题: 【技术共享】学生管理系统项目雏形(源代码+注释) [打印本页]
作者: ToBeJeek1 时间: 2015-11-22 10:26
标题: 【技术共享】学生管理系统项目雏形(源代码+注释)
/*
一个简单的系统,做学生信息管理系统的可以作为参考,也适合c入门学习研究
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN 2
//定义结构体类型
struct Student{
int ID;
char name[20];
float score;
};
int main(int argc, const char * argv[]) {
//定义结构体数组变量,存储输入的学生信息
struct Student stu[LEN];
for (int i = 0; i < LEN; i++) {
printf("请输入第%d个学生的ID: ",i+1);
scanf("%d",&stu.ID);
getchar();
printf("请输入第%d个学生的姓名: ",i+1);
gets(stu.name);
printf("请输入第%d个学生的成绩: ",i+1);
scanf("%f",&stu.score);
}
//设置保存信息的文件名
char *filename="sturct.data";
//以二进制读写的形式打开文件
FILE *fp = fopen(filename,"wb+");
//判断文件是否打开成功
if (fp!=NULL) {
printf("打开文件成功,正在写入...\n");
//以循环的方式将输入的信息保存到文件中
for (int i = 0; i < LEN; i++) {
//以数据块的形式将结构体写入文件中
fwrite(&stu, sizeof(stu), 1, fp);
}
printf("成功写入!\n");
}else{
printf("打开文件失败!按任意键退出...\n");
getchar();
//如果打开文件失败,则退出程序
exit(1);
}
//定义结构体变量数组,保存从文件中读入的信息
struct Student stu2[LEN];
while (1) {
//提示操作界面
printf("\n*************************\n");
printf("***** 1.读取文件 *****\n");
printf("***** 2.退出 *****\n");
printf("*************************\n");
printf("请输入你的选择:");
//定义变量,接收用户的输入
int op;
scanf("%d",&op);
if (op == 1) {
//将文件读写指针重置到文件头
rewind(fp);
for (int i = 0; i < LEN; i++) {
//以数据块的形式对文件进行读取
fread(&stu2, sizeof(stu2), 1, fp);
}
printf("读取文件成功!\n");
break;
}else if(op == 2){
printf("程序退出!\n");
return 0;
}else{
printf("你的输入无效,请重新输入!\n");
}
}
//关闭文件
fclose(fp);
printf("%4s----%4s----%4s\n","ID","name","score");
//以遍历的方式将从文件中读入的信息进行打印
for (int i = 0; i < LEN; i++) {
printf("%d----%s----%.1f\n",stu2.ID,stu2.name,stu2.score);
}
return 0;
}
作者: cbl16888 时间: 2015-11-22 11:42
学习一下
作者: 呐小伟 时间: 2015-11-22 17:45
顶下{:2_30:}{:2_32:}{:2_33:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |