欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C程序设计基础.docx

    • 资源ID:17658657       资源大小:159.13KB        全文页数:22页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C程序设计基础.docx

    1、C程序设计基础程序设计基础(一)大作业设计报告班级计科(2)班 学号 201013137183 姓名 王于铭一、题目要求设计一个程序,实现学生成绩管理功能。基本功能:1)提供菜单式的用户界面2)输入课程名称3)输入某门课程的成绩4)增加或删除学生记录5)输入姓名或学号,查找某个学生的成绩6)对学生成绩按照姓名、学号或某门成绩排序7)计算某个学生的平均绩点8)统计某门课程成绩在100-90,89-80,79-70,69-60,60以下各分数段的人数并显示其它:全部数据可保存到文件二、设计方案基本思路:三、具体功能实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可

    2、用函数void input(STUDENT *data, int *len)来实现此操作。 2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通过学生的姓名来查看学生的相关成绩, 3、成绩查询模块:可用void find(STUDENT *data, int len)来实现。找到就输出此学生全部信息。4、删除模块:用函数void delete_item(STUDENT *data, int *len)来实现5、排序模块:用函数void sort(STUDENT *data, int len)来实现6、统计功能能:用函数void st

    3、at(STUDENT *data, int len) 来实现7、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。四、源代码#include #include #include #define MAXN 35#define MAX_NAME 256typedef struct student long no; char nameMAX_NAME; float a,b,c,d,e; double mark_tot; STUDENT;/*-确定是否是学号唯一-*/int bianli(int no,int *len,STUDENT *data)

    4、 int i; for(i=0;i*len;i+) if(no=datai.no) return 1; return 0;/*-输入信息子程序-*/void input(STUDENT *data, int *len) system(cls); long no=1; int a,sgn=0,i; putchar(n); printf(请输入新的记录,如果需要退出当前菜单请输入-1.n); printf(学号n 姓名 高数 英语读写 英语听说 计算机导论 程序设计基础n); putchar(n); printf(如:201013137183n王于铭 93 95 89 90 99 n); whil

    5、e(no != -1) do scanf(%ld,&no); if(a=bianli(no,len,data) printf(该学号重复!重新输入学号!n); sgn=1; while(sgn=1); if(no=-1) break; i=*len; data*len.no = no; scanf(%s,datai.name); scanf(%f,&datai.a); scanf(%f,&datai.b); scanf(%f,&datai.c); scanf(%f,&datai.d); scanf(%f,&datai.e); data*len.mark_tot=data*len.a+data*

    6、len.b+data*len.c+data*len.d+data*len.e; (*len)+; i+; printf(输入成功!n); /*-输出信息子程序-*/void output(STUDENT *data, int len) system(cls); int i; system(cls); printf(学号 姓名 高数 英语读写 英语听说 计算机导论 程序设计基础 总分); putchar(n); for (i =0; i 80; i+) putchar(-); putchar(n); for (i = 0; i len; i+) printf(%8d,datai.no); pri

    7、ntf(%8s,datai.name); printf(%8.1lf,datai.a); printf(%8.1lf,datai.b); printf(%8.1lf,datai.c); printf(%8.1lf,datai.d); printf(%8.1lf,datai.e); printf(%10.1lf, datai.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(-); putchar(n); printf(按回车键继续.); getchar(); getchar();/*-排序子程序-*/void sort(STUDENT *d

    8、ata, int len) system(cls); int i,j,k; STUDENT temp; for (i=0; ilen-1; i+) for (k=i, j=i+1; j dataj.mark_tot) k=j; if (k != i) temp = datai; datai = datak; datak = temp; output(data,len);/*-搜索子程序-*/void find(STUDENT *data, int len) system(cls); int result ; long find_no; int i;lab: result=0; printf(%

    9、sn, 请输入需要查找的学生的学号,退出当前菜单请输入 -1.); scanf(%ld, &find_no); if (find_no = -1) return; while( dataresult.no != find_no & result = len ) printf(%sn, 未查询到相关信息); goto lab; else system(cls); printf(%sn, 查询信息如下:); for (i =0; i 80; i+) putchar(-); putchar(n); printf(学号 姓名 高数 英语读写 英语听说 计算机导论 程序设计基础 总分); putchar

    10、(n); printf(%ld, dataresult.no); printf(%10s, dataresult.name); printf(%8.1f,dataresult.a); printf(%8.1f,dataresult.b); printf(%8.1f,dataresult.c); printf(%8.1f,dataresult.d); printf(%8.1f,dataresult.e); printf(%10.1lf, dataresult.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(-); putchar(n); g

    11、oto lab; /*-插入子程序-*/void insert(STUDENT *data, int *len) system(cls); int no, pos; double a,b,c,d,e,mark_tot; int i; char nameMAX_NAME;lab: printf(%sn, 输入新的记录,退出当前菜单请输入-1.); printf(%sn, 格式:学号); printf(%sn, 姓名 高数 英语读写 英语听说 计算机导论 程序设计基础); scanf(%d, &no); if (no = -1) return; data*len.no = no; scanf(%s

    12、%f%f%f%f%f,name,&a,&b,&c,&d,&e); mark_tot=a+b+c+d+e; pos = 0; while (datapos.mark_tot mark_tot) & (pos = pos; i-) datai+1 = datai; datapos.no = no; strcpy(datapos.name, name); datapos.a =a; datapos.b =b; datapos.c =c; datapos.d =d; datapos.e =e; datapos.mark_tot =mark_tot; (*len)+; goto lab;/*-删除子程序

    13、-*/void delete_item(STUDENT *data, int *len) system(cls); int no, i, pos;lab: pos=0; printf(%sn, 输入需要删除的学生的学号,退出当前菜单请输入-1.); scanf(%d, &no); if (no = -1) return; while( (datapos.no != no) & (pos = *len) printf(%sn, 未找到需要删除的学生); goto lab; else for (i = pos+1;i *len; i+) datai-1 = datai; *len = *len -

    14、1; if (*len = 0) printf(%sn, 没有任何记录,请按回车键返回.); getchar(); getchar(); return; goto lab; /*-统计子程序-*/void stat(STUDENT *data, int len) system(cls); int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i;printf(要统计哪门课程?请输入统计代码tt高数(1)读写(2)听说(3)导论(4)C程(5)n); scanf(%d,&i); switch(i) case 1: for (i = 0;i l

    15、en; i+) if (datai.a =59) no_59+; else if (datai.a =69) no_69+; else if (datai.a =79) no_79+; else if (datai.a = 89) no_89+; else no_100+; break; case 2: for (i = 0;i len; i+) if (datai.b =59) no_59+; else if (datai.b =69) no_69+; else if (datai.b =79) no_79+; else if (datai.b = 89) no_89+; else no_1

    16、00+; break; case 3: for (i = 0;i len; i+) if (datai.c =59) no_59+; else if (datai.c =69) no_69+; else if (datai.c =79) no_79+; else if (datai.c = 89) no_89+; else no_100+; break; case 4: for (i = 0;i len; i+) if (datai.d =59) no_59+; else if (datai.d =69) no_69+; else if (datai.d =79) no_79+; else i

    17、f (datai.d = 89) no_89+; else no_100+; break; case 5: for (i = 0;i len; i+) if (datai.e =59) no_59+; else if (datai.e =69) no_69+; else if (datai.e =79) no_79+; else if (datai.e = 89) no_89+; else no_100+; break; system(cls); for (i =0; i 80; i+) putchar(=); putchar(n); printf(%10s, 分数); printf(%10s

    18、, 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); p

    19、rintf(按回车键返回); getchar(); getchar();/*-显示信息子程序-*/void paint() int i; system(cls); printf(%55sn, 学 生 成 绩 管 理 系 统n); for (i = 0; i 80; i+) putchar(-); putchar(n); printf(tt1 输 入 学 生 的 基 本 信 息n); printf(tt2 增 加 学 生 记 录 n); printf(tt3 按 学 号 删 除 学 生 记 录n); printf(tt4 查 找 学 生 记 录n); printf(tt5 按 总 分 排 序 学

    20、 生 记 录 n); printf(tt6 按 各 分 数 段 输 出 统 计 信 息n); printf(tt7 保 存 到 文 件 n); printf(tt0 退 出n); for (i = 0; i= 79; i+) putchar(-); putchar(n); printf(%sn, 请输入各操作对应的序号:);void save(STUDENT *data, int len)/将数据保存到文件 int i; FILE *fp; fp=fopen(成绩统计表.txt,w); fprintf(fp,%8s, 学号); fprintf(fp,%12s, 姓名); fprintf(fp,

    21、%12s, 高数); fprintf(fp,%12s, 英语读写); fprintf(fp,%12s, 英语听说); fprintf(fp,%12s, 计算机导论); fprintf(fp,%12s, 程序设计基础); fprintf(fp,%10sn, 总分); fprintf(fp,=n); putchar(n); for (i = 0; i len; i+) fprintf(fp,%8d, datai.no); fprintf(fp,%8s, datai.name); fprintf(fp,%8.1lf%8.1lf%8.1lf%8.1lf%8.1lf,datai.a,datai.b,da

    22、tai.c,datai.d,datai.e); fprintf(fp,%10.1lfn, datai.mark_tot); fprintf(fp,=n); fclose(fp); printf(文件已保存到成绩统计表.txt); getchar();getchar();/*-主程序-*/void main() STUDENT dataMAXN; int len = 0; char ctrl_ch; paint(); scanf(%c, &ctrl_ch); while (ctrl_ch != 0) switch(ctrl_ch) case 1: input(data, &len); break

    23、; case 2: insert(data,&len); break; case 3: delete_item(data, &len); break; case 4: find(data, len); break; case 5: sort(data, len); break; case 6: stat(data, len); break; case 7: save(data, len); break; default: if (ctrl_ch != n) printf(%sn, 输入错误!); break; if (ctrl_ch != n) paint(); scanf(%c, &ctrl

    24、_ch); 调试与测试7.2.1算法调试过程中出现的问题及解决方法程序大体能完成各个功能,只进行简单的测试,不足的是没有进行严格的测试。有一个功能exit()没有实现。7.2.2主要程序运行结果运行开始(如图7.1)图7.1选择1输入成绩(7.2) 图7.2 选择3按总分排序 再按2输出成绩(如图7.3) 图7.3选择4查找(输入学号3)(如图7.4) 图7.4选择5插入新数据(图7.5) 图7.5选择6按学号删除(输入学号4)(图7.6) 图7.6选择7按平均分输出统计信息(图7.7.1 7.7.2) 图7.7.1 图7.7.2选择8保存(图7.8.1 7.8.2) 图7.8.1 图7.8.2选择0退出(如图7.9) 图7.9五、特点小结 采用模块化的设计方案,源程序分文件编辑,使程序结构清晰,增强程序可读性 采用二叉树的存储结构,提高了程序对大量查找和排序的效率,将大量信息有规律地联系在一起,便于处理。同时也使函数调用时信息的传递变得简单,避免了全局变量的使用 注重细节的程序设计思路,几乎对每一步操作都进行了判错处理,保证了程序能正常地运行 详尽的提示信息,友好的界面设计,提高了程序的实用性和观赏性进入、退出程序时的简单动态效果的设计, “滴”音报错,使程序的输出效果生


    注意事项

    本文(C程序设计基础.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开