㈠ c语言程序设计学生信息管理系统中如何插入学生信息
真有点累人啊,汗~~~~~~
不过,你的要求这些代码都能满足了,
可能会有点小错误,我这儿也无法验证,总之总体的思路是完全正确的。
#include <stdio.h>
#include <string.h> //字符串头文件
#include <windows.h> //Sleep函数的头文件
#include <conio.h> //getch函数的头文件
#define N 50
//定义全局变量
//定义学员结构体
typedef struct Student
{
char name[10];//姓名
int NO;//学号
char sex[10];//性别
char subject[20];//专业
int phone;//电话
char jianli[200];//简历
}STU;
//声明这种学员类型的数组
STU stu[N];
//计数器n
int n=0; //代表数组的实际人数
//登录函数
void login()
{
system("color 2A");//定义背景和前景颜色
//登录模块实现代码
char Yonghu[30];
char Mima[30];
for(int i=0;i<3;i++)
{
// 打印登陆界面
Sleep(500);//定时打印
printf("\n\n\t\t\t\t学员管理系统平台\n");
Sleep(500);
printf("\n\t\t\n");
Sleep(500);
printf("\n\t\t\t\t用户名:");
gets(Yonghu);
printf("\n\t\t\t\t密码:");
char let=NULL;//定义一个字符变量为空值
int j=0; //代表密码的实际长度
while(j<10 && let!=13)//定义密码长度和当接收的字符不为回车键(回车键的ASCLL码值为13)时
{
let=getch();//获得字符 不显示
if(let!=8)//当接收的字符不为退格键(退格键的ASCLL码值为8)时
{
Mima[j++]=let;//将接收的字符赋给数组Mima并自加一个长度
printf("*");
}
else
{
if(j>0)//当密码长度不为0时
{
//删除字符的操作
putchar(8);
putchar(' ');
putchar(8);
Mima[--j]=NULL;//将空值赋给数组Mima并自减一个长度
}
}
}
Mima[--j]=NULL;
putchar(8);//消除因回车键所打印的*
putchar(' ');
putchar(8);
putchar('\0');//字符串结束标记
//验证密码
if(strcmp(Yonghu,"姓名")==0 && strcmp(Mima,"123456")==0)//用比较函数判断用户输入的用户名和密码是否正确
{
//调用dos命令清空控制台屏幕
system("cls");
printf("\n\n\n\n\n\t\t\t正在登录菜单界面,请稍候...");
for(int i=0;i<=5;i++)
{
Sleep(666);
printf(">>>");
}
for(int i=0;i<=100;i++)
{
system("cls");
//%%为百分号
printf("\n\n\n\n\n\n\n\t\t\t\t正在加载数据中...%d%%",i);
}
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t\t加载数据成功,loding.....\n");
break;//跳出for循环
}
else
{
if(i<2)//用户输入错误不超过2次
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n");
Sleep(1000);
printf("\t:抱歉,您输入的用户名或密码错误,请重新输入!\n");
}
else//用户3次输入都错误时
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n");
Sleep(1000);
printf("\t:Sorry,您输入的用户名或密码错误次数太多,请休息一会再来!\n");break;
}
}
Sleep(2000);
//调用dos命令清空控制台屏幕
system("cls");
}
}
//菜单函数
void menu()
{
Sleep(2000);
//调用dos命令清空控制台屏幕
system("cls");
//打印功能菜单界面
Sleep(500);
printf("\n\n\t\t\t\t学员管理系统平台\n");
Sleep(500);
printf("\n\t\t************************************************\n");
Sleep(500);
printf("\n\t\t功能菜单:\n\n");
Sleep(1000);
printf("\t\t 1、录入单个学员信息 2、显示所有学员信息\n");
Sleep(1000);
printf("\t\t 3、排序显示学员信息 4、插入单个学员信息\n");
Sleep(1000);
printf("\t\t 5、删除单个学员信息 6、查找单个学员信息\n");
Sleep(1000);
printf("\t\t 7、读取所有学员信息 8、保存所有学员信息\n");
Sleep(1000);
printf("\t\t 9、清空全部学员信息 0、退出学员管理系统\n");
}
//录入函数
void input()
{
int i;
char answer;
do
{
//录入学号
do
{
printf("学号:");
scanf("%d",&stu[n].NO);
// 判断输入格式是否有错
while(stu[n].NO<=0 || stu[n].NO>50)
{
printf("\t:输入格式有误,请重新输入!\n");
fflush(stdin); //判断输入其它字符(如:a,b,aa,skd...)时报错
printf("学号:");
scanf("%d",&stu[n].NO);
}
//循环遍历输入的学号是否重复
for(i=0;i<n;i++)
{
if(stu[i].NO==stu[n].NO)
{
printf("\t:学号重复,请重新输入!\n");
break;
}
}
}while(i<n);
//录入姓名
do
{
printf("姓名:");
scanf("%s",stu[n].name);
//判断输入时姓名是否为空
while(strlen(stu[n].name)==0)
{
printf("\t:姓名不能为空,请重新输入!\n");
printf("姓名:");
scanf("%s",stu[n].name);
}
// 判断输入时姓名是否含有数字
for(i=0;i<strlen(stu[n].name);i++)
{
if(stu[n].name[i]>='0'&&stu[n].name[i]<='9')
{
printf("提示:姓名不能含有数字,请重新输入!\n");
break;
}
}
}while(i<strlen(stu[n].name));
//录入性别
do
{
printf("性别");
scanf("%s",stu[n].sex);
}while(i<strlen(stu[n].sex));
//录入专业
do
{
printf("专业");
scanf("%s",stu[n].subject);
}while(i<strlen(stu[n].subject));
//录入联系电话
do
{
printf("电话号码");
scanf("%s",&stu[n].phone);
}while(i<strlen(stu[n].phone));
//录入简历
do
{
printf("简历\n");
scanf("%s",stu[n].jianli);
}while(i<strlen(stu[n].jianli);
n++;//实际的人数自加一次
//判断输入成绩的实际人数是否超出已定内存空间
if(n<N)
{
printf("是否继续录入?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}
else
{
printf("实际人数超出已定存储空间的内存,程序终止!\n");
break;
}
}while(answer=='Y' || answer=='y');
}
//显示函数
void display()
{
//打印表头
printf("********************************************************************************\n");
printf("学号\t姓名\t性别\t专业\n");
printf("********************************************************************************\n");
//循环打印学员信息
for(int i=0;i<n;i++)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].NO,stu[i].name,stu[i].sex,stu[i].subject);
printf("********************************************************************************\n");
}
printf("\n联系电话\n");
for(int i=0;i<n;i++)
{
printf("%d\n",stu[i].phone);
printf("********************************************************************************\n");
}
printf("\n学历\n");
for(int i=0;i<n;i++)
{
printf("%s",stu[i].jianli);
printf("********************************************************************************\n");
}
}
//排序函数
void sort()
{
STU temp;//定义临时变量
int i,j;
//冒泡排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(stu[j].avg<stu[j+1].avg)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
}
//插入函数
void insert()
{
int i,j;//定义循环变量
STU newStu;//定义实行插入功能时输入的类型
char answer;
printf("单个学员信息的循环插入:\n");
do
{
do
{
printf("学号:");
scanf("%d",&newStu.NO);
// 判断输入格式是否有错
while(newStu.NO<=0 || newStu.NO>50)
{
printf("\t:输入格式有误,请重新输入!\n");
fflush(stdin); //判断输入其它字符(如:a,b,aa,skd...)时报错
printf("学号:");
scanf("%d",&newStu.NO);
}
//循环遍历输入的学号是否重复
for(i=0;i<n;i++)
{
if(stu[i].NO==newStu.NO)
{
printf("\t:学号重复,请重新输入!\n");
break;
}
}
}while(i<n);
do
{
printf("姓名:");
scanf("%s",&newStu.name);
//判断输入时姓名是否为空
while(strlen(newStu.name)==0)
{
printf("\t:姓名不能为空,请重新输入!\n");
printf("姓名:");
scanf("%s",newStu.name);
}
// 判断输入时姓名是否含有数字
for(i=0;i<strlen(newStu.name);i++)
{
if(newStu.name[i]>='0' && newStu.name[i]<='9')
{
printf("提示:姓名不能含有数字,请重新正确输入!\n");
break;
}
}
}while(i<strlen(newStu.name));
n++;//实际的人数自加一次
sort();//调用排序函数
//循环遍历找位置
for(i=0;i<n;i++)
{
if(newStu.avg>stu[i].avg)
{
j=i;
break;
}
}
//移位
for(i=n;i>j;i--)
{
stu[i]=stu[i-1];
}
stu[j]=newStu;//将newStu插入到j的位置
//判断插入的实际人数是否超出已定内存空间
if(n<N)
{
printf("是否继续插入?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}
else
{
printf("实际人数超出已定存储空间的内存,程序终止!\n");
break;
}
}while(answer=='Y' || answer=='y');
}
//删除函数
void remove()
{
int i,j,no;
char answer;
do
{
printf("请输入要删除学员的学号:");
scanf("%d",&no);
//循环遍历找位置
for(i=0;i<n;i++)
{
if(no==stu[i].NO)
{
j=i;
break;
}
}
//移位
if(i<n)
{
for(i=j;i<n-1;i++)
{
stu[i]=stu[i+1];
}
n--;//实际人数自减一个
printf("\n\n系统在第%d个位置找到了学号为%d的学员!\n",j+1,no);
}
else
{
printf("没有找到您要删除的学员学号,请重新选择功能!\n");
}
//判断是否已经没有可以删除的人数
if(n>0)
{
printf("是否继续删除?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}
else
{
printf("已经没有可以删除的人数了,程序终止!\n");
break;
}
}while(answer=='Y' || answer=='y');
}
//查找函数
void search()
{
int i,no;
char answer;
printf("请输入您要查找学员的学号:");
scanf("%d",&no);
do
{
//循环遍历找位置
for(i=0;i<n;i++)
{
if(stu[i].NO==no)
{
break;
}
}
if(i<n)
{
printf("\n\n系统在第%d个位置找到了学号为%d的学员!\n",i+1,no);
printf("该学员的信息如下:\n");
printf("********************************************************************************\n");
printf("学号\t姓名\t成绩一\t成绩二\t成绩三\t平均分\t总分\n");
printf("********************************************************************************\n");
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].NO,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg,stu[i].sum);
printf("********************************************************************************\n");
}
else
{
printf("\n提示:对不起,没有找到学号为%d的学员\n",no);
}
//判断是否继续查询
printf("是否继续查询?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}while(answer=='Y' || answer=='y');
}
//读取函数
int read()
{
FILE *fp;//定义文件指针变量
fp=fopen("e:\\xueyuanguanlixitong.txt","rt");
int n=fread(stu,sizeof(STU),N,fp);
return n;
}
//保存函数
void save()
{
FILE *fp;//定义文件指针变量
fp=fopen("e:\\xueyuanguanlixitong.txt","wb");
fwrite(stu,sizeof(STU),n,fp);
fclose(fp);
printf("已保存在:e:\\xueyuanguanlixitong.txt\n");
printf("\n\n\n\n\n\t\t\t\t保存成功!O(∩_∩)O~\n");
}
//主函数
void main()
{
login();//调用登录函数
int choice,i;//定义用户选择变量
do
{
//显示菜单
menu();
printf("\n\t请选择:");
scanf("%d",&choice); //接受用户选择
switch(choice)
{
case 1:
system("cls"); //清屏
printf("\n单个学员信息的循环录入\n");
input();
display();
system("pause");
break;
case 2:
system("cls");
display();
system("pause"); //暂停一下程序
break;
case 3:
system("cls");
if(n==0)
{
printf("\t\t学员个数为0,无法排序,请先录入!\n");
system("pause");
break;
}
else
{
sort(); ;//调用排序函数
system("pause");
break;
}
case 4:
system("cls");
insert(); //调用插入函数
system("pause");
break;
case 5:
system("cls");
remove(); //调用删除函数
system("pause");
break;
case 6:
system("cls");
search(); //调用查找函数
system("pause");
break;
case 7:
system("cls");
n=read(); //调用读取函数
printf("读取成功!\n");
system("pause");
break;
case 8:
system("cls");
save(); //调用保存函数
system("pause");
break;
case 9:
system("cls");
n=0; //清空学员个数
printf("清空完成!\n");
system("pause");
break;
case 0: //退出程序
system("cls");
for(i=5;i>=0;i--)
{
Sleep(1000);
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t请稍等,还有%d秒推出程序!\n\n\n",i);
}
system("cls");
printf("\n\n\n\n\n\n你已经成功退出程序\n\t\t谢谢使用,欢迎再次登录!\n");
exit(0);
break;
default:
system("cls");
printf("\n\n\n\n\n\t\t请选择0-9之间的数!\n");
system("pause");
}
}while(1);
}
㈡ 用c语言编写学生信息管理系统
我这有伍族个差不多的,要吗?是我写的实训作业
程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int man=0;
int j;
char str[20];
struct student
{
char id[11];
char name[10];
int n1;
int n2;
int n3;
int n4;
int n5;
int n6;
int n7;
int n8;
int n9;
int zong;
int ping;
}student[100],temp;
void read(void)
{
FILE *cj;
int i,k;
man=0;
while(1)
{
printf("请输入要读取的文件:\n");
scanf("%s",&str);
if((cj=fopen(str,"r"))==NULL)
{
printf("打唯烂开失败\n");
}
else
{
break;
}
}
for(i=0;i<500;i++)
{
if(fscanf(cj,"%s %s %d %d %d %d %d %d %d %d %d",&student[i].id,&student[i].name,&student[i].n1,&student[i].n2,&student[i].n3,&student[i].n4,&student[i].n5,&student[i].n6,&student[i].n7,&student[i].n8,&student[i].n9)==-1)
{
break;
}
man=man+1;
}
printf("从%s读取去了“%d”条记录\n",str,man);
for(k=0;k<man;k++)
{
student[k].zong=student[k].n1+student[k].n2+student[k].n3+student[k].n4+student[k].n5+student[k].n6+student[k].n7+student[k].n8+student[k].n9;
}
for(i=0;i<man;i++)
{
student[i].ping=student[i].zong/9;
}
fclose(cj);
}
void write(void)
{
FILE *cj;
int i;
char me;
printf("请确认是否保存(是:y,否:任意键):\n");
scanf("%s",&me);
if(me=='y')
{
if((cj=fopen(str,"w"))==NULL)
{
printf("保存失败\n");
}
for(i=0;i<man;i++)
{
fprintf(cj,"%s %s %d %d %d %d %d %d %d %d %d\n",student[i].id,student[i].name,student[i].n1,student[i].n2,student[i].n3,student[i].n4,student[i].n5,student[i].n6,student[i].n7,student[i].n8,student[i].n9);
}
printf("存了“%d”条记录到%s\n",man,str);
fclose(cj);
}
else
return;
}
void save(void)
{
FILE *cj;
int i;
char me;
printf("请输入新的文件名:\n");
scanf("%s",&str);
printf("请确认是否保存(是:y,否:任意键):\n"指橘漏);
scanf("%s",&me);
if(me=='y')
{
if((cj=fopen(str,"w"))==NULL)
{
printf("保存失败\n");
}
for(i=0;i<man;i++)
{
fprintf(cj,"%s %s %d %d %d %d %d %d %d %d %d\n",student[i].id,student[i].name,student[i].n1,student[i].n2,student[i].n3,student[i].n4,student[i].n5,student[i].n6,student[i].n7,student[i].n8,student[i].n9);
}
printf("存了“%d”条记录到%s\n",man,str);
fclose(cj);
}
else
return;
}
void print(void)
{
int i;
for(i=0;i<72;i++)
printf("*");
printf("\n");
printf(" | 学号 姓名 1 2 3 4 5 6 7 8 9 平均分 总分 | \n");
for(i=0;i<man;i++)
{
printf(" | %10s %-6s %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d | \n",student[i].id,student[i].name,student[i].n1,student[i].n2,student[i].n3,student[i].n4,student[i].n5,student[i].n6,student[i].n7,student[i].n8,student[i].n9,student[i].ping,student[i].zong);
}
for(i=0;i<72;i++)
printf("*");
printf("\n");
}
void inquiry(void)
{
int i;
char id[10];
while(1)
{
printf("请输入要查人的学号或名字(输入-1即返回上一级):\n");
scanf("%s",&id);
if(id[0]=='-'&&id[1]=='1')
{
printf("exit\n");
break;
}
else
{
for(i=0;i<man;i++)
{
if(strcmp(student[i].id,id)==0)
{
j=i;
break;
}
if(strcmp(student[i].name,id)==0)
{
j=i;
break;
}
j=-1;
}
if(j==-1)
{
printf("无此人\n");
}
else
{
printf(" | 学号 姓名 1 2 3 4 5 6 7 8 9 总分 平均分 | \n");
printf(" | %10s %-6s %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d | \n",student[j].id,student[j].name,student[j].n1,student[j].n2,student[j].n3,student[j].n4,student[j].n5,student[j].n6,student[j].n7,student[j].n8,student[j].n9,student[i].ping,student[i].zong);
}
}
}
}
void fail(void)
{
int i;
printf("有不及格成绩的学生为:\n");
for(i=0;i<man;i++)
{
if(student[i].n1<60||student[i].n2<60||student[i].n3<60||student[i].n4<60||student[i].n5<60||student[i].n6<60||student[i].n7<60||student[i].n8<60||student[i].n9<60)
{
printf(" | %10s %-6s %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d | \n",student[i].id,student[i].name,student[i].n1,student[i].n2,student[i].n3,student[i].n4,student[i].n5,student[i].n6,student[i].n7,student[i].n8,student[i].n9,student[i].ping,student[i].zong);
}
}
}
void compositor(void)
{
int i,k;
char m;
printf("请选择干什么排序:\n");
printf("1.成绩1\n");
printf("2.成绩2\n");
printf("3.成绩3\n");
printf("4.成绩4\n");
printf("5.成绩5\n");
printf("6.成绩6\n");
printf("7.成绩7\n");
printf("8.成绩8\n");
printf("9.成绩9\n");
printf("0.总成绩或平均成绩\n");
scanf("%s",&m);
if(m=='0')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].zong<student[i+1].zong)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='1')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n1<student[i+1].n1)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='2')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n2<student[i+1].n2)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='3')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n3<student[i+1].n3)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='4')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n4<student[i+1].n4)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='5')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n5<student[i+1].n5)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='6')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n6<student[i+1].n6)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='7')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n7<student[i+1].n7)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='8')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n8<student[i+1].n8)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else if(m=='9')
{
for(k=man;k>0;k--)
{
for(i=0;i<k;i++)
{
if(student[i].n9<student[i+1].n9)
{
temp=student[i];
student[i]=student[i+1];
student[i+1]=temp;
}
}
}
}
else
printf("无此功能\n");
}
void raise(void)
{
printf("请输入添加人的学号:\n");
scanf("%s",&student[man].id);
printf("请输入添加人的姓名:\n");
scanf("%s",&student[man].name);
printf("请输入添加人的成绩1:\n");
scanf("%d",&student[man].n1);
printf("请输入添加人的成绩2:\n");
scanf("%d",&student[man].n2);
printf("请输入添加人的成绩3:\n");
scanf("%d",&student[man].n3);
printf("请输入添加人的成绩4:\n");
scanf("%d",&student[man].n4);
printf("请输入添加人的成绩5:\n");
scanf("%d",&student[man].n5);
printf("请输入添加人的成绩6:\n");
scanf("%d",&student[man].n6);
printf("请输入添加人的成绩7:\n");
scanf("%d",&student[man].n7);
printf("请输入添加人的成绩8:\n");
scanf("%d",&student[man].n8);
printf("请输入添加人的成绩9:\n");
scanf("%d",&student[man].n9);
student[man].zong=student[man].n1+student[man].n2+student[man].n3+student[man].n4+student[man].n5+student[man].n6+student[man].n7+student[man].n8+student[man].n9;
student[man].ping=student[man].zong/9;
man=man+1;
}
void alter(void)
{
int i;
char id[10];
printf("请输入要修改人的学号:\n");
scanf("%s",&id);
for(i=0;i<man;i++)
{
if(strcmp(student[i].id,id)==0)
{
j=i;
break;
}
j=-1;
}
if(j==-1)
{
printf("无此人\n");
}
else
{
printf("请输入要修改为的学号:\n");
scanf("%s",&student[j].id);
printf("请输入要修改为的姓名:\n");
scanf("%s",&student[j].name);
printf("请输入要修改为的成绩1:\n");
scanf("%d",&student[j].n1);
printf("请输入要修改为的成绩2:\n");
scanf("%d",&student[j].n2);
printf("请输入要修改为的成绩3:\n");
scanf("%d",&student[j].n3);
printf("请输入要修改为的成绩4:\n");
scanf("%d",&student[j].n4);
printf("请输入要修改为的成绩5:\n");
scanf("%d",&student[j].n5);
printf("请输入要修改为的成绩6:\n");
scanf("%d",&student[j].n6);
printf("请输入要修改为的成绩7:\n");
scanf("%d",&student[j].n7);
printf("请输入要修改为的成绩8:\n");
scanf("%d",&student[j].n8);
printf("请输入要修改为的成绩9:\n");
scanf("%d",&student[j].n9);
student[j].zong=student[j].n1+student[j].n2+student[j].n3+student[j].n4+student[j].n5+student[j].n6+student[j].n7+student[j].n8+student[j].n9;
student[j].ping=student[j].zong/9;
}
}
void deletes()
{
int i,k;
char id[10];
printf("请输入要删除人的学号:\n");
scanf("%s",&id);
for(i=0;i<man;i++)
{
if(strcmp(student[i].id,id)==0)
{
j=i;
break;
}
j=-1;
}
if(j==-1)
{
printf("无此人\n");
}
else
{
for(k=j;k<man;k++)
{
student[j]=student[j+1];
j=j+1;
}
man=man-1;
}
}
void menu(void)
{
int i;
printf("\n");
for(i=0;i<10;i++)
printf(" ");
for(i=0;i<60;i++)
printf("*");
for(i=0;i<9;i++)
printf(" ");
printf("\n");
for(i=0;i<10;i++)
printf(" ");
printf("# 1.显示学生成绩信息 6.查询不及格学生信息 #\n");
for(i=0;i<10;i++)
printf(" ");
printf("# 2.按成绩由高到低排序 7.修改学生成绩信息 #\n");
for(i=0;i<10;i++)
printf(" ");
printf("# 3.添加学生成绩信息 8.读取文件 #\n");
for(i=0;i<10;i++)
printf(" ");
printf("# 4.删除学生成绩信息 9.保存文件 #\n");
for(i=0;i<10;i++)
printf(" ");
printf("# 5.查询学生成绩信息 -. 另存为 #\n");
for(i=0;i<10;i++)
printf(" ");
printf("# +.退出 #\n");
for(i=0;i<10;i++)
printf(" ");
for(i=0;i<60;i++)
printf("*");
for(i=0;i<9;i++)
printf(" ");
printf("\n");
}
int main(void)
{
char i;
read();
menu();
while(1)
{
printf("请输入要选择的需要功能的序列号(输入0显示菜单):\n");
scanf("%s",&i);
if(i=='1')
{
print();
}
else if(i=='2')
{
compositor();
print();
}
else if(i=='3')
{
raise();
print();
}
else if(i=='4')
{
deletes();
print();
}
else if(i=='5')
{
inquiry();
}
else if(i=='6')
{
fail();
}
else if(i=='7')
{
alter();
print();
}
else if(i=='8')
{
read();
}
else if(i=='9')
{
write();
}
else if(i=='0')
{
menu();
}
else if(i=='+')
{
break;
}
else if(i=='-')
{
save();
}
else
{
printf("无此功能,请重新输入序列号\n");
}
}
return 0;
}
记事本文件:你可以随意起名,但要放在和程序同目录
0615438101 顾佳 44 67 72 60 66 65 93 82 67
0615438103 金一宇 60 77 75 75 78 77 97 74 76
0615438104 李阳涛 50 76 66 73 74 80 92 89 74
0615438105 马凯 66 76 77 66 75 72 95 82 75
0615438106 史超 47 71 65 61 85 72 89 83 70
0615438108 徐磊 60 75 66 80 76 80 92 68 74
0615438109 杨浩 60 81 70 91 83 72 93 72 78
0615438110 于泽 61 75 78 70 87 73 84 92 77
0615438111 张昊 60 71 57 82 72 63 86 38 67
0615438112 张政 60 67 69 80 66 61 87 88 73
0615438114 周艨 61 69 71 38 74 77 76 89 67
0615438131 张楠 86 74 72 90 80 81 97 80 84
0615438132 王凡 29 68 48 35 46 76 88 62 54
㈢ C语言课程设计—学生成绩管理系统<急!!!!!>注意要求,谢谢
#include <time.h>
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include<string.h>
#define MAX 80
void input();
void sort();
void display();
void insert();
void del();
void average();
void find();
void save();
void read();
void del_file();
void average();
void modify();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
int as;
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
scanf("%d",&as);
switch(as)
{
case 1:system("cls");input();break;
case 2:system("cls");display();break;
case 3:system("cls");sort();break;
case 4:system("cls");insert();break;
case 5:system("cls");del();break;
case 6:system("cls");modify();break;
case 7:system("cls");find();break;
case 8:system("cls");read();break;
case 9:system("cls");del_file();break;
case 10:system("cls");save();break;
case 11:system("exit");exit(0);
default:system("cls");goto start;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
average();
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*显示数据函数*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i,j;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存数据函数*/
{
FILE *fp;
int i;
char filepath[20];
printf("输入要保存的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void average()/*求平均数*/
{
int i;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20],as;
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
system("cls");
}
void read()
{
FILE *fp;
int i;
char filepath[20];
printf("输入要读入的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i<MAX&&!feof(fp);i++)
{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已经读入!\n",filepath);
system("pause");
system("cls");
}
void del_file()
{
FILE *fp;
char filepath[20];
printf("输入要删除的文件路径:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已经删除!\n",filepath);
system("pause");
system("cls");
}
自己改改就好了 谢谢 给分哦