学生通迅录管理_c语言课程设计
更新时间:2023-05-20 02:32:01 阅读量: 实用文档 文档下载
- 广东省通迅管理总局推荐度:
- 相关推荐
程序代码
/******头文件(.h)***********/ #include <stdio.h> /*I/O函数*/ #include <stdlib.h> /*标准库函数*/ #include <string.h>/*字符串函数*/ #include <ctype.h> /*字符操作函数*/ #define M 50 /*定义常数表示记录数*/ typedef struct /*定义数据结构*/ { char cla[8];/*班级*/
char num[15];/*学号*/ char name[20]; /*姓名*/
char qq[12]; /*QQ*/ char tel[15]; /*电话*/ }STUDENT;
/**********************************
基础函数声明
*********************************/
int enter(STUDENT t[],int n); /*********************通迅录建立函数声明***********************/ int menu(); ***********************/ void print(STUDENT temp);
/*********************主菜单函数声明
输加出
函函
数数
声声
明明
/*********************
增
***********************/
int add(STUDENT t[], int n); /********************************************/
void change(STUDENT s[],int ***********************/ int del(STUDENT t[],int n);
n);
/*********************修改函数声明
删
除
函
数
声
明
/*********************
***********************/
void file_in(STUDENT t[],int ***********************/ int file_out(STUDENT t[]);
n);/*********************保存函
加
载
函
数
数声明声
明
/*********************
***********************/
int find_name(STUDENT t[],int n);/*********************姓名查找函数声明***********************/
int find_num(STUDENT t[],int n);/*********************学号查询函数声明***********************/
int find_qq(STUDENT t[],int n); /*********************QQ
查询函数声明
***********************/
int find_tel(STUDENT t[],int n); /*********************电话号码查询函数声明***********************/ int search(STUDENT t[],
int
n); /*********************查询函数声明
***********************/
int search_menu(STUDENT t[], int n);/*********************查询菜单函数声明***********************/
程序代码
int main()
{ int i=0,j=0; FILE *fp; STUDENT stu[M]; /*定义结构体数组*/
int len=M; /*保存记录长度*/
if((fp=fopen("record.txt","rb"))==NULL) /*打开文件,并判断打开是否正常*/ { printf("文件已不存在,请从新建立通迅录\n");/*没打开*/ } else { }
len=file_out(stu); for(;;)/*无限循环*/
{ switch(menu()) /*调用主菜单函数,返回值整数作开关语句的条件*/ }
{
case 0:exit(0);break;/*退出*/
case 1:print(stu[search(stu,len)]);break; /*查询*/ case 2:len=add(stu,len);break; /*增加*/
case 3:change(stu,len);break; /*修改*/ case 4:len=del(stu,len); break; /*删除*/
//case 5:display(stu,len);break; /*显示所有学生信息*/ }
len=enter(stu,len);
return 0; }
/**********************************通迅录建立函数,参数为结构体数组以及记录条数******************************/ int enter(STUDENT t[],int n) { int i,k=2,c=1;
STUDENT temp;
printf("建立通迅录:\n");
printf("------------------------------------------------\n"); for(i=0;k>1;i++) { printf("输入个人班级号:\n");
scanf("%s",temp.cla);
printf("输入个人学号:\n"); scanf("%s",temp.num); printf("输入个人姓名:\n");
程序代码
} n=i;
scanf("%s",);
printf("输入个人QQ号:\n"); scanf("%s",temp.qq);
printf("输入个人电话:\n"); scanf("%s",temp.tel); strcpy(t[i].cla,temp.cla); strcpy(t[i].num,temp.num); strcpy(t[i].name,); strcpy(t[i].qq,temp.qq);
strcpy(t[i].tel,temp.tel);
printf("是否继续添加,是则按1,否则按0\n)"); scanf("%d",&c); if(c==0) k=0;
file_in(t,n);
return n; /*返回记录条数*/
}
/**********************************主菜单函数,返回值供主函数调用******************************/
int menu() { char s[80]; int c; printf("\t\t\t欢迎使用kemgine学生通迅录管理系统\n\t\t\t\t版本:beta 2011\n\t\t\t\t作者:陈利军\n请按任意键进入主菜单......\n");/*提示压任意键继续*/
getchar(); /*读入任意字符*/
printf("********************MENU*********************\n\n"); printf(" 0. 退出程序\n"); printf(" 1. 查询\n"); printf(" 2. 增加\n"); printf(" 3. 修改\n"); printf(" 4. 删除\n");
printf("***********************************************\n"); do{ printf("\n 请输入你的选择(0~4):"); /*提示输入选项*/
scanf("%s",s); /*输入选择项*/
c=atoi(s); /*将输入的字符串转化为整型数*/
}while(c<0||c>5); /*选择项不在0~4之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
/**********************************输出函数,参数为结构体数组******************************/
程序代码
void print(STUDENT temp)
{ printf("\n\n*****************************************************************************\n\n\n"); printf(" 班级号 学号 姓名 电话 QQ\n\n");
printf("--------------------------------------------------------------------------------\n\n");
printf(" %2s\t%15s%15s%15s %12s\n\n\n",temp.cla,temp.num,,temp.tel,temp.
qq); printf("************************************end***************************************\n\n\n");
}
/**********************************添加函数,参数为结构体数组以及记录条数******************************/ int add(STUDENT t[],int n) {
STUDENT temp;
if(n>=M) printf("通迅录容量已达到最大值,无法增加...\n"); else {
n++;
printf("输入增加的个人班级号:\n"); scanf("%s",temp.cla);
printf("输入增加的个人学号:\n"); scanf("%s",temp.num);
printf("输入增加的个人姓名:\n"); scanf("%s",);
printf("输入增加的个人QQ号:\n"); scanf("%s",temp.qq);
printf("输入增加的个人电话:\n"); scanf("%s",temp.tel); strcpy(t[n].cla,temp.cla); strcpy(t[n].num,temp.num); strcpy(t[n].name,); strcpy(t[n].qq,temp.qq); strcpy(t[n].tel,temp.tel); file_in(t,n);
}
return n;
}
/**********************************修改函数,参数为结构体数组以及记录条数******************************/ void change(STUDENT s[],int n) {
程序代码
STUDENT temp;
int i=M,flag=0;
printf("请查找要修改个人记录的姓名:\n"); i=find_name(s,n); print(s[i]);
printf("是否修改?\n(1是 0否)\n"); scanf("%d",&flag);
if(flag==1) { printf("输入修改的个人班级号:\n");
scanf("%s",temp.cla);
printf("输入修改的个人学号:\n"); scanf("%s",temp.num);
printf("输入修改的个人姓名:\n"); scanf("%s",);
printf("输入修改的个人QQ号:\n"); scanf("%s",temp.qq);
printf("输入修改的个人电话:\n"); scanf("%s",temp.tel); strcpy(s[i].cla,temp.cla); strcpy(s[i].num,temp.num); strcpy(s[i].name,); strcpy(s[i].qq,temp.qq); strcpy(s[i].tel,temp.tel); file_in(s,n);
} }
/******************************删除函数,参数为结构体数组和记录条数****************************/ int del(STUDENT t[],int n) { int ch=0;
int i,j;
printf("查找要删除的记录信息\n"); /*提示信息*/ i=find_name(t,n); /*调用find_name函数*/
print(t[i]); /*调用输出函数显示该条记录信息*/
printf("确认是否要删除(1是/0否)\n"); /*确认是否要删除*/ scanf("%d",&ch); /*输入一个整数0或1*/ if(ch==1) /*如果确认删除整数为1*/
{ for(j=i+1;j<n;j++) /*删除该记录,实际后续记录前移*/
{ strcpy(t[j-1].cla,t[j].cla); /*将后一条记录的班级拷贝到前一条*/ strcpy(t[j-1].num,t[j].num); /*将后一条记录的学号拷贝到前一条*/
程序代码
strcpy(t[j-1].name,t[j].name); /*将后一条记录的姓名拷贝到前一条*/ strcpy(t[j-1].qq,t[j].qq);/*将后一条记录的QQ拷贝到前一条*/ strcpy(t[j-1].tel,t[j].tel);/*将后一条记录的电话拷贝到前一条*/
}
n--; /*记录数减1*/
}
printf("删除成功\n"); file_in(t,n);
return n; /*返回记录数*/
}
/**************************保存函数,参数为结构体数组和记录数**************************/ void file_in(STUDENT t[],int n) {
int i;
FILE *fp; /*指向文件的指针*/
if((fp=fopen("record.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/ { printf("不能打开文件\n");/*没打开*/ }
rewind(fp);
printf("\n保存信息中……\n"); /*输出提示信息*/ fprintf(fp,"%d",n); /*将记录数写入文件*/ fprintf(fp,""); /*将换行符号写入文件*/
exit(1); /*退出*/
for(i=0;i<n;i++) { fprintf(fp,"%-8s%-15s%-20s%-12s%-15s",t[i].cla,t[i].num,t[i].name,t[i].qq,t[i].tel);/*格式写入记录*/ fprintf(fp,""); /*将换行符号写入文件*/
}
fclose(fp);/*关闭文件*/
printf("****保存成功***\n\n"); /*显示保存成功*/ }
/**************************加载函数,将文件中的信息加载到参数结构体数组,参数为结构体数组和记录数**************************/ int file_out(STUDENT t[])
{ int i,n; FILE *fp; /*指向文件的指针*/ if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/
{ printf("不能打开文件\n"); /*不能打开*/ exit(1); /*退出*/
程序代码
}
rewind(fp);
fscanf(fp,"%d",&n); /*读入记录数*/
for(i=0;i<n;i++) fscanf(fp,"%8s%15s%20s%12s%15s",t[i].cla,t[i].num,t[i].name,t[i].qq,t[i].tel); /*按格
式读入记录*/ fclose(fp); /*关闭文件*/
return n; /*返回记录数*/ }
/****************************姓名查找函数,参数为记录数组和记录条数以及姓名s ************************/ int find_name(STUDENT t[],int n)
{ int i=M; char s[20]; /*要查找记录的姓名*/ printf("请输入要查找记录的姓名\n"); /*提示信息*/
scanf("%s",s);/*输入姓名*/
for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/
{ if(strcmp(s,t[i].name)==0) /*记录中的姓名和待比较的姓名是否相等*/ return i; /*相等,则返回该记录的下标号,程序提前结结束*/ }
if (i>=M) printf("没有找到相关记录\n"); return i; /*返回i值*/
}
/*****************************学号查找函数,参数为记录数组和记录条数以及学号num **************************/ int find_num(STUDENT t[],int n) {
int i=M;
char nu[15]; /*要查找记录的学号*/
printf("请输入要查找记录的学号\n"); /*提示信息*/ scanf("%s",nu);/*输入学号*/
for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/
{ if(strcmp(nu,t[i].num)==0) /*记录中的学号和待比较的学号是否相等*/ }
return i; /*相等,则返回该记录的下标号,程序提前结结束*/
if (i>=M) printf("没有找到相关记录\n"); return i; /*返回i值*/
}
/****************************QQ号查找函数,参数为记录数组和记录条数以及qq
程序代码
*************************/ int find_qq(STUDENT t[],int n) { int i=M; char q[12]; /*要查找记录的qq*/
printf("请输入要查找记录的qq\n"); /*提示信息*/ scanf("%s",q);/*输入qq*/
for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/ { if(strcmp(q,t[i].qq)==0) /*记录中的QQ和待比较的QQ是否相等*/ }
if (i>=M) printf("没有找到相关记录\n"); return i; /*返回i值*/
return i; /*相等,则返回该记录的下标号,程序提前结结束*/
}
/*********************************电话号查找函数,参数为记录数组和记录条数以及电话*************************/ int find_tel(STUDENT t[],int n) {
int i=M;
char te[15]; /*要查找记录的电话*/
printf("请输入要查找记录的电话\n"); /*提示信息*/ scanf("%s",te);/*输入电话*/
for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/
{ if(strcmp(te,t[i].tel)==0) /*记录中的电话和待比较的电话是否相等*/
return i; /*相等,则返回该记录的下标号,程序提前结结束*/
}
if (i>=M) printf("没有找到相关记录\n"); return i; /*返回i值*/
}
/********************************主查找函数,参数为记录数组和记录条数****************************/ int search(STUDENT t[],int n) {
int i=0;
switch(search_menu(t,n))
{
case 1:i=find_name(t,n);break; /*按姓名查询*/ case 2:i=find_num(t,n);break; /*按学号查询*/ case 3:i=find_tel(t,n);break; /*按电话号码查询*/ case 4:i=find_qq(t,n); break; /*按QQ号查询*/
程序代码
}
return i; }
/**************************主查找函数菜单,参数为记录数组和记录条数,返回值给主查找函数调用****************************/ int search_menu(STUDENT t[],int n) { char c;
printf("********************SEARCH MENU*********************\n\n"); printf(" 1. 按姓名查询\n"); printf(" 2. 按学号查询\n"); printf(" 3. 按电话号码查询\n");
printf(" 4. 按QQ号查询\n");
printf("***********************************************\n"); do{ printf("\n 请输入你的选择(1~4):"); /*提示输入选项*/ c=getchar(); /*输入的字符*/
}while(c<'1'||c>'4'); /*选择项不在1~4之间重输*/
n=c-48;
return n; /*返回选择项,主程序根据该数调用相应的函数*/
}
正在阅读:
学生通迅录管理_c语言课程设计05-20
六年级上册心理健康教学设计06-23
第一场雪作文350字07-10
2018-2024年中国茶饮料行业市场调查研究及投资潜力预测报告12-09
清科季报:2019年第二季度VC市场募资额同比下降62.2%,投资额同比下降51.9%06-10
大学生心理健康教育课试卷、答案07-28
一件不开心的事作文02-05
电动车创业计划书06-22
思考题及案例-实务部分06-06
药物化学06-06
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 通迅
- 语言
- 课程
- 学生
- 设计
- 管理
- 2015吉林省公务员考试行测:解题原则之选择最优
- 公司法人格否认之人格混同情形司法适用研究_姜婉莹
- 外墙螺栓孔及脚手孔的防渗封堵技术
- 数字化助力报业应对新媒体的冲击——H3C数字报业解决方案
- 体育彩票十项公益金明细
- 三年级上册科学第二单元复习题带答案
- 北电售后技术资源
- BSCI文件-08(劳动用工程序)
- 金银首饰消费税解析
- 计算机专业英语期末必考题及答案总结
- 中医妇科常用方歌
- 日本稻盛和夫的《活着》中的精彩语段之令狐文艳创作
- 人教版初中语文七年级(上)《童趣》教学设计
- 上海百联集团股份有限公司
- 年度工作总结格式
- 每周销售工作总结和计划
- 工业信息安全发展趋势
- HC-SR04超声波测距模块说明书
- 2021年义齿加工厂各部门生产流程
- 六年级数学下册期末考试卷各版本