欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新C语言综合应用实例.doc

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

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

    最新C语言综合应用实例.doc

    精品资料C语言综合应用实例.C语言综合应用实例一、学生信息管理系统#include<stdio.h> /*I/O函数*/#include<stdlib.h> /*其它说明*/#include<string.h> /*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 15 /* 学号和姓名最大字符数,实际请更改 */#define N 100 /* 最大学生人数,实际请更改*/struct record /*结构体*/char codeLEN+1; /* 学号 */char nameLEN+1; /* 姓名 */int age; /* 年龄 */char sex3; /* 性别 */char timeLEN+1; /* 出生年月 */char add30; /* 家庭地址 */char telLEN+1; /* 电话号码 */char mail30; /* 电子邮件地址 */stuN;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.增加学生信息后,切记保存按7;n");printf("n4.谢谢您的使用!n"); void readfile()/* 建立信息 */char *p="student.txt"FILE *fp;int i=0;if (fp=fopen("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",stui.code,stui.name,&stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail)=8)i+;i=i;fclose(fp);n=i;printf("录入完毕!n"); void seek() /*查找*/int i,item,flag;char s121; /* 以姓名和学号最长长度+1为准 */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(stui.code,s1)=0)flag=1;printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn");printf("-n");printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf("该学号不存在!n"); break;case 2:printf("请输入要查询的学生的姓名:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.name,s1)=0)flag=1;printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn");printf("-n");printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf("该姓名不存在!n"); break;case 3:return;default:printf("请在1-3之间选择n"); void modify() /*修改信息*/int i,item,num;char sex13,s1LEN+1,s2LEN+1; /* 以姓名和学号最长长度+1为准 */printf("请输入要要修改的学生的学号:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.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(stunum.name,s2); break;case 2:printf("请输入新的年龄:n");scanf("%d",&stunum.age);break;case 3:printf("请输入新的性别:n");scanf("%s",sex1);strcpy(stunum.sex,sex1); break;case 4:printf("请输入新的出生年月:n");scanf("%s",s2);strcpy(stunum.time,s2); break;case 5:printf("请输入新的地址:n");scanf("%s",s2);strcpy(stunum.add,s2); break;case 6:printf("请输入新的电话号码:n");scanf("%s",s2);strcpy(stunum.tel,s2); break;case 7:printf("请输入新的E-mail地址:n");scanf("%s",s2);strcpy(stunum.mail,s2); break;case 8:return;default:printf("请在1-8之间选择n"); void sort()/*按学号排序*/int i,j,*p,*q,s; char temp10;for(i=0;i<n-1;i+)for(j=n-1;j>i;j-)if(strcmp(stuj-1.code,stuj.code)>0)strcpy(temp,stuj-1.code);strcpy(stuj-1.code,stuj.code);strcpy(stuj.code,temp);strcpy(temp,stuj-1.name);strcpy(stuj-1.name,stuj.name);strcpy(stuj.name,temp);strcpy(temp,stuj-1.sex);strcpy(stuj-1.sex,stuj.sex);strcpy(stuj.sex,temp);strcpy(temp,stuj-1.time);strcpy(stuj-1.time,stuj.time);strcpy(stuj.time,temp);strcpy(temp,stuj-1.add);strcpy(stuj-1.add,stuj.add);strcpy(stuj.add,temp);strcpy(temp,stuj-1.tel);strcpy(stuj-1.tel,stuj.tel);strcpy(stuj.tel,temp);strcpy(temp,stuj-1.mail);strcpy(stuj-1.mail,stuj.mail);strcpy(stuj.mail,temp); p=&stuj-1.age; q=&stuj.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",stui.code);for(j=0;j<i;j+)if(strcmp(stui.code,stuj.code)=0)printf("已有该学号,请检查后重新录入!n");flag=1;break; /*如有重复立即退出该层循环,提高判断速度*/printf("请输入第 %d 个学生的姓名:n",i+1);scanf("%s",stui.name);printf("请输入第 %d 个学生的年龄:n",i+1);scanf("%d",&stui.age);printf("请输入第 %d 个学生的性别:n",i+1);scanf("%s",stui.sex);printf("请输入第 %d 个学生的出生年月:(格式:年.月)n",i+1);scanf("%s",stui.time);printf("请输入第 %d 个学生的地址:n",i+1);scanf("%s",stui.add);printf("请输入第 %d 个学生的电话:n",i+1);scanf("%s",stui.tel);printf("请输入第 %d 个学生的E-mail:n",i+1);scanf("%s",stui.mail);if(flag=0) i=i;i+;while(i<n+m);n+=m;printf("录入完毕!nn");sort(); void del()int i,j,flag=0;char s1LEN+1;printf("请输入要删除学生的学号:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1)=0) flag=1;for(j=i;j<n-1;j+)stuj=stuj+1;if(flag=0)printf("该学号不存在!n");if(flag=1)printf("删除成功,显示结果请选择菜单6n");n-; void display() int i;printf("所有学生的信息为:n");printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn");printf("-n");for(i=0;i<n;i+) printf("%6s %7s %5d %5s %9s %8s %10s %14sn",stui.code,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); void save()int i;FILE *fp;fp=fopen("student.txt","w"); /*写入*/for(i=0;i<n;i+)fprintf(fp,"%s %s %d %s %s %s %s %sn",stui.code,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);fclose(fp); void menu()/* 界面 */int num;printf(" nn 学生信息管理系统 nn");printf(" * nn");printf(" * 制作人: * n n");printf(" * nn"); 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");二、学生成绩管理编写一个菜单驱动的学生成绩管理程序。要求如下:§ 能输入并显示n个学生的m门考试科目的成绩、总分和平均分。§ 按总分由高到低进行排序。§ 任意输入一个学号,能显示该学生的姓名、各门功课的成绩。#include <stdio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#define STU_NUM40 /* 最多的学生人数 */#define COURSE_NUM10/* 最多的考试科目 */struct studentintnumber;/* 每个学生的学号 */charname10; /* 每个学生的姓名 */intscoreCOURSE_NUM;/* 每个学生M门功课的成绩 */intsum; /* 每个学生的总成绩 */floataverage; /* 每个学生的平均成绩 */;typedef struct student STU;/* 函数功能:向链表的末尾添加从键盘输入学生的学号、姓名和成绩等信息函数参数:结构体指针head,指向存储学生信息的结构体数组的首地址整型变量n,表示学生人数整型变量m,表示考试科目函数返回值:无*/void AppendScore(STU *head, int n, int m)intj;STU*p;for (p=head; p<head+n; p+)printf("nInput number:");scanf("%d", &p->number);printf("Input name:");scanf("%s", p->name);for (j=0; j<m; j+)printf("Input score%d:", j+1);scanf("%d", p->score+j);/*函数功能:打印n个学生的学号、姓名和成绩等信息函数参数:结构体指针head,指向存储学生信息的结构体数组的首地址整型变量n,表示学生人数整型变量m,表示考试科目函数返回值:无*/void PrintScore(STU *head, int n, int m)STU *p;int i;char str100 = '0', temp3;strcat(str, "Number Name ");for (i=1; i<=m; i+)strcat(str, "Score");itoa(i,temp, 10);strcat(str, temp);strcat(str, " ");strcat(str," sum average");printf("%s", str); /* 打印表头 */for (p=head; p<head+n; p+) /* 打印n个学生的信息 */printf("nNo.%3d%8s", p->number, p->name);for (i=0; i<m; i+)printf("%7d", p->scorei);printf("%11d%9.2fn", p->sum, p->average);/* 函数功能:计算每个学生的m门功课的总成绩和平均成绩函数参数:结构体指针head,指向存储学生信息的结构体数组的首地址整型变量n,表示学生人数整型变量m,表示考试科目函数返回值:无*/void TotalScore(STU *head, int n, int m)STU *p;int i;for (p=head; p<head+n; p+)p->sum = 0;for (i=0; i<m; i+)p->sum = p->sum + p->scorei;p->average = (float)p->sum / m;/* 函数功能:用选择法按总成绩由高到低排序函数参数:结构体指针head,指向存储学生信息的结构体数组的首地址整型变量n,表示学生人数函数返回值:无*/void SortScore(STU *head, int n)int i, j, k;STU temp;for (i=0; i<n-1; i+)k = i;for (j=i; j<n; j+)if (head+j)->sum > (head+k)->sum)k = j;if (k != i)temp = *(head+k);*(head+k) = *(head+i);*(head+i) = temp; /* 函数功能:查找学生的学号函数参数:结构体指针head,指向存储学生信息的结构体数组的首地址整型变量num,表示要查找的学号整型变量n,表示学生人数函数返回值:如果找到学号,则返回它在结构体数组中的位置,否则返回-1*/int SearchNum(STU *head, int num, int n)int i;for (i=0; i<n; i+)if (head+i)->number = num)return i;return -1;/* 函数功能:按学号查找学生成绩并显示查找结果函数参数:结构体指针head,指向存储学生信息的结构体数组的首地址整型变量n,表示学生人数整型变量m,表示考试科目函数返回值:无*/void SearchScore(STU *head, int n, int m)int number, findNo;printf("Please Input the number you want to search:"); scanf("%d", &number);findNo = SearchNum(head, number, n);if (findNo = -1)printf("nNot found!n");elsePrintScore(head+findNo, 1, m);/*函数功能:显示菜单并获得用户键盘输入的选项函数参数:无函数返回值:用户输入的选项*/char Menu(void)char ch;printf("nManagement for Students' scoresn");printf(" 1.Append recordn");printf(" 2.List recordn");printf(" 3.Search recordn");printf(" 4.Sort recordn");printf(" 0.Exitn");printf("Please Input your choice:");scanf(" %c", &ch); /*在%c前面加一个空格,将存于缓冲区中的回车符读入*/return ch;main() charch;intm, n;STU stuSTU_NUM;printf("Input student number and course number(n<40,m<10):");scanf("%d,%d", &n, &m);while (1)ch = Menu(); /* 显示菜单,并读取用户输入 */switch (ch)case'1':AppendScore(stu, n, m);/* 调用成绩添加模块 */ TotalScore(stu, n, m);break;case'2':PrintScore(stu, n, m); /* 调用成绩显示模块 */break;case'3':SearchScore(stu, n, m);/* 调用按学号查找模块 */break;case'4':SortScore(stu, n); /* 调用成绩排序模块 */printf("nSorted resultn");PrintScore(stu, n, m);/* 显示成绩排序结果 */break;case'0':exit(0); /* 退出程序 */printf("End of program!"); break;default:printf("Input error!");break;学生成绩管理系统#include "stdio.h" #include "stdlib.h" #include "string.h" int shoudsave=0; /* */ int password() char password10; int flag,i=1; do printf("password?n"); scanf("%s",password); if(strcmp(password,"123") flag=0; i+; else flag=1; break; while(i<=3); return flag; struct student char num10;/* 学号 */ char name20; char sex4; int cgrade; int mgrade; int egrade; int totle; int ave; char neartime10;/* 最近更新时间 */ ; typedef struct node struct student data; struct node *next; Node,*Link; void menu() printf("*"); printf("t1登记学生资料ttttt2删除学生资料n"); printf("t3查询学生资料ttttt4修改学生资料n"); printf("t5保存学生资料ttttt6排序学生资料n"); printf("t7统计学生资料ttttt8输出学生资料n"); printf("t9帮助信息ttttt0退出系统n"); printf("*n"); void printstart() printf("-n"); void Wrong() printf("n=>提示:输入错误!n"); void Nofind() printf("n=>提示:没有找到该学生!n"); void printc() /* 本函数用于输出中文 */ printf(" 学号t 姓名 性别 英语成绩 数学成绩 C语言成绩 总分 平均分n"); void printe(Node *p)/* 本函数用于输出英文 */ printf("%-12s%st%st%dt%dt%dt %dt %dn",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave); Node* Locate(Link l,char findmess,char nameornum) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */ Node *r; if(strcmp(nameornum,"num")=0) /* 按学号查询 */ r=l->next; while(r!=NULL) if(strcmp(r->data.num,findmess)=0) return r; r=r->next; else if(strcmp(nameornum,"name")=0) /* 按姓名查询 */ r=l->next; while(r!=NULL) if(strcmp(r->data.name,findmess)=0) return r; r=r->next; return 0; void Add(Link l) /* 增加学生 */ Node *p,*r,*s; char num10; r=l; s=l->next; while(r->next!=NULL) r=r->next; /* 将指针置于最末尾 */ while(1) printf("请你输入学号(以'0'返回上一级菜单:)"); scanf("%s",num); if(strcmp(num,"0")=0) break; while(s) if(strcmp(s->data.num,num)=0) printf("=>提示:

    注意事项

    本文(最新C语言综合应用实例.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开