学生信息管理系统(C )
学生信息管理系统c语言代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN 15#define N 100struct record //定义结构体{char code[LEN];char name[LEN];int age;char sex[3];char time[LEN];char add[30];char tel[LEN];char mail[30];}stu[N];int k=1,n,m; //引用void readfile();void seek();void modify();void insert();void del();void display();void save();void menu();int main(){while(k)menu();system("pause");return 0;}void help(){printf("\n0.欢迎使用系统帮助!\n");printf("\n1.进入系统后,先刷新学生信息,再查询;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.增加学生信息后,切记保存按;\n");printf("\n4.谢谢您的使用!\n");}void readfile()//建立信息{char *p="student.txt";FILE *fp;int i=0;if ((fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","r+"))==NULL){printf("Open file %s error! Strike any key to exit!",p);system("pause");//暂停的意思,等待用户信号exit(0);}while(fscanf(fp,"%s %s %d %s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,s tu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() //查找信息{int i,item,flag;char s1[21];printf("------------------\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0)//{flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);if(flag==0){printf("该学号不存在!\n");}}break;case 2:printf("请输入要查询的学生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf("该姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}}void modify() //修改信息{int i,item,num;char sex1[3],s1[LEN],s2[LEN];printf("请输入要要修改的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改出生年月\n");printf("5.修改地址\n");printf("6.修改电话号码\n");printf("7.修改E-mail地址\n");printf("8.退出本菜单\n");printf("------------------\n");}while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的姓名:\n");scanf("%s",s2);strcpy(stu[num].name,s2); break;case 2:printf("请输入新的年龄:\n");scanf("%d",&stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s",sex1);strcpy(stu[num].sex,sex1); break;case 4:printf("请输入新的出生年月:\n");scanf("%s",s2);strcpy(stu[num].time,s2); break;case 5:printf("请输入新的地址:\n");scanf("%s",s2);strcpy(stu[num].add,s2); break;case 6:printf("请输入新的电话号码:\n");scanf("%s",s2);strcpy(stu[num].tel,s2); break;case 7:printf("请输入新的E-mail地址:\n");scanf("%s",s2);strcpy(stu[num].mail,s2); break;case 8:return;default:printf("请在1-8之间选择\n");}}}void sort()//排序{int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0)//比较学号的大小{strcpy(temp,stu[j-1].code); //交换学号以及以下的信息(冒泡排序)strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}void insert()//插入函数{int i=n,j,flag;printf("请输入待增加的学生数:\n");scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第%d 个学生的学号:\n",i+1);scanf("%s",stu[i].code);for(j=0;j<i;j++)if(strcmp(stu[i].code,stu[j].code)==0){printf("已有该学号,请检查后重新录入!\n");flag=1;break;}}printf("请输入第%d 个学生的姓名:\n",i+1);scanf("%s",stu[i].name);printf("请输入第%d 个学生的年龄:\n",i+1);scanf("%d",&stu[i].age);printf("请输入第%d 个学生的性别:\n",i+1);scanf("%s",stu[i].sex);printf("请输入第%d 个学生的出生年月:(格式:年.月)\n",i+1);scanf("%s",stu[i].time);printf("请输入第%d 个学生的地址:\n",i+1);scanf("%s",stu[i].add);printf("请输入第%d 个学生的电话:\n",i+1);scanf("%s",stu[i].tel);printf("请输入第%d 个学生的E-mail:\n",i+1);scanf("%s",stu[i].mail);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf("录入完毕!\n\n");sort();}void del()//删除信息{int i,j,flag=0;char s1[LEN+1];printf("请输入要删除学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf("该学号不存在!\n");if(flag==1){printf("删除成功,显示结果请选择菜单\n");n--;}}void display() //浏览信息{int i;printf("所有学生的信息为:\n");printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].ti me,stu[i].add,stu[i].tel,stu[i].mail);}}void save() // 保存{int i;FILE *fp;fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","a");for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i]. add,stu[i].tel,stu[i].mail);}fclose(fp);}void menu()//菜单{int num;printf(" \n\n 学生信息管理系统\n\n");printf("*********************系统功能菜单************************ \n");printf("友情提示:查询前请先刷新系统!\n");printf(" ---------------------- ---------------------- \n");printf(" ********************************************* \n");printf(" * 0.系统帮助及说明* * 1.刷新学生信息* \n");printf(" ********************************************* \n");printf(" * 2.查询学生信息* * 3.修改学生信息* \n");printf(" ********************************************* \n");printf(" * 4.增加学生信息* * 5.按学号删除信息* \n");printf(" ********************************************* \n");printf(" * 6.显示当前信息* * 7.保存当前学生信息* \n");printf(" ********************** ********************** \n");printf(" * 8.退出系统* \n");printf(" ********************** \n");printf(" ---------------------- ---------------------- \n");printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在0-8之间选择\n");} }。
学生管理系统c语言源代码

int main()
{
initLinkTable(&head);//初始化表头
readStu();//读入源文件
while (1)
{
menu();
system("cls");
}
}
void initLinkTable(studentLinkPoint *p)
int sum(studentLinkPoint);//求和
void avg(studentLinkPoint);//求平均分
void disAvgSum(studentLinkPoint);//显示总分和平均分
char *inputNumber();//专门用来输入一个学生的学号,返回该字符串的指针
char name[20];
char number[18];
int i;
if(temp==0)
{
error("input");
return 0;
}
else
{
temp->student=(studentPint)malloc(sizeof(studentNod));
break;
case 0:
del(head,end);
break;
}
if(c==0)
exit(1);
}
void del(studentLinkPoint p,studentLinkPoint End)
{
studentLinkPoint q;
if(end==head)
printf(" %3.1f %3.1f\n",p->student->sum,p->student->avg);
C语言学籍管理系统(内含源代码)

学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。
2、能根据输入的学号查询学生,进行信息的修改。
3、能根据输入的学号从结构体数组中删除学生的记录。
4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。
系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。
程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。
以下是这些函数原型及功能设计。
(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。
学生信息管理系统C语言源代码

#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#define len sizeof(struct student)FILE *fp;struct student{long num;char name[15];int age;char sex[3];char chushen[10];char dizhi[20];char phone[11];char email[20];struct student *next;};void menu(){printf("===========学生信息管理系统==========\n\n");printf(" 1、录入学生信息\n");printf(" 2、浏览学生信息\n");printf(" 3、查询学生信息\n");printf(" 4、删除学生信息\n");printf(" 5、插入学生信息\n");printf(" 6、修改学生信息\n");printf(" 7、排序学生信息\n");printf(" 8、退出管理系统\n");printf("=====================================\n");}struct student *creat() //录入学生信息{int n;struct student *head;struct student *p1,*p2;n=0;p1=p2=(struct student *) malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chushen ,p1->dizhi,p1->phone,p1->email);head=NULL;while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chu shen,p1->dizhi,p1->phone,p1->email);}p2->next=NULL;return(head);}void insert(struct student *head) //插入学生信息{int search_num;struct student *p,*q,*s;p=head;printf("在哪个学生前插入请输入学号:\n");scanf("%d",&search_num);while((p!=NULL)&&(p->num!=search_num)){q=p;p=p->next;}s=(struct student *)malloc(len);q->next=s;system("cls");printf("请输入学生信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&s->num,&s->age,s->name,s->sex,s->chushen,s->diz hi,s->phone,s->email);s->next=p;}void printList(struct student *head) //浏览全部学生信息{struct student *p;p=head;if(head==NULL)printf("没有学生信息!!\n");else{do{fread(p,len,1,fp);printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);p=p->next;}while(p!=NULL);}}void findList_num(struct student *head,long search_num) //按学号查找{struct student *p;p=head;while((p!=NULL)&&(p->num!=search_num))p=p->next;if(p!=NULL)printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);elseprintf("没有该学生信息!!\n");}void findList_name(struct student *head,char *search_name) //按姓名查找{struct student *p;int cmp1=0,cmp=0;p=head;while(p!=NULL)if(strcmp(p->name,search_name)!=0){p=p->next;cmp++;}else{printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->dizhi,p->phone,p->email);p=p->next;cmp1=1;}if(cmp!=0&&cmp1==0)printf("没有该学生信息!!\n");}void xiugai(struct student *p1,long xiu_num) //修改学生信息{struct student *p2;p2=p1;while((p2!=NULL)&&(p2->num!=xiu_num))p2=p2->next;if(p2!=NULL){scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p2->num,&p2->age,p2->name,p2->sex,p2->chu shen,p2->dizhi,p2->phone,p2->email);}elseprintf("没有该学生信息!!\n");}struct student *delList(struct student *head,long del_num) // 删除学生信息{struct student *p,*q;p=head;q=head;while(p &&(p->num != del_num)){q=p;p=p->next;}if(p==NULL)printf("无此学号!\n");else{if(p == head){head = p->next;free(p);}else{q->next = p->next;free(p);}}return head;}void paixu(struct student *head) //按学号排序{struct student *p,*f,*t;char ch[100];int i;t=f=p=head;for(p=head;p->next!=NULL;p=p->next){for(t=head,f=t->next;t->next!=NULL;t=t->next,f=f->next){if(t->num>f->num>0){i=t->num;t->num=f->num;f->num=i;i=t->age;t->age=f->age;f->age=i;strcpy(ch,t->name);strcpy(t->name,f->name);strcpy(f->name,ch);strcpy(ch,t->sex);strcpy(t->sex,f->sex);strcpy(f->sex,ch);strcpy(ch,t->chushen);strcpy(t->chushen,f->chushen);strcpy(f->chushen,ch);strcpy(ch,t->dizhi);strcpy(t->dizhi,f->dizhi);strcpy(f->dizhi,ch);strcpy(ch,t->phone);strcpy(t->phone,f->phone);strcpy(f->phone,ch);strcpy(ch,t->email);strcpy(t->email,f->email);strcpy(f->email,ch);}}}// return head;}void save(struct student *head) //保存为磁盘文件{struct student *p;if((fp=fopen("keshe","w"))==NULL){printf("cannot open this file\n");exit(0);}p=head;while(p!=NULL){fprintf(fp,"%d\n",p->num);fprintf(fp,"%d\n",p->age);fprintf(fp,"%s\n",p->name);fprintf(fp,"%s\n",p->sex);fprintf(fp,"%s\n",p->chushen);fprintf(fp,"%s\n",p->dizhi);fprintf(fp,"%s\n",p->phone);fprintf(fp,"%s\n",p->email);p=p->next;}fclose(fp);}struct student *read() //从磁盘读取文件{struct student *head=NULL;struct student *p=NULL;struct student *t=NULL;int a;// fp=fopen("keshe","r");if((fp=fopen("keshe","r"))==NULL){printf("cannot open this file\n");exit(0);}while(1){t=(struct student *)malloc(len);a=fscanf(fp,"%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&t->num,&t->age,t->name,t->sex,t->chush en,t->dizhi,t->phone,t->email);if(a==0||a==-1)return head;t->next=NULL;if(p==NULL){p=t;head=t;}else{p->next=t;p=p->next;p->next=NULL;}}fclose(fp);}void main(){int code=0;struct student *pt = NULL;while(code!=8){menu();printf("请输入上述序号进行操作:\n");scanf("%d",&code);system("cls");switch(code){case 1:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=creat();save(pt);system("cls");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("************录入学生信息成功***********!!\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 2:{system("cls");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();printList(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 3:{int search=0;system("cls");printf("===========================查询学生信息==============================\n");printf("---------------------------------------------------------------------\n");while(search!=3){printf("1、按学号查询\n2、按姓名查询\n3、退出查询\n");scanf("%d",&search);switch(search){case 1:{long search_num;system("cls");printf("请输入学生学号\n");scanf("%d",&search_num);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 2:{char search_name[15];system("cls");printf("请输入学生姓名\n");scanf("%s",search_name);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_name(read(),search_name);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};}}system("cls");};break;case 4:{long del_num;system("cls");printf("===========================删除学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("请输入要删除学生信息的学号:\n");scanf("%d",&del_num);system("cls");pt=delList(read(),del_num);save(pt);printf("===========================删除结果================================\n");printf("-------------------------------------------------------------------\n");printf("学号为%d的学生信息成功删除\n",del_num);printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 5:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");insert(pt);save(pt);system("cls");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("****插入学生信息成功***!!\n\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");}break;case 6:{long search_num;system("cls");printf("请输入要修改的学生学号:\n");scanf("%d",&search_num);system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================修改学生信息==================================\n");printf("-------------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("\n");printf("请输入修改信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();xiugai(pt,search_num);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("****修改学生信息成功***!!\n\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 7:{system("cls");printf(" 按学号从小到大排序\n\n");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();paixu(pt);printList(pt);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 8:read();break;}}}。
c语言学生信息管理系统设计报告

c语言学生信息管理系统设计报告随着教学质量和教学管理的要求不断提高,校园管理系统对于诸多困难领域的改善服务开始发挥着重要作用,而学生信息技术系统设计是实现校园管理质量提升的重要手段之一。
实施学生信息管理系统可以提高人力资源管理的效率,降低办理各项业务的成本,将学校管理变得更加规范和有效。
本报告旨在设计一套C语言学生信息管理系统,用于学校信息管理与市场营销管理,实现数据的及时收集、存储和处理,同时,改善学校的教学管理,提高教学质量,提升学生的学习体验。
首先,系统设计将涉及到C语言的语法和结构,以便理解和实现学生信息的管理。
其次,关于系统的功能,可以从学生信息管理、任课管理、教学管理、学术科研、职位设置、绩效考核等方面进行完善。
针对关键管理系统,为了实现系统的可靠性和安全性,将采用多种数据库技术,包括SQL Server、Oracle、MySQL等数据库技术,以及主流计算机语言C++、Java等,实现数据库的操作、学生信息管理系统的开发、学习管理系统的开发等技术需求。
此外,本报告还将对相关技术以及软件测试等内容进行分析,以保证学生信息管理系统的可靠性和稳定性。
本报告的完成,必须充分考虑C语言的基本知识,以及C语言学生信息管理系统在实施过程中的可能风险。
在实施过程中,应该通过计算机技术的应用、软件测试、数据库技术的改进等多方面分析,以保证系统在实施过程中的高效稳定性。
综上所述,本报告将实施C语言学生信息管理系统,实现学校信息管理与市场营销管理,旨在收集、存储和处理数据,同时提高教学管理的质量,提升学生的学习体验,实现学校的管理变得更加规范和有效。
此外,本报告还将深入探讨如何利用计算机技术、数据库技术、软件测试等相关技术,保证学生信息管理系统的可靠性和安全性。
学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。
本文将介绍如何使用C语言编写一个简单的学生管理系统。
功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。
我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。
用C语言编写的一个学生信息管理系统

用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。
在主函数里能实现以下功能。
运行后出现一个选择提示。
可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char filename[50];printf("请输入文件名:");scanf("%s",filename); //输入要载入的文件名if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。
学生信息管理系统操作手册

学生信息管理系统操作手册I.1 引言I.1.1编写目的学生信息管理系统操作手册可以让广大用户更加熟悉的使用和操作学生信息管理系统。
I.1.2背景a、软件系统名称:学生信息管理系统;b、软件项目开发者:学生信息管理系统开发小组第13组;c、软件系统用户:内江师范学院全校师生。
I.1.3 定义学生信息管理系统:学生信息管理是帮助教学人员、行政人员对学生信息进行管理的系统,使用C#编程语言,独立完成其功能。
I.1.4参考资料a、项目开发计划b、需求规格说明书c、概要设计说明书d、详细设计说明书e、测试计划I.2系统概述I.2.1系统功能a密码设置:每个操作人员有着自己的密码,可以防止非系统人员进入本系统,每个人的权限不一样,可以防止越权操作;b系统管理:添加新用户,修改登录人员的密码,退出系统;c用户管理:系统管理员添加新用户后,由添加的新用户完成自己的完整信息;d信息管理:学生和教师基本信息的添加、修改、查询和删除;e课程设置:课程的添加、查询、修改、删除等以及学生选择课程;f成绩管理:学生选课成绩的添加、查询、修改、删除等。
I.2.2系统性能要求系统响应时间,更新处理时间,数据处理,计算时间都在1秒以内;操作指令既可以用鼠标点击输入,也可以用键盘输入操作命令;此系统可以在当前所有windows 2000以上的操作系统上运行使用。
I.2.3 系统运行环境a、硬件:P800、内存64M以上的PC机;b、支持软件:Windows2000以上,Microrsoft SQL Sever 2012支持framework 库。
I.3安装与初始化只需要PC机器Microsoft SQL Sever 2012启动软件,进入登录界面。
I.4运行说明I.4.1 运行表I.4.2运行步骤I.4.2.1运行控制通过窗体的按钮可以进行控制I.4.2.2操作信息给出为操作中心的操作人员和管理人员所需要的信息,如:a、运行目的:对信息进行管理;b、操作要求:要求PC机装有SQl sever 2012,操作系统Windows2000以上;c、启动方法:直接启动;d、预计的运行时间:响应时间1s以内;e、操作命令格式及说明:通过窗体按钮进行操作;f、与运行有联系的其他事项:暂无。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一直以来人们使用传统的人工方式管理学生成绩,在计算机尚未在学 校广泛使用之前,学生成绩管理主要依靠手工。一个最典型的手工处理过程 就是:当考试完后,老师就要把学生成绩登记到文档中,当老师或学生要查 询成绩的时候要一个一个去找,总分、平均分都需要一个一个累加起来算, 很麻烦,不过最麻烦的还是排名,不能一目了然。
12
6. 回到菜单界面再输入 7,回车,测试按总分排名。运行结果如图
7. 回到菜单界面再输入 3,回车,测试修改数据。修改完后,进入菜单,选择 操作 6 输出所有学生数据。修改如图
13
运行结果如图
8. 运用修改后的数据,测排名
14
9. 列出不及格学生信息:
10.回到菜单界面再输入 4,测试按学号查询,运行结果如图
参考文献
[1] 杨路明,C 语言程序设计教程.北京:北京邮电大学出版社,2005(2009.7) [2] 谭浩强,C++程序设计. 北京:清华大学出版社,2004.6 [3] 杨路明,C 语言程序设计上机指导与习题选解.北京:北京邮电大学出版社, 2005
1引 言
为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理
2
效率。使用该程序之后,学校管理者可以查询某位学生、某个科目的成绩情 况,还可以对学生成绩进行排名,对学生的数据进行修改和删除,其中排名 包括总分排名和各个科目的排名,学生可以更具自己的个人信息进行成绩查 询,查询结果包括各个科目的分数、总分和平均分。通过本系统可以很好的 掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期 的保留。
学生成绩管理系统
5
操作
查询
排序
录增 删 修 入加 除 改 数人 人 数 据员 员 据
按按 输 学姓 出 号名 全 查查 部 询询 数
据
3.1 数据结构设计
(1) 类的设计
图 2.1 系统总体结构
3 详细设计
表 3-1 Stu 类成员列表
Stu 类
char name[20] char cla[20] int number char sex int age int tele char class1[100] char class2[100] char class3[100] double C11 double C12 double C21 double C22
1.2 课程设计的目的及内容
目的:
1、使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构 和操作实现算法,以及它们在程序中的使用方法;
3
2、使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能 力; 3、使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能 力。
8
示用户输入的学生的信息,输入完成后会提示用户是否要继续录入。 操作 2 删除人员函数 void operate2() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需 要删除学生的姓名,然后查找该学生,删除该学生数据,并将其后数组往前移 动一位,最后提示用户是否继续删除。 操作 3 修改数据函数 void operate3() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需 要修改学生的姓名,该函数的功能是修改学生的成绩,防止了录入数据时的错 误,保证了系统的完备性。 操作 4 按总成绩查询函数 void operate4() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需 要查询的总分,然后输出所有该分数的学生的成绩,并提示用户是否需要继续 查询。 操作 5 按姓名查询函数 void operate5() 这是一个无参函数,是 Stu 类的一个友元函数。进入后系统会提示用户输入需 要查询的学生姓名,然后输出该学生的成绩,并提示用户是否需要继续查询。 操作 6 输出所有学生的数据函数 void operate6() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将自动输出该系统 下所有学生的成绩,但并不排序,而是按照录入是的顺序输出,输出之后提示 用户是否需要进行其它操作。 操作 7 按平均分分排名函数 void operate7() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照平均分分从 高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其 它操作。 操作 8 按这平均分是否大于 60 列出不及格学生 void operate8() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照总平均分是
15
11.回到菜单界面再输入 5,测试按姓名查询,运行结果如图
12.测试完毕。输入 n,退出系统。
16
5 结束语
在本次课程设计过程中,老师从选题、构思、资料收集到最后定稿的各 个环节给予细心指导,使我对软件工程有了更深刻的认识,在此表示衷心地 感谢。在整个过程中,我查阅了大量的关于书籍借阅管理系统的资料和网站, 在老师的指导和自己的努力下,终于完成了本次课程设计。在为期两周的课 程设计过程中,使我熟悉了C++编程语言,但也体现了我的种种不足,希望在 以后的学习生活当中能够改正。同时我还要感谢指导过我的老师,他们给了 我很大的指导和帮助,还有在我陷入困境时帮助过我的同学们。
4
2 系统需求分析
2.1功能需求分析
0)录入数据:将学生的信息利用函数写入对象数组内。 1) 增加人员:增加学生,将学生的信息利用函数写入对象数组内。 2) 删除人员:删除学生信息和成绩。 3) 修改数据:修改学生成绩。 4) 按学号查询:根据学生学号,查询学生信息。 5) 按姓名查询:根据学生姓名,查询学生信息。 6) 输出所有学生成绩。 7) 按总平均分排名:按照总平均分从高到低排序。 8) 列出不及格学生:按照总平均分列出不及格学生信息。
9
否大于 60 列出不及格学生的成绩,输出之后提示用户是否需要进行其它操作。
4 设计测试流程
1. 进入系统,显示本系统相关信息。如图。
2. 根据系统提示,进入菜单界面。如图
10
3. 输入 0,回车,按提示输入数据。如图
11
4. 回到菜单界面在输入 1,回车,增加人员,按提示输入数据。如图
5. 回到菜单界面再输入 6,回车,输出所有学生的数据,检测操作 0 和操作 1。 运行结果如图
#include<string>
String 类
(2) 各个变量的定义和作用
char name[20]; char cla[20]; int number; char sex[20]; int age; int tele; char class1[100]; char class2[100]; char class3[100]; double C11; double C12; double C21; double C22; double C31; double C32; double C1; double C2; double C3; double sum; double aver;
以上所描述的手工过程的不足之处显而易见,首先处理学生成绩的效 率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。 利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们很 清晰的看到自己的各个科目成绩和每个科目的排名和总分排名以及所有学生 的成绩分布,而且还是零失误,所有的都是一目了然。极大的方便了学生和 老师。为提高成绩管理效率,管理人员的工作负担,有必要开发一个小型成 绩管理系统来对学生成绩实施有效管理。
//姓名 //班级
//学号 //性别
//年龄 //电话 //课程为字符串
//C12 的平时成绩 //C11 的考试 成绩
//为这门课的综合成绩
//总成绩 //平均成绩
Stu *s[50]; 对象数组记录学生成绩
7
3.2 系统函数的组成、功能、参数说明、相互调用关系
主函数 main() 调用菜单操作函数 handle_menu()实现菜单的输出和操作,调用 index()打印首页。 以及删除动态对象。 菜单操作函数 void handle_menu() 这是一个无参的函数,通过调用菜单函数 menu()实现菜单的输出,利用 dowhile()语句和 switch()语句实现各函数的调用,系统根据输入的字符选项来调用 相应的函数,进行相应的操作。 菜单函数 void menu() 这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统 的十一大功能,根据每个功能前面的序号进行选择。 打印首页函数 void index() 这是一个无参函数,主要功能是打印本系统的相关信息。 默认构造函数 Stu:: Stu() 这是 Stu 类中的一个默认构造函数,实现对象的初始化。。 求总分函数 double Stu::getsum() 这是一个无参函数,主要功能是将每个对象的语文、数学、英语三科成绩求和, 返回总分 sum。 求平均分函数 double Stu::getaver() 这是一个无参函数,调用 double Stu::getsum()平均分,返回平均分 aver 操作 0 数据录入函数 void operate0() 这是一个无参函数,是 Stu 类的一个友元函数,该函数可将用户输入的学生的 信息在每一个对象数组内,输入完成后会提示用户是否要继续录入。 操作 1 增加人员函数 void operate1() 这是一个无参函数,是 Stu 类的一个友元函数,该函数可以增加学生人数,提
2.2 系统总体结构设计
对学生成绩进行管理的系统,主要划分为以下三个模块: 1) 操作:包括录入数据、增加人员、删除人员、修改数据。 2) 查询:包括按总成绩查询、按姓名查询、输出所有学生成绩。 3) 排名:按总分排名、按语文成绩排名、按数学成绩排名、按英语成绩排名 根据需求分析的结果,总体结构如图 2-1 所示。