这里的菜单应该不是GUI，你需要了解如何控制光标的位置（用来打印菜单）；信息录入一般的设计可以设计成标准输入的形式，不过后面需要文件中导出学生信息，需要了解c++文件流

这些东西搜一下就有了，需要注意题目的要求都是以“学生信息”为主体，你需要将其封装起来。

界面的话，用Qt做C++的界面很简单，而且网上有很多案例，Qt的界面好多都是可以图形化操作的很容易上手。代码的话，感觉楼主的这道题很中规中规，不是很难。

（我没有认真看题哈，我是根据我的经验来说的）菜单的话，在Qt下面也可以图形化操作，信息录入的话，就是先创建好学生类在每一个输入栏里面把你所要的信息先用QString转化string类型或者int类型你所想要的类型了,用set函数赋值就行了啊

我这里有你要的东西，刚给朋友做的

- 其他相关推荐

- 求解c++的程序设计问题
- 在网上找了很多相关的但都是c没有c++，好多看不懂的，希望有大佬能帮我解答下如何入手菜单和信息的录入![图片](https://img-ask.csdn.net/upload/201706/20/1497923151_320776.jpg)

- 立方体的一个遍历的问题求解，怎么采用C语言的程序的设计的技术的编写的程序怎么做
- Problem Description On a small planet named Bandai, a landing party of the starship Tadamigawa discovered colorful cubes traveling on flat areas of the planet surface, which the landing party named beds. A cube appears at a certain position on a bed, travels on the bed for a while, and then disappears. After a longtime observation, a science officer Lt. Alyssa Ogawa of Tadamigawa found the rule how a cube travels on a bed. A bed is a rectangular area tiled with squares of the same size. One of the squares is colored red, one colored green, one colored blue, one colored cyan, one colored magenta, one colored yellow, one or more colored white, and all others, if any, colored black. Initially, a cube appears on one of the white squares. The cube’s faces are colored as follows. top red bottom cyan north green south magenta east blue west yellow The cube can roll around a side of the current square at a step and thus rolls on to an adjacent square. When the cube rolls on to a chromatically colored (red, green, blue, cyan, magenta or yellow) square, the top face of the cube after the roll should be colored the same. When the cube rolls on to a white square, there is no such restriction. The cube should never roll on to a black square. Throughout the travel, the cube can visit each of the chromatically colored squares only once, and any of the white squares arbitrarily many times. As already mentioned, the cube can never visit any of the black squares. On visit to the final chromatically colored square, the cube disappears. Somehow the order of visits to the chromatically colored squares is known to us before the travel starts. Your mission is to find the least number of steps for the cube to visit all the chromatically colored squares in the given order. Input The input is a sequence of datasets. A dataset is formatted as follows: w d c11 · · · cw1 ... ... c1d · · · cwd v1v2v3v4v5v6 The first line is a pair of positive integers w and d separated by a space. The next d lines are w-character-long strings c11 · · · cw1,. . . , c1d · · · cwd with no spaces. Each character cij is one of the letters r, g, b, c, m, y, w and k, which stands for red, green, blue, cyan, magenta, yellow, white and black respectively, or a sign #. Each of r, g, b, c, m, y and # occurs once and only once in a dataset. The last line is a six-character-long string v1v2v3v4v5v6 which is a permutation of “rgbcmy”. The integers w and d denote the width (the length from the east end to the west end) and the depth (the length from the north end to the south end) of a bed. The unit is the length of a side of a square. You can assume that neither w nor d is greater than 30. Each character cij shows the color of a square in the bed. The characters c11, cw1, c1d and cwd correspond to the north-west corner, the north-east corner, the south-west corner and the southeast corner of the bed respectively. If cij is a letter, it indicates the color of the corresponding square. If cij is a #, the corresponding square is colored white and is the initial position of the cube. The string v1v2v3v4v5v6 shows the order of colors of squares to visit. The cube should visit the squares colored v1, v2, v3, v4, v5 and v6 in this order. The end of the input is indicated by a line containing two zeros separated by a space. Output For each input dataset, output the least number of steps if there is a solution, or “unreachable” if there is no solution. In either case, print it in one line for each input dataset. Sample Input 10 5 kkkkkwwwww w#wwwrwwww wwwwbgwwww kwwmcwwwkk kkwywwwkkk rgbcmy 10 5 kkkkkkkkkk k#kkkkkkkk kwkkkkkwwk kcmyrgbwwk kwwwwwwwwk cmyrgb 10 5 kkkkkkkkkk k#kkkkkkkk kwkkkkkwkk kcmyrgbwwk kwwwwwwwwk cmyrgb 0 0 Sample Output 9 49 unreachable

- 牙签棒的算术问题的求解，利用的是C语言程序设计的技术，怎么用代码实现的
- Problem Description A toothpick expression uses toothpicks to represent a positive integer. The expression consists of operands and operators. Each operand consists of one or more vertical toothpicks ("|"); the value of the operand is the number of toothpicks. The operators that can appear in an expression are addition and multiplication. The addition operator is the plus sign ("+"), which consists of one vertical and one horizontal toothpick. The multiplication operator is the letter "x", which also consists of two toothpicks. Multiplication has precedence over addition. The expression must begin with an operand. Thereafter, operators and operands alternate. Finally, the expression must end with an operand. Given a positive integer, your program must represent it as a toothpick expression, using the smallest number of toothpicks. Input The input file will consist of one or more lines; each line will contain data for one instance of the problem. More specifically, each line will contain one positive integer, not exceeding 5000. Output Each line of input will give rise to one line of output, consisting of: the number of toothpicks used in the expression, the expression, and the given integer from the input, formatted as shown in the sample output. The word "toothpicks" (even if the answer is 1) will be preceded by one blank space and followed by a colon and one blank space. An equal sign (but no blank spaces) will separate the expression from the given number. The expression should not contain any spaces. If there are multiple expressions which use the smallest number of toothpicks, any such expression is acceptable. Sample Input 35 37 53 Sample Output 14 toothpicks: |||||||x|||||=35 17 toothpicks: ||||||x||||||+|=37 21 toothpicks: |||||x|||||x||+|||=53

- 自循环数字的精确求解问题，运用的是C语言的程序设计的过程的方法，怎么才能实现的
- Problem Description I used to think I could be anything, but now I know that I couldn't do anything. So I started traveling. The nation looks like a connected bidirectional graph, and I am randomly walking on it. It means when I am at node i, I will travel to an adjacent node with the same probability in the next step. I will pick up the start node randomly (each node in the graph has the same probability.), and travel for d steps, noting that I may go through some nodes multiple times. If I miss some sights at a node, it will make me unhappy. So I wonder for each node, what is the probability that my path doesn't contain it. Input The first line contains an integer T, denoting the number of the test cases. For each test case, the first line contains 3 integers n, m and d, denoting the number of vertices, the number of edges and the number of steps respectively. Then m lines follows, each containing two integers a and b, denoting there is an edge between node a and node b. T<=20, n<=50, n-1<=m<=n*(n-1)/2, 1<=d<=10000. There is no self-loops or multiple edges in the graph, and the graph is connected. The nodes are indexed from 1. Output For each test cases, output n lines, the i-th line containing the desired probability for the i-th node. Your answer will be accepted if its absolute error doesn't exceed 1e-5. Sample Input 2 5 10 100 1 2 2 3 3 4 4 5 1 5 2 4 3 5 2 5 1 4 1 3 10 10 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 4 9 Sample Output 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.6993317967 0.5864284952 0.4440860821 0.2275896991 0.4294074591 0.4851048742 0.4896018842 0.4525044250 0.3406567483 0.6421630037

- 需要移动最大的步数的求解算法的问题，怎么采用C语言的程序设计的思维去实现呢？
- Problem Description As we all known, the Beijing Olympic Games had been hold in Aug 8th,2008.We are all excited about the opening ceremony directed by Yimou Chang. But how many people can taste the difficulties and the tears during the dress rehearsal. I know we must have a deep impression to the performance named “Print”, finally it displays the Chinese word “和”, which means our Chinese people love peace and harmony. Yimou tells me that there are many actresses in the play, each one has a number from 1, 9, ... to 9^m(0<=m<2^31). Those whose number’s first digit is 9, will stand to make up the “和” at last, while others will squat. The total number of people who make up the “和” is N. Maybe N is too big, so let N=N%249+2. Another moving story, there are N small circles on the ground. Each circle stands an actress. The N small circles form a big circle. At the beginning, the actresses play around the big circle clockwise. That means one actress jumped to the adjacent small circle in colckwise of the small circle she is now in. But clever Yimou find that after N times, every actress will be back to her original place. The time is too short. In order to lengthen the time of the performance, he changes his mind. Yimou also sets N arrows on the ground. Each small circle is just the start of a arrow and the end of another arrow. No circle has the same arrow’s start and end. Every actress jumps to the next circle along the direction of the arrow. When all the actresses return to their original circle, their performance ends. Now Yimou wants to know the maximal steps they can have. If you know the answer, please call “110” to tell Yimou, I think you will get a BIG surprise! Input There are multiple test cases. Each case only have an interger m. Process to the End Of File. Output For each case, output the final answer in one line. Sample Input 1 23 Sample Output 3 4

- 求解，数据结构c语言程序设计，求大神带
- 用链表结构的有序表表示某商场家电的库存模型。当有提货或进货时需要对该链表进行维护。每个工作日结束之后，将该链表中的数据以文件形式保存，每日开始营业之前，需将以文件形式保存的数据恢复成链表结构的有序表。 链表结点的数据域包括家电名称、品牌、单价和数量，以单价的升序体现链表的有序性。程序功能包括：创建表、营业开始（读入文件恢复链表数据）、进货（插入）、提货（更新或删除）、查询信息、更新信息、营业结束（链表数据存入文件）等。

- 路线的折叠的一个算法的问题怎么实现求解，用C程序的设计的语言的方式
- Problem Description Suppose you have a strip of paper and are given instructions to fold the paper in one of two ways: an upper fold, where the right end of the paper is brought over to the top of the left end; and a lower fold, where the right end of the paper is brought below the left end. The diagram below illustrates both types of folds. Now, after meticulously folding the strip several times, you are asked to unfold it by making a 90 degree angle at each crease. The example below shows the result of an upper fold, followed by a lower fold and then an unfolding. If the left end of the folded strip is placed at the origin (0,0) and the first right angle is at (1,0), it is natural to ask the questions: Where will the second right angle be located? The third right angle? Where will the other end of the strip be located? Well, that’s for us to know and you to figure out. Input The input file will contain multiple test cases. The first line of the file will contain a single integer indicating the number of test cases. Each case will consist of a string of letters U and L indicating a series of upper and lower folds followed by an integer m. The length of the string will be between 1 and 30, inclusive. The value of m identifies a position on the paper. A value of m = 0 indicates the left end (at location (0, 0)). If there are n folds, then a value of m = 2n indicates the right end of the strip. Any value for m between these two extremes represents one of the right angles; m = 1 indicates the first right angle, and so on. Output For each test case, output a single line of the form (x,y) indicating the location of the right angle (or end point) specified by the problem. You should assume that if there are n folds in the test case, the length of the string is 2n so that the distance between creases is 1 unit long. Sample Input 3 UL 4 UL 3 LLUL 13 Sample Output (2,0) (2,-1) (1,-2)

- 数据结构队列问题的综合的运用计算，怎么采用C语言的程序设计的方法来编写的代码实现算法的求解？
- Problem Description This is back in the Wild West where everybody is fighting everybody. In particular, there are n cowboys, each with a revolver. These are rather civilized cowboys, so they have decided to take turns firing their guns until only one is left standing. Each of them has a given probability of hitting his target, and they all know each other’s probability. Furthermore, they are geniuses and always know which person to aim at in order to maximize their winning chance, so they are indeed peculiar cowboys. If there are several equally good targets, one of those will be chosen at random. Note that a cowboy’s code of ethics forces him to do his best at killing one of his opponents, even if intentionally missing would have increased his odds (yes, this can happen!) Input On the first line of the input is a single positive integer t, telling the number of test cases to follow. Each case consists of one line with an integer 2 ≤ n ≤ 13 giving the number of cowboys, followed by n positive integers giving hit percentages for the cowboys in the order of their turns. Output For each test case, output one line with the percent probabilities for each of them surviving, in the same order as the input. The numbers should be separated by a space and be correctly rounded to two decimal places. Sample Input 5 2 1 100 3 100 99 98 3 50 99 100 3 50 99 99 3 50 99 98 Sample Output 1.00 99.00 2.00 0.00 98.00 25.38 74.37 0.25 25.38 49.50 25.12 25.63 24.63 49.74

- 数列分段判断的算法问题求解，怎么利用C语言的程序设计思想的方式去实现算法呢？
- Problem Description Zty has met a big problem.His X Gu Niang was kidnaped by a secret organization.The organization only left Zty a letter: "If you can beat our boss ,we will give her the freedom,or..." The boss of the organization was so secret that no one knows his name.We only know that he was so powerful,and Zty is not powerful enough now,what he need to do is to train and to get more experience(Exp).Then he found a place wonderful for traning,There are N enemies there with different Exp,and Zty has M power ball,the number of power ball he used will effect the probability he beat the enemy.These probabilities are given as percentages pij, where i (with 1 ≤ i ≤ N) is the number of the enemy and j is the quantity of power balls used on it.One power ball can be used only once. Zty has to level up to 99,then he will be able to beat the boss.Of cause he is level 1 at the begining.He want to know weather the maximal expected Exp he can get is enough.The expected Exp is calculated as Sum(P(i)*Exp) where P is the probability. The Exp Zty need to level up one level is K/100 , and K will be given. Notice that: If Zty doesn't used a power ball,the probability he beat the enemy is 0. ^_^ Input The first line contain a T ,then T cases followed.Each test case has the following format: One line with one integer K <= 100000: as the description means. One line with one integer N with 1 ≤ N ≤ 100: the number of enemies. One line with one integer M with 0 ≤ M ≤ 100: the maximal number of available power ball. One line with N integers indicating the Exp of the N enemies. N lines, each line corresponding to a enemy i, containing n integers pi1, pi2, …, pim (the percentages, with 0 ≤ pi1, pi2, …, pim ≤ 100). Output If the maximal expected Exp Zty can get is enough for him to level up tp 99,then ouput "Love you Ten thousand years.",else ouput"Cry,men,not crime." Sample Input 2 1000 2 4 8 975 85 94 93 100 0 0 100 100 1000 1 4 979 0 0 0 100 Sample Output Love you Ten thousand years. Cry,men,not crime.

- 求概率的系数的一个问题的求解，利用C语言的程序的设计的方式怎么做的
- Problem Description As the chief consultant in the International Consulting Company, you’re now enjoying such a high reputation in the industry that even the organizations underworld often come to you and ask for your suggestions. Professional as you are to your clients, you always try your best to help them and, certainly, make more profits for yourself. Money makes the mare go, and you’re no exception either. But the shareholders of the company are always watching their profits as well. In order to protect the investors, they keep focusing on every project you take charge of. Once you receive money in a project, they will come immediately to you. If your profit is less than M dollars, they won’t step in; but if the profit reaches M , they will meddle in and take away profits in unit of M as much as possible. (e.g. if you earn (2M + 1) or exactly 2M dollars, they will both take 2M away.) Now a big client comes. A famous robbery organization expects you to help them construct a robbery plan. The offer is so irresistible that you accept it immediately. Their targets are the banks in the city. Totally, there’re K banks (numbered from 1 to K) that located at different areas, which produce different difficulties to rob them. The robbery team is made up of N people, and they have totally Q dollars as action funds. In a robbery, if they send p people and spend d dollars of funds to rob bank i, they will earn fi[p, d] in this action. Here, fi[p, d] is generated by fi[p, d] =0 (p <= 0 or d <= 0) fi[p, d] = fi[p - 1, d - ei] + fi[p - 1, d] (1 < p <= N,1 <= d <= Q) and fi[1, d] comes from fi[1, d] = Aif2i[1, d - 1] + Bifi[1, d - 1] + Ci (1 <= d <= Q) where ei, Ai, Bi, Ci are coefficients given initially. The team is so professional (as you are) that the members always succeed in robberies. After they rob a bank and get the money, the team will divide it into (almost) equal parts and distribute them to you and everyone who participates in this action. That is, if they send p men and rob X dollars, you’ll receive dollars immediately after the robbery on this bank. But at the time you receive the money, the damned shareholders will come and take away the part of theirs. Only the remaining part belongs to you. You’re now required to help them determine the plan. Note that the robberies won’t take place simultaneously; and thus each person can rob several banks, but each bank can be robbed at most once (if we choose to rob it). The money they rob won’t be added to their action funds afterwards. Your final profit equals to the sum of profits that belongs to you after each robbery (Note that your total profit will not be checked again by the shareholders, i.e. your total profit may exceed M ). Your target, professionally speaking, is to maximize the total profit of yourself after they finish robbing the banks according to your plan. Be careful of the annoying shareholders in the company! Input The input consists of several test cases. The first line of input gives the number of test cases T (T<=5). For each test case: The first line consists of four integers N, Q, K(1<=N<=1000, 1<=Q<=20, 1<=K<=50) and M (1<=M<=106). The following K lines describe the property of banks, where the ith line contains ei, Ai, Bi, Ci(1<=ei<=Q, 1<=Ai, Bi, Ci<=109) in order. Output For each test case, output the maximum profits you can obtain in a line. Sample Input 1 80 10 1 1000000 1 988123 894129 102939 Sample Output 999996

- 字母构成的图形的编写，怎么采用C语言的程序的设计的步骤和方式来求解这个问题的
- Problem Description We'll consider an interesting geometric problem here. Given a number of circles with varying radius on the plane, and define the P-value of a point (x, y) on the plane as the number of circles covering this point. Here, by "covering", we mean that the point is either strictly within the circle, or on the boundary of the circle. Given the starting position (Sx, Sy), and the destination position (Tx, Ty), please find a path between the two points, such that every point of the path is on the boundary of one or more circles, and the absolute difference between the maximum P-value and the minimum P-value among all points on the path is minimized. Can you find the minimum absolute value with the help of your computer? Input There are multiple test cases in the input file. Each test case starts with one integer N (1 <= N <= 150), the number of circles, followed by four real numbers, Sx, Sy, Tx, Ty, representing the x-coordinate and y-coordinate of the starting position and the destination. Each of the following N lines consists of three real numbers X, Y and R (R >= 1), indicating that there is a circle at position (X, Y) with radius R. There is a blank line after each test case. Input ends with End-of-File. Note: It is guaranteed that the input data is always legal, i.e. both the starting position and the destination are on the boundary of one or more circles, no two circles will be at the same position, every real number in the input file has at most three digits after the decimal point, and the absolute value of any real number does not exceed 10000. Output For each test case, output one integer on one separate line as requested. If there is no way to reach the destination, output -1 instead. Sample Input 2 -1.000 0.000 1.000 0.000 0.000 0.000 1.000 1.000 0.000 1.000 2 -1.000 0.000 5.000 0.000 -1.000 -1.000 1.000 4.000 0.000 1.000 Sample Output Case 1: 1 Case 2: -1

- 循环小数的求解得到的概率问题的算法，运用C语言的程序的设计的方式如何实现
- Problem Description LL is very lazy. Recently, he is assigned to a dormitory in the 5th floor and sometimes it's hard for him to decide whether to step out for some snack at night. So he choose two positive integers x, y and decide to go or not to go by the low <y mod l> bit of x (l is the length of x in binary representation). If it is "1", he choose to go and if it is "0", he stay in the dormitory. Input Each line contain two positive integers a and b (both not larger than 10^7 and a<=b). x is randomly chosen from [a,b]. No limit on y. Output For each case, output the probability (accurate to 6 fractional digits) of getting "1". Sample Input 1 1 3 5 Sample Output 1.000000 0.666667

- 一个rank的分类的一个算法的问题，用了C语言的程序的设计怎么求解的
- Problem Description As we all know, after a series of international contests, the leaders are wild about ranking the schools to appraise the development of the ACM of our country. There are a lot of schools attend the contests, and each school has some teams or none, and each team may get some prizes of not. There are three kinds of prizes of the contests: gold, silver and copper, and gold is the best one and silver is better than copper. Now we get the result of all the schools, you should rank them, and print them according to the below rules: 1) We define the ranks between any two schools (or two teams) as the follow rules: firstly we compare the number of gold prizes, and the school is better whose number of gold prizes is larger, and if the numbers of gold prize are the same then compare the silver prizes and then copper prizes. If all the numbers of gold prizes and silver prizes and copper prizes are the same, then we just say the two school (or two teams) are the same good, and their ranks are the same, you have to obey the lexicographic orders when you print them, though. 2) We define the rank number as the following rule: if there are three schools (or three teams), A is as good as B, but better than C. So the rank number of A and B is 1 (the rank number starts from 1), and C is 3, we omit the rank number 2. If more, the rule goes on. Input There are T cases come, and the first line contains just one integer T. In each case of following T ones, there is an integer N indicates that there are N following lines describe the information of the encouragement. Each line contains fours strings: the name of the school, the name of the team, the kind of the prize ("none" means the team gets no prize), and the contest hosting place. Any string is no longer than fifty characters. T<=10, N <=200, and the school number will not be beyond N, and the team number of each school will not exceed 100. Output For each case, firstly you show the number of school, and then show the rank list as the format: the school name, the rank number, and the numbers of gold prize and silver prize and copper prize. Then you print the teams' information: the team name, the rank number, the numbers of gold prize and silver prize and copper prize. After printing the rank list, firstly you print the number of the contests, and then you have to print the contest information: the name of hosting place (shown lexicographically), the number of gold prize, and the number of silver prize and copper. You can assume all the data is correct. Sample Input 1 4 aaa mayday gold nanjing bbb let's_go silver beijing ccc how_do_you_do??? none xihua aaa acm.hdu.edu.cn copper xihua Sample Output Case 1: **************** school number: 3 aaa 1 1 0 1 team number: 2 mayday 1 1 0 0 acm.hdu.edu.cn 2 0 0 1 bbb 2 0 1 0 team number: 1 let's_go 1 0 1 0 ccc 3 0 0 0 team number: 1 how_do_you_do??? 1 0 0 0 **************** contest number: 3 beijing 0 1 0 nanjing 1 0 0 xihua 0 0 1 ****************

- 信号的干涉的一个算法问题，怎么用C程序的设计的语言来求解的呢
- Problem Description Two countries A-Land and B-Land are at war. The territory of A-Land is a simple polygon with no more than 500 vertices. For military use, A-Land constructed a radio tower (also written as A), and it's so powerful that the whole country was under its signal. To interfere A-Land's communication, B-Land decided to build another radio tower (also written as B). According to an accurate estimation, for any point P, if the euclidean distance between P and B is no more than k (0.2 ≤ k < 0.8) times of the distance between P and A, then point P is not able to receive clear signals from A, i.e. be interfered. Your task is to calculate the area in A-Land's territory that are under B-Land's interference. Input There are no more than 100 test cases in the input. In each test case, firstly you are given a positive integer N indicating the amount of vertices on A-Land's territory, and an above mentioned real number k, which is rounded to 4 digits after the decimal point. Then N lines follow. Each line contains two integers x and y (|x|, |y| ≤ 1000), indicating a vertex's coordinate on A's territory, in counterclockwise or clockwise order. The last two lines of a test case give radio tower A and B's coordinates in the same form as vertexes' coordinates. You can assume that A is not equal to B. Output For each test case, firstly output the case number, then output your answer in one line following the format shown in sample. Please note that there is a blank after the ':'. Your solution will be accepted if its absolute error or relative error is no more than 10-6. This problem is special judged. Sample Input 4 0.5000 -1 -1 1 -1 1 1 -1 1 0 0 -1 0 Sample Output Case 1: 0.2729710441

- 最接近的分数怎么求解，用的是C语言的程序的编写的设计的代码的过程的计算的方式是什么
- Problem Description Find the fraction closest to sqrt(N), the denominator of the fraction is no more than M. Input The input consists of multiple test cases.For each case the input contains two integers N and M, 1<=N<=1000000, 1<=M<=1000. Output For each case output one line, contaning the fraction that in the form "A/B" where A and B are positive integers with no common factors greater than one. Sample Input 9 4 Sample Output 3/1

- 正方形在坐标上的旋转的一个几何题，怎么使用C语言的程序编写的设计的代码去实现问题求解的
- Problem Description In this problem, you are given a sequence S1, S2, ..., Sn of squares of different sizes. The sides of the squares are integer numbers. We locate the squares on the positive x-y quarter of the plane, such that their sides make 45 degrees with x and y axes, and one of their vertices are on y=0 line. Let bi be the x coordinates of the bottom vertex of Si. First, put S1 such that its left vertex lies on x=0. Then, put S1, (i > 1) at minimum bi such that bi > bi-1 and the interior of Si does not have intersection with the interior of S1...Si-1. The goal is to find which squares are visible, either entirely or partially, when viewed from above. In the example above, the squares S1, S2, and S4 have this property. More formally, Si is visible from above if it contains a point p, such that no square other than Si intersect the vertical half-line drawn from p upwards. Input The input consists of multiple test cases. The first line of each test case is n (1 ≤ n ≤ 50), the number of squares. The second line contains n integers between 1 to 30, where the ith number is the length of the sides of Si. The input is terminated by a line containing a zero number. Output For each test case, output a single line containing the index of the visible squares in the input sequence, in ascending order, separated by blank characters. Sample Input 4 3 5 1 4 3 2 1 2 0 Sample Output 1 2 4 1 3

- 求解任意两个点的距离的问题，用C语言程序的设计的方式来做怎么做呢
- Problem Description PM Room defines a sequence A = {A1, A2,..., AN}, each of which is either 0 or 1. In order to beat him, programmer Moor has to construct another sequence B = {B1, B2,... , BN} of the same length, which satisfies that: Input The input consists of multiple test cases. The number of test cases T(T<=100) occurs in the first line of input. For each test case: The first line contains a single integer N (1<=N<=100000), which denotes the length of A and B. The second line consists of N integers, where the ith denotes Ai. Output Output the minimal f (A, B) when B is optimal and round it to 6 decimals. Sample Input 4 9 1 1 1 1 1 0 0 1 1 9 1 1 0 0 1 1 1 1 1 4 0 0 1 1 4 0 1 1 1 Sample Output 1.428571 1.000000 0.000000 0.000000

- 新型全连通迷宫问题求解
- 1.生成一个随机的正方形迷宫，输入大小n,n²个节点，全连通，（最少n-1条边，最多2n（n-1）条边），边只能存在于相邻节点之间，要求迷宫全连通，并且边数约为最少和最多边数的平均数 2.将迷宫呈现出来，节点用数字表示，位数等于最大边数的位数，位数不足的用0补足保证上下对齐，边用|和-表示，若不存在边则用空格 3.设计方法，Dijkstra算法，寻找任意两点之间的最短路径

- 数据结构里用队列去求解的一个算法问题的解答，怎么利用C程序的语言设计的方式呢
- Problem Description As we all known, the Beijing Olympic Games had been hold in Aug 8th,2008.We are all excited about the opening ceremony directed by Yimou Chang. But how many people can taste the difficulties and the tears during the dress rehearsal. I know we must have a deep impression to the performance named “Print”, finally it displays the Chinese word “和”, which means our Chinese people love peace and harmony. Yimou tells me that there are many actresses in the play, each one has a number from 1, 9, ... to 9^m(0<=m<2^31). Those whose number’s first digit is 9, will stand to make up the “和” at last, while others will squat. The total number of people who make up the “和” is N. Maybe N is too big, so let N=N%249+2. Another moving story, there are N small circles on the ground. Each circle stands an actress. The N small circles form a big circle. At the beginning, the actresses play around the big circle clockwise. That means one actress jumped to the adjacent small circle in colckwise of the small circle she is now in. But clever Yimou find that after N times, every actress will be back to her original place. The time is too short. In order to lengthen the time of the performance, he changes his mind. Yimou also sets N arrows on the ground. Each small circle is just the start of a arrow and the end of another arrow. No circle has the same arrow’s start and end. Every actress jumps to the next circle along the direction of the arrow. When all the actresses return to their original circle, their performance ends. Now Yimou wants to know the maximal steps they can have. If you know the answer, please call “110” to tell Yimou, I think you will get a BIG surprise! Input There are multiple test cases. Each case only have an interger m. Process to the End Of File. Output For each case, output the final answer in one line. Sample Input 1 23 Sample Output 3 4

- 矩阵的轮替的一个算法的求解的办法，怎么利用C语言的程序的设计的思路去实现的？
- Problem Description The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've seen it. It is constructed with 15 sliding tiles, each with a number from 1 to 15 on it, and all packed into a 4 by 4 frame with one tile missing. Let's call the missing tile 'x'; the object of the puzzle is to arrange the tiles so that they are ordered as: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 x where the only legal operation is to exchange 'x' with one of the tiles with which it shares an edge. As an example, the following sequence of moves solves a slightly scrambled puzzle: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 5 6 7 8 5 6 7 8 5 6 7 8 5 6 7 8 9 x 10 12 9 10 x 12 9 10 11 12 9 10 11 12 13 14 11 15 13 14 11 15 13 14 x 15 13 14 15 x r-> d-> r-> The letters in the previous row indicate which neighbor of the 'x' tile is swapped with the 'x' tile at each step; legal values are 'r','l','u' and 'd', for right, left, up, and down, respectively. Not all puzzles can be solved; in 1870, a man named Sam Loyd was famous for distributing an unsolvable version of the puzzle, and frustrating many people. In fact, all you have to do to make a regular puzzle into an unsolvable one is to swap two tiles (not counting the missing 'x' tile, of course). In this problem, you will write a program for solving the less well-known 8-puzzle, composed of tiles on a three by three arrangement. Input You will receive, several descriptions of configuration of the 8 puzzle. One description is just a list of the tiles in their initial positions, with the rows listed from top to bottom, and the tiles listed from left to right within a row, where the tiles are represented by numbers 1 to 8, plus 'x'. For example, this puzzle 1 2 3 x 4 6 7 5 8 is described by this list: 1 2 3 x 4 6 7 5 8 Output You will print to standard output either the word ``unsolvable'', if the puzzle has no solution, or a string consisting entirely of the letters 'r', 'l', 'u' and 'd' that describes a series of moves that produce a solution. The string should include no spaces and start at the beginning of the line. Do not print a blank line between cases. Sample Input 2 3 4 1 5 x 7 6 8 Sample Output ullddrurdllurdruldr

- 动态规划入门到熟悉，看不懂来打我啊
- 持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上，斐波纳契数列以如下被以递归的方法定义：F(0)=0，F(1)=1, F(n)=F(n-1)+F(n-2)（n>=2，n∈N*）根据定义，前十项为1, 1, 2, 3...

- 终于明白阿里百度这样的大公司，为什么面试经常拿ThreadLocal考验求职者了
- 点击上面↑「爱开发」关注我们每晚10点，捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类，各个线程都拥有一份线程私...

- 对计算机专业来说学历真的重要吗？
- 我本科学校是渣渣二本，研究生学校是985，现在毕业五年，校招笔试、面试，社招面试参加了两年了，就我个人的经历来说下这个问题。 这篇文章很长，但绝对是精华，相信我，读完以后，你会知道学历不好的解决方案，记得帮我点赞哦。 先说结论，无论赞不赞同，它本质就是这样：对于技术类工作而言，学历五年以内非常重要，但有办法弥补。五年以后，不重要。 目录： 张雪峰讲述的事实 我看到的事实 为什么会这样 ...

- Java学习的正确打开方式
- 在博主认为，对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结，前三者博主将淋漓尽致地挥毫于这篇博客文章中，至于总结在于个人，实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍，博客次之，这又是一个层次了，这里暂时不提后面再谈。博主将为各位入门java保驾护航，各位只管冲鸭！！！上天是公平的，只要不辜负时间，时间自然不会辜负你。 何谓学习？博主所理解的学习，它是一个过程，是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。

- 程序员必须掌握的核心算法有哪些？
- 由于我之前一直强调数据结构以及算法学习的重要性，所以就有一些读者经常问我，数据结构与算法应该要学习到哪个程度呢？，说实话，这个问题我不知道要怎么回答你，主要取决于你想学习到哪些程度，不过针对这个问题，我稍微总结一下我学过的算法知识点，以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的，并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构，当然，我也会整理一些看过

- 大学四年自学走来，这些私藏的实用工具/学习网站我贡献出来了
- 大学四年，看课本是不可能一直看课本的了，对于学习，特别是自学，善于搜索网上的一些资源来辅助，还是非常有必要的，下面我就把这几年私藏的各种资源，网站贡献出来给你们。主要有：电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意：文中提到的所有资源，文末我都给你整理好了，你们只管拿去，如果觉得不错，转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

- Python 植物大战僵尸代码实现(2):植物卡片选择和种植
- 这篇文章要介绍的是： - 上方植物卡片栏的实现。 - 点击植物卡片，鼠标切换为植物图片。 - 鼠标移动时，判断当前在哪个方格中，并显示半透明的植物作为提示。

- 防劝退！数据结构和算法难理解？可视化动画带你轻松透彻理解！
- 大家好，我是 Rocky0429，一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学，没学过的经常听到这样的说法还没学就觉得难，其实难吗？真难！ 难在哪呢？当年我还是个小蒟蒻，初学数据结构和算法的时候，在忍着枯燥看完定义原理，之后想实现的时候，觉得它们的过程真的是七拐八绕，及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程，但是到了数论、图...

- 【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结！
- 本文为 SnailClimb 的原创，目前已经收录自我开源的 JavaGuide 中（61.5 k Star!【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。欢迎 Star!）。 另外推荐一篇原创：终极推荐！可能是最适合你的Java学习路线 方法 网站 书籍推荐！ Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程...

- 西游记团队中如果需要裁掉一个人，会先裁掉谁？
- 2019年互联网寒冬，大批企业开始裁员，下图是网上流传的一张截图： 裁员不可避免，那如何才能做到不管大环境如何变化，自身不受影响呢？ 我们先来看一个有意思的故事，如果西游记取经团队需要裁员一名，会裁掉谁呢，为什么？ 西游记团队组成： 1.唐僧 作为团队teamleader，有很坚韧的品性和极高的原则性，不达目的不罢休，遇到任何问题，都没有退缩过，又很得上司支持和赏识(直接得到唐太宗的任命，既给

- shell脚本：备份数据库、代码上线
- 备份MySQL数据库 场景： 一台MySQL服务器，跑着5个数据库，在没有做主从的情况下，需要对这5个库进行备份 需求： 1）每天备份一次，需要备份所有的库 2）把备份数据存放到/data/backup/下 3）备份文件名称格式示例：dbname-2019-11-23.sql 4）需要对1天以前的所有sql文件压缩，格式为gzip 5）本地数据保留1周 6）需要把备份的数据同步到远程备份中心，假如...

- iOS Bug 太多，苹果终于坐不住了！
- 开源的 Android 和闭源的 iOS，作为用户的你，更偏向哪一个呢？ 整理 | 屠敏 出品 | CSDN（ID：CSDNnews） 毋庸置疑，当前移动设备操作系统市场中，Android 和 iOS 作为两大阵营，在相互竞争的同时不断演进。不过一直以来，开源的 Android 吸引了无数的手机厂商涌入其中，为其生态带来了百花齐放的盛景，但和神秘且闭源的 iOS 系统相比，不少网友...

- 神经⽹络可以计算任何函数的可视化证明
- 《Neural Networks and Deep Learning》读书笔记第四篇本章其实和前面章节的关联性不大，所以大可将本章作为小短文来阅读，当然基本的深度学习基础还是要有的。主要介绍了神经⽹络拥有的⼀种普遍性，比如说不管目标函数是怎样的，神经网络总是能够对任何可能的输入，其值（或者说近似值）是网络的输出，哪怕是多输入和多输出也是如此，我们大可直接得出一个结论：不论我们想要计算什么样的函数，...

- 聊聊C语言和指针的本质
- 坐着绿皮车上海到杭州，24块钱，很宽敞，在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传，然而，对于C语言，指针却是与生俱来的。 那么，什么是指针，为什么大家都想避开指针。 很简单， 指针就是地址，当一个地址作为一个变量存在时，它就被叫做指针，该变量的类型，自然就是指针类型。 指针的作用就是，给出一个指针，取出该指针指向地址处的值。为了理解本质，我们从计算机模型说起...

- 为什么你学不过动态规划？告别动态规划，谈谈我的经验
- 动态规划难吗？说实话，我觉得很难，特别是对于初学者来说，我当时入门动态规划的时候，是看 0-1 背包问题，当时真的是一脸懵逼。后来，我遇到动态规划的题，看的懂答案，但就是自己不会做，不知道怎么下手。就像做递归的题，看的懂答案，但下不了手，关于递归的，我之前也写过一篇套路的文章，如果对递归不大懂的，强烈建议看一看：为什么你学不会递归，告别递归，谈谈我的经验 对于动态规划，春招秋招时好多题都会用到动态...

- 程序员一般通过什么途径接私活？
- 二哥，你好，我想知道一般程序猿都如何接私活，我也想接，能告诉我一些方法吗？ 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”，还有很多读者问过我类似这样的问题。 我接的私活不算多，挣到的钱也没有多少，加起来不到 20W。说实话，这个数目说出来我是有点心虚的，毕竟太少了，大家轻喷。但我想，恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉，我也算是有经验的人了。 唾弃接私活、做外...

- 字节跳动面试官这样问消息队列：分布式事务、重复消费、顺序消费，我整理了一下
- 你知道的越多，你不知道的越多 点赞再看，养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群，欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛，几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...

- 如何安装 IntelliJ IDEA 最新版本——详细教程
- IntelliJ IDEA 简称 IDEA，被业界公认为最好的 Java 集成开发工具，尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克，开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢，一直是 Eclipse 的忠实粉丝，差不多十年的老用户了。很早就接触到了 IDEA...

- 面试还搞不懂redis，快看看这40道面试题（含答案和思维导图）
- Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型？ 3、使用 Redis 有哪些好处？ 4、Redis 相比 Memcached 有哪些优势？ 5、Memcache 与 Redis 的区别都有哪些？ 6、Redis 是单进程单线程的？ 7、一个字符串类型的值能存储最大容量是多少？ 8、Redis 的持久化机制是什么？各自的优缺点？ 9、Redis 常见性...

- 大学四年自学走来，这些珍藏的「实用工具/学习网站」我全贡献出来了
- 知乎高赞：文中列举了互联网一线大厂程序员都在用的工具集合，涉及面非常广，小白和老手都可以进来看看，或许有新收获。

- 为什么要推荐大家学习字节码？
- 配套视频： 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨：为什么要学习 JVM 字节码？ 可能很多人会觉得没必要，因为平时开发用不到，而且不学这个也没耽误学习。 但是这里分享一点感悟，即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论，有时候你觉得有些技术没用恰恰是...

- 互联网公司的裁员，能玩出多少种花样？
- 裁员，也是一门学问，可谓博大精深！以下，是互联网公司的裁员的多种方法：-正文开始-135岁+不予续签的理由：千禧一代网感更强。95后不予通过试用期的理由：已婚已育员工更有责任心。2通知接下来要过苦日子，让一部分不肯同甘共苦的员工自己走人，以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭，可在离婚或离职里二选一。4不布置任何工作，但下班前必须提交千字工作日报。5不给活干+...

- 【超详细分析】关于三次握手与四次挥手面试官想考我们什么？
- 在面试中，三次握手和四次挥手可以说是问的最频繁的一个知识点了，我相信大家也都看过很多关于三次握手与四次挥手的文章，今天的这篇文章，重点是围绕着面试，我们应该掌握哪些比较重要的点，哪些是比较被面试官给问到的，我觉得如果你能把我下面列举的一些点都记住、理解，我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候，我想很多人会这样回答： 首先很多人会先讲下握...

- 新程序员七宗罪
- 当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时，我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验，学习，成功和失败，以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者，谢谢你。 -罗伯特。 ...

- 活到老，学到老，程序员也该如此
- 全文共2763字，预计学习时长8分钟 图片来源：Pixabay 此前，“网传阿里巴巴要求尽快实现P8全员35周岁以内”的消息闹得沸沸扬扬。虽然很快被阿里辟谣，但苍蝇不叮无缝的蛋，无蜜不招彩蝶蜂。消息从何而来？真相究竟怎样？我们无从而知。我们只知道一个事实：不知从何时开始，程序猿也被划在了“吃青春饭”行业之列。 饱受“996ICU”摧残后，好不容易“头秃了变强了”，即将步入为“高...

- Vue快速实现通用表单验证
- 本文开篇第一句话，想引用鲁迅先生《祝福》里的一句话，那便是：“我真傻，真的，我单单知道后端整天都是CRUD，我没想到前端整天都是Form表单”。这句话要从哪里说起呢？大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能，顾名思义，就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式，在这个过程中发现：首先，只要有依赖jQuery的组件，譬如Kendoui，即使使用...

- 2019年Spring Boot面试都问了什么？快看看这22道面试题！
- Spring Boot 面试题 1、什么是 Spring Boot？ 2、Spring Boot 有哪些优点？ 3、什么是 JavaConfig？ 4、如何重新加载 Spring Boot 上的更改，而无需重新启动服务器？ 5、Spring Boot 中的监视器是什么？ 6、如何在 Spring Boot 中禁用 Actuator 端点安全性？ 7、如何在自定义端口上运行 Sprin...

- 【图解】记一次手撕算法面试：字节跳动的面试官把我四连击了
- 字节跳动这家公司，应该是所有秋招的公司中，对算法最重视的一个了，每次面试基本都会让你手撕算法，今天这篇文章就记录下当时被问到的几个算法题，并且每个算法题我都详细着给出了最优解，下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀：有效括号 大部分情况下，面试官都会问一个不怎么难的问题，不过你千万别太开心，因为这道题往往可以拓展出更多有难度的问题，或者一道题看起来很简单，但是给出最优解，确实很...

- 关于裁员几点看法及建议
- 最近网易裁员事件引起广泛关注，昨天网易针对此事，也发了声明，到底谁对谁错，孰是孰非？我们作为吃瓜观众实在是知之甚少，所以不敢妄下定论。身处软件开发这个行业，近一两年来，对...

- 面试官：关于Java性能优化，你有什么技巧
- 通过使用一些辅助性工具来找到程序中的瓶颈，然后就可以对瓶颈部分的代码进行优化。 一般有两种方案：即优化代码或更改设计方法。我们一般会选择后者，因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码，从而提高性能。 下面将提供一些在JAVA程序的设计和编码中，为了能够提高JAVA程序的性能，而经常采用的一些方法和技巧。 1．对象的生成和大小的调整。 J...