语言课程设计报告

合集下载

C语言课程设计实验报告1

C语言课程设计实验报告1

课程设计报告题目:景点查询系统课程名称:C语言课程设计专业班级:信息安全二班任务书⑴主要内容建立国内景点信息系统,提供创建、编辑和综合查询等基本业务管理和服务。

⑵任务要求收集与阅读相关文献资料,确定系统目标与范围,分析系统需求,确定系统功能;设计系统方案,完成系统实现;提交《课程设计报告》。

⑶参考文献[1]曹计昌,卢萍,李开. C语言程序设计,北京:科学出版社,2008[2]张引. C程序设计基础课程设计, 杭州: 浙江大学出版社,2007[3]黄明,梁旭,万洪莉. C语言课程设计,北京: 电子工业出版社,2006目录1 绪言 (1)1.1 课题背景 (1)1.2 课题目的及意义 (1)1.3 课题应解决的主要问题及应达到的技术要求 (1)1.4 研究与发展概况及存在的问题 (2)1.5 设计的指导思想 (2)2 方案论证 (3)2.1 菜单的选择 (3)2.2 链表的选择 (3)2.3 主菜单和子菜单的设定 (3)3 课设过程论述 (5)3.1 系统数据 (5)3.2 系统各模块功能 (6)3.3 数据结构设计及用法说明 (8)3.4 程序结构 (9)4 结果分析 (10)5 课程设计总结 (13)6 参考文献 (14)附录程序清单 (15)1 绪言本章阐述课程设计课题的背景、目的与意义、应解决的主要问题及应达到的技术要求;简述研究与发展概况及存在的问题,本设计的指导思想。

1.1 课题背景随着社会的发展,旅游成为一个越来越热门的话题,很多人都会以旅游的方式度过自己的假期、生日、结婚纪念日等等,但是要想充分享受旅游带来的快乐,前期的准备就显得非常重要,只有前期的准备做好了,才能充分规划自己的旅游,才能充分享受自己的旅游。

前期的准备很大一方面是要查询自己要去的地方的一些基本信息,比如景区地点,景区门票。

城市中所含有的景区等等,如果有一个系统能够快速的查询景点信息,那么这就为人们出去旅游提供了很多的信息,帮助人们为旅游做好充分的准备!1.2 课题目的及意义课题目的:本课题主要是通过景点查询系统向人们提供景点,景区,城市等方面信息的查询,修改,统计等服务,让人们快速获得有关旅游景点、景区、城市方面的信息,帮助人们充分规划自己的出行方案。

C语言课程设计报告学生成绩管理系统(广工)

C语言课程设计报告学生成绩管理系统(广工)

一、课程设计题目:学生成绩管理二、需求分析给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名、性别以及各科成绩组成。

对学生的考试成绩进行有关统计:按总数高低次序,打印出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科成绩,并打印统计表。

三、概要设计程序要有的功能:1。

输入记录2。

用指定格式显示全部记录3。

根据姓名查找记录4。

根据姓名删除记录5. 保存记录到文件6。

按序号显示记录7。

按姓名由小到大的顺序排序程序运行当中,通过选择对应的功能序号来实现所需功能。

对输入的数据要有事先的分析,如果用户输入的数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“您输入的数据有误,请核实!”。

再者就是,当再输入完相应的数据后,程序作出相应的提示,询问用户是否要保存数据。

在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。

最后,在程序可以正确运行的基础上,再增加一些功能,如在排列的时候,自动输出最高分与最低分。

与及格成绩作比较,输出及格人数等相关信息。

流程图:四、详细设计源程序:#include ”stdio。

h”#include "stdlib.h”#include "string。

h”int shoudsave=0;/* */struct student{char num[10];/*学号*/char name[20];char sex[4];int cgrade;int mgrade;int egrade;int totle;int ave;char neartime[10];/*最近更新时间*/};typedef struct node{struct student data;struct node *next;}Node,*Link;void menu(){printf(”*********************************主菜单*****************************************”);printf(”\t1登记学生资料\t\t\t\t\t2删除学生资料\n”);printf(”\t3查询学生资料\t\t\t\t\t4修改学生资料\n”);printf(”\t5保存学生资料\t\t\t\t\t0退出系统\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%s\t%s\t%d\t%d\t%d\t %d\t %d\n",p—〉data。

c语言课程设计报告项目背景

c语言课程设计报告项目背景

c语言课程设计报告项目背景一、课程目标知识目标:1. 学生能理解C语言课程设计报告的项目背景,掌握C语言在工程项目中的应用。

2. 学生能够掌握C语言的基本语法,如变量定义、数据类型、运算符、控制结构等,并能够运用到实际项目中。

3. 学生能够了解C语言编程规范,培养良好的编程习惯。

技能目标:1. 学生能够独立完成C语言课程设计报告的撰写,包括项目背景、需求分析、设计思路、代码实现和测试结果等。

2. 学生能够运用C语言编写简单的程序,解决实际问题,提高编程实践能力。

3. 学生能够通过课程设计,培养自己的问题分析、解决方案设计和调试能力。

情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,提高自主学习能力。

2. 学生能够认识到C语言在计算机科学中的重要性,激发对计算机科学的热爱。

3. 学生通过团队协作完成课程设计,培养沟通协作能力和团队精神。

课程性质:本课程为C语言编程实践课程,强调理论与实践相结合,注重培养学生的编程能力和实际应用能力。

学生特点:学生为初中年级,对编程有一定的基础,具备基本的计算机操作能力,好奇心强,学习积极性较高。

教学要求:教师应关注学生的个体差异,提供针对性的指导,引导学生掌握C 语言基本知识,注重培养学生的实际操作能力和团队协作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. C语言基础知识回顾:变量定义、数据类型、运算符、控制结构(包括顺序、选择、循环结构)。

2. C语言编程规范:命名规则、注释、缩进、代码组织等。

3. 课程设计报告撰写方法:项目背景、需求分析、设计思路、代码实现、测试结果与分析。

4. 实践项目:选取与实际生活相关的问题,引导学生运用C语言进行程序设计。

- 项目一:计算器程序- 项目二:学生信息管理系统- 项目三:简易游戏开发(如:猜数字游戏)教学大纲:第一周:C语言基础知识回顾,重点讲解变量定义、数据类型和运算符。

C语言程序设计课程设计报告

C语言程序设计课程设计报告

C语言程序设计课程设计实验报告一、设计名称:学生成绩治理查询系统实验项目性质:综合性所涉及课程:C语言程序设计打算学时:实验学时12二、设计目的:1.通过本课程设计,培育上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,把握工程软件设计的大体方式,强化上机动手能力,闯过编程关;2.为后续各门运算机课程的学习打下坚实基础。

3.明白得程序设计的思路,把握结构化程序设计的方式,综合利用C语言进行程序编写,巩固常常利用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培育。

提高编写程序解决实际问题的能力、调试程序的技术。

三、设计环境(软件、硬件及条件)1.硬件:PC机2.软件:Turbo C++四、设计说明:程序系统的结构:用一系列图表列出本程序系统内的每一个程序(包括每一个模块和子程序)的名称、标识符和它们之间的层次结构关系。

主程序:新建:输入记录(遇#号时停止输入)。

插入:在指定位置插入记录。

显示:列出所有记录。

查询:一、按学号查询;二、按名字排序。

删除:一、按学号删除;二、按名字删除;3、删除所有记录。

排序:一、按语文成绩排序;二、按英语成绩排序;3、按数学成绩排序。

保留:保留为任意名字,系统自动加后缀名为.txt。

读取:读取程序目录下的后缀名为.txt的文件。

退出:退出程序。

五、各功能模块的具体实现,用图表表示。

输入记录显示开始:输入学号输入的学号是否为#Y N 结束,返回主菜单输入记录循环输入结束开始p=hp!=NULL输出学生信息;p=p->next结束按学号(姓名)查询信息Y N读取文件六、各模块(函数)的功能介绍,数据结构设计描述,参数说明等。

STUDENT *init(); /*初始化链表*/STUDENT *create(); /*新建链表*/STUDENT *del_no(STUDENT *h);/*按学号删除信息*/STUDENT *del_name(STUDENT *h); /*按姓名删除信息*/void print(STUDENT *h); /*显示信息函数*/void search_no(STUDENT *h); /*按学号搜索*/void search_name(STUDENT *h); /*按姓名搜索*/STUDENT *insert(STUDENT *h); /*插入信息函数*/void sort(STUDENT *h);/* 排序函数*/void save(STUDENT *h);/*保留数据到文件*/void load(STUDENT *h); /*从文件读取数据*/int menu_main(); /*菜单函数*/void inputs(char *prompt,char *s,int count);/*输出信息*/七、程序代码:Enter records\n");printf(" 2. Add records\n");printf(" 3. List records\n");printf(" 4. Search records\n");printf(" 5. Delete records\n");printf(" 6. Sort records\n");printf(" 9. Quit\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~9):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>9); /*选择项不在1~9之间重输*/return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Search records on number\n");printf(" 2. Search records on name\n");printf(" 3. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~3):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>3);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Chinese\n");printf(" 2. English\n");printf(" 3. Math\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Delete records on number\n");printf(" 2. Delete records on name\n");printf(" 3. Delete all records\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}.");/*提示*/getch(); /*读入任意字符*/}.\n");getch(); /*读入任意字符*/if(p==h)h=p->next;elseq->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s); }printf("\nPress any key to continue..."); getch(); /*读入任意字符*/return h;}.\n");getch();if(p==h)h=p->next;else q->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s);}printf("\nPress any key to continue...");getch(); /*读入任意字符*/return h;}.");getch(); /*读入任意字符*/}.");getch(); /*读入任意字符*/}xt"};STUDENT *p;FILE *fp; /*指向文件的指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"wb"))==NULL) /*打开文件,并判定打开是不是正常*/ {printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;while(p!=NULL){if(fwrite(p,sizeof(STUDENT)-sizeof(p->next),1,fp)!=1){printf("Error!\n");exit(1);} /*写入*/p=p->next;}fclose(fp); /*关闭文件*/printf("\n------OK------\n");printf("Press any key to continue...");getch(); /*读入任意字符*/}xt"};STUDENT *p,*a1=NULL,*a2=NULL;FILE *fp;/*概念文件指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"rb"))==NULL)/*打开文件*/{printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;a1=a2=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp); while(!feof(fp)){n++;if(n==1)h=a1;else a2->next=a1;a1=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);}a2->next=NULL;printf("\n------OK------\n");printf("Press any key to continue...");getch(p); /*读入任意字符*/}///////////////////////////////////////////void sort(STUDENT *h) /*排序函数*/{int i=0,j;STUDENT *p,*q,*t,*h1,*z;clrscr(); /*清屏*/printf("Enter you choice :\n");scanf("%d",&j);z=h;h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;h1=h1->next;q=h;while(t->score[--j]<p->score[--j]&&p!=NULL){q=p;p=p->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t;}}p=h;while(p!=NULL){i++;p=p->next;}h=z;printf("------OK------\n");}//////////////////////////////////////////////////九、体会、总结本课程设计完成了设计一个学生成绩治理系统,学生的学习成绩进行治理,具有查询和检索功能,而且能够对指定文件操作。

C语言课程设计报告:职工信息管理系统程序设计

C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。

(2)职工信息录入功能(职工信息用文件保存)。

(3)职工浏览功能。

(4)职工信息查询功能,查询方式可按学历查询或者工号查询。

(5)职工信息的删除、修改功能(可选项)。

2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。

3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。

流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。

显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。

流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。

c语言课程设计+报告+源代码

c语言课程设计+报告+源代码

西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。

二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。

用户密码的修改。

而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。

三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。

2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。

3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。

4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。

5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。

6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。

b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。

C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。

7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。

8.输出现有职工的信息: 会显示现在记录的职工的各项信息。

C语言课程设计报告(学生成绩管理系统)

C语言课程设计报告(学生成绩管理系统)

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。

二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。

同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。

五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。

总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。

2、查询模块:可用stu *lookdata(stu *p1)来实现。

找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。

3、插入模块:可用insert( )函数来实现。

其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。

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

二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。

主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。

C语言课程设计实验报告

C语言课程设计实验报告

C语言课程设计实验报告1前言........................................................................................................ 错误!未定义书签。

2需求分析.. (1)2.1要求 (1)2.2任务 (1)2.1运行环境 (1)2.1开发工具 (1)3系统分析3系统分析 (1)2.1要求 (1)2.1要求 (1)2.1要求 (1)4总体设计2.1要求 (1)2.1流程图 (1)2.1要求 (1)1 前言用C语言编写一个约为两千行的程序来实现图形化界面下的海空模拟作战系统。

建立简单的海军与空军交战场景,有较好的舰船、地空导弹、飞机、炸弹等图形模型,可人人对战或人机对战,具有计分、判胜负等具体功能。

首先,通过C语言中图形化操作的函数画出比较逼真的战舰群与飞机群,并将画图的程序写成模块,将画出战舰与飞机的程序模块分开分别存入不同个文件;其次,在各自的文件中用C语言中定位屏幕坐标与图形动画的函数实现发射导弹或投弹的功能,并通过参数的变化控制其发动攻击;再者,编程实现战舰与飞机接受攻击的次数并设定其被击沉或击落的状态,即将其从屏幕上清除掉,在此环节中设定接受攻击次数最多的战舰或飞机为指挥中心,并实现战舰或飞机的移动;在模式一下,随着指挥中心前进,指挥中心的移动随操作者用鼠标而动,这一功能通过C语言中移动屏幕的程序完成;模式二下,舰队或机队可分为两或三部分,这一功能可由调用画图的模块完成,主机所在的队仍由操作者通过鼠标指挥,其他两部分可在战斗前先设定行进路线,在行进过程中用按键控制其攻击,也可在战斗过程中按键暂停请入指挥模式,对其攻击路线尽心临时设置,但暂停次数有限;最后,编写程序对系统进行总体控制,包括进入战斗模式,选择模式(人人,人机),并调用各个模块通过各个模块之间的参数传递时整个系统可以有效的运行,战斗状态用一个循环来实现,并记录战斗双方的损失,最后根据哪一方的指挥中心先被击毁来判断输赢,任一方指挥中心被毁战斗就结束,即程序跳出循环,最后输出双方损失。

c语言课程设计总结8篇

c语言课程设计总结8篇

c语言课程设计总结8篇c语言课程设计总结(一):经过一个星期的上机实践学习,使我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要透过不断的上机操作才能更好地学习它,透过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,透过学习也有所改善;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,透过实践,使我在这几个方面的认识有所提高。

透过实践的学习,我认到学好计算机要重视实践操作,不仅仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

c语言课程设计总结(二):经过一个学期的学习,我对C语言有了必须的了解。

C 语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。

在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。

但是,发现对后续资料的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。

计算机最重要的就是上机操作,自己编写程序,在VisualC++运行,刚开始经常会出现错误,经过分析改正后,最后能够运行了,就觉得个性激动。

课程设计是一个把需求分析、程序编写、程序调试、撰写报告结合为一体的过程。

在这个过程中,不仅仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神。

只有透过大家一齐努力才能将课程设计的所有环节都顺利的完成。

另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的潜力了有了一个提高,这有利于我们以后的学习。

同时这整一个过程,也使我们对程序编写的整个过程有了一个统筹全局的思想,因为需求分析、程序编写、程序调试、撰写报告这些过程是环环相扣的,绝对不可能独立进行。

课程设计是学习《C程序设计》后对知识的全面测试,刚拿到题目时不明白怎样去处理,觉得很复杂,经过和小组成员的讨论,上网查资料,逐个问题逐个击破,问题不再那么复杂。

c语言程序课程设计实践报告

c语言程序课程设计实践报告

c语言程序课程设计实践报告一、教学目标本课程的目标是让学生掌握C语言程序设计的基本概念、语法和编程技巧,培养学生具备基本的程序设计能力和良好的编程习惯。

具体分解为以下三个方面的目标:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等概念。

2.技能目标:学生需要具备编写和调试C语言程序的能力,能够解决实际问题,并进行简单的算法分析。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生分析问题和解决问题的能力,培养学生的创新精神和团队合作意识。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.C语言的基本语法和数据类型:变量、常量、数据类型、运算符等。

2.控制结构:顺序结构、分支结构、循环结构等。

3.函数:函数的定义、调用、参数传递、返回值等。

4.数组和指针:一维数组、多维数组、指针的概念和应用等。

5.编程实践:简单的算法分析、程序设计方法和技巧等。

三、教学方法为了达到课程目标,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过教师的讲解,使学生掌握C语言的基本概念和语法。

2.讨论法:引导学生进行问题讨论,培养学生的思考和分析问题的能力。

3.案例分析法:通过分析实际案例,使学生掌握C语言程序设计的方法和技巧。

4.实验法:让学生动手编写和调试程序,培养学生的实际编程能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的C语言程序设计教材。

2.参考书:提供相关的C语言程序设计参考书,供学生自主学习。

3.多媒体资料:制作精美的PPT课件,以便于讲解和展示。

4.实验设备:提供计算机实验室,让学生进行实际编程和调试。

五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面、客观、公正地评估学生的学习成果。

具体评估方式如下:1.平时表现:根据学生在课堂上的参与度、提问回答、小组讨论等情况进行评估。

c语言课程设计报告书3篇

c语言课程设计报告书3篇

c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理。

简单界面程序。

高级界面程序。

程序的添加修改。

用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

c语言课程设计实践报告

c语言课程设计实践报告

c语言课程设计实践报告一、教学目标本课程旨在通过C语言的学习,让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生独立思考、解决问题的能力。

具体目标如下:1.理解C语言的基本语法和编程规则。

2.掌握常用的数据类型、运算符和表达式。

3.熟悉函数的定义和调用。

4.了解常用的数据结构和算法。

5.理解程序的设计思想和方法。

6.能够使用C语言编写简单的程序。

7.能够阅读和理解C语言程序。

8.能够使用C语言进行基本的算法实现。

9.能够使用C语言进行简单的项目开发。

情感态度价值观目标:1.培养学生的编程兴趣,提高学生的自主学习能力。

2.培养学生解决问题的能力,增强学生的自信心。

3.培养学生团队合作的精神,提高学生的沟通表达能力。

二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言的基本语法和编程规则。

2.常用的数据类型、运算符和表达式。

3.函数的定义和调用。

4.常用的数据结构和算法。

5.程序的设计思想和方法。

具体的教学大纲如下:第一周:C语言的基本语法和编程规则。

第二周:常用的数据类型、运算符和表达式。

第三周:函数的定义和调用。

第四周:常用的数据结构和算法。

第五周:程序的设计思想和方法。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:通过讲解C语言的基本语法、数据结构、算法和编程思想,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解C语言在实际项目中的应用。

3.实验法:通过上机实验,让学生亲手编写C语言程序,加深对知识的理解和运用。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C语言程序设计》。

2.参考书:《C语言编程思想》。

3.多媒体资料:C语言编程教程视频。

4.实验设备:计算机实验室。

五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式,包括:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和积极性。

语言课程设计实验报告

语言课程设计实验报告

语言课程设计实验报告古往今来,语言就是人与人之间沟通的工具,它是丰富多彩的,也是变化多端的。

没有它,人与人之间将很难沟通,人类社会将是不言而喻生机。

那么怎么写一份实验报告呢?里头和一起来看看吧!语言课程设计实验报告一、目的、要求通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。

切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统成功进行软件计划、需求分析、设计的基础上,实现并测试实际构建开发的信息系统。

通过一系列规范化软件文档的编写和控制系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。

二、主要内容建议学生掌握软件工程的基本概念、基本技术手段和基本原理,为将来从事软件的研发和管理奠定基础。

每个学生选择一个小型偏好软件房地产项目(内容参照《计算机综合实践指导》,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。

具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不怎么限。

三、进度计划四、设计成果要求1.至少提交4个文档,包括软件计划、软件需求规格说明书、软件设计说明书、软件测试计划,其要求文档格式规范、逻辑性强(可参考《计算机综合实践指导》中给出的其要求及格式)、图表规范;2.独自实现实现了系统的某些系统,基本达到了要求的性能,经过了测试,基本能运行。

五、考核方式(1)提交的文档规范,工作量大,文档逻辑性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》实验报告评分表)占60%(2)系统验收、讲解、答辩 ;占25% (3)考勤占15%一、课程设计的目的与要求1. 课程设计目的软件工程课程设计是学习后软件工程课程后所进行的实践各个环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。

c语言课程设计报告摘要

c语言课程设计报告摘要

c语言课程设计报告摘要一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握数据类型、变量、常量的定义和使用。

2. 学会使用C语言的运算符,理解不同运算符的优先级和结合性。

3. 掌握C语言的控制结构,包括顺序结构、选择结构(if-else)和循环结构(for、while)。

4. 理解数组和字符串的基本概念,能够使用它们进行数据处理。

技能目标:1. 能够编写简单的C程序,进行基本的数据处理和运算。

2. 能够运用控制结构设计简单的算法,解决实际问题。

3. 能够阅读和分析C语言代码,理解其功能和逻辑。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们主动探索计算机科学的热情。

2. 培养学生的逻辑思维能力和问题解决能力,使他们认识到编程在解决实际问题中的价值。

3. 引导学生树立合作意识,学会与他人分享编程心得和经验。

课程性质:本课程为实践性较强的学科,旨在通过C语言的学习,培养学生的编程能力和逻辑思维能力。

学生特点:学生处于初中或高中年级,具备一定的数学基础和逻辑思维能力,但对编程知识尚不了解。

教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,以实例为主线,引导学生动手实践,注重培养学生的实际操作能力。

在教学过程中,关注学生的个体差异,提供个性化指导,确保课程目标的达成。

二、教学内容1. C语言概述:介绍C语言的发展历史、特点和应用领域,使学生初步了解C 语言的重要性。

教材章节:第一章2. 数据类型、变量和常量:讲解基本数据类型、变量定义、赋值和常量的概念。

教材章节:第二章3. 运算符与表达式:介绍各种运算符及其优先级,学会编写简单的表达式。

教材章节:第三章4. 控制结构:讲解顺序结构、选择结构(if-else)和循环结构(for、while),学会设计简单算法。

教材章节:第四章5. 数组和字符串:介绍数组的定义和使用,了解字符串的基本操作。

教材章节:第五章6. 函数:讲解函数的定义、调用和参数传递,使学生能够编写模块化的程序。

C语言课程设计大数加减实验报告

C语言课程设计大数加减实验报告

大数加减一、目的因为C语言中的int类型和long 类型的大小范围仅为(-32767~32767和-2147483647~2147483647),在某些较大型计算中,数据长度不能满足需要。

本实验目的是用C设计一个足够大的整数类型,实现两个大整数的加减运算。

二、需求分析1、输入的形式和输入值的范围运行程序时,按照提示将依次输入一个整数、一个‘+’或‘-’号和另一个整数;输入值最小为0,最大可达100位,但当输入的两个数都是100位且相加时,可能会发生溢出,所以为了保险起见,最大输入为99位。

2、输出的形式输入的两个数进行加法或减法运算后,结果将以一个整型数输出。

3、程序所能达到的功能在某些较大型计算中,C语言中的int类型和long 类型的长度不能满足需要,本程序借助字符数组来储存这两个大数,然后根据0-9的ASCII码进行加减并转换成数字输出,从而实现两个大整数的加减运算。

4、初步的测试计划(1)两个正整数相加,结果分发生进位和未发生进位两种情况;(2)两个正整数相减,分大数减小数和小数减大数两种情况。

三、概要设计1、主函数模块int mian(){定义变量;Do{定义字符数组并初始化;调用函数读入两个数据和从键盘输入‘+’或‘-’;给变量赋值;使用switch结构来实现加减运算并输出结果;提示是否继续计算;} while ( );return 0;}2、子函数功能int read(char str[N]);用数组读入整数并返回数位;void increase(char str1[N],char str2[N],char str[N],int m,int n,int a,int b);对两个整数进行加法运算;void output(char str[N],int m);输出两个整数相加后的结果;void calculate(char str1[N],char str2[N],char str[N],int m,int n,int a,int b);比较两个整数的大小,调用其它函数执行减法运算,输出结果;void decrease(char str1[N],char str2[N],char str[N],int m,int n,int a,int b);对两个整数进行减法运算;void print(char str[N],int m);输出两个整数相减后的结果。

C语言课程设计报告封面

C语言课程设计报告封面

C语言课程设计报告封面一、教学目标本课程旨在通过学习C语言的基本概念、语法和编程技巧,使学生掌握C语言编程的基础知识,具备运用C语言进行简单程序设计的能力。

具体目标如下:1.知识目标:•理解C语言的基本语法和数据类型;•掌握基本的输入输出操作、控制结构和函数;•了解C语言的内存管理和预编译处理。

2.技能目标:•能够使用C语言编写简单的程序,实现基本的输入输出、计算和逻辑控制功能;•能够阅读和理解简单的C语言程序代码;•能够运用C语言进行简单的算法设计和程序调试。

3.情感态度价值观目标:•培养学生的计算机编程兴趣,提高学生对计算机科学的认知;•培养学生的问题解决能力和创新思维;•培养学生团队合作精神和自主学习能力。

二、教学内容本课程的教学内容主要包括C语言的基本概念、语法和编程技巧。

具体安排如下:1.C语言的基本概念:介绍C语言的历史背景、特点和基本语法结构。

2.数据类型和变量:学习C语言的基本数据类型、变量的声明和使用方法。

3.输入输出操作:学习C语言的输入输出函数,如printf和scanf,实现数据的打印和输入。

4.控制结构:学习C语言的条件语句、循环语句和开关语句,实现程序的控制流程。

5.函数:学习C语言的函数定义、声明和调用,了解函数的参数传递和返回值。

6.数组和字符串:学习C语言的数组和字符串的基本操作,如排序、查找和字符串处理。

7.指针:学习C语言的指针概念和运用,了解指针与数组、函数的关系。

8.内存管理和预编译处理:学习C语言的内存分配和释放、预编译处理指令。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

具体方法如下:1.讲授法:通过教师的讲解,介绍C语言的基本概念和语法知识,为学生提供系统的学习框架。

2.案例分析法:通过分析典型的C语言程序案例,让学生了解和掌握编程技巧和方法。

3.实验法:学生进行编程实验,让学生亲自动手编写和调试程序,培养学生的实际编程能力。

c语言课程设计报告 职工工资管理系统

c语言课程设计报告 职工工资管理系统

一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。

•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。

2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。

3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。

4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。

5. 删除记录:可删除数据文件中的任一记录。

6.恢复记录:能恢复被删除的任一记录。

7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。

(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。

8.保存数据文件功能。

9.打开数据文件功能。

经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。

程序运行结果如下表所示(记录个数至少8 个)。

二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。

同时将数据储存在ckerk_list文件中并自动保存至磁盘。

注:如首次使用,尚未输入数据,请先输入数据。

输入的数据将自动保存。

再次选择输入功能时原数据将被覆盖。

②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。

若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。

C语言课程设计实验报告-学生成绩统计软件

C语言课程设计实验报告-学生成绩统计软件

C 语言课程设计实验报告一 问题描述:编辑一个学生成绩统计软件 二 基本要求:1) 每条记录由学号、姓名、若干门课程的成绩组成; 2) 能计算每个学生的总分和平均分并显示;3) 能按平均分统计各分数段的人数,并以分布图显示,如右图所示。

4) 在此基础上,可进行文件操作。

三 系统分析和设计函数的设计,其最终目的是要实现所需要的功能。

本例中,是用main 函数调用两个子函数来实现的! 1)文件的建立:要想实现对学生成绩的统计,首先要建立一个文件用来存放学生信息,要用到FILE 文件指针。

fp1=fopen("c:\\turboc2\\file1.rec","w+"); 2)程序的设计:学生的信息放在结构体数组struct student_score s[N]中。

通过for 循环,调用子函数getdata ,从键盘接收学生信息(num ,name ,score[0],score[1],score[2],score[3]),并计算总分与平均分,返回学生信息return st 到调用处。

用fprintf 函数向文件中逐一写入学生的信息,通过rewend(fp1)函数使文件指针回到文件头,用fscanf 读学生信息,并显示在屏幕上。

同时根据所读学生信息,统计各分数段的人数s1++,s2++,s3++,s4++,s5++,然后调用一个子函数putsgraph 用来输出图表!四 结构图主函数五 流程图:(背面)具体程序如下:#define N 5#include"stdio.h"#include"stdlib.h"struct student_score{long num;char name[20];float score[4];float total;float aver;}s[N];main(){FILE *fp1;struct student_score getdata(struct student_score st,int x);int putsgraph(int sa, int sb,int sc,int sd,int se);int i=0,s1=0,s2=0,s3=0,s4=0,s5=0;fp1=fopen("c:\\turboc2\\file1.rec","w+");for(i=0;i<N;i++)s[i]=getdata(s[i],i);for(i=0;i<N;i++)fprintf(fp1,"%-7ld%-10s%10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].total,s[i].aver);rewind(fp1);{long num;char name[20];float e,f,g,h,total,aver;for(i=0;i<N;i++){fscanf(fp1,"%ld%s%f%f%f%f%f%f\n",&num,name,&e,&f,&g,&h,&total,&aver);printf("%-7ld%-20s%10.1f%10.1f\n",num,name,total,aver);if(aver<60) s1++;else if(aver<70) s2++;else if(aver<80) s3++;else if(aver<90) s4++;else if(aver<=100) s5++;}}fclose(fp1);putsgraph(s1,s2,s3,s4,s5);}struct student_score getdata(struct student_score st,int x){int y;printf("\nEnter student%d\'s num:\n",x+1);scanf("%ld",&st.num); getchar();printf("\nEnter name:\n");gets();st.total=0;printf("\nEnter 4 scores:\n");for(y=0;y<4;y++){scanf("%f",&st.score[y]);getchar();st.total+=st.score[y];}st.aver=st.total/4;return st;}int putsgraph(int sa, int sb,int sc,int sd,int se){int i,j;char graph[16][80];for(i=0;i<16;i++){for(j=0;j<79;j++) graph[i][j]=' ';graph[i][79]='\0';}for(j=0;j<79;j++) graph[11][j]='-';for(j=3;j<=15;j+=4){ graph[12][j]='<'; graph[12][j+2]='0'; }graph[12][4]='6';graph[12][8]='7';graph[12][12]='8';graph[12][16]='9';graph[12][19]='<'; graph[12][20]='=';graph[12][21]='1';graph[12][22]='0'; graph[12][23]='0';for(i=10;i>(10-sa);i--) graph[i][4]='o';for(i=10;i>(10-sb);i--) graph[i][8]='o';for(i=10;i>(10-sc);i--) graph[i][12]='o';for(i=10;i>(10-sd);i--) graph[i][16]='o';for(i=10;i>(10-se);i--) graph[i][20]='o';for(i=0;i<16;i++) puts(graph[i]);}六测试数据Entrer student1’ num:7879366Enter name:wuhaoEnter 4 scores:66778894Entrer student2’ num:7879343Enter name:JiapanEnter 4 scores:87547683Entrer student3’ num:7879343Enter name:huboEnter 4 scores:85907061Entrer student4’ num:7879422Enter name:jinleiEnter 4 scores:72846578Entrer student5’ num:7879222Enter name:yananEnter 4 scores:37728975结果:7879366 wuhao 325.0 81.2 7879343 jiapan 300.0 75.07879456 hubo 306.0 76.57879422 jinlei 299.0 74.87879222 yanan 273.0 68.2ooo o o-----------------------------------------<60 <70 <80 <90 <=100七软件说明:本程序采用宏定义方式定义学生人数,增加程序的通用性,文件的路径为c:\\turboc2\\file1.rec,当运行结束后,可在dos状态下,输入命令行:type file1.rec打开此文件以检验文件的建立是否正确,并且可以查看学生的全部信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序编写人:***;联系方式:_______________;
完成时间:________________ */
#include<stdio.h>
main()
{int a[4][6]={{1,1,1,1,1},{2,2,2,2,2},{3,3,3,3,3},{4,4,4,4,4}};/*输入数组*/
int i,j;
for(i=0;i<4;i++)/*变量i用于循环控制,行数循环递增*/
{for (j=0;j<5;j++)/*变量j用于循环控制,列数循环递增*/
printf("%5d",a[i][j]);/*输出原数组*/
printf("\n");}
}
第2题:
/*题目及要求:计算满足式子21+22+23+……+2n<1000的最大的n的值,并输出结果。
完成时间:____________________ */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define max 100//最大记录数
type def struct;
{int num;
char type[20];
2、编程,计算满足式子21+21+23+……+2n<1000的最大的n的值,并输出结果。用主函数调用子函数的方法实现,子函数的功能是用递归方法求2n。
3、简单家庭财务管理程序设计
设计结构体数组,结构中包含财务数据为:编号、财务类别(如:定期、理财等)、存入金额、存期(单位:年)、年利率、到期金额等。
设计各个函数,分别实现以下功能:
(1)、输入:输入数据
(2)、删除:输入某编号,若找到该编号,则删除对应的记录
(3)、显示:显示所有记录
设计菜单,通过选择菜单调用以上各函数。
工作计划与进度安排:
第18周:C语言基础知识练习与题目分析
第18周:算法设计
第19周:编写程序代码与程序调试
第19周:验收程序、答辩
2、编程,计算满足式子21+21+23+……+2n<1000的最大的n的值,并输出结果。
关键点:用主函数调用子函数的方法实现,子函数的功能是用递归方法求2n。
Y
N
3、设计结构体数组,结构中包含财务数据为:编号、财务类别(如:定期、理财等)、存入金额、存期(单位:年)、年利率、到期金额等。
关键点:设计各个函数,分别实现以下功能:
要求:
使用C语言完成上述程序的设计、编程和调试,开发环境可采用Turbo C 2.0、WinTC或Visual C++ 6.0等。
二、算法设计
1、编写一个函数,它的功能是:求一个4*5的二维数组每行元素的和,并依次放入一个一维数组中传回主函数。
关键点:主函数中输入二维数组,并输出该数组,调用函数后输出每行的和。
for (i=0;i<4;i++)/*变量i用于循环控制,行数循环递增*/
{for (j=0;j<6;j++)/*变量j用于循环控制,列数循环递增*/
a[i][5]+=a[i][j];/*将前四列的值依次加到第五列上*/
printf("%5d",a[i][5]);/*输出最后一列的值*/
}
printf("4*5:\n");
其中,定期存款到期金额的计算公式:到期金额=存入金额*存期*年利率*80%
理财存款到期金额的计算公式:到期金额=存入金额*存期*年利率
设计各个函数,分别实现以下功能:
(1)、输入:输入数据
(2)、删除:输入某编号,若找到该编号,则删除对应的记录
(3)、显示:显示所有记录
设计菜单,通过选择菜单调用以上各函数。
sum=sum+p;
n=n+1;}
printf("%d\n",n);/*输出n*/
}
main()
{fun();/*主函数调用子函数*/
}
第3题:
/*题目及要求:设计结构体数组,结构中包含财务数据为:编号、财务类别(如:定期、理财等)、存入金额、存期(单位:年)、年利率、到期金额等。
程序编写人:***;联系方式:_________________;
(1)、输入:输入数据
(2)、删除:输入某编号,若找到该编号,则删除对应的记录
(3)、显示:显示所有记录
设计菜单,通过选择菜单调用以上各函数。
三、编程实现
程序的具体C语言代码如下:
第1题:
/*题目及要求:编写一个函数,它的功能是:求一个4*5的二维数组每行元素的和,并依次放入一个一维数组中传回主函数。
程序编写人:***;联系方式:_______________;
完成时间:___________ */
#include<stdio.h>
void fun()/*定义一个子函数*/
{int p,sum,n;
for (p=1,sum=0,n=0;sum<1000;)/*变量sum用于记录数值的和*/
{p=p*2;/*递归运算*/
内容及要求:1、编写一个函数,它的功能是:求一个4*5的二维数组每行元素的和,并依次放入一个一维数组中传回主函数。
2、编程,计算满足式子21+22+23+……+2n<1000的最大的n的值,并输出结果。
3、简单家庭财务管理程序设计
设计结构体数组,结构中包含财务数据为:编号、财务类别(如:定期、理财等)、存入金额、存期(单位:年)、年利率、到期金额等。
成绩评定表
学生姓名Βιβλιοθήκη 李艳坤班级学号专业
通信工程
课程设计题目
C语言课程设计


组长签字:
成绩
日期
20年月日
课程设计任务书
学院
信息科学与工程
专业
通信工程
学生姓名
班级学号
课程设计题目
C语言课程设计
实践教学要求与任务:
使用C语言完成下述程序的设计、编程和调试。
题目名称:二维数组的按行求和及递归函数的编写
简单家庭财务管理程序的设计
float starmoney;
int time;
float rate;
float endmoney;
}
fina;
void add(fina*m,int*num);
void dlete(fina*m,int n);
指导教师:
201年月日
专业负责人:
201年月日
学院教学副院长:
201年月日
一、题目要求
题目名称:
二维数组的按行求和及递归函数的编写
简单家庭财务管理程序的设计
内容:
1、编写一个函数,它的功能是:求一个4*5的二维数组每行元素的和,并依次放入一个一维数组中传回主函数。主函数中输入二维数组,并输出该数组,调用函数后输出每行的和。
相关文档
最新文档