 015382104
                015382104
                
             
                      
     
    
  
    
    
        
        
        
        
        
        
            
               
                
    
                
                	                	                									
									                            								
																
									高二的时候,我自己写过。现在在学其它的语言,就不献丑了,在网上给你找到了,是百度文库里面的,直接复制过来的话,排版不对,你自己去看一下吧,完整的代码。 名字就是《用C语言编写的一个学生信息管理系统》PS:写这个,主要是用到C语言的链表,不难,只是有的时候,如果思路不清晰的话,容易写错,写漏等等,如果不参考上面,而是你自己写的话,建议先画个大概的树图出来,再开始编吧。 纯手工打的,帮到你的话,就采纳吧。									
								
								
							 
                		                	                		                			
									                            								
																
									      C语言学生信息管理系统程序相映论文系统概述本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生缴费管理系统等多种功能,因而具有较强的实用性和先进性。1 系统及需求分析 1 系统需求 通过调查,要求系统需要有以下功能: ⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; ⑵ 由于该系统的使用对象多,要求有较好的权限管理; ⑶ 原始数据修改简单方便,支持多条件修改⑷ 方便的数据查询,支持多条件查询;⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;⑹ 数据计算自动完成,尽量减少人工干预;2可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在Windows 98中文版操作系统环境下,使用Visual Basic 0中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:Visual Basic语言Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础								
								
							 
                		                	                		                			
									                            								
																
									#include   // cin 及 cout#include     #include        // 用到申请内存函数 malloc() 和释放内存函数 free()#include     // 字符串处理#include     // 文件操作(读文件)struct address       /*家庭地址*/{   char city[10];     /*城市*/  char town[10];        /*县城*/  char village[10];    /*乡镇*/};struct telephone       /*联系方式*/{  char SJ[50];      /*手机*/  char JD[30];      /*家庭电话*/  char XD[30];      /*学校电话*/};struct person     /*个人信息*/{    char name[20];          /*名字*/   char sex[10] ;          /*性别*/   char MZ[16];   /*民族*/  char GJ[17];   /*国籍*/    char XL[19];   /*学历*/}; struct score      //成绩{  char num[20];    //学号  char english[20];  char chinese[20];  char math[20];  char physics[20];};typedef struct linknode   //定义节点的类型{  char address[100];  //地址  char birthday[100];  //出生日期  struct score sc;  //成绩  struct person pe;  //个人信息  struct telephone te; //联系方式  bool flag;  struct linknode* next;}nodetype;class List{ nodetype* head;public: List(); List::~List(); linknode* creatlist(int);    //创建链表 int listlen();       //返回链表长度 nodetype* findnode(int);    //通过查找序号返回节点的指针 nodetype* find(char c[]);    //通过查找姓名返回节点的指针 int find2(char c[]);     //通过查找姓名返回节点的序号 nodetype* insnode(int);     //插入节点 void delnode(int);      //删除节点 nodetype* load();      //初始化:从外部读入数据 void readstr(FILE *f,char *string);  //读行函数 bool check(char *a, char *b);   //对比两个字符串是否相等 void help();       //显示帮助菜单 void editperson(nodetype*);    //编辑个人说明 void editscore(nodetype*);    //编辑学科成绩 void edittelephone(nodetype*);   //编辑联系方式 void dispname();      //显示所有学生姓名 void dispnode(nodetype* p);    //显示一个学生的所有信息 void dispperson(nodetype*);    //显示一个学生的个人说明 void dispscore(nodetype*);    //显示一个学生的学科成绩 void disptelephone(nodetype*);   //显示一个学生的联系方式};bool List::check(char *a, char *b)  //对比两个字符串是否相等{ int i; int j=strlen(b); for(i=0; inext=NULL;   t=h;  }  else                 //创建其余节点  {   s=(nodetype*)malloc(sizeof(nodetype));   s->next=NULL;   t->next=s;   t=s;            //t 始终指向生成的单链表的最后一个节点  }  i++; } head=h; return h;}void List::readstr(FILE *f,char *string){  do {         //①: 先读入一行文本  fgets(string, 255, f);  //fgets(): 从文件 f 读入长度为 255-1 的字符串         //    并存入到 string 中 } while ((string[0] == '/') || (string[0] == '/n')); return;}nodetype* List::load(){ FILE *fp; nodetype *p; char c[255]; int num; if((fp=fopen("xt", "r"))==NULL) {  cout<<"打开文件失败"<address, c);  readstr(fp, c);  strcpy(p->birthday, c);  readstr(fp, c);  strcpy(p->um, c);  readstr(fp, c);  strcpy(p->hinese, c);  readstr(fp, c);  strcpy(p->lish, c);  readstr(fp, c);  strcpy(p->ath, c);  readstr(fp, c);  strcpy(p->physics, c);  readstr(fp, c);  strcpy(p->ame, c);  readstr(fp, c);  strcpy(p->sex, c);  readstr(fp, c);  strcpy(p->GJ, c);  readstr(fp, c);  strcpy(p->MZ, c);  readstr(fp, c);  strcpy(p->XL, c);  readstr(fp, c);  strcpy(p->SJ, c);  readstr(fp, c);  strcpy(p->JD, c);  readstr(fp, c);  strcpy(p->XD, c);  p=p->next; } fclose(fp); return p;}void List::dispnode(nodetype* p)  //显示一个学生的所有信息{ if(p!=NULL) {  dispperson(p);  dispscore(p);  disptelephone(p); }}void List::dispname()  //显示所有学生姓名{ nodetype* p=head; cout<<"现有的学生:  "<ame;  p=p->next; }}int List::listlen()       //返回链表长度{ int i=0; nodetype* p=head; while(p!=NULL) {  p=p->next;  i++; } return i;}nodetype* List::findnode (int i)      //通过查找序号返回节点的指针{ nodetype* p=head; int j=1; if( i>listlen()||i<=0 )          // i 上溢或下溢  return NULL; else {  while( p!=NULL &&  jnext;  }  return p; }}nodetype* List::find(char c[])      //通过查找姓名返回节点的指针{ nodetype* p=head; int j=1; strcat(c, "/n");    //从外部读入的字符串末尾都带了一个换行符 while( p!=NULL &&  !(check(c, p->ame)))    //查找第 i 个节点并由 p 指向该节点  {   j++;   p=p->next; } return p;}int List::find2(char c[])      //通过查找姓名返回节点的序号{ nodetype* p=head; int j=1; strcat(c, "/n");    //从外部读入的字符串末尾都带了一个换行符 while( p!=NULL &&  !(check(c, p->ame)))    //查找第 i 个节点并由 p 指向该节点  {   j++;  p=p->next; } return j;}nodetype* List::insnode(int i){ nodetype *h=head, *p, *s; s=(nodetype*)malloc(sizeof(nodetype));    //创建节点 s s->next=NULL; if(i==0)           //i=0 时 s 作为该单链表的第一个节点 {  s->next = h;  h=s;           //重新定义头节点 } else {  p=findnode(i);       //查找第 i 个节点,并由 p 指向该节点  if(p!=NULL)  {   s->next=p->next;   p->next=s;  }  else cout<<"输入的 i 值不正确"<next;  free(p); } else {  p=findnode(i-1);     //查找第 i-1 个节点,并由 p 指向这个节点  if(p!=NULL && p->next!=NULL)  {   s=p->next;      // s 指向要删除的节点   p->next=s->next;   free(s);  }  else   cout<<"输入的 i 值不正确"<>c; strcat(c, "/n"); strcpy(p->ame, c); cout<<"请输入性别:"<>c; strcat(c, "/n"); strcpy(p->sex, c); cout<<"请输入生日(格式举例:1982-1-1): "<>c; strcat(c, "/n"); strcpy(p->birthday, c); cout<<"请输入民族:"<>c; strcat(c, "/n"); strcpy(p->MZ, c); cout<<"请输入国籍:"<>c; strcat(c, "/n"); strcpy(p->GJ, c); cout<<"请输入学历:"<>c; strcat(c, "/n"); strcpy(p->XL, c); cout<<"请输入家庭住址(例如:广西玉林市解放路11号)"<>c; strcat(c, "/n"); strcpy(p->address, c); cout<<"编辑个人信息完成!"<>a; strcat(a, "/n"); strcpy(p->um, a); cout<<"请输入语文成绩: "<>a; strcat(a, "/n"); strcpy(p->hinese, a); cout<<"请输入英语成绩: "<>a; strcat(a, "/n"); strcpy(p->lish, a); cout<<"请输入数学成绩: "<>a; strcat(a, "/n"); strcpy(p->ath, a); cout<<"请输入物理成绩: "<>a; strcat(a, "/n"); strcpy(p->physics, a); cout<<"编辑学科成绩完成!"<>c; strcat(c, "/n"); strcpy(p->SJ, c); cout<<"请输入家庭电话号码: "<>c; strcat(c, "/n"); strcpy(p->JD, c); cout<<"请输入学校电话号码: "<>c; strcat(c, "/n"); strcpy(p->XD, c); cout<<"编辑联系方式完成!"<ame; cout<<"性别:  "<sex; cout<<"民族:  "<MZ; cout<<"国籍:  "<GJ; cout<<"学历:  "<XL; cout<<"出生日期: "<birthday; cout<<"家庭住址: "<address;}void List::dispscore(nodetype* p){ cout<<"学号:  "<um; cout<<"语文成绩: "<hinese; cout<<"英语成绩: "<lish; cout<<"数学成绩: "<ath; cout<<"物理成绩: "<physics;}void List::disptelephone(nodetype* p){ cout<<"手机号码是: "<SJ; cout<<"家庭电话是: "<JD; cout<<"学校电话是: "<XD;}void List::help(){ cout<next;  if(pb==NULL)   free(pa);  else  {   while(pb!=NULL)   {    free(pa);    pa=pb;    pb=pb->next;   }   free(pa);  } }}class Operater{ List L1;public:     void Loop();       //主循环    void display();       //显示菜单 };List::List(){ head = NULL;}void Operater::display(){ cout< 6 ): "<>ch;  ////system("cls");  if(Lheck(ch, "1"))  {   p=Linsnode(0);   head=p;   //system("cls");   cout<>ch;   i=Lfind2(ch);   Ldelnode(i);  }  if(Lheck(ch, "3"))  {   //system("cls");   cout<>ch;   p=Lfind(ch);   Ldispnode(p);  }  if(Lheck(ch, "6"))  {   display();  }  if(Lheck(ch, "7"))  //保存数据  {   FILE *fp;   if((fp=fopen("xt", "w"))==NULL)   {    cout<<"打开文件失败"<address, fp);  //输出地址    fputs(p->birthday, fp);  //输出生日    fputs(p->um, fp);  //输出学号    fputs(p->hinese, fp); //输出语文成绩    fputs(p->lish, fp); //输出英语成绩    fputs(p->ath, fp);  //输出数学成绩    fputs(p->physics, fp); //输出物理成绩    fputs(p->ame, fp);  //输出姓名    fputs(p->sex, fp);  //输出性别    fputs(p->GJ, fp);  //输出国籍    fputs(p->MZ, fp);  //输出民族    fputs(p->XL, fp);  //输出学历    fputs(p->SJ, fp);  //输出手机    fputs(p->JD, fp);  //输出家庭电话    fputs(p->XD, fp);  //输出学校电话    fputs(t, fp);    p=p->next;   }   p=head;   fclose(fp);  }  if(Lheck(ch, "5"))  {   char c[20];   //system("cls");   cout<>c;   p=Lfind(c);   //system("cls");   cout< 8 ): "<>c;    //system("cls");    if(Lheck(c, "1"))    {     //system("cls");     cout<
								
							 
                		                	                		                			
									                            								
																
									#includenbsp;“h“#definenbsp;SIZEnbsp;50intnbsp;sum=0;staticnbsp;charnbsp;*str[]={“C“,“Math“,“English“};structnbsp;studentnbsp;nbsp;{nbsp;intnbsp;n;nbsp;nbsp;nbsp;nbsp;longnbsp;num;nbsp;nbsp;nbsp;nbsp;charnbsp;name[10];nbsp;nbsp;nbsp;nbsp;intnbsp;age;nbsp;nbsp;nbsp;nbsp;charnbsp;addr[10];nbsp;nbsp;nbsp;nbsp;intnbsp;score[3];nbsp;nbsp;nbsp;nbsp;floatnbsp;avr;nbsp;nbsp;}nbsp;stu[SIZE];/*nbsp;1--Inputnbsp;*/voidnbsp;fin(){nbsp;intnbsp;i,j,s;charnbsp;f;nbsp;nbsp;FILEnbsp;*fp;nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Warring!nbsp;Input?nbsp;(nbsp;y/nnbsp;)nbsp;:nbsp;777“);nbsp;nbsp;f=getchar();f=getchar();nbsp;nbsp;if(f!=‘y‘)nbsp;nbsp;nbsp;nbsp;return;nbsp;nbsp;fp=fopen(“fstu“,“wb“);nbsp;nbsp;for(i=0;iamp;lt;SIZE;i++)nbsp;nbsp;nbsp;nbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i=%dnbsp;Inputnbsp;Nbsp;(i=-1,return)nbsp;i=?nbsp;“,i+1);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;scanf(“%d“,amp;j);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(j==-1)nbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;*nbsp;*nbsp;Pressnbsp;anynbsp;keynbsp;return!nbsp;*nbsp;*nbsp;*“,j);nbsp;nbsp;nbsp;fclose(fp);getch();return;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;elsenbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Inputnbsp;num,name,age,addrnbsp;:nbsp;“);nbsp;nbsp;nbsp;stu[i]=i+1;nbsp;nbsp;nbsp;scanf(“%ld%s%d%s“,amp;stu[i]um,stu[i]ame,amp;stu[i]age,stu[i]addr);nbsp;nbsp;nbsp;s=0;nbsp;nbsp;nbsp;for(j=0;jamp;lt;3;j++)nbsp;nbsp;nbsp;nbsp;{nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Inputnbsp;%-7snbsp;scorenbsp;:nbsp;“,str[j]);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;scanf(“%d“,amp;stu[i]score[j]);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if(stu[i]score[j]amp;gt;100)nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{nbsp;j--;continue;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;s+=stu[i]score[j];nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;stu[i]avr=s/0;nbsp;nbsp;nbsp;fwrite(amp;stu[i],sizeof(structnbsp;student),1,fp);nbsp;}nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;fclose(fp);}/*nbsp;2--Findnbsp;*/voidnbsp;ffind(){nbsp;intnbsp;i,j;nbsp;nbsp;FILEnbsp;*fp;nbsp;nbsp;fp=fopen(“fstu“,“rb“);nbsp;nbsp;for(i=0;fread(amp;stu[i],sizeof(structnbsp;student),1,fp)!=0;i++);nbsp;nbsp;sum=i;nbsp;nbsp;rewind(fp);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;*nbsp;*nbsp;Findnbsp;studentnbsp;datanbsp;*nbsp;*nbsp;*“);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Inputnbsp;n=1nbsp;--nbsp;%dnbsp;:nbsp;“,sum);nbsp;nbsp;scanf(“%d“,amp;j);nbsp;nbsp;fseek(fp,(j-1)*sizeof(structnbsp;student),0);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Displaynbsp;studentnbsp;%dnbsp;datanbsp;:nbsp;“,j);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*nbsp;*“);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Nbsp;Numnbsp;nbsp;nbsp;nbsp;Namenbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Agenbsp;Addrnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;Cnbsp;nbsp;Mathnbsp;Ebsp;A“);nbsp;nbsp;printf(“nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;-----------------------------------------------------“);nbsp;nbsp;fread(amp;stu[i],sizeof(structnbsp;student),1,fp);nbsp;nbsp;printf(“%12d%7