C语言实训项目分析及源码
c语言实践上机优秀综合设计源代码总结
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 前言:提供者:郁哲仅供参考,如有不足之处请见谅++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 题目:MP3system代码如下:#include<stdio.h>#include<string.h>#include<stdlib.h>#define NAME "sunzeng"#define CODE "200810404101"#define END "B Y E B Y E"#define N 5/*用来改变下载歌曲的数目*/#define M 10/*代表MP3中原有歌曲数目*/#define O 10/*用来改变屏保时倒计时的秒数*/#define P 4/*用来改变屏保时输出沙漏图案的高度*/#define Q 3/*关机倒计时的秒数*/#define R 3/*开机倒计时的秒数*/void enter(){int num=1;char name[30],code[20];while(num<=3){printf("Please input your usename:");scanf("%s",name);printf("Please input your code:");scanf("%s",code);if(strlen(name)<=20&&strlen(code)==12)if(strcmp(NAME,name)==0&&strcmp(CODE,code)==0){strcat(name,code);printf("Welcome to %s\n",name);break;}num++;if(num<=3)printf("Error!Please input again!\n");if(num>3)printf("You are not the use of this system!\n");}}struct MP3{char name[50];char lyric[100];double store;};typedef struct{ char name[50];char lyric[100];}SYSTEM;getmusic(SYSTEM *xt){int i=0;printf("Enter music name & lyric : \n");do{gets(xt[i].name);getchar();gets(xt[i].lyric);getchar();i++;}while(i<N);}getsore(SYSTEM *xt){int i,j,k;SYSTEM temp;for(i=0;i<N-1;i++){k=i;for(j=i+1;j<N;j++)if(strlen(xt[k].lyric)>strlen(xt[j].lyric))k=j;temp=xt[k];xt[k]=xt[i];xt[i]=temp;}}outmusic(SYSTEM *xt){int i;printf("After sorted play the loaded music:\n");for(i=0;i<N;i++){printf("The song name of %d is:%sThe lyric of song is:%s",i,xt[i].name,xt[i].lyric); printf("\n");}}void way(){printf("-----------------------------------------------------\n");printf("| §1 按歌词所占字节大小排列|\n"); printf("| §2 按歌曲所占内存大小排列|\n"); printf("| |\n"); printf("| |\n"); printf("| 请您选择|\n");printf("------------------------------------------------------\n");}void screen1(){printf("-------------------------------------\n");printf("| ************ |\n");printf("| ******** |\n");printf("| **** |\n");printf("| ** |\n");printf("| ** |\n");printf("| ****** |\n");printf("-------------------------------------\n");}void screen2(){printf("-----------------------------------\n");printf("| ***** @@ |\n");printf("| ***** * * |\n");printf("| * * * * |\n");printf("| * * * * |\n");printf("| * * * * |\n");printf("| @ @ * * |\n");printf("| @@ |\n");printf("-----------------------------------\n");}void Pscreen1(){int i;for(i=O;i>=0;i--){system("cls");printf("%d",i);_sleep(1000);}printf("\n");}void Pscreen2(){int i,j,k;for(i=0;i<=P;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=2*(P-i);k++)printf("* * ");printf("\n");}for(i=0;i<=P;i++){for(j=0;j<=P-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("* * ");printf("\n");}}void menu(){printf("---------------------------------------\n");printf("| §1 播放模式|\n");printf("| §2 录音模式|\n");printf("| §3 系统设置|\n");printf("| §4 电子书|\n");printf("| §5 关机|\n");printf("| |\n");printf("| 请您选择|\n");printf("----------------------------------------\n");}void play(){printf("---------------------------------------------------------------------------\n");printf(" PLAYING NOW \n");}{int j,k=12;char e;for(j=0;j<=10;j++){scanf("%c",&e);if(e=='+'){k++;printf("音量%d\n",k);getchar();}if(e=='-'){k--;printf("音量%d\n",k);getchar();}if(e!='+'&&e!='-')break;}}typedef struct{char s[100];double t;} L Y;recording(L Y *p){printf("----------------------\n");printf(" 正在录音\n");scanf("%s",p->s);p->t=strlen(p->s)/4.0;printf("----------------------\n");}void MP3system(){printf("---------------------------------------\n");printf("| §1 下载设置|\n"); printf("| §2 播放模式|\n"); printf("| §3 内存状况|\n"); printf("| §4 屏保设置|\n"); printf("| |\n"); printf("| 请您选择|\n"); printf("----------------------------------------\n");}{printf("-----------------------------------------------------\n");printf("| §1 下载电子书|\n"); printf("| §2 阅读电子书|\n"); printf("| |\n"); printf("| |\n"); printf("| 请您选择|\n");printf("------------------------------------------------------\n");}void Write(){FILE *fpout;char ch;if((fpout=fopen("abc.txt","w"))==NULL){printf("Can not open this file!\n");exit(0);}ch=getchar();while (ch!='@'){fputc(ch,fpout);ch=getchar();}fclose(fpout);}void Read(){FILE *fpin;char ch;if((fpin=fopen("abc.txt","r"))==NULL){printf("Can not open this file!\n");exit(0);}ch=fgetc(fpin);while(ch!=EOF){putchar(ch);ch=fgetc(fpin);}fclose(fpin);}{int i;for(i=Q;i>=0;i--){system("cls");printf("%d",i);_sleep(1000);}printf("\n");}void open(){int i;for(i=R;i>=0;i--){system("cls");printf("%d",i);_sleep(1000);}printf("\n");}int main(){int b,c,d,g,h,j,k,m,n,x,i=5;double str=0.0,st;char y[]={'W','E','L','C','O','M'};char f;SYSTEM xt[N],temp;struct MP3 sys[10]={{"Da yue zai dong ji","Ni de rou qing shi shui,ji du rang wo ai de chen zui.",5.89},{ "Bing yu","Leng leng de bing yu zai lian shang hu luan de pai",5.32},{"Ruo shui san qian","Ruo shui san qian deng dao ni de chu xian",6.54},{"Qing guo qing cheng","Shuo yi qing guo qing cheng bu bian de rong yan",6.81},{"Gu xiang","Tian bian xi yang zhai ci ying zhao wo de lian pang",5.42},{"Lan lian hua","Mei you shen me neng gou zhu dang,wo dui zi you de xiang wang.",7.13}, {"Lv xing","Zhan zai zhe cheng shi de ji jing zhong,rang yi qie xuan xiao zuo yuan.",6.98}, {"Xiao jiu wo","XIng fu kai shi you yu zhao,yuan fen rang wo men ",6.59},{"Jin tian","Pan le hao jiu zhong yu deng dao jin tian,meng le hao jiu zhong yu ba meng shi xian",7.63},{"Cha jian er guo","Shuo le bu xi huan,yi ge hua ti rao zhe wen.",6.41}};struct MP3 cha;L Y a;printf("Please enter this system by your name and code\n");open();getchar();screen1();/*进入时界面*/for(d=0;d<=5;d++)printf("%c ",y[d]);printf("\n");printf("请按任意键进入\n");getchar();menu();/*进入主功能菜单可以选择功能*/for(x=0;x<M;x++)/*使功能菜单可以多次被使用*/{scanf("%d",&c);switch(c){case 1: play();printf("THE %d of song is:%s\n",i,sys[i].name);printf("THE lyric of song is:%s\n",sys[i].lyric);printf(" 音量+ 音量- 上一首< 下一首> \n ");printf(" 请您选择\n");printf("---------------------------------------------------------------------\n");getchar();/*按任意键进入调节功能,先音量调节,后歌曲转换。
C语言实训项目分析及源码
防灾科技学院实习报告书防灾科技学院灾害信息工程系2015年制项目一C语言实习一、实习目的本课程是网络工程专业的一门专业必修课程,是学生学习完C语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。
本次实习通过1个综合性强、实用性强、趣味性强的应用实例,使学生进一步巩固C语言基本知识,掌握应用程序设计语言描述问题、分析问题和解决问题的方法和思想,为后继的面向对象程序设计、数据结构、Web应用技术、网络工程专业实习、网络工程生产实习、网络工程毕业实习课程等课程打下基础。
通过本课程的学习,使学生进一步明确学习目标、增强学习动力、培养学习兴趣。
二、实习任务概述任务一:员工工资管理系统的设计与实现本系统基于C语言,实现了一个小型的信息管理系统,主要包括以下功能:1.信息的录入:a)首次进入系统,可以添加职工的工号、姓名、基本工资、津贴、员工奖金等数据录入操作。
b)系统再次登录,可以从文件导入信息,也可以对文件内容进行修改,保存退出。
2.删除操作:对离职的员工信息要从系统里删除。
3.显示操作:将结构体中职工信息输出到屏幕上。
4.查询与修改操作:分别按职工工号和职工姓名查询,修改职工信息并保存。
5.统计与排序操作:分别统计所有员工的总工资,实现对总工资的排序。
三、实习所用软件简介VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。
使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。
使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。
Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
c语言学生成绩管理系统实训报告(含源代码)
郑州轻工业学院实训报告实训名称:[130254]C语言程序设计实训姓名: 徐博院(系):软件学院专业班级:网页设计02学号:621413510250指导教师:成绩:时间: 2015年1月5 日至2015年1 月9日一设计项目:学生成绩管理系统二总体设计:1 程序设计组成框图:2:模块功能说明:1 输入功能:输入学生姓名学号及成绩。
2 查看功能:输出姓名学号及各科成绩.3 查询功能:通过学号查询学生姓名及各科成绩。
4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。
5 修改功能:通过输入学号修改指定学生的错误信息.6添加功能:添加学生信息。
7删除功能:通过输入学号输入指定学生信息.8保存功能:将学生信息保存。
9 退出系统。
3:主要函数之间的调用关系及各自功能:主要函数的函数原型void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。
ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。
出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算.iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。
iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。
v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。
C语言程序设计实训报告
C语言程序设计实训报告一、实训背景介绍本次实训是为了提高学生的C语言编程能力,培养学生解决实际问题的能力,加强学生的动手能力和团队合作能力。
实训内容主要包括C语言的基础知识和常用库函数的使用,以及通过编写实际的小项目来巩固所学知识。
二、实训过程及成果1.实训过程本次实训总共经历了三个阶段:知识学习、编程实践和项目开发。
(1)知识学习阶段:在这个阶段,我们通过教材和课堂上的讲解学习了C语言的基本语法、数据类型、运算符、流程控制语句等基础知识,并学习了常用库函数的使用。
(2)编程实践阶段:在这个阶段,我们通过一系列的编程练习来巩固所学知识。
通过编写简单的程序,我们学会了如何使用C语言的基本语法和常用库函数来解决实际问题。
(3)项目开发阶段:在这个阶段,我们分小组进行项目开发。
每个小组由3-5名学生组成,负责编写一个小型的C语言项目。
项目的内容可以是游戏、学生管理系统、图书管理系统等等。
我们需要在规定的时间内完成项目的需求分析、设计、编码和测试工作,并提交最终的项目成果。
2.实训成果通过本次实训,我掌握了C语言的基本语法和常用库函数的使用,并且通过实际的编程练习和项目开发锻炼了自己的编程能力和解决实际问题的能力。
在项目开发的过程中,我学会了如何进行需求分析和设计,并能够合理地组织代码结构和调试程序。
三、实训心得体会通过这次实训,我深刻地认识到了编程是一项需要耐心和毅力的工作。
在编写代码的过程中,经常会遇到各种各样的问题,需要不断地调试和修改。
同时,编程还需要良好的团队合作能力,只有团队成员之间的密切配合和良好的沟通,才能顺利地完成项目。
通过这次实训,我不仅提高了自己的编程能力,还锻炼了自己的动手能力和团队合作能力。
在以后的学习和工作中,这些经验和能力无疑会给我带来很大的帮助。
我相信,只要持之以恒地继续努力,我一定能够在C语言编程方面有所突破。
四、总结与展望通过这次实训,我对C语言的掌握更加深入,掌握了一些常用的编程技巧和方法。
C语言实训小项目
《C语言的六个实训小项目》源码例程已有 11257 次阅读2007-10-8 11:51|个人分类:C语言编程项目实训一实训内容:1、定义一个数组a[11],用以存放学生的成绩。
2、从键盘输入10个学生成绩3、采用冒泡法,将学生成绩按照从高到低进行排序4、再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组5、将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
项目实训二实训内容:1、在函数中进行10个学生成绩从高到低排名 sort(int a[10])2、改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,3、改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式4、根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:ascending 升,d:descending 降)项目实训三实训内容:1、定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现2、将数组stu[10]的内容输出到屏幕上,要求用指针实现3、将成绩数组按照从高到低进行排序,要求用指针实现4、将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单5、采用指针方法,输入字符串“student score ”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)项目实训四实训内容:1、定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩2、从键盘输入10个学生的以上内容3、输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩4、输出三门课程的平均分数最高的学生的学号、姓名及其平均分5、将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:number name math Chinese English average 103 tom 90 90 10095101 alice 90 80 7080项目实训五实训内容:1、定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩2、从键盘输入10个学生的以上内容,存入文件stud.dat,关闭文件3、打开stud.dat文件,将数据读出,查看是否正确写入,关闭文件。
c语言实验报告实验
c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
c语言课设实验报告-记事本程序(含源码)
C语言课设实验报告[记事本程序]班级:学号:姓名:指导老师:C语言课设实验报告#define key_down 80#define key_up 72#define key_esc 1#define key_alt_f 33#define key_alt_x 45#define key_enter 28#define key_alt_e 18int get_key();void box(int startx,int stary,int high,int width);{int i,key,x,y,l;char *w=NULL,*d=NULL,*s=NULL;FILE *fp;char *menu[]={ "File ", "Edit ","Format","View","Help"};char *red[]={ "F", "E","F","V","H"};char *f[]={ "New ", "Open" , "Save", "Another","Quit alt_x"};char *e[]={"Search","Search next","Replace","Date"};char buf[16*10*2],buf1[16*2];textbackground(3);clrscr();window(1,1,80,1);textbackground(WHITE);textcolor(BLUE);clrscr();window(1,1,80,2);for(i=0, l=0; i <5;i++){x=wherex();y=wherey();textcolor(BLACK);cprintf( " %s ",menu[i]);l=strlen(menu[i]);gotoxy(x,y); x.y等的头文件*//*功能键的扫描码的定义*//* i为循环次数的序数,key为从键盘输入的功能键,x,y 为光标的坐标,l为菜单栏中菜单的字符长度*//*w是存放输入的内容(记录的事情)的指针,*s是存放输入的文件名的指针,*d是存放输入要定时的文件的文件名的指针*/ /*菜单栏中各个菜单的定义*//*菜单栏中菜单开头要标颜色的字母的定义*//* file 子菜单中项目的定义*//*edit子菜单的定义*/ /*缓冲区的定义*//*整个大窗口的背景颜色设置*//*创建菜单栏窗口*/ /*设置菜单栏窗口背景颜色为白色,字体颜色为蓝色*//*利用循环输出menu菜单栏,有多少个菜单循环多少次。
C语言程序设计实验及代码
C语言程序设计实验及代码随着计算机技术的快速发展,C语言作为一种高效且强大的编程语言,被广泛应用于软件开发、嵌入式系统以及科学计算等领域。
在学习C语言编程的过程中,进行实验并编写相应的代码是非常重要的一部分,可以帮助我们巩固所学的知识并提高编程能力。
本文将介绍几个常见的C语言程序设计实验,并给出相应的代码示例。
一、实验一:Hello, World!实验目的:熟悉C语言编程环境,掌握简单的编译和运行操作。
实验内容:编写一个简单的程序,在屏幕上输出"Hello, World!"。
代码示例:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```二、实验二:求两个整数的和与差实验目的:学习C语言中的基本数据类型和算术运算符的使用。
实验内容:编写一个程序,输入两个整数并计算它们的和与差,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num1, num2, sum, diff;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;diff = num1 - num2;printf("两数之和:%d\n", sum);printf("两数之差:%d\n", diff);return 0;}```三、实验三:判断一个数是奇数还是偶数实验目的:学习C语言中的分支语句的使用。
实验内容:编写一个程序,输入一个整数,并判断它是奇数还是偶数,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
c语言实验报告参考源代码
实验5三种基本结构的综合应用4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=100;i<=999;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*三位数是素数时*/{k=i%100; /*去掉百位数字*/if(k>=10) /*十位数字不是0时*/{for(m=2;m<k;m++)if(k%m==0)break;if(m>=k) /*两位数是素数时*/{p=i%10; /*p为个位数字*/for(q=2;q<p;q++)if(p%q==0)break;if(q>=p)n++;}}}}printf("%d\n",n);}Key:575.求[2,400]中相差为10的相邻素数对的对数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=2;i<=400;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*i是素数时*/{for(k=i+1;k<i+10;k++){for(m=2;m<k;m++)if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/if(m>=k)break;} /*k是素数时终止if语句的外层循环*/if(k>=i+10) /*[i+1,i+9]不是素数时*/{for(q=2;q<k;q++)if(k%q==0)break;if(q>=k) /*i+10是素数时*/n++;}}}printf("%d\n",n);}Key:56.求[1,21]范围内的梅森尼数#include "math.h"main(){long n,k=2,m,p,q;for(n=2;n<=21;n++){ k=k*2; p=k-1;m=sqrt(p);for(q=2;q<=m;q++)if(p%q==0) break;if(q>m) printf("%5ld",n);}}Key: 2 3 5 7 13 17 197.求1000以内的亲密数对main(){int a,b,n,m,q,p;for(a=1;a<1000;a++){n=0;for(q=1;q<=a/2;q++)if(a%q==0) n+=q;for(b=a;b<=1000;b++){ m=0;for(p=1;p<=b/2;p++)if(b%p==0) m+=p;if(a==m&&b==n) printf("%5d%5d",a,b);}}}/*Key:6 6 28 28 220 284 496 496*/实验6 数组及其应用3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。
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语言实训报告14
C语言实训报告14C语言实训报告14一、实训概述本次实训的主要目的是让学生通过实践提升对C语言的掌握和应用能力,加深对常用C语言语法的理解和运用。
实训内容包括编写C语言程序解决常见问题以及实现简单的算法。
二、实训过程1.实训准备在实训开始之前,我先对C语言的基本语法进行了复习,并在实训教材中找到了相关的实例,熟悉了各种C语言的语法和使用方法。
2.实训任务本次实训包括如下任务:1)编写一个程序,实现两个数的加法、减法、乘法和除法。
要求程序能够根据用户的输入进行相应的运算,并输出结果。
2)编写一个程序,实现对一个数组中的元素进行排序。
要求使用冒泡排序算法进行排序,并输出排序后的结果。
3)编写一个程序,实现对一个字符串中字符出现的次数进行统计,并输出统计结果。
4)编写一个程序,实现判断一个给定的年份是否为闰年。
要求通过用户输入年份,并根据判断结果输出相应的信息。
3.实训实现在开始编写程序之前,我先根据实训任务提供的要求,确定了程序的基本结构和功能。
然后,我根据实际需求,使用C语言的语法编写了相应的代码,并进行调试和测试,确保程序能够正常运行。
4.实训总结通过本次实训,我进一步提高了对C语言的熟练度和掌握程度。
我了解了C语言程序的编写流程和原理,并学会了如何使用C语言解决实际问题。
通过实践,我发现在编写程序的过程中,代码的编写顺序、语法的正确性以及算法的选择等都对最终的结果产生了重要的影响。
三、存在的问题与改进措施在实训过程中,我遇到了一些问题,主要包括:1)代码的错误:在编写程序的过程中,由于粗心和缺乏经验,导致了一些语法错误和逻辑错误。
我下次需要加强代码的检查和调试,提高代码的质量和可靠性。
2)算法的选择:在实现排序算法的过程中,我选择了冒泡排序。
然而,冒泡排序是一种时间复杂度较高的排序算法,在处理大量数据时会导致程序运行速度变慢。
下次我需要结合实际情况选择合适的排序算法。
为了改进以上问题,下次我会:1)加强对代码的检查和调试,确保代码的正确性和稳定性。
c语言课程设计报告及其源代码
西安郵電學院C语言课程设计报告书系部名称通信工程系学生姓名王子源专业名称通信工程专业班级通工0901班学号03091001指导教师衡霞2010年06月07日至时间2010年06月18日实验题目学生宿舍管理系统一、实验目的通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。
利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。
二、实验内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用。
三、需求分析本学生信息管理系统包含输入记录,显示记录,按房间号排序并显示,按学号排序并显示,插入一条记录按学号排序并显示,按姓名查找,删除一条记录,查找并显示一个记录,查找并修改一个记录,从文件中读入数据,循环写入数据等功能.需求分析:输入记录(Input)显示记录(Display)按房间号排序并显示(Sort_by_roomnum)按学号排序并显示(Sort_by_num)插入一条记录按学号排序并显示(Insert_a_record)按姓名查找,删除一条记录(Delete_a_record)查找并显示一个记录(Query_a_record)查找并修改一个记录(Change_a_record)从文件中读入数据(AddfromText)循环写入数据(WritetoText)四.概要设计1.系统分析功能模块图:总目录以及下属的各个模块,这样可以使得程序的书写脉络清晰流畅。
程序结构图2、模块功能说明(1)输入记录模块(Input):用于输入学生的各项信息(2)显示记录模块(Display):按照输入的顺序显示出每个学生的各项信息(3)按房间号排序并显示模块(Sort_by_roomnum):按照房间号顺序显示每个学生信息(4)按学号排序并显示模块(Sort_by_num):按照学号顺序显示每个学生信息(5)插入一条记录按学号排序并显示模块(Insert_a_record):插入一条记录并按学号显示出所有记录。
c语言实验报告结果及分析
c语言实验报告结果及分析#### 一、实验目的1. 学习如何使用函数;2. 了解函数的作用;3. 掌握C语言程序中函数的实现方法;4. 深入理解函数调用和参数传递。
#### 二、实验内容本次实验完成了一个函数factorial,它的作用是计算一个整数的阶乘。
实验代码:```c#include <stdio.h>int factorial(int n) //函数声明{int i; //定义变量int product = 1; //初始化变量for(i = 1; i<=n; i++) //循环语句{product *=i;}return product; //返回结果}int main(){int num;scanf("%d",&num); //输入变量printf("%d\n",factorial(num)); //调用函数return 0;}```#### 三、实验结果实验运行结果:![image-20200907223338892](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200907223338892.png)实验结果验证了函数factorial的功能,它计算出了正确的结果:输入5,计算出120;输入4,计算出24。
#### 四、实验分析1. 在实验代码中,我们首先定义了一个函数factorial,并给出了它的参数n和返回值product。
然后,运用循环语句把参数n的各个数相乘,取得最终结果product,并用return语句把结果返回。
2. 然后,在进入main函数时,我们用scanf传入变量num,然后调用factorial函数计算num的阶乘,将结果用printf输出,这就完成了整个程序的工作。
3. 本实验验证了函数factorial的功能,完成了整数的阶乘计算任务,并且符合了性能要求,每次输入及计算结果都符合预期,可以满足实际使用需求。
C语言程序设计实验报告
C语言程序设计实验报告一、实验目的增强学生对C语言函数的理解和应用能力,提高编程能力。
二、实验要求利用C语言函数实现对一些文件中的数据进行读取、处理和输出,并设计函数完成相应的功能。
三、实验内容和方法本次实验将设计一个程序,实现对一个文本文件中的数据进行读取、处理和输出的功能。
设计思路:1.打开指定的文件,并判断文件是否能够成功打开。
2.读取文件中的数据,并存储到相应的变量中。
3.根据需要进行数据的处理和计算。
4.将处理后的数据输出到文件或屏幕上。
具体步骤:1.首先定义一个函数,用于打开文件,并判断文件是否成功打开。
函数的参数为文件名,返回一个文件指针。
2.定义一个函数,用于读取文件中的数据,并将数据存储到相应的变量中。
函数的参数为文件指针和数据存储变量。
3.定义一个函数,根据需要进行数据的处理和计算,并将结果存储到相应的变量中。
函数的参数为输入数据和输出数据的变量。
4.定义一个函数,将处理后的数据输出到指定的文件或屏幕上。
函数的参数为要输出的数据和输出文件的指针。
四、实验过程1.实验环境准备确保系统中已安装C语言的编程环境,如Code::Blocks等。
2.创建源文件在编程环境中创建一个源文件,命名为experiment.c。
3.编写源代码```c#include <stdio.h>FILE* openFile(char* filename)FILE* fp = fopen(filename, "r");if (fp == NULL)printf("Open file failed.\n");return NULL;}return fp;void readFile(FILE* fp, int* data)for (int i = 0; i < 3; i++)fscanf(fp, "%d", &data[i]);}void processData(int* input, int* output) for (int i = 0; i < 3; i++)output[i] = input[i] * input[i];}void printData(int* data, FILE* fp)for (int i = 0; i < 3; i++)fprintf(fp, "%d ", data[i]);}fprintf(fp, "\n");int maiFILE* inputFile = openFile("input.txt"); int input[3];int output[3];if (inputFile != NULL)readFile(inputFile, input);processData(input, output);FILE* outputFile = fopen("output.txt", "w");if (outputFile != NULL)printData(output, outputFile);fclose(outputFile);} elseprintf("Open output file failed.\n");}fclose(inputFile);}return 0;```五、实验结果与分析程序运行后,会打开一个名为input.txt的文件,从文件中读取3个整数,并将它们的平方结果写入output.txt文件中。
《C语言程序设计》实训报告
《C语言程序设计》实训报告C语言程序设计实训报告一、实训目的本次实训旨在提高学生的C语言程序设计能力,培养学生的编程思维,并通过实践锻炼学生的动手能力,将所学的理论知识应用于实际编程中。
二、实训内容本次实训内容包括学习C语言的基本语法,掌握C语言程序的编写规范,学习使用C语言的基本数据类型和控制结构,了解C语言的函数和指针等概念,通过实践编写简单的C语言程序。
三、实训过程1.学习基本语法在实训开始前,我们首先学习了C语言的基本语法,包括变量的声明与定义、运算符的使用、条件语句和循环结构等。
通过阅读教材和课堂讲解,我们对C语言的语法有了初步的了解。
2.编写实验程序在掌握了基本语法后,我们开始编写实验程序。
实验题目包括简单的数学计算、字符串处理和数组操作等。
通过这些实验,我们巩固了所学的语法知识,并培养了编程的思维方式。
3.实验结果分析在编写程序的过程中,我们需要进行实验结果的分析和验证。
通过调试程序和比较实验结果与预期结果的差异,我们发现了一些程序错误,并逐步进行了修正。
这些经验对我们以后的编程工作将会非常有益。
四、实训收获通过本次实训,我对C语言的理论知识有了更深入的了解,学会了如何编写简单的C语言程序。
在编程过程中,我养成了认真阅读题目、分析问题的习惯,能够通过逻辑思维找到解决问题的方法,提高了我的动手能力和解决问题的能力。
五、不足与反思在实训过程中,由于时间有限,我只完成了实验内容的一部分,没有能够更深入地学习和掌握C语言的更高级特性和应用。
在以后的学习中,我会更加努力地提高自己的编程水平,不断完善自己的知识体系。
六、实训总结C语言是计算机科学的基础,在实训中,通过学习C语言的基本语法和编程思想,我得到了很大的收获。
我相信,通过不断的学习和实践,我能够更好地掌握C语言的编程技巧,为将来的编程工作打下坚实的基础。
同时,我还要感谢老师和同学们在实训中给予的帮助和支持,让我能够更好地完成这次实训。
C语言课程实训设计报告
C语言课程实训设计报告一、项目概述我这次实训的项目主要是农民工资收入统计系统,农民工资收入统计系统主要实现的是农民信息的输入、输出,按农民的门牌号排序,实现农民信息的插入、查找、删除等操作,以及可以计算全村总收入和人均收入,也能够找出小康家庭、中等家庭以及贫困家庭。
这次实训的项目主要通过C语言来实现程序的运行,主要通过C语言中的函数调用和结构体来做程序,还要用到许多小的知识点,例如:用冒泡法实现排序;scanf、printf语句;strcpy复制语句;if……else语句实现选择……等等。
二、项目分析和设计这个项目的程序可分为几个板块来做,每个板块有每个板块的作用,通过不同程序的不同作用相互调用即可实现整个程序的运行,这个项目程序主要可以分为以下几个板块:1、定义头文件:运用#include<stdio.h>,#include<stdlib.h>,#include<ctype.h>,#include<string.h>等头文件2、定义结构体数组:运用typedef struct{农民列表信息……}变量名表列;这种类型是直接定义结构体类型变量。
3、对调用函数进行声明:根据所写程序对有些函数进行声明,例如:Void show_menu();在程序中实现的是对菜单函数的调用。
4、主函数:Void main()为主函数,在主函数过do……while语句和switch……case语句进行选择和函数调用。
Void main(){ do{switch()……}}while();5、菜单函数:定义函数为 void show_menu()主要用printf语句输出菜单函数,并且还通过主函数调用菜单函数实现对农民信息的选择。
6、输入农民的信息:定义函数为int create(peasant nu[],int n)nu[]为结构体数组,在此函数中,通过scanf语句实现农民信息的输入,并用while语句判断并实现多余信息的清除,以及判断是否继续进行输入信息,最后还有一个值返还给主函数main()。
C语言实验报告源代码
C语言实验报告源代码1.问题描述:计算三个整数12*34*56的积,得出正确的结果,并能通过此实验熟悉vc6.0的操作环境;源程序及注释:# include <stdio.h>void main() /*求三个数的积*/{ int a,b,c,sum; /*这是声明部分,定义a,b,c,sum为整型*/ / a=12; /*以下5行为C语句*/b=34;c=56;sum=a*b*c;printf("%d\n",sum);}2.。
问题描述:熟悉并理解基本数据类型,了解整数变量的数据范围,主要是基本整型变量,短整型以及长整型。
源程序及注释:#include <stdio.h>void main(){ int a; long b; short c;a=2147483647; a=a+1;printf("a=%d\n",a);b=2147483647; b=b+1;printf("b=%d\n",b);c=32767; c=c+1;printf("c=%d\n",c);}3.问题描述:了解并学会C语言的基本输入输出用法,熟悉运用printf函数和scanf函数,能用C语言语句解决简单的实际问题;源程序及注释:#include <stdio.h>void main(){float c,F ;printf("please input a Fahrenheit");scanf ("%f",&f);c=(5.0/9)*(F-32);printf("the Centigrade is %.2f\n",c);}4.问题描述:熟悉并理解C语言的选择结构,了解选择结构的程序设计方法,掌握选择结构中条件表达式和逻辑表达式的用法,掌握if语句的规则。
C语言综合实验报告模板(附调试代码)
C语言综合实验报告模板(附调试代码)学生姓名:学号:专业班级:实验类型:□验证□ 综合□ 设计□ 创新实验日期:实验项目:学生成绩管理系统一、实验目的和要求目的:1.掌握三种程序基本结构;2.熟练使用数组、用户自定义函数等相关知识进行程序设计;3.熟悉结构化程序设计语言思想编写程序代码;4.理解和掌握C语言的语法以及三种基本程序结构的综合应用;5.熟悉排序、查找、统计分析等常用算法6.熟悉C语言的编程和调试环境,培养学生用计算机解决实际问题的能力要求:根据实验内容,认真编写源程序代码、上机调试程序,书写实验报告。
二、实验内容综合利用所学C语言三种程序基本结构以及数组(或指针)、用户自定义函数等相关知识进行一个小型学生成绩管理系统的设计与实现,具体内容如下:某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,实现如下的学生成绩管理系统:(1)录入每个学生的学号和考试成绩(2)计算课程的总分和平均分(3)按成绩由高到低排出名次表(4)按学号由小到大排出成绩表(5)按学号查询学生考试成绩(6)按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(0-59分)5个类别,统计每个类别的人数及其所占百分比(7)输出每个学生的学号、考试成绩三、实验步骤1.仔细阅读实验要求和书上的相关内容,在磁盘上新建以学号姓名命名的文件夹。
2.编写程序代码、编译、连接及运行程序、查找程序中的错误 3.函数及功能说明四、完整源程序代码五、结果分析及总结分析运行结果,并进行总结(可以从以下几个方面来总结:你在编程过程中对问题是如何分析的?遇到了哪些难题?你是怎么克服的?你的收获有哪些?)调试代码:#include #include #include#define STU_NUM 30 /*最多的学生人数*/ int Menu(void);void Readscore (long num[],float score[],int n); void Aversumofscore(float score[],int n);void Desortbyscore(long num[],float score[],int n); void Assortbynum(long num[],float score[],int n); void searchbynum(long num[],float score[],int n); void statisticanalysis(float score[],int n); void printscore(long num[],float score[],int n); int main(){ char itemselected; int n;float score[STU_NUM]; long num[STU_NUM];printf(\输入学生人数(n{ itemselected=Menu(); /*显示菜单,并读取用户输入*/ switch (itemselected){case 1: Readscore (num,score, n); break;case 2: Aversumofscore( score, n);break;case 3: Desortbyscore( num,score,n);printf(\printscore( num,score,n);break;case 4: Assortbynum(num,score,n);printf(\printscore( num,score,n);break;case 5: searchbynum(num,score, n);break;case 6: statisticanalysis( score, n);break;case 7: printscore( num,score,n);break;case 0: exit(0);/*printf(\break;*/default :printf(\ }break;}return 0; }/*函数功能:显示菜单项并获得用户键盘输入的选项*/ int Menu(void) { int itemselected;printf(\学生成绩管理系统:管理学生成绩\\n\printf(\录入每个学生学号和考试成绩\\n\printf(\计算班级总分和平均分\\n\printf(\按成绩由高到低排出名次表\\n\printf(\按学号由小到大排出成绩表\\n\printf(\按学号查询学生排名和考试成绩\\n\printf(\6. 按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(0-59分)5个类别\\n统计每个类别的人数及其所占百分比\\n\printf(\输出每个学生的学号、考试成绩\\n\printf(\程序结束\\n\printf(\输入你的选择\\n\scanf (\return itemselected;}/*函数功能:输入n个学生的某门课成绩*/void Readscore (long num[],float score[],int n) { }/*函数功能:计算全班总分和平均分*/ void Aversumofscore(float score[],int n) { }/*函数功能:将数组score的元素值按从高到低排序,即按成绩从大到小排序*/void Desortbyscore(long num[],float score[],int n)float d,c; int j; c=0;感谢您的阅读,祝您生活愉快。
计算机c语言实训报告(通用3篇)
计算机c语言实训报告(通用3篇)计算机c语言实训报告篇1一、课题名称:简单计算器设计一个简单的程序来模拟计算器的功能。
二、设计目的:1、通过理论知识与实际需求相结合,编辑解决一些日常中的实际问题,培养初步的独立分析和设计能力。
2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范;3、重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法;4、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
三、设计任务:1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。
输入一个算术计算式,就在屏幕上显示结果。
2、输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;四、设计要求:1、用C语言实现程序设计并进行调试;2、画出查询模块的流程图;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机互交)。
5、完成设计(A4)。
五、代码设计:#include "stdio.h" main { float x,y;char operator;printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator){case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0) printf("chushushilingwuyiyi"); elseprintf("%.2f/%.2f=%.2f",x,y,x/y); break;default: printf("yunsunfuwuxiao"); } }?七、设计总结:学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。
c语言实验报告
c语言实验报告一、引言C语言是一种广泛应用于计算机科学和软件开发领域的编程语言。
它的简洁性、高效性以及跨平台的特性使其成为许多开发人员的首选。
本篇实验报告将介绍我在学习C语言过程中进行的几个实验项目,并详细记录每个实验的步骤、结果以及对C语言的理解。
二、实验一:Hello World!在学习任何一门编程语言时,第一个示例程序往往是输出"Hello World!"。
这个简单的程序虽然看似微不足道,却能够帮助初学者了解基本的编译和运行过程。
在实验中,我使用了C语言的基本语法,编写了一个简单的Hello World程序,并成功地将其编译并运行。
这个小小的成就让我对C语言有了初步的认识和信心。
三、实验二:计算器程序为了更深入地理解C语言的数据类型和运算符,我决定编写一个简单的计算器程序。
这个程序可以实现基础的四则运算和一些简单的数学函数,如平方根和求幂等。
通过这个实验,我学会了如何使用变量、条件语句和循环结构来实现计算功能,并通过不断调试和修改,使程序更加健壮和高效。
四、实验三:数组与排序数组是C语言中非常重要的概念,在实验三中,我探索了数组的用法和特性,并将其应用于一个排序算法中。
我选择了冒泡排序作为实验的排序算法,通过比较相邻元素的大小并不断交换位置,最终将数组中的元素按照升序排列。
这个实验使我更加熟悉了数组的操作,也加深了我对算法思想和效率的理解。
五、实验四:文件操作在现实世界中,大部分的应用程序需要与文件进行交互。
为了学习如何使用C语言进行文件操作,我进行了实验四。
在这个实验中,我编写了一个小程序,能够读取一个文本文件的内容,统计其中不同字符的数量,并将结果输出到另一个文件。
通过这个实验,我了解了如何打开、关闭和读写文件,也学习了异常处理以及文件操作的一些注意事项。
六、实验五:数据结构和指针C语言提供了指针的机制,允许直接访问和操纵内存中的数据。
为了更深入地理解指针和数据结构之间的关系,我进行了实验五。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
防灾科技学院实习报告书防灾科技学院灾害信息工程系2015年制项目一C语言实习一、实习目的本课程是网络工程专业的一门专业必修课程,是学生学习完C语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。
本次实习通过1个综合性强、实用性强、趣味性强的应用实例,使学生进一步巩固C语言基本知识,掌握应用程序设计语言描述问题、分析问题和解决问题的方法和思想,为后继的面向对象程序设计、数据结构、Web应用技术、网络工程专业实习、网络工程生产实习、网络工程毕业实习课程等课程打下基础。
通过本课程的学习,使学生进一步明确学习目标、增强学习动力、培养学习兴趣。
二、实习任务概述任务一:员工工资管理系统的设计与实现本系统基于C语言,实现了一个小型的信息管理系统,主要包括以下功能:1.信息的录入:a)首次进入系统,可以添加职工的工号、姓名、基本工资、津贴、员工奖金等数据录入操作。
b)系统再次登录,可以从文件导入信息,也可以对文件内容进行修改,保存退出。
2.删除操作:对离职的员工信息要从系统里删除。
3.显示操作:将结构体中职工信息输出到屏幕上。
4.查询与修改操作:分别按职工工号和职工姓名查询,修改职工信息并保存。
5.统计与排序操作:分别统计所有员工的总工资,实现对总工资的排序。
三、实习所用软件简介VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。
使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。
使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。
Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。
这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
四、参考文献[1] 韩莹.C语言实训教程[M].北京交通大学出版社,2013.[2] 李新良.教学测评系统的应用与研究[J].湖南人文科技学院学报,2012(6):73-77.[3] 张高煜.C语言程序设计实训.中国水利水电出版社,2011.8.[4] 白帆.C语言开发实例详解.电子工业出版社,2012.5.[5] 王为青.C语言实战105例.北京:人民邮电出版社,2011.[6]明日科技编著.C语言项目案例分析.北京:清华大学出版社,2012.五、实习日程安排六、实习内容及步骤任务1 员工工资管理系统(C语言模块)1.1 系统开发思路(需求分析)随着计算机技术的发展,企业管理越来越趋于自动化,而工资管理是企业管理的重要的组成部分,它与企业的财务管理、人才管理有着密切的联系。
由于企业员工工资结构存在一定的规律性,工资放在时间上和操作上存在的一定的重复性,这使得企业事业单位工资管理计算机的实现成为了可能。
1.2 数据结构设计struct Worker{char workernum[10];char workername[20];int basicwage;int allowance;int Bonus;int totalwage;}Worker_Infor[100];1.3 系统设计与实现1.3.1系统功能结构图及流程图图1-1员工工资管理系统参考模块图.1.3.2 主要函数设计void Input_Infor() 函数功能:员工信息的录入void Print_Worker(int i)函数功能:员工工资的显示void delet_worker() 函数功能:删除员工信息int Search_Name() 函数功能:姓名查询int Search_Num() 函数功能:工号查询int Search_Worker() 函数功能:查询主函数,调用姓名/工号查询void Modify_Worker() 函数功能:修改员工信息void Cal_Wages() 函数功能:计算总工资void Sort_Wage() 函数功能:对员工工资排序int Save_Infor() 函数功能:文件写操作void Up_Infor() 函数功能:读文件void Input_worker(int i) 函数功能:添加新的员工信息void main() 函数功能:主函数选择进入界面1.3.3 系统功能设计与实现下面分别对该模块中的具体功能进行详细描述,主要功能实现的代码相应功能实现的界面截图。
1.---------------------------------------//主函数void main(){int c,t=1,i;Up_Infor();printf("输入员工数量:");scanf("%d",&n);while(t){printf("#######################################################\n"); printf ("## 欢迎进入职工工资管理系统: ##\n");printf ("## 1.录入员工信息 ##\n"); printf ("## 2.职工总工资进行排序 ##\n"); printf ("## 3.文件保存到硬盘上 ##\n"); printf ("## 4.查询员工信息 ##\n"); printf ("## 5.修改员工信息 ##\n"); printf ("## 6.查看所有员工信息 ##\n"); printf ("## 7.添加员工信息 ##\n"); printf ("## 8.删除员工信息 ##\n"); printf ("## 9.退出程序 ##\n"); printf("## ##\n"); printf ("## 请选择对应的编号(1—7) ##\n"); printf ("#######################################################\n");scanf("%d",&c);getchar();if (c<1||10<c){printf ("\t输入错误,请重新输入:\n");continue ;} switch(c){case 1:Input_Infor();Cal_Wages();break;case 2:Sort_Wage();break;case 3:Save_Infor();printf ("\t按任意键继续!\n");getchar();break;case 4:Search_Worker();break;case 5:Modify_Worker();break;case 6:for (i=0;i<n;i++)Print_Worker(i);break;case 7:Input_worker(i);break;case 8:delet_worker();break;case 9:t=0;printf ("\t谢谢使用!\n");printf ("\t按任意键返回!");break;}}}图1-32.----------------------------------------//读文件void Up_Infor(){int i;FILE *pk;pk=fopen("D:\\worker.txt","at+");for (i=0;i<100;i++){fscanf(pk,"%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i ].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage, Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].t otalwage);if (strcmp(Worker_Infor[i].workernum,"stop")==0)break;}fclose(pk);}3.------------------------------//员工信息的录入void Input_Infor(){char c;int i;if (n==0)i=0;else i=n-1;printf ("\t请输入职工工资信息!\n");while (1){printf ("\t请输入第%d位职工编号:",i+1);//gets(Worker_Infor[i].workernum);scanf("%s",Worker_Infor[i].workernum);getchar();printf ("\t工号为%s职工的姓名:",Worker_Infor[i].workernum);gets(Worker_Infor[i].workername);printf ("\t%s职工基本工资:",Worker_Infor[i].workername);while(1){scanf("%d",&Worker_Infor[i].basicwage);if (Worker_Infor[i].basicwage>=0)break;else printf ("\t输入错误,请重试!");}printf ("\t%s职工的津贴:",Worker_Infor[i].workername);while(1){scanf("%d",&Worker_Infor[i].allowance);if (Worker_Infor[i].allowance>=0)break;else printf ("\t输入错误,重新输入:");}printf ("\t%s职工的奖金:",Worker_Infor[i].workername);while(1){scanf("%d",&Worker_Infor[i].Bonus);if (Worker_Infor[i].Bonus>=0)break;else printf ("\t输入错误,重新输入:");}i++;n=i;getchar();printf ("\n是否继续输入:(Y/N )或者 (y/n):");scanf ("%c",&c);if (c=='n'||c=='N')break;}}图1-44.-----------------------------------//对员工工资排序void Sort_Wage(){int i,j;int Worker_temp;Cal_Wages();for (i=0;i<n;i++){for (j=i+1;j<n;j++)if (Worker_Infor[j].totalwage<= Worker_Infor[i].totalwage){Worker_temp=Worker_Infor[i].totalwage;Worker_Infor[i].totalwage=Worker_Infor[j].totalwage;Worker_Infor[j].totalwage=Worker_temp;}}for (i=0;i<n;i++)printf("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum, Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor [i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);}图1-55.---------------//文件写操作,文件保存到硬盘上int Save_Infor(){int i;FILE *pk;Cal_Wages();if ((pk=fopen("D:\\worker.txt","wr+"))==NULL){printf ("文件打开失败!");return 0;}for (i=0;i<n;i++){fprintf(pk,"%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[ i].workernum,Worker_Infor[i].workername,Worker_Infor[i].basicwage ,Worker_Infor[i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i]. totalwage);}fclose(pk);printf ("文件保存成功!");return 1;}图1-66.-----------------//查询员工信息int Search_Worker(){int i,m;printf ("请选择查询方式:\n1.按姓名查找\n2.按员工工号查找\n3.退出\n");scanf ("%d",&m);switch(m){case 1:i=Search_Name();return i ;break;case 2:i=Search_Num();return i ;break;case 3:return -1;}}6.1--------------------------------//姓名查询int Search_Name(){int i;char name[20];printf ("请输入要查询的姓名:");scanf ("%s",name);for (i=0;i<n;i++){if (strcmp(name,Worker_Infor[i].workername)==0){printf("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum, Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor [i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);return i;break;}}if (i==n){printf ("没有找到该员工!\n");return -1;}//else return i;}图1-76.2---------------------------//按工号查询int Search_Num(){int i;char num[20];printf ("请输入要查询的工号:");scanf ("%s",num);for (i=0;i<n;i++){if (strcmp(num,Worker_Infor[i].workernum)==0){printf("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum, Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor [i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);return i;break;}}if (i==n){printf ("没有找到该员工!\n");return -1;}//else return i;}图1-87.--------------------------//修改员工信息void Modify_Worker(){int i,m;printf ("请查询您要修改的员工:\n");i=Search_Worker();getchar();printf("#######################################################\n");printf ("## 请选择您要修改的内容: ##\n");printf ("## 1.员工号 ##\n");printf("## 2.员工姓名 ##\n");printf ("## 3.员工的基本工资 ##\n");printf ("## 4.员工的津贴 ##\n");printf("## 5.员工的奖金 ##\n");printf("## 6.退出 ##\n");printf("#######################################################\n");scanf ("%d",&m);switch(m){case 1:printf ("请输入新的员工号:");scanf ("%s",&Worker_Infor[i].workernum);break;case 2:printf ("请输入新的员工名:");scanf ("%s",&Worker_Infor[i].workername);break;case 3:printf ("请输入新的员工基本工资:");scanf ("%d",&Worker_Infor[i].basicwage);break;case 4:printf ("请输入新的员工津贴:");scanf("%d",&Worker_Infor[i].allowance);break;case 5:printf ("请输入新的员工奖金:");scanf ("%d",&Worker_Infor[i].Bonus);break;case 6:return;}printf ("修改后的员工的基本信息为:\n");Print_Worker(i);}图1-98.---------------//查看所有员工信息void Print_Worker(int i){printf("%-10s%-8s\t%-10d%-10d%-10d%-10d\t\n",Worker_Infor[i].workernum, Worker_Infor[i].workername,Worker_Infor[i].basicwage,Worker_Infor [i].allowance,Worker_Infor[i].Bonus,Worker_Infor[i].totalwage);}图1-109.-------------------//添加新的员工信息void Input_worker(int i){char c;printf("\t请输入职工工资信息:\n");while(1){printf("\t第%d位职工的编号:",n+1);gets(Worker_Infor[i].workernum);printf("\t工号为%s职工的姓名:",Worker_Infor[n].workernum);gets(Worker_Infor[n].workername);printf("\t%s职工的基本工资:",Worker_Infor[n].workername);while(1){scanf("%d",&Worker_Infor[n].basicwage);if(Worker_Infor[n].basicwage>=0)break;else printf("\t输入错误请重试:");}printf("\t%s职工的津贴:",Worker_Infor[n].workername);while(1){scanf("%d",&Worker_Infor[n].allowance);if(Worker_Infor[n].allowance>=0)break;else printf("\t输入错误请重试:");}printf("\t%s职工的奖金:",Worker_Infor[n].workername);while(1){scanf("%d",&Worker_Infor[n].Bonus);if(Worker_Infor[n].Bonus>=0)break;else printf("\t输入错误请重试:");}i++;n++;getchar();printf("是否想要输入下一个员工信息(Y/N):");scanf("%c",&c);if(c=='N'||c=='n')break;getchar();}}图1-11图1-1210.----------------//删除员工信息void delet_worker(){int i,k=0;char name[20];printf("输入需要删除的员工姓名:");scanf("%s",name);for(i=0;i<n-1;i++){if(strcmp(name,Worker_Infor[i].workername)==0);break;} while(1){strcpy(Worker_Infor[i].workername,Worker_Infor[i+1].workername );strcpy(Worker_Infor[i].workernum,Worker_Infor[i].workernum);Worker_Infor[i].allowance=Worker_Infor[i].allowance;Worker_Infor[i].basicwage=Worker_Infor[i+1].basicwage;Worker_Infor[i].Bonus=Worker_Infor[i+1].Bonus;Worker_Infor[i].totalwage=Worker_Infor[i+1].totalwage;Print_Worker(i);i++;if(i==n-1)break;}}图1-13图1-141.4 结论1.4.1 本次实习取得的成绩第一次接触到这样多的代码的书写,不仅锻炼了自己的编程能力,而且学会了坚持的精神。