嵌入式程序课程设计报告-学生成绩管理系统内容摘要:
* 3 search record 4 modify record *\n)。 嵌入式程序课程设计 报告 9 //gotoxy(10,11)。 cprintf( * 5 insert record 6 count record *\n)。 //gotoxy(10,12)。 cprintf( * 7 sort reord 8 save record *\n)。 //gotoxy(10,13)。 cprintf( * 9 display record 0 quit system *\n)。 //gotoxy(10,14)。 cprintf( *************************************************************\n)。 /*cprintf()送格式化输出至文本窗口屏幕中 */ } 图 4 编译结果 图 5 修改后编译结果 5.源程序清单和执行结果 源程序清单 1.程序预处理 包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作。 include /*标准输入输出函数库 */ include /*标准函数库 */ include /*字符串函数库 */ include /*屏幕操作函数库 */ define HEADER1 STUDENT \n define HEADER2 | number | name |Comp|Math|Eng | sum | ave |mici | \n define HEADER3 ||||||||| define FORMAT | %10s |%15s|%4d|%4d|%4d| %4d | %.2f |%4d |\n 嵌入式程序课程设计 报告 10 define DATA p,p,p,p,p,p,p,p define END \n int saveflag=0。 /*是否需要存盘的标志变量 */ /*定义与学生有关的数据结构 */ typedef struct student /*标记为 student*/ { char num[10]。 char name[15]。 int cgrade。 int mgrade。 int egrade。 int total。 float ave。 int mingci。 }。 /*定义每条记录或结点的数据结构,标记为: node*/ typedef struct node { struct student data。 /*数据域 */ struct node *next。 /*指针域 */ }Node,*Link。 /*Node 为 node 类型的结构变量, *Link 为 node 类型的指针变量 */ 2.主菜单界面 用户进入成绩管理系统时,需要显示主菜单,提示用户进行选择,完成相应任务。 此代码被 main()函数调用。 void menu() { system(cls)。 /*调用 DOS 命令,清屏 .与 clrscr()功能相同 */ cprintf( The Students39。 Grade Management System \n)。 cprintf( *************************Menu********************************\n)。 cprintf( * 1 input record 2 delete record *\n)。 cprintf( * 3 search record 4 modify record *\n)。 cprintf( * 5 insert record 6 count record *\n)。 cprintf( * 7 sort reord 8 save record *\n)。 cprintf( * 9 display record 0 quit system *\n)。 嵌入式程序课程设计 报告 11 cprintf( *************************************************************\n)。 /*cprintf()送格式化输出至文本窗口屏幕中 */ } 3.主函数 main() Main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。 详细分析可参考图 2。 void main() { Link l。 /*定义链表 */ FILE *fp。 /*文件指针 */ int select。 /*保存选择结果变量 */ char ch。 /*保存 (y,Y,n,N)*/ int count=0。 /*保存文件中的记录条数(或结点个数) */ Node *p,*r。 /*定义记录指针变量 */ l=(Node*)malloc(sizeof(Node))。 if(!l) { printf(\n allocate memory failure )。 /*如没有申请到,打印提示信息 */ return。 /*返回主界面 */ } lnext=NULL。 r=l。 fp=fopen(C:\\student,ab+)。 /*以追加方式打开一个二进制文件,可读可写 ,若此文件不存在,会创建此文件 */ if(fp==NULL) { printf(\n=====can not open file!\n)。 exit(0)。 } while(!feof(fp)) { p=(Node*)malloc(sizeof(Node))。 if(!p) { printf( memory malloc failure!\n)。 /*没有申请成功 */ exit(0)。 /*退出 */ 嵌入式程序课程设计 报告 12 } if(fread(p,sizeof(Node),1,fp)==1) /*一次从文件中读取一条学生成绩记录 */ { pnext=NULL。 rnext=p。 r=p。 /*r 指针向后移一个位置 */ count++。 } } fclose(fp)。 /*关闭文件 */ printf(\n=====open file sucess,the total records number is : %d.\n,count)。 menu()。 while(1) { system(cls)。 menu()。 p=r。 printf(\n Please Enter your choice(0~9):)。 /*显示提示信息 */ scanf(%d,amp。 select)。 if(select==0) { if(saveflag==1) /*若对链表的数据有修改且未进行存盘操作,则此标志为 1*/ { getchar()。 printf(\n=====Whether save the modified record to file?(y/n):)。 scanf(%c,amp。 ch)。 if(ch==39。 y39。 ||ch==39。 Y39。 ) Save(l)。 } printf(=====thank you for useness!)。 getchar()。 break。 } switch(select) { case 1:Add(l)。 break。 /*增加学生记录 */ 嵌入式程序课程设计 报告 13 case 2:Del(l)。 break。 /*删除学生记录 */ case 3:Qur(l)。 break。 /*查询学生记录 */ case 4:Modify(l)。 break。 /*修改学生记录 */ case 5:Insert(l)。 break。 /*插入学生记录 */ case 6:Tongji(l)。 break。 /*统计学生记录 */ case 7:Sort(l)。 break。 /*排序学生记录 */ case 8:Save(l)。 break。 /*保存学生记录 */ case 9:system(cls)。 Disp(l)。 break。 /*显示学生记录 */ default: Wrong()。 getchar()。 break。 /*按键有误,必须为数值 09*/ } } } 4.表格形式显示记录 void Disp(Link l) /*显示单链表 l中存储的学生记录,内容为 student结构中定义的内容 */ { Node *p。 p=lnext。 /*l存储的是单链表中头结点的指针,该头结点没有存储学生信息,指针域指向的后继结点才有学生信息 */ if(!p) /*p==NULL,NUll在 stdlib 中定义为 0*/ { printf(\n=====Not student record!\n)。 getchar()。 return。 } printf(\n\n)。 printheader()。 /*输出表格头部 */ while(p) /*逐条输出链表中存储的学生信息 */ { printdata(p)。 p=pnext。 /*移动至 下一个结点 */ printf(HEADER3)。 } 嵌入式程序课程设计 报告 14 getchar()。 } 5.记录查找定位 Node* Locate(Link l,char findmess[],char nameornum[]) { Node *r。 if(strcmp(nameornum,num)==0) /*按学号查询 */ { r=lnext。 while(r) { if(strcmp(r,findmess)==0) /*若找到 findmess 值的学号 */ return r。 r=rnext。 } } else if(strcmp(nameornum,name)==0) /*按姓名查询 */ { r=lnext。 while(r) { if(strcmp(r,findmess)==0) /*若找到 findmess 值的学生姓名 */ return r。 r=rnext。 } } return 0。 /*若未找到, 返回一个空指针 */ } 6.格式化输入数据 void stringinput(char *t,int lens,char *notice) { char n[255]。 do{ printf(notice)。 /*显示提示信息 */ scanf(%s,n)。 /*输入字符串 */ if(strlen(n)lens)printf(\n exceed the required length! \n)。 /*进行长度校验,超过 lens值重新输入 */ }while(strlen(n)lens)。 嵌入式程序课程设计 报告 15 strcpy(t,n)。 /*将输入的字符串拷贝到字符串 t 中 */ } /*输入分数, 0=分数 = 100)*/ int numberinput(char *notice) { int t=0。 do{ printf(notice)。 /*显示提示信息 */ scanf(%d,amp。 t)。 /*输入。嵌入式程序课程设计报告-学生成绩管理系统
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
川大图书馆学考研-信息管理导论
活动的需要, Extra 满足企业之间商务活动的需要,Inter 则是满足针对全部市场商务活动的需要。 它们是企业利用 Inter 技术实现企业管理和经营活动的三个不同层次。 企业信息管理的任务: 第一,建立信息结构; 第二,健全管理机制; 第三,加强需求分析; 第四,规范管 理流程; 第五,强化信息服务。 电子商务 ( 1) 基本含义 通俗地讲,就是基于企业内部网
工业园区企业入园合同样本
回乙方私自转让、出(转)租的土地,并保留进一步追究乙方责任的权利。 第 九 条 乙方的权益和义务 乙方投资项目必须符合 当前国家产业政策 、 现行国家环保、 安全生产政策,执行国家现行环保,安全生产标准。 乙方投资项目须达到入 区 标准,环境评估通过后方可施工。 生产过程中无“三废”产生,一旦出现“三废”污染现象,甲方有权勒令停产整改,治理费用由乙方全部承担。
岗位绩效考核实施办法
; 【工作目标完成情况】考分满分 55分; 【工作能力及态度】考分满分 15分; 【个人操守】考分满分 15分 考核总得分 =( 1) +( 2) +( 3) +( 4)项考核得分; 直接上级 根据被考核人的【基本要求】、【工作目标完成情况】、【工作能力及态度】以及【个人操守】,结合 综合部 的 扣分记录 进行评分,评分结果记入 【例行性行政考核表】。 第四条 评估结果的应用
岗位体系-定岗定编[管理体系和流程图
职能是岗位设计的重要依据。 (二)不同特征的岗位需采取不同的定编方式,有的岗位适合于用工 作量分析,如文职类岗位,有的岗位适合于用预算控制,如研发等思维性工作岗位,有的岗位适合于用比例方式定编,如人力资源部岗位,一个统一的模式不可能适合于所有岗位的定编策略