学生通迅录管理_c语言课程设计
更新时间:2023-08-12 05:25: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语言课程设计08-12
大数据与智慧教育11-26
古代美学导读注03-04
《飞鸟集》读者品读心得范文优选08-04
男人从未长大 只是玩具越来越贵分析04-30
培训2013.03.15 - 图文09-16
小学数学50道经典必会应用题及分析03-10
浙江现代物流业与经济增长的互动关系研究05-21
中心试验室2011年终总结06-05
汨罗市1-8月服务业情况分析06-24
- 奶牛焦虫病的诊断与防治 - 医学期刊频道--首席医学网
- 外包工程发包流程
- 管理信息系统(路晓丽版)课后题答案(1-12章全)
- 小学语文课题研究方案
- 企业内部培训师管理制度
- 《史记》拓展阅读设计
- 入口广场铺装施工方案
- 附录B塔式起重机安装验收记录表
- 云南省昆明三中2014-2015学年高二下学期期中考试物理试卷 (Word版含答案)
- 郑州大学毕业设计附件
- 民俗学视野下的中国百年歌谣研究
- 巩固练2020统编版(2019)高二选择性必修上册第一单元阶段复习 第一单元仿真模拟训练
- 量化研究学习书单
- 给尾注编号加方括号超级简单方法
- 第1课《放大镜》
- 定价的步骤及新产品定价策略(1)
- 八年级英语下册第六单元基础知识
- 全省地方志工作会议综述
- An Investigation of Tightly Coupled Time Synchronous Speech Language Interfaces Using a Uni
- 新目标英语八年级(上)单元测试题(Units6-7)
- 通迅
- 语言
- 课程
- 学生
- 设计
- 管理
- 三年级上册科学第二单元复习题带答案
- 2015-2020年中国锂电池行业发展趋势及投资前景分析报告
- 如何设计销售人员的薪酬体系?——最经典的薪酬体系案例及分析
- 基于伪造密码键的盘记录器和屏幕录像软件(IJCNIS-V4-N5-2)
- 数字逻辑电路计数器
- 大面积提高学生语文会考成绩的有效途径
- 三年级数学培优补困总结
- 100_国寿农村小额团体定期寿险(A型)条款
- 锅炉静压上水技术措施
- 数控车床验收报告
- 开心消消乐精力值怎么得?怎么送给好友?
- 外研版(三起)六年级英语上册Module7 Unit1
- 商业景观设计教学多元化体系的构建研究
- 年度工作总结格式
- 2014年最新平安夜祝福语短信
- 九年级化学下册第七单元常见的酸和碱第二节碱及其性质练习新版鲁教版72
- 不动产附负担赠与契约完整版
- 植物大战僵尸2功夫世界第2关图文攻略
- 积极探索选调生培养管理途径
- 2021年园林绿化种植报验申请表及检验批全套