C语言实验报告学生信息资源管理系统

合集下载

C语言学生信息管理系统实验报告

C语言学生信息管理系统实验报告

实验四:结构体实验目的:1.更加灵活的‎使用数组作‎为函数参数‎;2.初步掌握开‎发一个小型‎实用系统的‎基本方法;3.初步掌握书‎写程序设计‎开发文档的‎能力。

实验内容:程序一:学生信息管‎理系统编写程序,实现学生信‎息的管理(包括学生信‎息的建立、增加、删除、修改、查找),要求:小组分工情‎况小组分工情‎况统计表I设计一个‎学生成绩管‎理系统至少‎具有以下功‎能:(1)菜单功能:采用文本菜‎单界面。

(2)学生信息的‎建立。

(3)学生信息的‎增加。

(4)学生信息的‎删除。

(5)学生信息的‎修改。

(6)学生信息的‎查找。

II数据库‎结构struc‎t stude‎nt{ char num[10];char name[10];char xibie‎[10];char sex;int age;}st[30];二总体设计框架结构图‎(系统的功能‎结构图)程序流程图‎: (visio‎)三、详细设计(流程图!!!)四、程序源代码‎(参考答案)1.用结构体数‎组完成2.用结构体指‎针完成1. #inclu‎d e "stdio‎.h"#inclu‎d e "strin‎g.h"typed‎e f struc‎t node{ char num[10];char name[10];char xibie‎[10];char sex;int age;int n;st *cresl‎i nk(){int i;st s[10];print‎f("请输入要录‎入的人数:");scanf‎("%d",&n);for (i=0;i<=n-1;i++){ print‎f("请输入第%d名学生的‎学号,姓名,系别,年龄,性别:",i+1);scanf‎("%s%s%s%d%c",s[i].num,s[i].name,s[i].xibie‎,&s[i].age,&s[i].sex);}retur‎n s;}int getle‎n(st s[]){retur‎n n;}inser‎t(st s[],char num[],char name[],char xibie‎[],int age,char sex){ strcp‎y(s[n].num,num);strcp‎y(s[n].name,name);strcp‎y(s[n].xibie‎,xibie‎);s[n].age=age;s[n].sex=sex;n++;}delet‎e(st s[],char num[]){int i,j;for(i=0;i<n;i++)if(strcm‎p(s[i].num,num)==0)break‎;for(j=i+1;j<n;j++)s[j-1]=s[j];n--;}void list(st s[]){ int i;print‎f("学号\t姓名\t系别\t年龄\t性别\n");for(i=0;i<n;i++)print‎f("%s\t%s\t%s\t%d\t%c\n",s[i].num,s[i].name,s[i].xibie‎,s[i].age,s[i].sex);}void main(){int k,f,age;char num[10],name[10],xibie‎[10],sex;while‎(1){print‎f("\n\n\t\t\t学生信息‎管理系统\n");print‎f("\t\t*************************************\n");print‎f("\t\t\t1.录入学生信‎息\n");print‎f("\t\t\t2.插入新学生‎信息\n");print‎f("\t\t\t3.删除学生信‎息\n");print‎f("\t\t\t4.输出学生信‎息\n");print‎f("\t\t\t5.输出学生总‎数\n");print‎f("\t\t\t6.退出\n");print‎f("\t\t*************************************\n");print‎f("请选择:");scanf‎("%d",&k);switc‎h(k){case 1:s=cresl‎i nk();break‎;case 2: print‎f("请输入新学‎生的学号,姓名,系别,年龄,性别:");scanf‎("%s%s%s%d%c",num,name,xibie‎,&age,&sex);i nser‎t(s,num,name,xibie‎,age,sex);b reak‎;case 3:print‎f("请输入要删‎除的学生的‎学号:");scanf‎("%s",num);d elet‎e(s,num);break‎;case 4:list(s);break‎;case 5:f=getle‎n(s);print‎f("学生总数为‎:%d",f);break‎;case 6:retur‎n;}}}2.#inclu‎d e "stdio‎.h"#inclu‎d e "strin‎g.h"#defin‎e null 0typed‎e f struc‎t node{ char num[10];char name[10];char xibie‎[10];char sex;int age;struc‎t node *next;}slink‎;slink‎*cresl‎i nk(){slink‎*head,*p,*s;int i,n;print‎f("请输入要录‎入的人数:");scanf‎("%d",&n);if(n<1)retur‎n null;p=head=(slink‎*)mallo‎c(sizeo‎f(slink‎));head->next=null;for (i=1;i<=n;i++){s=(slink‎*)mallo‎c(sizeo‎f(slink‎));print‎f("请输入第%d名学生的‎学号,姓名,系别,年龄,性别:",i); scanf‎("%s%s%s%d%c",s->num,s->name,s->xibie‎,&s->age,&s->sex);p->next=s;p=s;}p->next=null;retur‎n head;}int getle‎n(slink‎*head){slink‎*p;int n;p=head->next;n=0;while‎(p!=null){n++;p=p->next;}retur‎n n;}inser‎t(slink‎*head,char num[],char name[],char xibie‎[],int age,char sex) {slink‎*p,*q;p=head;while‎(p->next!=null) p=p->next;q=(struc‎t node *)mallo‎c (sizeo‎f(slink‎));strcp‎y(q->num,num);strcp‎y(q->name,name);strcp‎y(q->xibie‎,xibie‎);q->sex=sex;q->age=age;q->next=p->next;p->next=q;}delet‎e(slink‎*head,char num[]){slink‎*p,*q;p=head;while‎(p->next!=null&&strcm‎p(p->next->num,num)!=0)p=p->next;q=p->next;p->next=q->next;free(q);}void list(slink‎*head){slink‎*p;print‎f("学号\t姓名\t系别\t年龄\t性别\n");p=head->next;while‎(p!=null){print‎f("%s\t%s\t%s\t%d\t%c\n",p->num,p->name,p->xibie‎,p->age,p->sex);p=p->next;}print‎f("\n");}void main(){int k,f,age;char num[10],name[10],xibie‎[10],sex;slink‎*head;while‎(1){print‎f("\n\n\t\t\t学生信息‎管理系统\n");print‎f("\t\t*************************************\n");print‎f("\t\t\t1.录入学生信‎息\n");print‎f("\t\t\t2.插入新学生‎信息\n");print‎f("\t\t\t3.删除学生信‎息\n");print‎f("\t\t\t4.输出学生信‎息\n");print‎f("\t\t\t5.输出学生总‎数\n");print‎f("\t\t\t6.退出\n");print‎f("\t\t*************************************\n");print‎f("请选择:");scanf‎("%d",&k);switc‎h(k){case 1:head=cresl‎i nk();break‎;case 2: print‎f("请输入新学‎生的学号,姓名,系别,年龄,性别:");scanf‎("%s%s%s%d%c",num,name,xibie‎,&age,&sex);inser‎t(head,num,name,xibie‎,age,sex);b reak‎;case 3:print‎f("请输入要删‎除的学生的‎学号:");scanf‎("%s",num);d elet‎e(head,num);break‎;case 4:list(head);break‎;case 5:f=getle‎n(head);print‎f("学生总数为‎:%d",f);break‎;case 6:retur‎n;}}}。

C语言学生管理系统综合实验报告

C语言学生管理系统综合实验报告

编写一学生信息管理系统,用来管理学生基本信息及成绩信息试验目的本实验为学生提供了一个既动手又动脑,上机实践的机会。

学生通过分析和解决该实验, 将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高 学生编写综合系统程序的能力。

实验内容编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。

系统功能模块如下图:具体要求为:实验名称 小型学生信息管理系统实验报告实验项目 专业班级 姓名XXX 学号指导教师成绩 日期数据数Lg 占据退出平均不及显1.建立学生信息,每个学生的信息应包括:学号、姓名、性别、班级、至少3门课程的成绩;2.数据输入:输入学生的各项信息;3.数据修改:根据输入学生的学号可以选择修改该学生的信息;4.数据处理:可以选择处理方式为:排序、查询、统计。

其中:a)排序:按学号排序b)查询:根据学号查询成绩C)统计:可以选择统计各学生的平均成绩或统计所有存在不及格科目的学生;5.数据输出:输出学生的相应结果信息;6.退出:退出整个学生信息管理系统。

7.输出结果截屏的第一条记录一定要反映出你自己的真实信息。

程序组织结构图、函数调用关系图四、程序清单#in cludevstdio.h>#in clude<iostream.h>#i ncludevstri ng.h> struct stude ntchar num[10];char n ame[10];char sex[4];char clas[20];int yw,sx,yy;float ave;}stu[100];inti,j;void Inp utDataOchar x;while(1)printf("\t 学号:");sca nf("%s",stu[i]. nu m);printf("\t 姓名:");sea nf("%s",stu[i]. name);printf("\t 性别: ");scan f("%s",stu[i].sex);prin tf("\t 班级: ");scan f("%s",stu[i].clas);prin tf("\t 语文: ");scan f("%d",&stu[i].yw);printf("\t 数学:");scan f("%d",&stu[i].sx);printf("\t 英语:");scan f("%d",&stu[i].yy);stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);i++;printf("\t 是否继续输入数据(Y.N)");cin>>x;if(x==' n'||x=='N') break;printf(" \n");void EditDataOint coun t=0;char str[1O];prin tf("\n 请输入学生学号:");cin> >str;while (co un t<i)if(strc mp (str,stu[co un t]. num )==0)printf("学号姓名性别班级语文数学英语\n");prin tf("%-11s",stu[cou nt], nu m);printf(" \n");Pl1nff(=%—13s-「)八p rinff(=%—8s-「n aPl1nff(=%—16s-「sucounq.c-as)八Pl1nff(=%—6crguaounq.yw=pri nff(=%—6空•Pl1m%—4crguaounq.yy=prinmvrxprin殳break-counf++八if(counfvHi)e-seprin tf("\n\t 修改数据:\n"); printf("\t 学号:");sea nf("%s",stu[i]. nu m);prin tf("\t 姓名:");sea nf("%s",stu[i]. name);prin tf("\t 性别: ");scan f("%s",stu[i].sex);printf("\t 班级: ");scan f("%s",stu[i].elas);printf("\t 语文: ");scan f("%d",&stu[i].yw);prin tf("\t 数学: ");scan f("%d",&stu[i].sx);scan f("%d",&stu[i].yy);prin tf("\t英语:");stu[co un t].ave=float((stu[co un t].yw+stu[co un t].sx+stu[co un t].yy)/3.0);void sx() struct stude nt temp;int a,b,c;for(a=0;a<i-1;a++)c=a;for(b=a+1;b<i;b++)if(stu[b].ave>stu[c].ave)c=b;temp=stu[b];stu[b]=stu[c];sfurc 一Hfemp八Pl1nff(= 盘E甸可璋;MR〔云)priw ——fo「(CHOqrc++)pl1mf(=%—1」s=guaLnum=pri nff(=%—l 3S= gurcLname)八Pl1mf(=%—8s=gus.sex)-prinm.%二6s=gus.cpl1mf(=%—6crguaLyw)-Pl1mf(=%—6crgus.sx)-Pl1mf(=%—4crgus.yy)-prinmvrxprintf("void cx()int coun t=0;char str[1O];prin tf("\n 请输入要查询的学生学号:");cin> >str;while (co un t<i)if(strc mp (str,stu[co un t]. num )==0)printf("学号姓名性别班级语文数学英语\n");prin tf("%-11s",stu[cou nt], nu m);prin tf("%-13s",stu[cou nt], name);prin tf("%-8s",stu[cou nt].sex);prin tf("%-16s",stu[cou nt].clas);prin tf("%-6d",stu[cou nt].yw);prin tf("%-6d",stu[cou nt].sx);prin tf("%-4d",stu[cou nt].yy);prin tf("\n");printf("break;coun t++;if(co un t>=i)printf("\n 无该学号学生");printf(" \n");elseprin tf("\n");void tjpjf()int coun t=0;stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);printf(" 学号姓名平均分\n");printf("for(j=0;j<i;j++)while(co un t<i)for(j=0;j<i;j++)prin tf("%-21s",stu[cou nt]. nu m);{prin tf("%-21s",stu[cou nt], name);prin tf("%-6.2f",stu[cou nt].ave);coun t++;prin tf("\n");}printf("void tjbhgrsOint j,co un t=0;printf(" for(j=0;j<i;j++)if(stu[j].yw<60||stu[j].sx<60||stu[j].yy<60)\n");printf(" 有不及格科目的学生是:\n");printf(" 学号姓名性别班级语文数学英语\n");\n");{{prin tf("%-11s",stu[cou nt], nu m);prin tf("%-13s",stu[cou nt].n ame);prin tf("%-8s",stu[cou nt].sex);prin tf("%-16s",stu[cou nt].clas);prin tf("%-6d",stu[cou nt].yw);prin tf("%-6d",stu[cou nt].sx);prin tf("%-4d",stu[cou nt].yy);prin tf("\n");coun t++;printf(" void tj()\n");char x;{while(1){prin tf("\t 1. 统计平均分 2. 统计不及格学生信息 3. 返回\n");prin tf("\n\t 请选择具体的统计内容:");cin>>x;prin tf("\n");switch(x){case '1':tjpjf();break;case 2:tjbhgrs();break;case 3:break;} if(x==3)prin tf("\t \n");prin tf("\t 1.按学号排序\n");prin tf("\t 2.查询printf("\t break;prin tf("\n");}}void Data Proc(){char x;while(1){printf("\t 处理数据\n");prin tf("\t \n");prin tf("\t 1.按学号排序\n"); prin tf("\t 2.查询printf("\tprin tf("\n\t 请选择具体的处理内容:");cin>>x;prin tf("\n"); switch(x)case '1':sx();break;case '2':cx();break;case 3:tj();break;case '4':break;if(x=='4')break;printf("\t 3.统计\n");printf("\t 4.返回主菜单\n");\n");prin tf("\n");void DataOut put()int coun t=0;printf(" 学号姓名性别班级语文数学英语\n");printf(" \n");while(co un t<i)prin tf("%-11s",stu[cou nt], nu m);prin tf("%-13s",stu[cou nt]. name);prin tf("%-8s",stu[cou nt].sex);prin tf("%-16s",stu[cou nt].clas);prin tf("%-6d",stu[cou nt].yw);prin tf("\t* *\n");prin tf("\t*学生信息管理系统*\n");prin tf("\t**\n");prin tf("%-6d",stu[cou nt].sx);prin tf("%-6d",stu[cou nt].yy);coun t++;prin tf("\n");printf(" void mai n()char x;while(1){ printf("\t********************************************\n");\n");prin tf("\t*输入数据*\n");1.prin tf("\t* 2. 修改数据*\n");prin tf("\t* 3. 处理数据*\n");prin tf("\t* 4. 输出数据*\n");prin tf("\t* 5. 退出*\n");prin tf("\t* *\n");printf("\t********************************************\n");prin tf("\n\t 请选择需要进行的操作:");cin> >x; prin tf("\n");switch(X){ case '1':I np utData();break;case 2:EditData();break;case 3:Data Proc();break;case '4':DataOut put();break;case '5':printf(" 谢谢使用!\n");break;if(x=='s') break;prin tf("\n");五、运行结果八、实验总结(调试分析、体会、致谢)从这一次的综合实验中,我感触很深可以这么说,为了这个实验花费比较的功夫。

C语言学生信息管理系统设计实验报告

C语言学生信息管理系统设计实验报告
Main 函数

















退

































7.各模块功能简介 信息浏览模块:用导入函数调入信息,用 for 循环依次输出学生信息。
3
信息的增添模块:先确定增添人数,用 for 循环输入指针数组数据,调用保存函 数进行保存。 信息的录入模块:确定人数,for 循环依次输入信息,调用保存函数保存。 信息的修改模块:用 if(strcmp(work[i].name,name)==0) 先找出要修改的学生信息,用 switch 确定修改那一项,输入修改的数据进行保 存。 信息的查询模块:用 if(strcmp(work[i].name,name)==0)查找学生姓名,用 if(num1==work[i].num)对学号查找。 退出:用 goto 语句指向固定行。 8.主要函数流程图 修改函数
录入学生个数
文件
work_list.txt
保存学生信息
2
函数
baicun()、type_in()、 保存 录入 删除 del()、change()、add 修改 查找 插入 ()、scan()search() 显示学生信息、查

4.设计平台 有 Visual C 语言编写,语言简单、紧凑,使用方便、灵活。运算符丰富,数据 类型丰富,具有结构化的控制语句,语法限制不太严格,程序设计自由度大。C 语言允许直接访问物理地址,能进行行位操作,能实现汇编语言的大部功能。生 产目标代码质量高,程序执行效率高,用 C 语言编写的程序可移植性好。 5.设计思想 采用了系统模块化:(1)自顶向下;(2)逐步细化;(3)模块化设计;(4) 结构化编码。用这种方法便于验证算法的正确性,在向下展开之前应仔细检查本 层设计是否正确,只有上一层正确才能向下细化。本程序分为六大模块:浏览模 块、增加模块、录入模块、修改模块、查询模块、退出。其中录入模块包括录入、 导出、保存。查询模块包括学号查询和姓名查询。浏览函数由岳映强完成,增添 模块由马玉帅完成,录入模块由章成完成,修改模块由陈耀明和徐川鹤完成,查 询模块由刘永亮完成,退出模块由钱程完成。 6.设计框图

C语言学生管理系统实验报告

C语言学生管理系统实验报告

C语言案例设计实验报告实验二姓名:学号:专业:自动化课程名称:C语言程序设计指导教师:实验时间:实验地点:教师评分:实验目的和要求1、掌握软件设计开发调试的完整过程;2、掌握单链表,结构体,指针的使用方法;3、掌握使用CodeBlocks软件编程和调试的方法。

一、主要仪器设备及开发环境1、计算机2、CodeBlocks集成开发环境V13.12二、实验原理与分析设计3.1 设计内容1.显示菜单2.获取用户选择的菜单编号3.创建一个节点,他会返回一个新创建的学生信息节点的指针4.把学生信息节点加入到链表中5.返回指定编号学生节点的上一个节点的指针6.显示所有学生信息7.显示信息数量8.修改学生信息,参数为要修改的学生编号9.获取用户的选择10.获取用户输入的学生编号11.删除编号为num的学生信息12.删除所有学生信息13.把信息保存到文件中14.从文件中读取学生信息3.2 数据结构设计a.显示菜单 ShowMenu()b.获取用户选择的菜单编号 GetMenuChoose()C.创建一个节点,返回一个新创建的学生信息节点的指针PSTUDENT CreateStudent()d.把学生信息节点加入到链表中 AddStudent(PSTUDENT pstu)e.返回指定编号学生节点的上一个节点的指针PSTUDENT GetPrevAddr(int num)f.显示所有学生信息ShowAll()g.显示信息数量ShowStudentCount()f.修改学生信息,参数为要修改的学生编号ModityStudent(int num)g.获取用户的选择Question(const char *pstr)h.获取用户输入的学生编号GetInputNum()i.删除编号为num的学生信息DelStudent(int num)j.删除所有学生信息DelAll()k.把信息保存到文件中SaveToFile()l.从文件中读取学生信息 LoadFromFile()3.4 流程图四、程序设计4.1程序主函数int main(){i nt running=1;w hile(running){switch(GetMenuChoose()){case 0:running=0;break;case 1:printf("你选择了菜单1\n");AddStudent(CreateStudent());break;case 2:printf("你选择了菜单2\n");DelStudent(GetInputNum());break;case 3:printf("你选择了菜单3\n");break;case 4:printf("你选择了菜单4\n");ModityStudent(GetInputNum());break;case 5:printf("你选择了菜单5\n");DelAll();break;case 6:printf("你选择了菜单6\n");ShowAll();break;case 7:printf("你选择了菜单7\n");ShowStudentCount();break;case 8:printf("你选择了菜单8\n");TagStudent();break;case 9:printf("你选择了菜单9\n");SaveToFile();break;}system("pause");}r eturn 0;}4.2显示菜单void ShowMenu(){s ystem("cls");p rintf("------------------------------------------------------------------------");p rintf("\n\t1.添加学生信息 2.删除某个学生信息 3.显示某个学生信息\n");p rintf("\t4.修改学生信息 5.删除所有学生信息 6.显示所有学生信息\n");p rintf("\t7.显示信息数量8.读取文件学生信息9.保存学生信息至文件\n");p rintf("\t10.退出系统\n");p rintf("------------------------------------------------------------------------");}4.3获取用户选择的菜单编号int GetMenuChoose(){i nt num;//保存用户选择的菜单编号S howMenu();p rintf("请选择菜单(0~9):") ;/*scanf("%d %d",&aa,&b);函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2:如果只有a被成功读入,返回值为1:如果a和b都未被成功读入,返回值为0:如果遇到错误或遇到end of file,返回值为Eof。

C语言课程设计报告——学生信息管理系统

C语言课程设计报告——学生信息管理系统

C语言程序设计课程设计报告设计题目:学生信息管理系统专业电子信息工程班级学生指导教师年学期一、总体设计<一>.模块划分总体分为4大板块,分别为:1、输入信息模块:输入信息并将信息保存到文件当中:2、浏览信息模块:显示需要全部的学生信息:3、编辑信息模块:输入密码,修改或删除学生信息:4、修改密码模块:修改系统密码;5、系统初始化模块:删除保存的数据和修改后的密码,初始化系统。

<二>.数据结构#define N 100 /* 所能容纳的数据数量*/struct student{int number;char name[10];char gender[6];int birthday;char major[18];char Class[10];char address[30];char dormitory[10];}stu[N];<三>. 函数原型声明1、int menu1(); 主菜单输出函数2、int menu2(); 浏览选项子菜单输出函数3、int menu3(); 编辑选项子菜单输出函数4、void input(); 信息输入函数5、void scan(); 浏览学生信息子函数6、void display(); 信息显示函数7、void save(int n); 将输入的信息保存为文件8、void edit(); 编辑学生信息子函数9、void search(int s); 查找函数10、void revise_info(); 信息修改函数11、void code(); 密码管理函数12、void del(); 信息删除函数13、void recover(); 初始化程序二、功能实现1.main( )(流程图)2.各功能模块详细流程图(1)、输入信息模块输入人数——输入信息——保存信息至文件(2)、浏览信息模块①、全部显示:从文件中读取信息至结构体——输出信息②、按姓名查找:输入姓名——从文件中读取信息至结构体——查找姓名——输出信息③、按学号查找:输入学号——从文件中读取信息至结构体——查找学号——输出信息(3)、编辑信息模块①、修改信息:输入学号——从文件中读取信息至结构体——查找学号——选择修改项目——修改信息——保存信息至文件②、删除信息:输入学号——从文件中读取信息至结构体——查找学号——确认删除——删除信息——保存剩余信息至文件(4)、修改密码模块从文件中读取旧密码——输入旧密码——输入新密码——保存至文件——修改成功(5)、系统初始化模块删除原文件——建立空白文件三、测试及调试(测试方案、存在的问题及解决方法)1、主菜单与子菜单无法建立联系,即输入相应的选项后不能运行相应的子函数。

C语言课程设计实验报告学生信息管理系统

C语言课程设计实验报告学生信息管理系统

C语言课程设计实验报告学生信息管理系统语言程序设计实验报告C报告人:孟凡超指导老师:姜林报告日期:XX年x月x日C语言程序设计实验报告C语言课程设计实验报告1设计目的:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-等试设计一学生信息管理系统,使之能提供以下功能: 1 系统以菜单方式工作 2 学生信息录入功能---输入 3 学生信息浏览功能---输出 4 查询、排序功能---算法按学号查询按姓名查询5 学生信息的删除与修改2总体设计:程序设计组成框图学生信息录入学生信息浏览主菜单学分查询信息编辑信息添加信息删除信息查询信息添加姓名查询信息编辑信息删除2C语言程序设计实验报告流程图开始清屏n=1判断n>0?NYpr输入选择chch1调用2 调用3 调用 pr24N=0结束3C语言程序设计实验报告3详细设计:1>函数入口说明 pr 输出主菜单pr2 输出检索菜单界面文件操作:打开文件操作:保存( n) 编辑子菜单:对姓名编辑 ( n) 编辑子菜单:对年龄编辑 ( n) 编辑子菜单:对性别编辑 ( n) 编辑子菜单:对出生年月编辑 ( n) 编辑子菜单:对住址编辑 ( n) 编辑子菜单:对电话进行编辑( n) 编辑子菜单:对电子邮件地址编辑 ( n) 显示翻页致末尾的信息 ( n) 信息编辑函数 ( n) 删除信息的函数 ( n) 输出编辑界面检索:按学号检索:按姓名录入、添加信息学生信息查看主函数 2>调用关系( n) ( n)pr( n)pr2( n)( n)( n)( n) (同上)( n)( n) ( n) ( n) ( n) ( n)3>参数说明( n)、( n)、( n) 、( n) 、( n) 、( n)、( n)、( n)、( n)、( n)、( n) 函数中的n都为检索中确定的学生数组下标4C语言程序设计实验报告4调试与测试:1>调用pr2函数一闪而过解决方法:添加语句使程序暂停2>无法有效的控制输出函数循环终止解决方法:添加全局变量“”使用该全局变量来记录学生总数,从而控制输出循环的次数3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看解决方法:添加语句使程序暂停,当用户按时继续4>文件在打开和保存时有问题解决方法:调整文件的打开方式,从原来的单纯的w+修改为添加一个语句,当没有文件时执行w+的操作,否则执行r+避免了原存储文件被覆盖的问题5C语言程序设计实验报告5源程序清单和执行结果:#<> #<> #<> #<> =0; { id; [30]; ; [2]; [9]; [80]; [15];[25]; }[];pr { (""); ("******学生信息管理系统******"); ("\n----------V ----------"); ("\n您想要:"); ("\n 1录入学生信息"); ("\n 2浏览学生信息"); ("\n 3检索学生信息"); ("\n 4退出信息管理"); ("\n----- 孟凡超-----"); ("\n****************************\n"); }pr2 { ; ; a; ch; (a) { (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n您想要:"); ("\n 1按学号检索"); ("\n 2按姓名检索"); ("\n 3返回主菜单"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ch=; (ch) { '1':;; '2':;; '3':a=0;; } } }{ *fp; n; ((fp=("""r+"))==) fp=("""w+"); (n=0;n<;n++) (&[n]( )1fp);(&41fp);(fp); }{ n; *fp; fp=("""r+");6C语言程序设计实验报告(n=0;n<;n++) (&[n]( )1fp); (&41fp); (fp); }( n) { ("\n新姓名:"); ("%s"[n]); }( n) { ("\n新年龄:"); ("%d"&[n]); }( n) { ("\n新性别:"); ("%s"[n]); }( n) { ("\n新出生年月"); ("%s"[n]); }( n) { ("\n新地址:"); ("%s"[n]); }( n) { ("\n新电话:"); ("%s"[n]); }( n) { ("\n新E-:"); ("%s"[n]); }( n) { (n==) (""); //清屏 ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n已检索到末尾"); ("\ "); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); }( n) { ch; a=1b; (a) { (""); ("******学生信息管理系统******"); ("\n----------修改----------"); ("\n请输入你想修改的内容:"); ("\n1姓名 2年龄 3性别 4出生年月 5地址 6电话 \n"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ; ch=; (ch) {7C语言程序设计实验报告'1':(n);; '2':(n);; '3':(n);; '4':(n);; '5':(n);; '6':(n);; '7':(n);; } b=1; (b) { ("\n确认吗?(y/n)"); ; ch=; (ch) { 'Y': 'y':b=0;a=0;; 'N': 'n':b=0;; } } } }( n) { a; (a=n;a<;a++) { ([a][a+1]); [a]=[a+1]; ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); } --; ("删除成功!"); }( n) { a=1; ch; (a) { ; ("\n您想要:"); ("\n\n1修改学生信息"); ("\n2删除该条信息"); ("\n3返回上级菜单"); ("\n4查看下条信息"); ch=; (ch) { '1':(n)a=0;; '2':(n)a=0;; '3':a=0;(0);; '4':a=0;; } } }{ nij=0; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的学号:"); ("%d"&n); (n<=) { n=n--; //拷贝后一个学生信息到前一个人上8C语言程序设计实验报告("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%12s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); j=(n); i++; } (i==0) { ("\:无此学生"); ("\n----- 孟凡超-----"); ("\n****************************\n"); } { (j==0) ; { (""); (n); ; } }:; }{ nji=0; m[30]; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的姓名:"); ("%s"m); (n=0;n<;n++) { ((m[n])==0) { (""); ("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%8s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话 E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); i++; ((j=(n))==0) ; } } (i==0) ("\:无此学生"); (j!=0) (n); ; ; }{ an=1m;9C语言程序设计实验报告ch; (n) { a=; (""); ("ID:"); [a]id=(a+1); ("%d"[a]id); ("\:"); ("%s"&[a]); ("\:"); ("%d"&[a]); ("\:"); ("%s"&[a]); ("\( ):"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\nE-:"); ("%s"&[a]); m=1; (m) //做一个循环,直到m=0时跳出{ (""); ("ID:"); ("%d"[a]id); ("\:"); ("%s"[a]); ("\:"); ("%d"[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\nE-"); ("%s"[a]); ("\n请选择:1确认并继续 2重新填写 3放弃并返回 4确认并返回"); ch=; (ch) { '1':m=0;++;; '2':m=0;; '3':m=0n=0;; //选择此项时,m=0,循环终止 '4':m=0n=0;a=++;; } } } }{ =1in=1=1=/5+1; //设定变量控制翻页 ch; (n) { (""); ("学号姓名年龄性别出生年月\n"); (i=-1;i<+4&&i<;i++) { ("%4d "[i]id); ("%12s "[i]); ("%4d "[i]); ("%4s "[i]); ("%8s\n"[i]); } ("\n\n\n学号电话 E- 地址\n"); (i=-1;i<+4&&i<;i++)10C语言程序设计实验报告{ ("%4d "[i]id); ("%15s "[i]); ("%15s "[i]); ("%s\n" [i]); } ("\n1上一页 2下一页 0退出共学生%d人第%d页共%d页\n"); ch=; (ch) { '1':--; (==0) =(-1)*5+1=; =(-1)*5+1;; '2':++; (>) =1=1; =(-1)*5+1;; '0':n=0;; } } }。

C语言课程设计报告 --学生管理系统

C语言课程设计报告 --学生管理系统

C语言课程设计报告 --学生管理系统一、实验目的:通过本次实验,学习C语言的语法和数据类型,设计一个简单的学生管理系统,结合文件I/O所学,可以将学生信息保存至文件中,再读取时自动填充至程序中。

同时,体验软件开发的流程,从需求分析到具体实现。

二、需求分析:1、学生信息包括:学号、姓名、性别、年龄、成绩。

2、学生信息需要添加、删除、修改、查找和显示。

3、程序启动时自动从文件中读取数据,退出时自动保存数据。

三、实验过程:1、确定数据结构和变量类型通过分析需求,学生信息包含多个属性,可以使用结构体来保存每个学生的信息。

同时,为了便于程序运行,需要定义一个链表来保存所有学生信息。

/* 学生信息结构体 */typedef struct _Student {char id[12]; // 学号char name[20]; // 姓名char gender; // 性别int age; // 年龄double score; // 成绩} Student;/* 学生信息链表节点 */typedef struct _StudentNode {Student data; // 学生信息struct _StudentNode *next; // 下一节点指针} StudentNode;/* 学生信息链表头节点 */StudentNode *head = NULL;2、设计主菜单功能考虑学生管理系统的主要功能,可以设计以下主菜单:---------------------------1. 添加学生2. 删除学生3. 修改学生信息4. 查找学生5. 显示所有学生6. 退出---------------------------可以使用一个while循环来循环处理,直到用户选择退出。

3、实现主菜单功能添加学生:先从用户输入中获取学生信息,然后创建一个新的学生信息节点,并将其添加到链表的末尾。

1. 定义变量/* 输入缓存区大小 */#define BUFFER_SIZE 2562. 实现函数/* 添加学生到链表末尾 */void add_student() {Student student; // 待添加的学生信息printf("请输入学号:");scanf("%s", student.id);printf("请输入姓名:");scanf("%s", );printf("请输入性别(M/F):");scanf(" %c", &student.gender);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入成绩:");scanf("%lf", &student.score);StudentNode *node =(StudentNode*)malloc(sizeof(StudentNode));node->data = student;node->next = NULL;if (head == NULL) {head = node;} else {StudentNode *p = head;while (p->next != NULL) {p = p->next;}p->next = node;}printf("添加学生成功!\n");}删除学生:先从用户输入中获取学生学号,然后遍历链表,找到该学号对应的学生信息节点,并删除。

C语言实验报告-学生信息资源管理系统

C语言实验报告-学生信息资源管理系统

C语言实验报告一、问题描述编写一个信息管理系统,包括、性别、年龄、班级、**、地址、各科成绩等,要求能进行查找、排序和计算,按加权平均排序、按*一课程排序和按**排序。

二、分析问题,解决问题的步骤1、输入初始的学生信息:输入信息包括学生的、性别、年龄、班级、**、地址、各科成绩等相关信息;可用函数void input(STUDENT *data, int *len)来实现此操作。

2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通过学生的来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和average() 来输出成绩的平均分数、最高和最低分数。

3、排序模块:用函数void sort(STUDENT *data, int len)来实现。

4、成绩查询模块:可用void find(STUDENT *data, int len) 来实现。

找到就输出此学生全部信息。

5、统计功能能:用函数void stat(STUDENT *data, int len) 来实现。

6、退出系统:可用一个函数e*it()来实现,首先将信息保存到文件中,释放动态创建的存空间,再退出此程序。

三、程序编写#include <stdlib.h>#include <stdio.h>#include <string.h>#define MA*N 35#define Ma*size325typedef struct student //学生信息{int no;char name[Ma*size];char se*[Ma*size];char age[Ma*size];char adress[Ma*size];char glassnum[Ma*size];double Chinese;double math;double English;double mark_ave;double mark_tot;} STUDENT;/*-----------输入信息子程序---------*/ void input(STUDENT *data, int *len) {int no;putchar('\n');printf("%s\n", "请输入新的记录,如果需要退出当前菜单请输入-1.");printf("%s\n", "格式:\n**\n");printf("%s\n", " 性别年龄地址班级 ** 语文数学英语");putchar('\n');printf("如:\n");printf("1\n");printf("三 93 95 89\n");scanf("%d", &no);while(no != -1) {data[*len].no = no;scanf("%s %s %s %s %s %lf %lf %lf", data[*len].name,&data[*len].se*,&data[*len].age,&data[*l en].adress,&data[*len].glassnum,&data[*len].Chinese,&data[*len].math,&data[*len].English);data[*len].mark_ave=(data[*len].Chinese+data[*len].ma th+data[*len].English)/3.0;data[*len].mark_tot=data[*len].Chinese+data[*len].mat h+data[*len].English;(*len)++;scanf("%d", &no);}/*---------------输出信息子程序---------------*/ void output(STUDENT *data, int len){int i;system("cls");printf("%8s", "");printf("%8s", "性别");printf("%8s", "年龄");printf("%8s", "地址");printf("%8s", "班级");printf("%8s", "语文");printf("%8s", "数学");printf("%10s", "英语");printf("%12s", "平均分");printf("%10s", "总分");putchar('\n');for (i =0; i < 80; i++)putchar('=');putchar('\n');for (i = 0; i< len; i++){printf("%8d", data[i].no);printf("%8s", data[i].name);printf("%8s", data[i].se*);printf("%8s", data[i].age);printf("%8s", data[i].adress);printf("%8s", data[i].glassnum);printf("%8.1lf", data[i].Chinese); printf("%8.1lf", data[i].math);printf("%10.1lf", data[i].English); printf("%12.1lf", data[i].mark_ave); printf("%10.1lf", data[i].mark_tot); putchar('\n');}for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("按回车键继续.");getchar();getchar();}/*--------------排序子程序------------*/void sort(STUDENT *data, int len){int i,j,k;STUDENT temp;for (i=0; i<len-1; i++) {for (k=i, j=i+1; j<len; j++)if (data[k].mark_ave > data[j].mark_ave) k=j;if (k != i) {temp = data[i];data[i] = data[k];data[k] = temp;}}}/*--------------------查询子程序-----------------------*/ void find(STUDENT *data, int len){int find_no, result ;int i;lab: result=0;printf("%s\n", "请输入需要查找的学生的**,退出当前菜单请输入 -1.");scanf("%d", &find_no);if (find_no == -1) return; /*e*it the fine sub program*/while( data[result].no != find_no && result < len) result ++;if (result >= len ) {printf("%s\n", "未查询到相关信息");goto lab;}else {system("cls");printf("%s\n", "查询信息如下:");for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("%8s", "**");printf("%8s", "");printf("%8s", "性别");printf("%8s", "年龄");printf("%8s", "地址");printf("%8s", "班级");printf("%8s", "语文");printf("%8s", "数学");printf("%10s", "英语");printf("%12s", "平均分");printf("%10s", "总分");putchar('\n');printf("%8d", data[result].no);printf("%8s", data[result].name);printf("%8s", data[result].se*);printf("%8s", data[result].age);printf("%8s", data[result].adress);printf("%8s", data[result].glassnum);printf("%8.1lf", data[result].Chinese);printf("%8.1lf", data[result].math);printf("%10.1lf", data[result].English);printf("%12.1lf", data[result].mark_ave);printf("%10.1lf", data[result].mark_tot);putchar('\n');for (i =0; i < 80; i++)putchar('=');putchar('\n');goto lab;}}/*---------------统计子程序------------*/void stat(STUDENT *data, int len){int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i;for (i = 0;i < len; i++) {if (data[i].mark_ave <=59) no_59++;else if (data[i].mark_ave <=69) no_69++;else if (data[i].mark_ave <=79) no_79++;else if (data[i].mark_ave <= 89) no_89++;else no_100++;}system("cls");for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("%10s", "分数");printf("%10s", "0--59"); printf("%10s", "60--69"); printf("%10s", "70--79"); printf("%10s", "80--89"); printf("%10s", "90--100");putchar('\n');putchar('\n');printf("%10s", "学生");printf("%10d", no_59);printf("%10d", no_69);printf("%10d", no_79);printf("%10d", no_89);printf("%10d", no_100);putchar('\n');for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("按回车键返回");getchar();getchar();}/*---------------显示信息子程序------------*/void paint(){int i;system("cls");printf("%55s\n", "信计二班学生成绩管理系统\n");printf(" 制作者: ** \n");for (i = 0; i < 80; i++)putchar('=');putchar('\n');printf(" 1 输入信息 2 输出信息\n");printf(" 3 按平均分排序 4 按**查找\n");printf(" 5 按平均分输出统计信息 6 保存到文件\n");printf(" 0 退出\n");for (i = 0; i<= 79; i++)putchar('=');putchar('\n');printf("%s\n", "请输入各操作对应的序号:");}void save(STUDENT *data, int len)//将数据保存到文件{int i;FILE *fp;fp=fopen("成绩统计表.t*t","w");fprintf(fp,"%8s", "**");fprintf(fp,"%8s", "");fprintf(fp,"%8s", "性别");fprintf(fp,"%8s", "年龄");fprintf(fp,"%8s", "地址");fprintf(fp,"%8s", "班级");fprintf(fp,"%8s", "语文");fprintf(fp,"%8s", "数学");fprintf(fp,"%10s", "英语");fprintf(fp,"%12s", "平均分");fprintf(fp,"%10s\n", "总分");fprintf(fp,"=============================================== =========================\n");putchar('\n');for (i = 0; i< len; i++)fprintf(fp,"%8d", data[i].no);fprintf(fp,"%8s", data[i].name);fprintf(fp,"%8s", data[i].se*);fprintf(fp,"%8s", data[i].age);fprintf(fp,"%8s", data[i].adress);fprintf(fp,"%8s", data[i].glassnum);fprintf(fp,"%8.1lf", data[i].Chinese);fprintf(fp,"%8.1lf", data[i].math);fprintf(fp,"%10.1lf", data[i].English);fprintf(fp,"%12.1lf", data[i].mark_ave);fprintf(fp,"%10.1lf\n", data[i].mark_tot);}fprintf(fp,"=============================================== =========================\n");fclose(fp);printf("文件已保存到\"成绩统计表.t*t\"");getchar();getchar();}/*-----------主程序--------------*/void main()STUDENT data[MA*N];int len = 0;char ctrl_ch;paint();scanf("%c", &ctrl_ch);while (ctrl_ch != '0') {; case '1':input(data, &len);break;case '2':output(data, len);break;case '3':sort(data, len);break;case '4':find(data, len);break;case '5':insert(data, &len);break;case '6':delete_item(data, &len);break;case '7':stat(data, len);break;case '8':save(data, len);break;default:if (ctrl_ch != '\n') printf("%s\n", "输入错误!");break;}if (ctrl_ch != '\n') paint();scanf("%c", &ctrl_ch);}}四、误差分析此程序没有按加权平均排序功能是本程序的一大弊端,还有就是所列科目少了点,由于本课题中的许多知识点都没有学过,需要查找课外资料,所以如有错误,希望老师多多指正,!。

c语言课程信息管理系统实训总结

c语言课程信息管理系统实训总结

C语言课程信息管理系统实训总结一、项目背景1.1 项目目的本次实训的项目是为了让学生通过实践的方式提高C语言编程能力,了解信息管理系统的设计与实现。

1.2 项目内容通过本次实训,学生需要设计和实现一个基于C语言的课程信息管理系统,包括学生信息管理、课程信息管理、成绩管理等功能模块。

1.3 项目意义通过这个项目,学生将掌握C语言编程的基本技巧,加深对信息管理系统的理解,提高问题分析和解决能力。

二、项目实施过程2.1 项目需求分析在项目开始之前,首先进行了对需求的分析,明确了系统需要实现的功能模块和具体需求,为后续的开发工作奠定了基础。

2.2 系统设计基于需求分析的基础上,进行了系统的整体设计和模块设计,确定了系统的架构和各个模块之间的关系,明确了每个模块的功能和实现方式。

2.3 编码实现在系统设计完成后,学生开始进行编码实现,根据设计文档和模块需求进行编码工作,实现每个功能模块的具体逻辑。

2.4 测试调试编码实现完成后,进行了系统的测试和调试工作,确保系统的稳定性和功能的正确性,对系统进行了全面的测试覆盖。

三、项目总结与反思3.1 项目成果通过本次实训,学生们成功地设计并实现了一个完整的C语言课程信息管理系统,包括学生信息管理、课程信息管理、成绩管理等功能模块,实现了项目的预期目标。

3.2 学习收获通过这个项目,学生们不仅加深了对C语言编程的理解和掌握,还了解了信息管理系统的设计和实现方法,培养了问题分析和解决能力,提高了团队协作能力。

3.3 反思与展望在项目实施的过程中,我们也发现了一些问题和不足,比如需求分析不够清晰、部分模块设计不够合理等,对这些问题进行了总结和反思,并为未来的项目实施提出了改进和完善的建议。

四、结语通过本次C语言课程信息管理系统实训,学生们不仅掌握了C语言编程的基本技巧,而且加深了对信息管理系统的理解,提高了问题分析和解决能力。

希望学生们能够将实训中所学到的知识应用于实际工作中,不断提高自己的技术水平,为未来的职业发展打下坚实的基础。

c语言学生信息管理系统实验报告

c语言学生信息管理系统实验报告

C语言学生信息管理系统实验报告C语言课程设计学生信息管理系统姓名洪伟生院系计算机学院日期年 7 月 5 日目录第一章设计要求………………………………………………第二章算法分析1.理论依据…………………………………………………2.主要实现方法……………………………………………2.1整体流程图………………………………………2.2函数功能和函数之间的调用关系………………第三章代码(源代码)………………………………………第四章分析说明………………………………………………第五章总结……………………………………………………第一章、设计要求1、利用所学的知识、理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;2、经过C语言各个函数功能来实现对学生信息的管理,学生信息包括学生姓名,学号,各科成绩;管理方式包括对学生信息的录入,保存,排序,查找、修改、删除等功能。

第二章、算法分析1、程序理论依据经过C语言的程序设计基础的掌握,对学生成绩管理系统进行编写程序。

首先,经过链表这一数据结构来对学生的信息进行录入以及操作,在其过程中,经过各个功能语句以及选择结构,循环结构等方式的结合来达到所要实现的程序功能。

最后经过对C 语言中对文件的操作,对已有学生成绩的读取和新建学生成绩的录入保存。

2、主要实现方法2.1整体流程图2.2、函数功能和函数之间的调用关系2.2.1、函数功能:void Menu_1(); //主菜单void Menu_2(); //二级菜单学生信进退出学生信学生信学生信学生信学生信学生信返回主void swap(struct student * phead,struct student * pback);// 链表节点互换void Save(struct student * head); // 写入磁盘void Search(struct student * head); // 查找学生信息void Read(struct student * head); // 显示学生信息void Sort(struct student * head); // 链表节点排序struct student * Create(); //学生信息手动录入struct student * Readpoint(); //磁盘文件写入内存struct student * Modify(struct student * head); // 链表结构体成员修改struct student * Add(struct student * head); // 链表节点插入struct student * Delete(struct student * head); // 链表节点删除。

C语言学生管理系统_综合实验报告

C语言学生管理系统_综合实验报告

C语言学生管理系统_综合实验报告一、引言学生管理系统是一种方便高校进行学生信息管理的工具,具备添加、删除、查询、修改等基本功能,可以提高学校教务部门的工作效率,减少人力资源的浪费。

本文将介绍一个基于C语言的学生管理系统的设计和实现。

二、系统设计1.需求分析学生管理系统主要包括学生信息、教师信息和课程信息的录入、查询、修改和删除等功能,同时要求可以按照学号、姓名等字段进行快速检索。

系统还需要能够自动生成学生的成绩单和课程表,方便学生进行查看。

2.系统架构学生管理系统采用客户端-服务器模式,客户端和服务器之间通过网络进行数据传输。

客户端通过命令行界面与用户交互,服务器负责处理客户端发送的请求并返回相应的结果。

3.系统功能模块(1)学生信息管理模块:包括学生信息的添加、查询、修改和删除等功能。

(2)教师信息管理模块:包括教师信息的添加、查询、修改和删除等功能。

(3)课程信息管理模块:包括课程信息的添加、查询、修改和删除等功能。

(4)成绩管理模块:包括成绩的录入和查询功能。

(5)课程表模块:根据学生选课情况生成学生的课程表。

三、系统实现1.开发环境系统开发环境选择C语言,编译器使用GCC,开发工具使用Dev-C++。

2.数据存储系统的数据存储采用文本文件的形式,每个学生、教师和课程信息分别存储在一个文本文件中,使用逗号分隔各个字段。

3.界面设计系统界面使用命令行界面,通过菜单来提供各个功能的选项,用户可以根据提示输入相应的指令进行操作。

4.功能实现(1)学生信息管理功能:用户输入学生信息后,系统将学生信息保存到指定的文本文件中,并返回操作结果。

(2)教师信息管理功能:用户输入教师信息后,系统将教师信息保存到指定的文本文件中,并返回操作结果。

(3)课程信息管理功能:用户输入课程信息后,系统将课程信息保存到指定的文本文件中,并返回操作结果。

(4)成绩管理功能:用户输入学生学号和对应的课程信息后,系统将成绩保存到指定的文本文件中,并返回操作结果。

C语言课程设计实验报告 学生信息管理系统

C语言课程设计实验报告 学生信息管理系统
C
课题:学生信息管理系统设计 报告人:阮家友 方鹏飞 叶成 指导老师: 严碧波 孙祥娥 报告日期:2014 年 6 月 23 日
语言课程设计Байду номын сангаас验报告
C 语言课程设计实验报告
C 语言课程设计实验报告
1.设计目的:
学生信息管理系统设计
学生信息包括:学号、姓名、年龄、电话号码、性别、出生年月、QQ、班级 等。试设计一学生信息管理系统,使之能提供以下功能: 1. 系统以菜单方式工作 2. 学生信息添加功能---输入 3. 查询功能---算法 按学号查询 按姓名查询 4. 学生信息的删除与修改 5. 学生信息整表浏览功能---输出
4.调试与测试:
1>调用 STU * load_info()函数(文件载入) ,读写出现乱码 解决方法:更改相应指针指向,及有关变量的初值设置。
4
C 语言课程设计实验报告
2>边界测试 解决方法:用极端的或偏门的情况来探测和验证代码在处理时会发生什么。
3>执行窗口执行多次命令后显示过多,不利于输入指令及结果查看 解决方法:调用系统清屏函数 system("cls");。
case 3
调用 serch_info ()
case 4
调用 delete_info ()
case 5
调用 delete_info ()
case6
调用 preview_info( )
调用 add_info()
结束
3
C 语言课程设计实验报告
3.详细设计:
1>函数入口说明 menu() 输出主菜单 load_info() 载入函数:txt 转为链表 add_info(STU*h) 增加学生信息 search_info(STU*h,int type) 搜索学生信息 delete_info(STU*h) 删除学生信息 update_info(STU*h) 修改学生信息 output_info(STU*h) 输出学生信息 preview_info(STU*h,int type) 预览学生信息 main() 主函数 2>调用关系 load_info() add_info(STU*h)

C语言学生信息管理系统实验报告

C语言学生信息管理系统实验报告

C语言学生信息管理系统实验报告 -C语言学生信息管理系统实验报告一、实验目的本次实验旨在通过C语言编程实现一个简单的学生信息管理系统,以帮助学生更好地理解和掌握C语言的基本语法、数据类型、程序控制结构以及文件操作等知识点。

同时,通过实际操作,提高学生的编程能力和问题解决能力。

二、实验内容1、系统的基本功能:实现学生信息的输入、存储、查询、修改和删除等操作。

2、数据存储方式:使用文件存储学生信息,保证数据的持久性。

3、用户界面:实现一个简单的命令行界面,方便用户进行操作。

三、实验步骤及实现1、打开一个新文件,命名为“student_info.txt”,用于存储学生信息。

2、定义一个结构体,包含学生的基本信息,如学号、姓名、年龄、性别等。

3、编写程序,实现学生信息的输入、存储和输出。

4、编写程序,实现学生信息的查询、修改和删除操作。

5、在命令行界面中,使用scanf函数获取用户输入的指令,并根据指令执行相应的操作。

6、在操作结束后,将结果显示在命令行界面上。

四、实验结果与分析1、学生信息管理系统的基本功能已经实现,可以正常进行学生信息的输入、存储、查询、修改和删除等操作。

2、使用了文件操作函数,可以将学生信息持久化存储,避免了每次运行程序都需要重新输入信息的麻烦。

3、通过实际操作,学生对C语言的基本语法、数据类型、程序控制结构以及文件操作等知识点有了更深入的理解和掌握。

五、实验总结与建议1、在实现学生信息管理系统时,需要注意数据的正确性和完整性,尤其是输入数据时需要做好错误处理。

2、在实现系统功能时,可以进一步优化代码,提高程序的效率和可读性。

3、可以增加更多的功能,如统计学生人数、打印学生信息等,以使系统更加完善。

4、在实际应用中,需要考虑系统的安全性和稳定性,如数据的备份和恢复、系统的异常处理等。

通过本次实验,学生对C语言有了更深入的理解和掌握,同时提高了编程能力和问题解决能力。

建议在今后的实验中,注重理论与实践相结合,提高学生的实际应用能力。

学生信息管理系统C语言课程设计报告

学生信息管理系统C语言课程设计报告

C语言课程设计实习报告一、设计内容与设计要求设计内容:学生信息管理系统设计1.问题的提出:随着计算机技术的发展,特别是计算机大量软件的使用,使用人们的生活与工作方式发生了很大的改观。

软件镶嵌在各种设备中,存在与我们计算机的方方面面。

C语言具有高级语言使用方便的特点,又具有低级语言直接操作计算机硬件的特点。

因此C语言既可以编写系统软件,又可以用来编写应用软件,其应用十分广泛,是国际上广为流行的计算机语言。

在我国,教育是一个影响着国富民强的重要行业,随着改革开放和市场经济的发展根据中国特有的国情发展,教育得到了国家的大力扶持与社会各界的高度重视,从而使教育业向规范性与现代化的方向高速发展,但是同发达国家相比,我国的教育行业的信息技术的应用程度还很低,只有在大城市中发展较早、规模较大的院校中才使用计算机进行大规模操作,从各方面提高工作效率,取得良好的社会和经济效益,而一些新兴的、规模较小的教育机构还没有全部具备这种功能。

因此可见,随着我国教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。

2.功能要求:1)用C语言实现系统;利用结构体数组实现学生信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。

2) 建立一个学生信息数据库,文件名为xsxxk.txt,并从该文件中读取数据;3)学生信息管理系统应能提供以下功能:①系统以菜单方式工作②学生信息显示功能③学生信息追加功能④学生信息查询功能(要求能分别按学号查询和按姓名查询)⑤学生信息的删除⑥学生信息的修改⑦按学生年龄排序(升序)5) 学生信息管理系统采用一个结构体数组,学生信息数据库结构如下:学生信息包括:学号,姓名,性别、年龄,出生年月,地址,电话,E-maillong int xh /*学号*/char name[10] /*姓名*/char xb[4] /*性别*/int nl /*年龄*/char czrq[10]; /*出生年月*/char address[10] /*地址*/char phone[15] /*电话号码*/char e_mail[20] /*E-mail*/注意:学号不重复,且数据库应有10条或以上的记录。

C语言学生信息管理系统设计实验报告

C语言学生信息管理系统设计实验报告
6
通过本次实验对 C 语言有了初步了解,但如果想要进一步了解,还应加强练习, 组员之间的配合在设计过程中是很重要的。 参考资料:C 程序设计 C 语言程序基础
7
Main 函数

















退

































7.各模块功能简介 信息浏览模块:用导入函数调入信息,用 for 循环依次输出学生信息。
3
信息的增添模块:先确定增添人数,用 for 循环输入指针数组数据,调用保存函 数进行保存。 信息的录入模块:确定人数,for 循环依次输入信息,调用保存函数保存。 信息的修改模块:用 if(strcmp(work[i].name,name)==0) 先找出要修改的学生信息,用 switch 确定修改那一项,输入修改的数据进行保 存。 信息的查询模块:用 if(strcmp(work[i].name,name)==0)查找学生姓名,用 if(num1==work[i].num)对学号查找。 退出:用 goto 语句指向固定行。 8.主要函数流程图 修改函数
录入学生个数
文件
work_list.txt
保存学生信息
2
函数
baicun()、type_in()、 保存 录入 删除 del()、change()、add 修改 查找 插入 ()、scan()search() 显示学生信息、查

c语言学生信息管理系统实训报告

c语言学生信息管理系统实训报告

c语言学生信息管理系统实训报告
C语言学生信息管理系统是以C语言为编程语言开发的数据管理系统,该系统基于数
据库技术,实现了人事档案管理、班级管理、成绩管理、考勤管理及学生信息管理等功能。

本次实训,我使用C语言编程,在Visual Studio2017环境下,实现了一种自定义的
学生信息管理系统。

该系统实现学生信息的查询、删除、添加及修改功能。

在项目的开发
过程中,我也使用了文件读取与保存、数据结构训练、数据处理等编程技术。

其中,采用
C语言处理文本文件,用链表结构组织数据,并实现增删改查等功能;使用链表结构处理学生信息,实现数据的添加、修改和删除等操作;使用文件读取及保存,在开发过程中
记录及复用学生信息,并按要求输出学生信息报表;使用数据结构进行数据处理,通过
数据的排序、查找等操作,实现提高学生管理的效率。

实训过程运用C语言基础知识和结构化编程思想,巩固了编写程序的知识和编程技术,让我更加深入地理解面向对象思想。

在实训过程中,我熟练掌握了if语句、while语句、switch语句等基础编程语句,加深了对编程概念的理解,同时也学会了在实际编程中如何把这些概念运用到编程中,从而熟练掌握C语言的编程技巧。

实训结束时,我认为自己在编程方面有了很大的进步,对C语言的编程也有了更深的
理解,同时自己也掌握了一套独立的编程思维,并能够利用面向对象思想,实现学生信息
管理系统客户端最新需求。

学生系统 c 实验报告

学生系统 c 实验报告

学生系统c 实验报告引言学生管理系统是一种用于管理学生信息的软件,它能够帮助学校、教育机构以及各类培训机构对学生的信息进行存储、查询和管理。

在本次实验中,我们使用C 语言设计并实现了一个简单的学生系统,通过该系统可以进行学生信息的新增、修改、查询和删除等操作。

设计思路在本次实验中,我们采用了模块化的设计思路,将学生系统分为学生信息管理模块、数据库模块和用户界面模块。

学生信息管理模块该模块用于处理学生信息相关的操作,包括增加学生信息、修改学生信息、查询学生信息和删除学生信息等功能。

为了方便之后的扩展性,我们将学生信息的数据结构定义为一个结构体,包括学生姓名、学号、性别和年龄等信息。

在学生信息管理模块中,我们通过链表的方式进行数据的存储和管理。

数据库模块数据库模块用于实现学生信息的持久化,将学生信息存储到磁盘文件中,以便之后的读取和修改操作。

在本次实验中,我们采用了文本文件的方式实现数据库模块,将学生信息保存为文本格式,并通过文件操作函数对数据进行读写。

用户界面模块用户界面模块用于实现与用户的交互,包括菜单显示、用户输入和信息输出等功能。

我们通过命令行界面的方式设计用户界面,用户可以通过输入对应的命令来操作学生信息。

实验结果经过实验的设计和编码,我们成功实现了一个简单的学生系统。

用户可以通过菜单选择不同的操作,进行学生信息的增删改查。

系统在运行时可以正常读取和保存学生信息,并且能够根据用户的选择执行相应的操作。

实验总结通过本次实验,我们深入理解了学生系统的设计思路和实现过程。

学会了如何使用C 语言进行模块化设计,分解问题并解决问题。

同时,我们也对文件操作和链表数据结构有了更深入的了解和掌握。

在实验过程中,我们也遇到了一些问题和挑战,比如对学生信息的输入和验证、文件读写的处理和用户界面的设计等。

通过不断的调试和优化,我们最终完成了系统的开发和测试。

通过本次实验,我们不仅提高了编程能力和解决问题的能力,还加深了对学生系统的理解和应用。

学生信息管理系统C语言报告

学生信息管理系统C语言报告

学生信息管理系统C语言报告简介学生信息管理系统是一种可以对学生信息进行管理的软件系统。

通过该系统,可以方便地添加、修改、查询和删除学生信息,提高学生信息管理的效率和准确性。

本报告将介绍学生信息管理系统的设计和实现过程,包括系统功能、技术选型和代码结构等方面。

通过该报告的阅读,读者可以了解到该系统的开发背景和主要功能,以及查看源代码和运行效果。

系统功能学生信息管理系统的主要功能如下:1. 添加学生信息:可以输入学生的姓名、年龄、性别、学号等基本信息,并保存到系统中。

2. 修改学生信息:可以根据学生的学号或姓名,修改学生的基本信息。

3. 查询学生信息:可以根据学生的学号、姓名、年龄、性别等条件,查询学生的基本信息。

4. 删除学生信息:可以根据学生的学号或姓名,将学生的基本信息从系统中删除。

技术选型为了实现学生信息管理系统的需求,我们选择使用C语言进行开发。

C语言是一种高效、可靠的编程语言,有着丰富的开发资源和庞大的用户群体。

在开发过程中,我们采用了以下技术选型:- 编程语言:C语言C语言作为一种结构化的编程语言,具有强大的计算能力和灵活的控制语句,非常适合开发类似学生信息管理系统这样的小规模应用。

代码结构学生信息管理系统的代码结构如下:cinclude <stdio.h>struct Student {char name[50];int age;char gender[10];int student_id;};void add_student(struct Student *students, int *count) {添加学生信息的代码逻辑}void modify_student(struct Student *students, int count) {修改学生信息的代码逻辑}void query_student(struct Student *students, int count) {查询学生信息的代码逻辑}void delete_student(struct Student *students, int *count) {删除学生信息的代码逻辑}int main() {struct Student students[100];int count = 0;主程序逻辑,包括用户界面等}在代码结构中,我们定义了一个`Student`结构体,用于存储学生的基本信息。

C语言上机实验报告--学生信息管理系统设计__内附源代码

C语言上机实验报告--学生信息管理系统设计__内附源代码

C语言上机实验报告------学生信息管理系统设计姓名:学号:班级:指导老师:学院:学校:C语言上机实验报告------学生信息管理系统设计一、实验题目学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。

试设计一学生信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)---输入(3)学生信息浏览功能---输出(4)查询、排序功能---算法(5)按学号查询(6)按姓名查询(7)学生信息的删除与修改(可选项)二、本课程的地位、作用与目的为综合应用C语言程序设计理论知识、进一步提高学生综合解决问题、协调工作的能力和良好的软件开发习惯,特安排本实验内容。

希望通过该实习能够进一步激发学生的学习热情,培养学生初步编程的能力,为后续的学习和发展奠定基础。

三、分析过程1、能够实现对学生基本信息数据的增加和删除2、实现对录入保存后的学生基本信息进行格式化浏览3、提供学号和姓名两种方式对学生基本信息数据的查询4、能够对随机输入的学生基本信息数据按学号进行排序5、学生信息数据保存在文件中,方便数据的多次使用为了实现以上功能,必须设计的函数如下:录入函数、查询函数(分为姓名查询和学号查询)、删除函数、排序函数和几个菜单绘制函数等四、实验源代码:#include <stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#include<time.h>#define num 12//定义学生结构体typedef struct student{int id;char name[num];int age;char sex[4];struct birth{int year;int month;int day;}date;char add[30];int phone;}stu;//功能选择菜单void menu(){printf("\n");printf("\n");printf(" 学生信息管理系统\n");printf("\n");printf("********************************************************************* **\n");printf(" ==============1.学生信息录入 2.学生信息浏览===============\n");printf("\n");printf(" ==============3.学号查询信息 4.姓名查询信息===============\n");printf("\n");printf(" ==============5.按学号排序 6.删除学生信息===============\n");printf("\n");printf(" ============== 0.退出系统===============\n");printf("\n");printf("\n");printf("********************************************************************* *\n");printf("\n");printf(" 按编号选择对应功能\n");printf("\n");printf(" +++++++++++++++++++ XXXXXXX制作+++++++++++++++++++++\n");printf("\n");}//修改菜单void printmenu(){printf("********************************************************* **\n");printf("-------1.完全修改 2.学号修改---------");printf("-------3.姓名修改 4.性别修改---------");printf("-------5.生日修改 6.地址修改---------");printf("-------7.电话修改 0.退出修改---------");printf("********************************************************* **\n");}//取当前时间int nowtime(){struct tm *local;time_t t;t=time(NULL);local=localtime(&t);return local->tm_year+1900;//求出当前时间的年份}//输出文件中学生信息void print(char *file){stu temp;FILE *fp=fopen(file,"r");if(fp==NULL){printf("打开文件%s失败!\n",file);return;}printf("文件%s中学生信息如下:\n",file);printf("%8s%8s%6s%6s%8s%4s%4s%16s%12s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");fseek(fp,0,SEEK_SET);//从文件开始为之读取while(fread(&temp,sizeof(stu),1,fp))printf("%8d%8s%6d%6s%8d%4d%4d%16s%12d\n",temp.id,,temp.age,t emp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,temp.ph one);//格式化输出学生信息fclose(fp);//关闭文件}void luru(char *file){int count,sexnum,i=0,m;stu temp,temp1;FILE *fp=fopen(file,"a+");//追加方式打开文件if(fp==NULL){printf("打开文件%s失败!",file);return;}printf("请确定本次需要录入几名学生信息:");scanf("%d",&count);for (i=0;i<count ;i++ ){printf("录入要写入文件%s的第%d名学生信息\n",file,i+1); Repeat:printf("请输入学号:");m=scanf("%d",&temp.id);if (m==0){printf("输入的数据不是整型数据!\n");fflush(stdin);//清除缓存goto Repeat;}fseek(fp,0,SEEK_SET);//从文件开始位置读取while(fread(&temp1,sizeof(stu),1,fp)){if (temp1.id==temp.id)//判断学号是否已存在{printf("学号已存在!\n");goto Repeat;}//若学号已存在,返回继续读取学号}printf("请输入姓名:");scanf("%s",);printf("请输入性别:0为女生,1为男生:");{scanf("%d",&sexnum);if (sexnum==1) strcpy(temp.sex,"男");else strcpy(temp.sex,"女");}printf("请输入出生年月日:");scanf("%d%d%d",&temp.date.year,&temp.date.month,&temp.date.day);temp.age=nowtime()-temp.date.year;printf("请输入地址:");scanf("%s",&temp.add);printf("请输入联系电话11位:");scanf("%d",&temp.phone);if(!fwrite(&temp,sizeof(stu),1,fp)){printf("向文件%s写入信息失败!\n",file);return;}}printf("向文件%s写入信息成功!\n",file);fclose(fp);}int IsEmpty(FILE *fp){int len;fseek(fp,0,SEEK_END);//指针移动到文件尾len=ftell(fp);//取指针的文职获取长度return(len==0)?1:0;//0代表文件为空}void idsearch(char *file){int findid;stu temp;FILE *fp=fopen(file,"r");if (fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入信息!");return;}printf("输入要查找学生的学号:");scanf("%d",&findid);fseek(fp,0,SEEK_SET);while(fread(&temp,sizeof(stu),1,fp)){if(temp.id==findid){printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",temp.id,,temp.a ge,temp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,tem p.phone);//格式化输出学生信息return;}}printf("没有找到学号为%d的学生的信息!",findid);return;fclose(fp);}void namesearch(char *file){char name[num];stu temp;FILE *fp=fopen(file,"r");if (fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先输入学生信息!");return;}printf("输入要查找的学生的姓名:");scanf("%s",name);fseek(fp,0,SEEK_SET);while(fread(&temp,sizeof(stu),1,fp)){if (!strcmp(,name)){printf("下面是姓名为%s的学生的信息:\n",name);printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",temp.id,,temp.a ge,temp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,tem p.phone);//格式化输出学生信息return;}}printf("没有找到姓名为%s的学生的信息!",name);fclose(fp);}//排序函数void paixu(char *file){int i,j,k,len;stu s[num],temp;FILE *fp=fopen(file,"r");if(fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入信息!");return;}fseek(fp,0,SEEK_END);//指针移动到文件末尾len=ftell(fp)/sizeof(stu);fseek(fp,0,SEEK_SET);for(i=0;i<len;i++)fread(s+i,sizeof(stu),1,fp);fclose(fp);for(i=0;i<len;i++){k=i;for(j=i+1;j<len;j++){if(s[j].id<s[k].id)k=j;}if(k!=i){temp=s[i];s[i]=s[k];s[k]=temp;}}printf("下面是按学号从小到大顺序排序后的学生的信息:\n");printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");for(i=0;i<len;i++)printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",s[i].id,s[i].name,s[i].a ge,s[i].sex,s[i].date.year,s[i].date.month,s[i].date.day,s[i].add,s[i ].phone);//格式化输出学生信息remove("学生信息表.txt");//删除以前存放数据的文件fp=fopen(file,"w");for(i=0;i<len;i++)fwrite(s+i,sizeof(stu),1,fp);fclose(fp);}//删除函数void shanchu(char *file){int i=0,len,del;stu s[num];FILE *fp=fopen(file,"r");if(fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入学生信息!");return;}printf("输入需要删除的学生的学号:");scanf("%d",&del);fseek(fp,0,SEEK_SET);while(fread(s+i,sizeof(stu),1,fp)){if(s[i].id==del){printf("下面是按学号为%d的学生的信息:\n",del);printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",s[i].id,s[i].name,s[i].a ge,s[i].sex,s[i].date.year,s[i].date.month,s[i].date.day,s[i].add,s[i ].phone);//格式化输出学生信息i=i-1;}i++;}fclose(fp);len=i;fp=fopen(file,"w");fseek(fp,0,SEEK_SET);for(i=0;i<len;i++) //删除后重写文件fwrite(s+i,sizeof(stu),1,fp);fclose(fp);}void main(){int key;char file[]={"学生信息表.txt"};do{menu();printf("选择对应功能操作:");scanf("%d",&key);switch(key){case 1:luru(file);break;case 2:print(file);break;case 3:idsearch(file);break;case 4:namesearch(file);break;case 5:paixu(file);break;case 6:shanchu(file);break;case 0:exit(0);default:printf("选择错误,请重新选择!");}printf("\n");printf("按任意键返回上级菜单!");getch();fflush(stdin);system("cls");}while (key!=0);}五.实验过程及结果:1.程序主菜单运行界面2.学生信息录入运行界面3.学生信息浏览运行界面4.学生学号查询运行界面5.学生姓名查询运行界面6.按学号排序运行界面第一次出现乱码,改正后运行如第二张图片所示7.删除学生信息运行界面六、感想在本次实验的过程中,出现了各种各样的问题。

c语言程序设计报告-学生信息管理系统 精品

c语言程序设计报告-学生信息管理系统 精品

C语言程序设计实践报告题目学生信息管理系统#include <string.h>#include <windows.h>struct student{long int num;char name[20];int age;char sex[4];int class;int pt; /*定义一个变量来储存大学物理的考试成绩*/int ps; /*定义一个变量来储存大学物理的平时成绩*/int et; /*定义一个变量来储存英语的考试成绩*/int es; /*定义一个变量来储存英语夫人平时成绩*/int ct; /*定义一个变量来储存微积分的考试成绩*/int cs; /*定义一个变量来储存微积分的平时成绩*/int xt; /*定义一个变量来储存信号的考试成绩*/int xe; /*定义一个变量来储存信号的平时成绩*/};int n=0;struct student stu[100];struct student *p;void tc();void tc()void lr();/*录入函数*/void ll();void cx();/*查询函数*/void xg();/*修改函数*/void sc();/*删除函数*/void bj();/*不及格学生列表函数*/void pj();/*平均成绩计算函数*/void kc();/*课程查询函数*/②主函数模块:一般比较简单,只提供输入,处理,输出的调用函数,即只有界面显示语句,子函数选择语句,主要的调用语句。

void main(){int z;printf("\t\t\t +---------------------------+\n");printf("\t\t\t | 学生信息管理系统欢迎您 |\n");printf("\t\t\t +---------------------------+\n");printf("\t\t\t + 设计者:张眼\n");printf("\t\t\t + 指导老师:刘伟荣\n");printf("重要提示:为保证您的操作得到保存,请按正常顺序退出系统!谢谢合作\n");do{printf("\n\t\t\t+++++++++++++++++++++++++++++\n");printf("\t\t\t|** 菜单 **|\n");printf("\t\t\t+++++++++++++++++++++++++++++++++\n");printf("\t\t\t* [1]----录入/插入学生信息 *\n");printf("\t\t\t* [2]----浏览学生信息 *\n");printf("\t\t\t* [3]----查询学生信息 *\n");printf("\t\t\t* [4]----删除学生信息 *\n");printf("\t\t\t* [5]----修改学生信息 *\n");printf("\t\t\t* [6]----不及格学生列表 *\n");printf("\t\t\t* [7]----成绩信息查询 *\n");printf("\t\t\t* [8]----平均成绩 *\n");printf("\t\t\t* [0]----退出系统 *\n");printf("\t\t\t********************************\n"); printf("请输入您的选择:");scanf("%d", &z);switch(z){case 0 :tc();break;case 1 :lr();break;case 2 :ll();break;case 3 :cx();break;case 4 :sc();break;case 5 :xg();break;case 6 :bj();break;case 7 :kc();break;case 8 :pj();break;default:printf("\n无效选项!");}}while(z!= 0);}运行结果:③输入模块:输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,主要是通过指针来实现数据的输入。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言实验报告院系:数学与计算科学学院班级:信息与计算科学2班姓名:______________________学号:______________2011年12月21日一、问题描述编写一个信息管理系统,包括姓名、性别、年龄、班级、学号、地址、各科成绩等,要求能进行查找、排序和计算,按加权平均排序、按某一课程排序和按学号排序。

二、分析问题,解决问题的步骤1、输入初始的学生信息:输入信息包括学生的姓名、性别、年龄、班级、学号、地址、各科成绩等相关信息;可用函数void input(STUDENT *data, int *len) 来实现此操作。

2 、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len) :通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出成绩的平均分数、最高和最低分数。

3 、排序模块:用函数void sort(STUDENT *data, int len) 来实现。

4、成绩查询模块:可用void find(STUDENT *data, int len) 来实现。

找到就输出此学生全部信息。

5、统计功能能:用函数void stat(STUDENT *data, int len) 来实现。

6、退出系统:可用一个函数exit ()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

三、程序编写#include <stdlib.h>#include <stdio.h>#include <string.h> #define MAXN 35 #define Maxsize325typedef struct student // 学生信息{int no;char name[Maxsize];char sex[Maxsize];char age[Maxsize];char adress[Maxsize];char glassnum[Maxsize];double Chinese;double math;double English;double mark_ave;double mark_tot;} STUDENT;/* ---------- 输入信息子程序-- */ void input(STUDENT *data, int *len) { int no;putchar('\n');printf("%s\n", "请输入新的记录,如果需要退出当前菜单请输入-1.");printf("%s\n", " 格式:\n 学号\n");printf("%s\n", "姓名性别年龄地址班级学号语文数学英语");putchar('\n');printf(" 如:\n");printf("1\n");printf(" 张三93 95 89\n");scanf("%d", &no);while(no != -1) {data[*len].no = no;scanf("%s %s %s %s %s %lf %lf %lf", data[*len].name,&data[*len].sex,&data[*len].age,&data[*len].adress,&data[*len].glassnum,&data[ *len] .Chinese, &data[*len].math,&data[*len].English);data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len].English)/3.0;data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len].English;(*len)++;scanf("%d", &no);/* -------------- 输出信息子程序 ---- */ void output(STUDENT *data, int len){int i;system("cls");printf("%8s", " 姓名");printf("%8s", " 性别");printf("%8s", " 年龄");printf("%8s", " 地址");printf("%8s", " 班级");printf("%8s", " 语文");printf("%8s", " 数学");printf("%10s", " 英语");printf("%12s", " 平均分");printf("%10s", " 总分"); putchar('\n');for (i =0; i < 80; i++) putchar('=');putchar('\n');for (i = 0; i< len; i++){printf("%8d", data[i].no);printf("%8s", data[i].name);printf("%8s", data[i].sex);printf("%8s", data[i].age);printf("%8s", data[i].adress); printf("%8s", data[i].glassnum);printf("%8.1lf", data[i].Chinese); printf("%8.1lf", data[i].math);printf("%10.1lf", data[i].English); printf("%12.1lf", data[i].mark_ave);printf("%10.1lf", data[i].mark_tot); putchar('\n');}for (i =0; i < 80; i++)putchar('=');putchar('\n');printf(" 按回车键继续.");getchar();getchar();}/* 排序子程序*/void sort(STUDENT *data, int len){int i,j,k;STUDENT temp;for (i=0; i<len-1; i++) {for (k=i, j=i+1; j<len; j++)if (data[k].mark_ave > data[j].mark_ave) k=j; if (k != i) {temp = data[i];data[i] = data[k];data[k] = temp;}}}/* ------------------- 查询子程序---------- */void find(STUDENT *data, int len){int find_no, result ;int i;lab: result=0;printf("%s\n", " 请输入需要查找的学生的学号,退出当前菜单请输入-1.");scanf("%d", &find_no);if (find_no == -1) return; /*exit the fine sub program*/ while( data[result].no != find_no && result < len) result ++; if (result >= len ) {printf("%s\n", " 未查询到相关信息");goto lab;}else {system("cls");printf("%s\n", " 查询信息如下:");for (i =0; i < 80; i++) putchar('=');putchar('\n');printf("%8s", " 学号");printf("%8s", " 姓名");printf("%8s", " 性别");printf("%8s", " 年龄");printf("%8s", " 地址");printf("%8s", " 班级");printf("%8s", " 语文");_(ss①」pe.mns①」」-s e p 」S8%=)七£」d _ar 6e m n s①」3ep・=S 8%・・)七u一」d_(x① s.mns①」」-s ep 」S8%=)七u一」d^UJeu.mns①」」2ep 」S8%=)匕 £」dsu.mns①」」2ep 」P8%=)匕£」dFub)」eu9nd厂Q頑=」SOL%=££」d厂 =」」 厂职梆=・<烟哮>-qe-0406Futeumnd _(J )」£9n d(+±08 V一上)」04Futeumnd_(o 「M」euJD_ns①」」-s e p匸L O L %=)匕£」d-Q>elM」ellrmns ①」®ep 匸L Z L &・・)七 £」dMS=6U 山 D_ns①」」-s e p匸L O L %=)匕 £」d/* -------------- 统计子程序----- */void stat(STUDENT *data, int len) {int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i;for (i = 0;i < len; i++) {if (data[i].mark_ave <=59) no_59++;else if (data[i].mark_ave <=69) no_69++;else if (data[i].mark_ave <=79) no_79++;else if (data[i].mark_ave <= 89) no_89++;else no_100++;}system("cls");for (i =0; i < 80; i++)putchar('=');putchar('\n');printf("%10s", " 分数");printf("%10s", "0--59");printf("%10s", "60--69");printf("%10s", "70--79");printf("%10s", "80--89");printf("%10s", "90--100");putchar('\n');putchar('\n');printf("%10s", " 学生");printf("%10d", no_59);printf("%10d", no_69);printf("%10d", no_79);printf("%10d", no_89);printf("%10d", no_100);putchar('\n');for (i =0; i < 80; i++)putchar('=');putchar('\n');printf(" 按回车键返回");getchar();getchar();}/* -------------- 显示信息子程序--- */ void paint()int i;system("cls");printf("%55s\n", “ 信计二班学生成绩管理系统\n"); printf(" 制作者: XX \n");for (i = 0; i < 80; i++)putchar('=');putchar('\n');printf(" 1 输入信息出信息\n");printf(" 3 按平均分排序按学号查找\n");printf(" 5 按平均分输出统计信息保存到文件\n");printf(" 0 退出\n");for (i = 0; i<= 79; i++)putchar('=');putchar('\n');printf("%s\n", " 请输入各操作对应的序号:");}void save(STUDENT *data, int len)// 将数据保存到文件{int i;FILE *fp;fp=fopen(" 成绩统计表.txt","w");fprintf(fp,"%8s", " 学号");fprintf(fp,"%8s", " 姓名");fprintf(fp,"%8s", " 性别");fprintf(fp,"%8s", " 年龄");fprintf(fp,"%8s", " 地址");fprintf(fp,"%8s", " 班级");fprintf(fp,"%8s", " 语文");fprintf(fp,"%8s", " 数学");fprintf(fp,"%10s", " 英语");fprintf(fp,"%12s", " 平均分");fprintf(fp,"%10s\n", " 总分");fprintf(fp,"=====================================\n");putchar('\n');for (i = 0; i< len; i++){fprintf(fp,"%8d", data[i].no);fprintf(fp,"%8s", data[i].name);fprintf(fp,"%8s", data[i].sex);fprintf(fp,"%8s", data[i].age);fprintf(fp,"%8s", data[i].adress);fprintf(fp,"%8s", data[i].glassnum);fprintf(fp,"%8.1lf", data[i].Chinese);fprintf(fp,"%8.1lf", data[i].math);fprintf(fp,"%10.1lf", data[i].English);fprintf(fp,"%12.1lf", data[i].mark_ave);fprintf(fp,"%10.1lf\n", data[i].mark_tot);}fprintf(fp,"=====================================\n");fclose(fp);printf(" 文件已保存到\" 成绩统计表.txt\"");getchar();getchar();}/* ---------- 主程序 ------ */void main()STUDENT data[MAXN]; int len = 0;char ctrl_ch;paint(); scanf("%c", &ctrl_ch); while (ctrl_ch != '0') {; case '1':input(data, &len); break;case '2': output(data, len); break;case '3':sort(data, len); break;case '4':find(data, len); break;case '5':insert(data, &len); break;case '6':delete_item(data, &len);break;case '7':stat(data, len);break;case '8':save(data, len);break;default:if (ctrl_ch != '\n') printf("%s\n", " 输入错误!");break;}if (ctrl_ch != '\n') paint();scanf("%c", &ctrl_ch);}}四、误差分析此程序没有按加权平均排序功能是本程序的一大弊端,所列科目少了点,由于本课题中的许多知识点都没有学过,课外资料,所以如有错误,希望老师多多指正,谢谢!还有就是。

相关文档
最新文档