博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单c语言练习:学生数据库的制作
阅读量:5077 次
发布时间:2019-06-12

本文共 3394 字,大约阅读时间需要 11 分钟。

问题描述:

现提供数据文件students.txt(本题目数据由程序随机生成,非真实数据),里面存放的是学生的信息,数据样例如下:

姓名,学号,性别,年龄,班级

张三,2017002871,,17,大数据1702

李四,2017001765,,18,软件工程1712

小路,2016009876,,20,大数据1701

大张伟,2014002715,,19,计算机1402

王璐丹,2017009479,,22,大数据1702

张三,2015009321,,22,信计1502

 

要求:

a)      读入students.txt里的数据存到内存,要求学生信息以结构体数组的方式存储。

b)     根据用户的输入在内存里查询学生信息,需要支持以下三种查询模式,需要提供给用户选择查询模式的菜单:

 

i.       查询模式1:根据姓名或学号查询学生信息

ii.      查询模式2:根据年龄范围查询学生信息

iii.    查询模式3:根据班级查询学生信息

 

3.输入输出样例:

a)      查询模式1

样例1

输入张三

输出

张三,2017002871,,17,大数据1702

张三,2015009321,,22,信计1502

样例2

输入 2017009876

输出

小路,2016009876,,20,大数据1701

b)     查询模式2     

样例1

输入 18 20

输出

李四,2017001765,,18,软件工程1712

小路,2016009876,,20,大数据1701

大张伟,2014002715,,19,计算机1402

c)     查询模式3

样例1

输入大数据1702

输出

张三,2017002871,,17,大数据1702

王璐丹,2017009479,,22,大数据1702

这道题是简单的c语言练习,主要是练习结构体的使用以及文件的读取,以及读取时%[^]的使用

程序代码如下:

#include 
#include
struct student{ char name[30]; char number[30]; char sex[10]; int age; char classes[30];};int main(){ int num,num2,num3,num4; long int num1; FILE *fp; char temp[30],mode[30]; struct student students[1000]; if((fp=fopen("./students.txt","r"))==NULL)//open the file { printf("can not open file students.txt,please check if the file is in the same path.\n"); system("pause"); exit(1); } for(num=0;!feof(fp);num++)//read the file { fscanf(fp,"%[^,],%[^,],%[^,],%d,%s\n",&students[num].number,students[num].name,students[num].sex,&students[num].age,students[num].classes); } while(1) { system("cls"); printf(" __________________________________________\n"); printf(" ----------|Welcome to the student information system|-----------\n"); printf(" ------------------------------------------\n"); printf(" |mode1:Query student information by name or student number. |\n"); printf(" |mode2:Inquire about student information according to age range.|\n"); printf(" |mode3:Check the student information according to the class. |\n"); printf(" |mode4:List all student information. |\n"); printf(" |There are %d student's information in the system |\n",num); printf(" ---------------------------------------------------------------\n"); printf(" Please enter the query mode,enter is the return key.Enter 'q' to exit the program.\n"); printf(" mode:"); scanf("%s",&mode);//the welcome screen fflush(stdin); if(mode[0]==49)//mode1 { system("cls"); printf("please input the student's name or number:"); scanf("%29s",temp); fflush(stdin); if(temp[0]<0) { for(num1=0,num3=0;num1
=num2&&students[num1].age<=num3) printf("%s,%s,%s,%d,%s\n",students[num1].name,students[num1].number,students[num1].sex,students[num1].age,students[num1].classes),num4++; } if(num4==0) printf("can not find a term that meet the crietra\n"); getch(); } else if(mode[0]==51)//mode3 { system("cls"); printf("please input the class you want to find:"); scanf("%s",temp); getchar(); for(num1=0,num3=0;num1

转载于:https://www.cnblogs.com/halftion/p/9470359.html

你可能感兴趣的文章
Animations介绍及实例
查看>>
判断请求是否为ajax请求
查看>>
【POJ2699】The Maximum Number of Strong Kings(网络流)
查看>>
spring boot配置跨域
查看>>
BZOJ 1996 合唱队(DP)
查看>>
进击吧!阶乘——大数乘法
查看>>
安卓学习资料推荐-25
查看>>
Mysql数据库备份和还原常用的命令
查看>>
关于退出当前页面在火狐的一些问题
查看>>
【项目实施】项目考核标准
查看>>
spring-aop AnnotationAwareAspectJAutoProxyCreator类
查看>>
经典入门_排序
查看>>
Redis Cluster高可用集群在线迁移操作记录【转】
查看>>
二、spring中装配bean
查看>>
VIM工具
查看>>
javascript闭包
查看>>
@Column标记持久化详细说明
查看>>
创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备...
查看>>
mysql8.0.13下载与安装图文教程
查看>>
站立会议08(冲刺2)
查看>>